Xception-AS: 一种基于Xception算法结构的天体目标自动分类算法
李馨, 屠良平, 李娟, 高翔, 冯雪琦, 仲峥迪     
辽宁科技大学理学院, 辽宁 鞍山 114000
摘要: 提出了一种基于Xception结构的天体目标自动分类算法, 该算法可以有效应用于星系、恒星和类星体的自动分类。算法以Xception为基础框架, 通过选择最优激活函数, 加入注意力机制等方式进行改进。随机选择SDSS-DR16测光图像数据中的11 543个星系、10 490个类星体和11 967个恒星共34 000个观测源g, r和i共3个波段的图像作为实验数据, 并设计多组实验进行算法验证和测试, 综合分析所有实验结果得出本文算法在准确率、精确率、召回率和F1分数等关键指标分别达到了90.26%, 90.01%, 89.86%和89.85%。相同数据集与其他13种经典和流行的卷积神经网络(Convolutional Neural Network, CNN)算法的实验结果对比表明, 本文提出的Xception-AS算法具有更加优异的分类性能, 证明本文算法解决天体目标自动分类问题的优越性。
关键词: 天文图像分类    机器学习    Xception    卷积神经网络    
Xception-AS: An Automatic Object Classification Algorithm Based on the Structure of Xception Model
Li Xin, Tu Liangping, Li Juan, Gao Xiang, Feng Xueqi, Zhong Zhengdi     
College of Science, University of Science and Technology Liaoning, Anshan 114000, China
Abstract: In this paper, an algorithm based on Xception is proposed, which can be used to solve the problem of automatic classification of galaxies, stars and quasars. Based on Xception, the algorithm is improved by selecting the optimal activation function and adding attention mechanism. In this paper, 11 543 galaxies, 10 490 quasars and 11 967 stars in SDSS-DR16 photometric image data are randomly selected as experimental data from 34 000 observation sources in g, r and i bands, and multiple experiments are designed to verify and test the algorithm. A comprehensive analysis of all experimental results shows that the algorithm in this paper achieves 90.26%, 90.01%, 89.86% and 89.85% respectively in the key indicators such as precision rate, accuracy rate, recall rate and F1 score. Compared with other 12 classical and popular convolutional neural network algorithms on the same data set, the proposed Xception-AS algorithm has better classification performance, which proves that the proposed algorithm has advantages in solving the problem of automatic classification of celestial objects.
Key words: classification of astronomical images    machine learning    Xception    convolutional neural network    

随着天文观测仪器的进步,众多巡天项目投入使用,天文数据量呈指数增长,数据量以TB和PB量级计算。望远镜获取的海量观测目标源中包含各种各样不同类型的天体,如何准确地对其进行分类是天文研究领域的重要问题之一,特别是对主要天体类型星系、恒星和类星体的分类问题更是目前广泛研究的热点之一。面对多达数千万甚至上百亿的天文观测数据,采用人工或人机交互的方式分类显然是不现实的,所以借助计算机实现天体目标自动分类是一种更有效的手段,机器学习算法在此方面具有明显优势。

对于大数据的处理,机器学习算法能够从数据中自动学习数据特征,实现分类或参数测量任务。本文使用机器学习的一个分支——深度学习,它可以通过深度神经网络直接从数据中进行特征学习。目前,各类传统的机器学习算法和先进的深度学习算法已经应用于天文学领域的诸多方面。在光谱分析领域,文[1]基于机器学习的光谱自动分析下,提出一种基于双层聚类的星系光谱分析方法,并应用于海量天文数据的分类研究。在测光领域,文[2]提出了一种特殊的机器学习方法——Boosted Decision Trees,用于分离测光图像中的星系;文[3]提出一种星系形态分类的新方法——GMC,并应用于星系形态的分类。上述工作为我们提供了良好的借鉴,也为深度学习算法解决天体分类问题提供了新的思想。

1 数据 1.1 数据选择

斯隆数字巡天(Sloan Digital Sky Survey, SDSS)是有史以来最大的巡天观测项目之一,观测项目覆盖了14 555平方度的天区,超过整个天空的三分之一。本文使用的数据来自斯隆数字巡天发布的第16期数据(SDSS 16th Data Release, SDSS-DR16)。按照斯隆数字巡天数据发布的传统,SDSS-DR16是对以前发布数据的累积。SDSS-DR16总共包含930 268张测光图像,对应12亿个观测源和数千万条光谱。SDSS测光数据对应的参数包括星等、颜色、轮廓和大小等,光谱数据对应参数包括红移、各波段信噪比和天体目标的一些科学参数等。

本文获取的数据通过SDSS官网下载,具体是在子网站CasJobs中使用SQL(Structured Query Language)查询语句通过SkyServerAPI(SDSS SkyServer DR16)结构获取数据。由于目前斯隆数字巡天的测光星表PhotoObj只能将所有观测到的源分为点源和面源,而通过光谱能更好地将目标源分类为星系、恒星和类星体。因此,我们在CasJobs中通过SpecPhoto与PhotoObj星表交叉得到经过校准的源,并获取目标位置信息(赤经和赤纬)。经过校准的源可以精确快速地将它们区分。校准后的每个源用参数“Class”标记为“星系”、“恒星”或“类星体”。

本文选择SDSS-DR16中观测天区为3462,3478,3530和其他4个区域作为实验数据,因为在这几个区域可以获取大量的源,为实验提供丰富的样本数据。如3462天区中有9 891个源,其中星系源2 790个、恒星源2 378个、类星体源4 723个;3478天区中有3 862个源,其中星系源1 759个、恒星源577个、类星体源1 526个。通过获得所在天区的星表与FITS(Flexible Image Transport System)文件交叉匹配我们获得了12 499个星系源,16 914个类星体源和16 908个恒星源u,g,r,i和z共5个波段的图像作为训练和测试数据。

1.2 图像合成

由于斯隆数字巡天测光数据包括u,g,r,i和z共5个波段的测光图像,这些测光图像数据是以单波段的形式分别封装在格式为FITS的文件中,不同波段图像包含的信息不尽相同。由于g,r和i波段包含的特征信息多且噪声较少,研究人员通常使用这3个波段对应于图像的R,G和B通道合成测光图像。不同波段一般不能直接合成,如果直接将3个波段合成,可能出现不同波段图像无法对齐的现象。因此,本文采用文[4]编写的RGB多波段图像合成软件,对g,r和i波段的图像合成,该方法有效避免了不同波段图像不能对齐的问题,本文中每张测光图像像素为2 048 × 1 489。

1.3 数据裁剪

本文首先对目标图像进行裁剪,图像裁剪可以利用图像分割工具,我们使用Python实现这一过程。裁剪不仅可以降维,还可以消除噪声。在裁剪过程中,我们通过坐标转换公式将星表中源的赤经赤纬转换为测光图像的像素坐标,通过像素坐标确定源的具体位置,将坐标视为中心点,并以矩形框的形式进行裁剪。

我们发现输入图像的尺寸大小影响实验结果,因此根据源的目标大小,我们分别选择40 × 40,60 × 60和80 × 80不同裁剪尺寸。随机选取3种裁剪尺寸的星系图像见图 1(a)。经过实验与分析,我们发现卷积神经网络对图像尺寸小的数据学习能力更强,且精度更高。最终,我们选择将面源星系、点源类星体和恒星都划分为40 × 40。星系、恒星和类星体获取图片见图 1(b)

图 1 (a) 星系不同尺寸裁剪图像;(b)星系、恒星和类星体图像示例 Fig. 1 (a) Crop images of galaxies at different sizes; (b) sample images of galaxies, stars and quasars
1.4 训练和测试数据的划分

为了使算法能够具有更加准确的识别性能,我们需要足够多的图像样本。训练集、验证集和测试集的选择是影响最终识别准确率的重要因素。本文按照8∶1∶1的比例设置训练集、验证集和测试集,其中验证集用于修正算法,测试集用于评估最终算法的泛化能力。具体数据划分信息见表 1。总样本共有34 000个源的图像,其中星系源11 543个,恒星源11 967个,类星体源10 490个。

表 1 星系、恒星和类星体图像样本数据统计 Table 1 Galaxy, star, and quasar image sample data statistics
Training set Verification set Test set Total data
Galaxy 9 234 1 154 1 155 11 543
Star 9 573 1 197 1 197 11 967
Quasar 8 392 1 049 1 049 10 490
Total data 27 199 3 400 3 401 34 000
1.5 数据预处理

在本次实验中训练集和测试集进行数据预处理后,即可以作为算法的训练和测试输入。

数据数量和质量很大程度上决定算法的识别性能。训练集和测试集的预处理过程不同,在训练集中,我们首先对裁剪后的图像进行垂直翻转、水平翻转和缩放等以丰富数据样本,增强算法的泛化能力。由于天体目标源中的特征具有翻转不变性,旋转之后星系、恒星和类星体的标签不会改变。测试集的预处理过程相对训练集简单,我们对输入图像进行简单的缩放处理,将得到的图像进行测试输入。数据预处理的过程见图 2

图 2 数据预处理的过程 Fig. 2 The process of data preprocessing
2 方法 2.1 卷积神经网络

卷积神经网络是专门用于处理具有类似网格结构数据(如图像数据)的神经网络。它主要结构包括输入层、卷积层、池化层和输出层等。本文在选择初始卷积神经网络深度算法时对比了13种不同的算法结构,包括AlexNet[3],GoogLe Net-V1[5], VGG[3], MoblieNet[3], ConvNet[3], Shu ffleNet[6], DenseNet[7], GoogLeNet-V2[5], GoogLe Net-V3[5],GoogLeNet-V4[8],Inception-ResNet-V1[8],Inception-ResNet-V2[8]和Xception[9]。其中后6种算法都是在GoogLeNet-V1算法的基础上进行改进的新算法。结果显示,Xception算法在这13种算法中效果最优。所以,本文将Xception算法作为我们解决天体分类问题的初始算法。

2.2 Xception-AS算法

本文在Xception算法的基础上进行改进,因此,我们将方法命名为Xception-AS算法(A: astronomy, S: source)。

本文首先分析了不同激活函数对实验结果的影响,发现在每一卷积层中,Elu激活函数由于存在负值,可以达到批标准化的效果,并且Elu激活函数本身可以很好地解决梯度消失问题,因此,我们用Elu函数替换原算法中的Relu激活函数。同时,为了继续改善和提高算法性能,我们尝试在Xception算法的深度可分离模块后加入SE[10]注意力机制。SE注意力机制的算法结构见图 3。在Xception算法中引入SE模块的关键在于,SE注意力机制是通道注意力机制,由于天体源目标差异过于细微,SE注意力机制的引入可以解决在卷积池化的过程中,特征图所占不同通道的重要性带来的损失问题。在Xception算法的结构上增加SE模块增强了有用特征,削弱了无用特征,算法更稳定,同时提高了分类效果,且能增强算法的泛化能力和预测结果的准确性。本文改进后的算法结构见图 4

图 3 SE注意力机制模块[10] Fig. 3 SE attention mechanism module[10]
图 4 Xception改进后的算法结构图 Fig. 4 Structure diagram of Xception improvement algorithm
3 实验及讨论 3.1 实验环境

实验在Python 3.8下进行,使用的编译环境为Pytorch,本文算法在各个程序包基础上进行改进。处理器为Intel(R) Core(TM)i7-10700F CPU@2.90 GHz 2.90 GHz,系统类型为Windows10 64位。

3.2 参数设置

为了使算法训练效果达到最佳,实验过程中我们对每一轮学习率(Learning rate)、训练样本大小(Batch size)等参数进行相应的变化调整,以确保算法具有更好的性能。通过多重对比,在运行设置为60轮(Epochs)时,训练样本大小设为128,学习率设为0.000 1,算法的效果最好。

3.3 实验评价指标

性能度量是衡量算法泛化能力的评价标准,反映任务的需求。根据样例的真实类别与学习器预测类别的组合划分为真正例(TP)、假正例(FP)、真反例(TN)和假反例(FN)。

准确率accuracy=$\frac{T P+T N}{T P+T N+F P+F N} $,精确率precision=$\frac{T P}{T P+F P} $,召回率recall=$\frac{T P}{T P+T N} $F1分数f1_score=$\frac{2 T P}{2 T P+F P+F N} $。受试者工作特征(Receiver Operating Characteristic, ROC)曲线常用于分类问题的模型比较,主要表现为一种真正例率(TPR)和假正例率(FPR)的权衡。其中受试者工作特征曲线下的面积为AUC(Area Under Curve),主要用于衡量算法的泛化能力,即算法的好坏。混淆矩阵用于对比分类结果和实际预测值之间的差距。

3.4 实验结果与分析 3.4.1 深度学习算法对比实验

实验时,我们使用3种不同尺寸数据集,分别为40 × 40,60 × 60和80 × 80裁剪尺寸,通过AlexNet算法进行训练测试实验对比发现,算法精度会随着数据集尺寸的减小而提高,具体结果见表 2

表 2 不同裁剪尺寸对算法性能影响的对比结果 Table 2 Comparison results of different clipping sizes on algorithm performance
Cutting size/pixel Verification accuracy/% Test accuracy/%
40 × 40 87.85 87.15
60 × 60 86.46 86.29
80 × 80 85.46 85.29

选择数据尺寸后,在相同的测试环境下,我们进一步对比多种性能优异的深度学习算法,分别为AlexNet,GoogLeNet-V1,VGG,MoblieNet,ConvNet, ShuffleNet和DenseNet等7种算法,通过一系列训练测试,我们得到各算法性能指标见表 3。实验表明,在7种分类算法中,GoogLeNet-V1算法的3项指标优于其他6种算法,GoogLeNet-V1算法的准确率最高,从而说明GoogLeNet-V1算法更适用于解决天体目标图像分类问题。

表 3 不同算法之间的对比结果 Table 3 Comparative results between different models
Network Accurary/% Precision/% Recall/% F1-score/%
AlexNet 87.68 87.77 87.55 86.95
GoogLeNet-V1 88.77 88.64 88.60 88.59
VGG 88.18 88.11 88.02 88.05
MoblieNet 87.30 87.18 87.26 87.15
ConvNet 83.27 83.10 83.18 83.13
ShuffleNet 88.65 88.72 88.79 87.52
DenseNet 88.56 88.44 88.50 88.40

GoogLeNet是2014年Christian Szegedy提出的一种全新的深度学习结构,经过多年发展,已形成一系列改进算法,它们都是以GoogLeNet-V1算法结构为基础对网络结构进行改进。为此,我们进一步对GoogLeNet系列算法进行实验,从而选出其中最好的分类算法,GoogLeNet-V1算法与6种GoogLeNet系列算法的对比实验结果见表 4

表 4 GoogLeNet系列算法对比结果 Table 4 Comparison results of GoogLeNet series model
Network Accurary/% Precision/% Recall/% F1-score/%
GoogLeNet-V1 88.77 88.64 88.60 88.59
GoogLeNet-V2 88.36 88.21 88.32 88.22
GoogLeNet-V3 88.94 88.90 88.97 88.87
GoogLeNet-V4 89.12 88.95 89.00 88.94
Inception-ResNet-V1 88.68 88.58 88.69 88.56
Inception-ResNet-V2 89.52 89.81 89.53 89.48
Xception 89.59 89.56 89.59 89.57

分析表 4的实验结果,GoogLeNet系列算法的结果相差不大,与其他分类网络相比,Xception算法的准确率最高,有一定的优势。由于上述实验结果对应指标差异不大,我们考虑不同算法在训练过程中存在一定范围的扰动,这种扰动对实验结果造成一定的偏差。因此,本文再次对分类性能最好的前3种算法进行实验,从而增加实验的可靠性。具体是将SE注意力机制分别加到GoogLeNet-V4算法、Inception-ResNet-V2算法和Xception算法,加入SE注意力机制后的对比实验结果见表 5

表 5 加入SE后的对比结果 Table 5 Comparison results after adding SE
Network Accurary/% Precision/% Recall/% F1-score/%
GoogLeNet-V4 89.12 88.95 89.00 88.94
GoogLeNet-V4-SE 87.92 87.88 87.93 87.75
Inception-ResNet-V2 89.52 89.81 89.53 89.48
Inception-ResNet-V2-SE 88.80 88.71 88.77 88.72
Xception 89.59 89.56 89.59 89.57
Xception-SE 90.01 89.98 89.86 89.65

表 5可以看出,GoogLeNet-V4-SE算法和Inception-ResNet-V2-SE算法效果反而不如之前,Xception-SE算法比Xception算法准确率提高了0.42,精确率提高了0.42,召回率提高了0.3,F1分数提高了0.08,说明Xception算法加入SE注意力机制后效果得到了提升。我们再在Xception-SE算法中引入Elu激活函数,实验结果见表 6。结果显示,Xception-AS算法在原Xception算法的基础上提高了0.7个百分点,精确率提高了0.5,召回率提高了0.48,F1分数提高了0.48,表明Xception-AS算法效果最为显著,Xception-AS算法对于天文源星系、恒星和类星体的分类效果优于其他深度学习算法。

表 6 Xception算法引入Elu激活函数对比结果 Table 6 The Xception algorithm introduces the Elu activation function comparison results
Network Accurary/% Precision/% Recall/% F1-score/%
Xception-SE (ELU) 90.26 90.01 89.86 89.85
Xception-SE (ReLU) 90.01 89.98 89.86 89.65
3.4.2 Xception-AS算法的实验结果

图 5(a)为测试集中Xception-AS算法的受试者工作特征曲线,我们用不同颜色的曲线代表不同的类别,浅蓝色曲线代表星系,橙色曲线代表类星体,深蓝色曲线代表恒星,深蓝色虚线代表平均AUC值。从受试者工作特征曲线可以看出,每一类的预测结果都很好,其中星系的分类效果最好,其次是恒星,然后是类星体。星系AUC值为0.985 0,类星体AUC值为0.947 8,恒星AUC值为0.964 0。

图 5 (a) 3个类别在Xception-AS算法的受试者工作特征曲线;(b)3个类别在Xception-AS算法的混淆矩阵 Fig. 5 (a) ROC curve for 3 categories on Xception-AS algorithm; (b) confusion matrix for 3 categories on Xception-AS algorithm

图 5(b)为测试集中Xception-AS算法的混淆矩阵,其中,列为真实标签,行为预测标签,斜对角线代表真正例,数字0代表星系,1代表类星体,2代表恒星。从混淆矩阵可以看出,有1 093张星系图像、889张类星体图像、1 042张恒星图像分类正确。

4 结论

利用深度学习算法解决天体源中的星系、恒星和类星体的分类问题是天文大数据时代的一个有效方法。本文首先选取SDSS DR16测光星表对应的部分天文图像数据,通过合理的选取,并对图像进行合成、裁剪和数据预处理得到训练和测试数据。在Xception算法的基础上,本文通过引入激活函数,加入SE注意力机制,并结合星系、恒星和类星体的自身特点,设计一种命名为Xception-AS的算法。该算法在本文数据集的分类准确率达到90.26%,精确率达到90.01%,召回率达到89.86%,F1分数达到89.85%。与其他多种深度学习算法对比,Xception-AS算法效果最优,说明Xception-AS算法在解决星系、恒星和类星体分类问题的有效性。本文虽然在一定程度上解决了天体目标源中的星系、恒星和类星体的分类问题,并且分类精度在一定范围内有了提升,但是仍然存在一些不足。具体表现在因样本目标差异过小,导致类星体和恒星难以区分,所以在未来的研究中我们将尝试用多种方法解决这个问题,从而进一步提升算法的分类性能。

参考文献
[1] 张茜, 张健楠, 赵永恒. 基于聚类的星系光谱分析[J]. 天文研究与技术, 2020, 17(2): 233–243
ZHANG Q, ZHANG J N, ZHAO Y H. Spectral classification of galaxies based on clustering analysis[J]. Astronomical Research & Technology, 2020, 17(2): 233–243. DOI: 10.3969/j.issn.1672-7673.2020.02.013
[2] SEVILLA-NOARBE I, ETAYO-SOTOS P. Effect of training characteristics on object classification: an application using boosted decision trees[J]. Astronomy & Computing, 2015, 11: 64–72.
[3] 王林倩, 邱波, 罗阿理, 等. 一种星系形态分类的新方法[J]. 天文研究与技术, 2022, 19(4): 359–370
WANG L Q, QIU B, LUO A L, et al. A new method for galaxy morphology classification[J]. Astronomical Research & Technology, 2022, 19(4): 359–370.
[4] HE Z D, QIU B, LUO A L, et al. Deep learning applications based on SDSS photometric data: detection and classification of sources[J]. Monthly Notices of the Royal Astronomical Society, 2021, 508(2): 2039–2052.
[5] 戴加明. 基于深度卷积神经网络的星系形态分类研究[D]. 北京: 中国科学院大学, 2018. DAI J M. Galaxy morphology classification with deep convolutional neural networks[D]. Beijing: University of Chinese Academy of Sciences, 2018.
[6] ZHANG X, ZHOU X, LIN M, et al. ShuffleNet: an extremely efficient convolutional neural network for mobile devices[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2018: 6848-6856.
[7] HUANG G, LIU Z, LAURENS V, et al. Densely connected convolutional networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2017, 243: 2261-2269.
[8] SZEGEDY C, IOFFE S, VANHOUCKE V, et al. Inception-v4, inception-ResNet and the impact of residual connections on learning[C]//Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence. 2017: 4278-4284.
[9] CHOLLET F. Xception: deep learning with depthwise separable convolutions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 1251-1258.
[10] HU J, SHEN L, SUN G, et al. Squeeze-and-excitation networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 7132-7141.
由中国科学院国家天文台主办。
0

文章信息

李馨, 屠良平, 李娟, 高翔, 冯雪琦, 仲峥迪
Li Xin, Tu Liangping, Li Juan, Gao Xiang, Feng Xueqi, Zhong Zhengdi
Xception-AS: 一种基于Xception算法结构的天体目标自动分类算法
Xception-AS: An Automatic Object Classification Algorithm Based on the Structure of Xception Model
天文研究与技术, 2023, 20(3): 267-274.
Astronomical Research and Technology, 2023, 20(3): 267-274.
收稿日期: 2022-12-08
修订日期: 2023-01-16

工作空间