随着天文观测仪器的进步,众多巡天项目投入使用,天文数据量呈指数增长,数据量以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 |
为了使算法能够具有更加准确的识别性能,我们需要足够多的图像样本。训练集、验证集和测试集的选择是影响最终识别准确率的重要因素。本文按照8∶1∶1的比例设置训练集、验证集和测试集,其中验证集用于修正算法,测试集用于评估最终算法的泛化能力。具体数据划分信息见表 1。总样本共有34 000个源的图像,其中星系源11 543个,恒星源11 967个,类星体源10 490个。
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 |
在本次实验中训练集和测试集进行数据预处理后,即可以作为算法的训练和测试输入。
数据数量和质量很大程度上决定算法的识别性能。训练集和测试集的预处理过程不同,在训练集中,我们首先对裁剪后的图像进行垂直翻转、水平翻转和缩放等以丰富数据样本,增强算法的泛化能力。由于天体目标源中的特征具有翻转不变性,旋转之后星系、恒星和类星体的标签不会改变。测试集的预处理过程相对训练集简单,我们对输入图像进行简单的缩放处理,将得到的图像进行测试输入。数据预处理的过程见图 2。
![]() |
图 2 数据预处理的过程 Fig. 2 The process of data preprocessing |
卷积神经网络是专门用于处理具有类似网格结构数据(如图像数据)的神经网络。它主要结构包括输入层、卷积层、池化层和输出层等。本文在选择初始卷积神经网络深度算法时对比了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。
![]() |
图 4 Xception改进后的算法结构图 Fig. 4 Structure diagram of Xception improvement algorithm |
实验在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=
实验时,我们使用3种不同尺寸数据集,分别为40 × 40,60 × 60和80 × 80裁剪尺寸,通过AlexNet算法进行训练测试实验对比发现,算法精度会随着数据集尺寸的减小而提高,具体结果见表 2。
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算法更适用于解决天体目标图像分类问题。
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。
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。
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算法对于天文源星系、恒星和类星体的分类效果优于其他深度学习算法。
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 |
图 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. |