时间:2024-05-04
张士川 郑小盈
1(中国科学院大学微电子学院 北京 100049)2(中国科学院上海高等研究院 上海 201210)
在天文科学领域,随着数字图像技术代替摄影图像技术,以及大型巡天项目的开展,越来越多的天文数据被收集起来。对天文数据不断地收集和分析使得天文科学发展到一个新的阶段。海量的数据给天文科学的发展提供了基础,而有效的数据处理和分析手段变得极其重要。在天文学中,合理地将点状源(恒星)和扩展源(星系)分开是从光度图像中提取其他天文数据的前提[1],所以恒星/星系识别一直是天文领域的一个基础研究项目。在对源进行分析时,低分辨率高信噪比样本给恒星/星系识别任务带来了困难。到目前为止,已经出现了很多针对恒星/星系精确识别的研究,其中包括了基于形态和启发式分割的方法[2-3],这两类方法在识别暗星体(低分辨率高信噪比)时表现出明显的不足。由于目前已经获得了大量恒星和星系的观测数据,所以最近很多研究将机器学习方法引入到恒星/星系识别任务中。
随着计算机存储和计算能力的发展,将机器学习和深度学习等方法的研究推向一个新的高潮。机器学习方法在诸多交叉领域的优势日益突出,比如医疗、生物、金融以及安防等。随着大型巡天项目的实施和开展,机器学习和深度学习方法逐渐应用到天文领域。Zhu等[4]应用深度学习方法进行脉冲星识别,有效提高脉冲星识别的召回率;Daniel等[5]将深度学习应用到实时的引力波检测和参数估计中;Xu等[6]应用机器学习方法进行天文大数据归档,使得越来越多的天文任务可以用机器学习方法得到很好的解决。
斯隆数字巡天计划(Sloan Digital Sky Survey,SDSS)[7]收集了大量的恒星和星系观测数据以及光谱认证数据,为利用机器学习方法进行恒星/星系识别提供了条件。Vasconcellos等[8]用决策树方法进行恒星/星系识别,并比较了13种决策树的识别效果;李超等[9]总结了3种增强学习方法在恒星/星系上的识别效果,最终得出XGboost方法在暗星上的识别效果明显优于其他方法;秦浩然等[11]运用堆叠降噪自编器提高了对SDSS数据集中暗星体的识别精确。除了对SDSS数据库中星体观测属性值的研究,也有应用深度学习方法直接识别恒星和星系图像的研究,比如Noble等[11]考虑环境因素的影响设计深度学习网络模型提取全局特征,有效提高了暗星体的识别精准度,Edward等[12]充分利用深度卷积神经网络的优势,直接对恒星和星系图片进行识别。在这些研究之前,也有应用自动聚类算法进行恒星/星系分类任务的研究工作[13]。
在之前的研究工作中对亮星体的识别准确率达到了较高水平,但对暗星体的识别效果相对较差,主要是因为暗星集中恒星和星系的特征表现差距较小,而且暗星集样本数量较少,不利于模型的训练。面临这些挑战,本文提出了用于恒星/星系分类的硬调整孪生网络模型,极大地提高了暗星数据集的识别精度,而且还提出了用于亮星数据集的代价敏感模型,使亮星的识别精度也有所提高。
斯隆数字巡天(SDSS)是迄今为止最大规模的星系图像和光谱巡天项目,获得了上百万天体的测光数据和光谱认证数据,SDSS各个阶段的数据都以数据库的形式加以公开,使得科研工作者可以使用(SQL)直接查询获得。SDSS的测光系统利用6组CCD(Charged-coupled Device)同时对天体进行五个波段的测量(u,g,r,i,z),所有的测量数据都存储在数据库相应的表中。在SDSS第三阶段最新公开的数据集DR-12(Data Released 12)中包含了近5亿条测光记录。大量的SDSS测光数据对众多天文工作提供了基本支持,比如恒星/星系分类、星体演化、恒星种群、银河系的构成等,所以SDSS数据的公开极大地促进了天文领域的发展。SDSS共分为SDSS-1、SDSS-2和SDSS-3三个阶段,本文研究中所用到的数据集为第二阶段最后公开的数据集DR-7(Data Release 7)。
DR-7数据集包含了大量的测光记录,本文利用其中带有光谱认证的部分数据,结合SDSS数据库中PhotoObj和SpecObj两个表,综合得到所需数据。在所有的波段测量中使用了r波段数据,参照文献[8]选择了13条属性作为每一条测光记录的初始特征,从SpecObj中选择一个光谱认证参数作为标签,有助于最后对模型效果的测试。标签信息是从SpecObj表中的SpecClass属性中获得的,SpecClass属性的属性值是0~7,8种数字分别代表了7种不同星体和一种未知类型的星体,其中数字“1”和“2”分别代表了恒星(Star)和星系(Galaxy)。
在选取实验数据的过程中,删除了含有属性缺失值的记录,在SDSS数据库中缺失值以“-9999”形式呈现,最终得到了80多万条实验数据。根据属性modelMag_r的取值范围,将得到的80多万条实验数据分成亮星集、暗星集和极暗星集。把modelMag_r属性值大于等于14并且小于19的记录记为亮星集(Bright Set,BS)样本,modelMag_r属性值大于等于19并且小于20.5的记录记为暗星集(Faint Set,FS)样本,modelMag_r属性值大于等于20.5并且小于等于21的记录记为极暗星集(Extreme Faint Set,EFS)样本[9]。
针对BS、FS和EFS数据集,本文分别采用不同的算法模型。由于在亮星集BS中恒星和星系的类间距离较大,恒星和星系的差异比较明显,用传统的机器学习模型可以达到较好的效果。但在暗星集FS和极暗星集EFS中,由于受到环境影响使得恒星和星系之间的测光数据差异不明显,很难将星系从众多的星体中识别出来,所以在恒星/星系识别任务中,主要面临困难样本挖掘[14]问题。本文所提出的基于深度学习的代价敏感模型和带硬调整手段的孪生神经网络(Siamese Neural Networks,SNN)模型不仅能够很好地解决暗星集中的恒星/星系分类问题,而且也适用于很多其他的困难样本挖掘任务中。
在介绍深度神经网络(Deep Neural Networks,DNN)之前,需要了解DNN的基本组成单元——感知机。感知机是没有激活函数的神经元,一般用来处理线性可分问题。为了解决线性不可分问题,需要给感知机引入非线性因素—非线性激活函数。可以把感知机的作用过程看作是输入的加权求和,而激活函数就是对求和后的结果进行非线性变换。目前已有很多对激活函数进行研究的工作[15]。在不同的任务和模型中,选择合适的激活函数极其重要,考虑到常用激活函数的缺陷和不足,本文选择了PReLU激活函数[16],可以解决梯度消失等问题,其表达式为:
(1)
式中:参数a是在模型训练的过程中确定的,是可训练参数。该激活函数增加了模型的参数量,增强模型的拟合能力。神经元包含了非线性因素,为了模拟和逼近任意的非线性函数,将多个神经元进行堆叠组成一层,然后再堆叠多层得到了包含多个隐含层的DNN,如图1所示。
图1 深度神经网络(DNN)模型结构
若将该模型应用到恒星/星系分类任务上,输入是长度为13的向量,即为网络的输入层,对于二分类任务输出层长度为2,可以分别表示属于两个类别的概率或者得分。
在恒星/星系识别任务中,最重要的挑战是提高模型在极暗星集EFS中的识别效果。在EFS数据集中,受环境影响因素较大,恒星和星系并没有表现出明显的差异。如果从数据多维空间分布上考虑,恒星和星系存在较多重叠交叉。为了更好地可视化数据,利用主成分分析(PCA)将星体的13维测光数据进行降维,图2(a)是两类数据在二维平面上投影后的效果。可以看到,恒星和星系并没有明显的分界面,所以PCA这种降维的特征提取算法并不能使后续的分类模型达到很好的效果。
(a) PCA降维 (b) SNN图2 PCA降维和SNN特征提取特征空间分布对比
在EFS数据集中还面临着标注样本数量少的问题,只有3 000多个。利用深度学习方法解决实际问题时,一个基本的条件是需要大量的有标注的训练样本,否则深度网络模型会发生过拟合,表现为在训练集的偏差过小,而在测试集的偏差过大。所以本文应用孪生网络(Siamese Neural Networks,SNN)[18]模型对样本数据进行特征提取,SNN的网络结构是基于DNN的变形,其网络结构如图3所示。
图3 孪生网络(SNN)模型结构
孪生网络是一种同构双网络结构,即并置的两个部分网络A和网络B,其中A和B是具有相同结构的DNN模型,共享网络参数ω。孪生网络的输入与传统的网络模型不同,不再是单个样本数据,而是成对的样本数据。如图3所示,样本数据x1和x2分别输入到网络A和网络B中,在训练前给这对样本赋予新的标签信息。成对的样本输入可以大大增加训练样本数量,在一定程度上解决了小样本学习[17]问题,所以利用孪生网络结构可以有效地提高在EFS数据集中的识别效果。在测试阶段,应用训练好的SNN的任意一个分支进行特征提取,提取出更具表达能力的样本特征。
SNN的输出和传统的DNN不同,不再是样本属于各个类别的概率或得分,而是对样本数据进行特征提取后新的特征向量。设置相同结构的两部分网络A和B,是为了在一次前向过程中处理成对样本,即分别输出两个样本的特征向量,通过比较两个向量的相似性来优化网络参数。成对样本只有同类和不同类两种情况,所以可以通过用两个相同的网络A和B处理一对样本来学得样本间同类和异类的信息。在训练阶段,网络A和网络B各有一个输出a1和a2分别对应输入x1和x2。在损失函数中通过比较a1和a2的距离来优化网络参数ω。应用对比损失(Contrastive Loss,CL)[18]来调整网络参数进行优化:
CL=yd2+(1-y)max(margin-d,0)2
(2)
式中:y为成对样本的标签,y由成对样本x1和x2的原始标签确定,如果x1和x2的原始标签相同,则成对样本标签y为1,否则为0。d是网络A和网络B输出a1和a2的距离度量。在对比损失中距离度量可以有很多形式,在实验中应用欧氏距离。margin是设定的阈值,当成对样本原始标签不同即y为0时,只剩下一项max(margin-d,0)2,此时希望d越大越好,当d超过阈值margin时损失为0。当成对样本原始标签相同即y为1时,只剩下一项yd2,此时希望d越小越好,d越小损失越小。所以可以通过最小化如式(2)所示的代价函数来增大不同类样本之间的距离,减小同类样本之间的距离。用训练完成的SNN对星体的观测数据做特征提取,每一条观测数据用提取后的特征向量表示,最后用K-近邻算法(KNN)进行分类。
应用SNN可以有效提高EFS数据集中的恒星/星系识别效果,有效解决了训练样本少和困难样本挖掘两个问题。而在BS和FS数据集中,样本数量充足,但仍然面临着困难样本挖掘问题和类间不均衡问题。如果简单应用SNN结构,大量的数据使得成对样本组合方式爆炸式增长,利用SNN没有办法在短时间内充分学习所有样本信息,所以本文选择了简单的DNN结构。这里借鉴集成学习中Boosting[19]的思想,增强对易分错样本的训练,通过改变训练过程中用到的代价函数,让模型对易分错样本进行更充分学习,我们称使用该代价函数的模型为代价敏感(Cost Sensitive,CS)模型。和传统的集成学习相比,通过改进代价函数可以简化训练过程以及缩短训练时间,在一定程度上提高识别效果。
(3)
(4)
本节具体介绍实验配置和具体过程,最后与其他相关工作进行实验结果比较。本文应用深度学习工具Pytorch进行了网络模型的构建,同时应用GeForce GTX 1080进行训练加速。
每一个星体样本数据都是长度为13的向量,该向量的每一个分量都代表一个属性,拥有不同的物理意义,所以每一个分量的量纲差距较大。表1所示是实验数据的3条样例,展示了每条样例的3个属性,每一个属性的取值大小相差较大,取值范围不同。如果使用原始的特征向量来训练网络模型,会严重影响模型的泛化性。本文按照属性进行标准化,把每一种属性的取值都控制在相同的取值区间内。标准化处理的计算式为:
(5)
表1 原始数据样例展示
应用SQL查询语言,从原始的SDSS数据库中得到了约88万条实验数据,然后根据属性modelMag_r取值范围的不同将所有数据划分为BS、FS和EFS三个数据集。表2统计了各个数据集恒星和星系的数量。
表2 数据集数据量信息
BS数据集约有762 788条星系数据,将近58 610条恒星数据;FS数据集共有62 782多条数据;EFS数据集共有约3 570条数据。为了和文献[8]、文献[9]做对比实验,本文采用相同的数据集划分方式,同样做十折交叉验证,将各个数据集平均划分成10份,每次混洗后选择不同的9份做训练,另外1份做测试,如此重复10次,实验结果取10次实验的平均值。
在上述的三个数据集中都存在不同程度的类间不均衡问题,所以选择了与文献[8]、文献[9]相同的实验结果评价指标完备函数CP,其计算式表示为:
(6)
对于BS和FS数据集,本文直接选择含有2个隐藏层的全连接网络,每个隐藏层的单元个数为100,输出层为2,即类别个数。用式(4)作为代价函数进行训练,优化网络参数,通过实验调整超参数α和γ。对于BS数据集,设置α和γ分别为0.7和2.0;对于FS数据集,设置α和γ分别为0和2.0。对于EFS数据集,采用图2所示的孪生网络(SNN)结构,网络A和B的结构同样是含有2个隐藏层的全连接网络,用式(2)作为代价函数进行训练,优化网络参数,其中超参数margin设置为1.5。
对于BS数据集,恒星和星系之间有较明显的差别,主要面临的问题是类间不均衡问题。所以式(4)中不同的α所训练出的模型,最终的识别效果不同,图4给出了完备函数CP、准确率accuracy以及F1-score随α的变化情况。可以看出通过调整参数α可以使得CP最高可达99.95%,当α取0.7时分类模型为最优状态,在CP较高的情况下,保证accuracy和F1-score最高。
图4 调整α对BS数据集识别效果的影响
对于FS数据集,由于类间的不均衡程度较小,直接设置α为0,根据实验调节参数γ,图5给出了完备函数CP和准确率accuracy随γ的变化情况。从图中可知当参数γ取2.0时完备函数CP和准确率accuracy都达到最高,分别是96.62%和96.56%。
图5 调整γ对FS数据集识别效果的影响
EFS数据集由于识别难度较大,同时面临着类间差距小、类间不均衡和小样本数据三个问题。本文应用孪生网络结构以及困难样本挖掘的训练技巧可以有效提高在EFS数据集中的识别效果。将数据成对输入网络参与训练,可以有效增加训练数据的多样性。假设原始训练集有q个样本,从q个样本中随机选择一对样本输入,则有q(q-1)/2种不同的输入,即对于孪生网络训练集样本量增加了q(q-3)/2。对于EFS数据集中的数据,分别通过PCA降维和孪生网络提取2维特征,然后以坐标的形式在二维平面上展示出来,如图2所示。通过图2(a)、(b)的对比,可以明显看出应用孪生网络提取的特征使得类内距离减小类间距离增大,空间位置重叠样本个数减少,两类样本呈现出明显的分界线。
在EFS数据集中仍然存在类间不均衡问题,所以在孪生网络训练过程中,随机抽取一对样本作为网络输入,样本对(恒星,星系)、(恒星,恒星)、(星系,星系)和(星系,恒星)出现的概率是不同的,为了使SNN在类间和类内充分学得样本信息,手动控制这4类样本对出现的概率相同。本文称之为硬调整手段,此训练方式加模型结构称为H-SNN。
采用相同的评价指标完备函数CP,对比了之前的相关工作在相同数据集上的识别效果。如表3所示,在BS和FS数据集上本文的代价敏感(CS)模型对星系的识别效果有微小提升,本文H-SNN模型大幅提高了在EFS数据集上的星系识别效果,使得评价指标达到87.5%。
表3 各模型CP结果对比(%)
很多简单传统的机器学习方法在数据干净、数据量大的亮星集中都可以达到很好的分类效果,所以目前针对恒星/星系识别的研究主要是为了提升模型对暗星的识别效果。本文针对极暗星集(EFS)数据量小、类间差距小的特点,提出利用硬调整孪生网络(H-SNN)提取特征然后用KNN分类的方法,使得在EFS数据集中CP较之前最好结果提升了8%左右;针对暗星集(FS)数据量充足、部分数据难分的特点提出利用代价敏感(CS)模型进行识别分类,使得在FS数据集中CP较之前最好结果提升了1%左右;仍然将CS模型应用到亮星集(BS)中进行训练和测试,使得在BS数据集中CP较之前最好结果仍有微小提升。虽然本文从识别算法着手大幅提升了对暗星体的识别效果,但其仍有较大的上升空间,今后还可以从另一个研究方向努力,即收集更多干净有效的暗星体观测数据[10]。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!