張士川 鄭小盈
1(中國科學院大學微電子學院 北京 100049)2(中國科學院上海高等研究院 上海 201210)
在天文科學領(lǐng)域,隨著數(shù)字圖像技術(shù)代替攝影圖像技術(shù),以及大型巡天項目的開展,越來越多的天文數(shù)據(jù)被收集起來。對天文數(shù)據(jù)不斷地收集和分析使得天文科學發(fā)展到一個新的階段。海量的數(shù)據(jù)給天文科學的發(fā)展提供了基礎(chǔ),而有效的數(shù)據(jù)處理和分析手段變得極其重要。在天文學中,合理地將點狀源(恒星)和擴展源(星系)分開是從光度圖像中提取其他天文數(shù)據(jù)的前提[1],所以恒星/星系識別一直是天文領(lǐng)域的一個基礎(chǔ)研究項目。在對源進行分析時,低分辨率高信噪比樣本給恒星/星系識別任務(wù)帶來了困難。到目前為止,已經(jīng)出現(xiàn)了很多針對恒星/星系精確識別的研究,其中包括了基于形態(tài)和啟發(fā)式分割的方法[2-3],這兩類方法在識別暗星體(低分辨率高信噪比)時表現(xiàn)出明顯的不足。由于目前已經(jīng)獲得了大量恒星和星系的觀測數(shù)據(jù),所以最近很多研究將機器學習方法引入到恒星/星系識別任務(wù)中。
隨著計算機存儲和計算能力的發(fā)展,將機器學習和深度學習等方法的研究推向一個新的高潮。機器學習方法在諸多交叉領(lǐng)域的優(yōu)勢日益突出,比如醫(yī)療、生物、金融以及安防等。隨著大型巡天項目的實施和開展,機器學習和深度學習方法逐漸應用到天文領(lǐng)域。Zhu等[4]應用深度學習方法進行脈沖星識別,有效提高脈沖星識別的召回率;Daniel等[5]將深度學習應用到實時的引力波檢測和參數(shù)估計中;Xu等[6]應用機器學習方法進行天文大數(shù)據(jù)歸檔,使得越來越多的天文任務(wù)可以用機器學習方法得到很好的解決。
斯隆數(shù)字巡天計劃(Sloan Digital Sky Survey,SDSS)[7]收集了大量的恒星和星系觀測數(shù)據(jù)以及光譜認證數(shù)據(jù),為利用機器學習方法進行恒星/星系識別提供了條件。Vasconcellos等[8]用決策樹方法進行恒星/星系識別,并比較了13種決策樹的識別效果;李超等[9]總結(jié)了3種增強學習方法在恒星/星系上的識別效果,最終得出XGboost方法在暗星上的識別效果明顯優(yōu)于其他方法;秦浩然等[11]運用堆疊降噪自編器提高了對SDSS數(shù)據(jù)集中暗星體的識別精確。除了對SDSS數(shù)據(jù)庫中星體觀測屬性值的研究,也有應用深度學習方法直接識別恒星和星系圖像的研究,比如Noble等[11]考慮環(huán)境因素的影響設(shè)計深度學習網(wǎng)絡(luò)模型提取全局特征,有效提高了暗星體的識別精準度,Edward等[12]充分利用深度卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢,直接對恒星和星系圖片進行識別。在這些研究之前,也有應用自動聚類算法進行恒星/星系分類任務(wù)的研究工作[13]。
在之前的研究工作中對亮星體的識別準確率達到了較高水平,但對暗星體的識別效果相對較差,主要是因為暗星集中恒星和星系的特征表現(xiàn)差距較小,而且暗星集樣本數(shù)量較少,不利于模型的訓練。面臨這些挑戰(zhàn),本文提出了用于恒星/星系分類的硬調(diào)整孿生網(wǎng)絡(luò)模型,極大地提高了暗星數(shù)據(jù)集的識別精度,而且還提出了用于亮星數(shù)據(jù)集的代價敏感模型,使亮星的識別精度也有所提高。
斯隆數(shù)字巡天(SDSS)是迄今為止最大規(guī)模的星系圖像和光譜巡天項目,獲得了上百萬天體的測光數(shù)據(jù)和光譜認證數(shù)據(jù),SDSS各個階段的數(shù)據(jù)都以數(shù)據(jù)庫的形式加以公開,使得科研工作者可以使用(SQL)直接查詢獲得。SDSS的測光系統(tǒng)利用6組CCD(Charged-coupled Device)同時對天體進行五個波段的測量(u,g,r,i,z),所有的測量數(shù)據(jù)都存儲在數(shù)據(jù)庫相應的表中。在SDSS第三階段最新公開的數(shù)據(jù)集DR-12(Data Released 12)中包含了近5億條測光記錄。大量的SDSS測光數(shù)據(jù)對眾多天文工作提供了基本支持,比如恒星/星系分類、星體演化、恒星種群、銀河系的構(gòu)成等,所以SDSS數(shù)據(jù)的公開極大地促進了天文領(lǐng)域的發(fā)展。SDSS共分為SDSS-1、SDSS-2和SDSS-3三個階段,本文研究中所用到的數(shù)據(jù)集為第二階段最后公開的數(shù)據(jù)集DR-7(Data Release 7)。
DR-7數(shù)據(jù)集包含了大量的測光記錄,本文利用其中帶有光譜認證的部分數(shù)據(jù),結(jié)合SDSS數(shù)據(jù)庫中PhotoObj和SpecObj兩個表,綜合得到所需數(shù)據(jù)。在所有的波段測量中使用了r波段數(shù)據(jù),參照文獻[8]選擇了13條屬性作為每一條測光記錄的初始特征,從SpecObj中選擇一個光譜認證參數(shù)作為標簽,有助于最后對模型效果的測試。標簽信息是從SpecObj表中的SpecClass屬性中獲得的,SpecClass屬性的屬性值是0~7,8種數(shù)字分別代表了7種不同星體和一種未知類型的星體,其中數(shù)字“1”和“2”分別代表了恒星(Star)和星系(Galaxy)。
在選取實驗數(shù)據(jù)的過程中,刪除了含有屬性缺失值的記錄,在SDSS數(shù)據(jù)庫中缺失值以“-9999”形式呈現(xiàn),最終得到了80多萬條實驗數(shù)據(jù)。根據(jù)屬性modelMag_r的取值范圍,將得到的80多萬條實驗數(shù)據(jù)分成亮星集、暗星集和極暗星集。把modelMag_r屬性值大于等于14并且小于19的記錄記為亮星集(Bright Set,BS)樣本,modelMag_r屬性值大于等于19并且小于20.5的記錄記為暗星集(Faint Set,F(xiàn)S)樣本,modelMag_r屬性值大于等于20.5并且小于等于21的記錄記為極暗星集(Extreme Faint Set,EFS)樣本[9]。
針對BS、FS和EFS數(shù)據(jù)集,本文分別采用不同的算法模型。由于在亮星集BS中恒星和星系的類間距離較大,恒星和星系的差異比較明顯,用傳統(tǒng)的機器學習模型可以達到較好的效果。但在暗星集FS和極暗星集EFS中,由于受到環(huán)境影響使得恒星和星系之間的測光數(shù)據(jù)差異不明顯,很難將星系從眾多的星體中識別出來,所以在恒星/星系識別任務(wù)中,主要面臨困難樣本挖掘[14]問題。本文所提出的基于深度學習的代價敏感模型和帶硬調(diào)整手段的孿生神經(jīng)網(wǎng)絡(luò)(Siamese Neural Networks,SNN)模型不僅能夠很好地解決暗星集中的恒星/星系分類問題,而且也適用于很多其他的困難樣本挖掘任務(wù)中。
在介紹深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)之前,需要了解DNN的基本組成單元——感知機。感知機是沒有激活函數(shù)的神經(jīng)元,一般用來處理線性可分問題。為了解決線性不可分問題,需要給感知機引入非線性因素—非線性激活函數(shù)??梢园迅兄獧C的作用過程看作是輸入的加權(quán)求和,而激活函數(shù)就是對求和后的結(jié)果進行非線性變換。目前已有很多對激活函數(shù)進行研究的工作[15]。在不同的任務(wù)和模型中,選擇合適的激活函數(shù)極其重要,考慮到常用激活函數(shù)的缺陷和不足,本文選擇了PReLU激活函數(shù)[16],可以解決梯度消失等問題,其表達式為:
(1)
式中:參數(shù)a是在模型訓練的過程中確定的,是可訓練參數(shù)。該激活函數(shù)增加了模型的參數(shù)量,增強模型的擬合能力。神經(jīng)元包含了非線性因素,為了模擬和逼近任意的非線性函數(shù),將多個神經(jīng)元進行堆疊組成一層,然后再堆疊多層得到了包含多個隱含層的DNN,如圖1所示。
圖1 深度神經(jīng)網(wǎng)絡(luò)(DNN)模型結(jié)構(gòu)
若將該模型應用到恒星/星系分類任務(wù)上,輸入是長度為13的向量,即為網(wǎng)絡(luò)的輸入層,對于二分類任務(wù)輸出層長度為2,可以分別表示屬于兩個類別的概率或者得分。
在恒星/星系識別任務(wù)中,最重要的挑戰(zhàn)是提高模型在極暗星集EFS中的識別效果。在EFS數(shù)據(jù)集中,受環(huán)境影響因素較大,恒星和星系并沒有表現(xiàn)出明顯的差異。如果從數(shù)據(jù)多維空間分布上考慮,恒星和星系存在較多重疊交叉。為了更好地可視化數(shù)據(jù),利用主成分分析(PCA)將星體的13維測光數(shù)據(jù)進行降維,圖2(a)是兩類數(shù)據(jù)在二維平面上投影后的效果??梢钥吹剑阈呛托窍挡]有明顯的分界面,所以PCA這種降維的特征提取算法并不能使后續(xù)的分類模型達到很好的效果。
(a) PCA降維 (b) SNN圖2 PCA降維和SNN特征提取特征空間分布對比
在EFS數(shù)據(jù)集中還面臨著標注樣本數(shù)量少的問題,只有3 000多個。利用深度學習方法解決實際問題時,一個基本的條件是需要大量的有標注的訓練樣本,否則深度網(wǎng)絡(luò)模型會發(fā)生過擬合,表現(xiàn)為在訓練集的偏差過小,而在測試集的偏差過大。所以本文應用孿生網(wǎng)絡(luò)(Siamese Neural Networks,SNN)[18]模型對樣本數(shù)據(jù)進行特征提取,SNN的網(wǎng)絡(luò)結(jié)構(gòu)是基于DNN的變形,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 孿生網(wǎng)絡(luò)(SNN)模型結(jié)構(gòu)
孿生網(wǎng)絡(luò)是一種同構(gòu)雙網(wǎng)絡(luò)結(jié)構(gòu),即并置的兩個部分網(wǎng)絡(luò)A和網(wǎng)絡(luò)B,其中A和B是具有相同結(jié)構(gòu)的DNN模型,共享網(wǎng)絡(luò)參數(shù)ω。孿生網(wǎng)絡(luò)的輸入與傳統(tǒng)的網(wǎng)絡(luò)模型不同,不再是單個樣本數(shù)據(jù),而是成對的樣本數(shù)據(jù)。如圖3所示,樣本數(shù)據(jù)x1和x2分別輸入到網(wǎng)絡(luò)A和網(wǎng)絡(luò)B中,在訓練前給這對樣本賦予新的標簽信息。成對的樣本輸入可以大大增加訓練樣本數(shù)量,在一定程度上解決了小樣本學習[17]問題,所以利用孿生網(wǎng)絡(luò)結(jié)構(gòu)可以有效地提高在EFS數(shù)據(jù)集中的識別效果。在測試階段,應用訓練好的SNN的任意一個分支進行特征提取,提取出更具表達能力的樣本特征。
SNN的輸出和傳統(tǒng)的DNN不同,不再是樣本屬于各個類別的概率或得分,而是對樣本數(shù)據(jù)進行特征提取后新的特征向量。設(shè)置相同結(jié)構(gòu)的兩部分網(wǎng)絡(luò)A和B,是為了在一次前向過程中處理成對樣本,即分別輸出兩個樣本的特征向量,通過比較兩個向量的相似性來優(yōu)化網(wǎng)絡(luò)參數(shù)。成對樣本只有同類和不同類兩種情況,所以可以通過用兩個相同的網(wǎng)絡(luò)A和B處理一對樣本來學得樣本間同類和異類的信息。在訓練階段,網(wǎng)絡(luò)A和網(wǎng)絡(luò)B各有一個輸出a1和a2分別對應輸入x1和x2。在損失函數(shù)中通過比較a1和a2的距離來優(yōu)化網(wǎng)絡(luò)參數(shù)ω。應用對比損失(Contrastive Loss,CL)[18]來調(diào)整網(wǎng)絡(luò)參數(shù)進行優(yōu)化:
CL=yd2+(1-y)max(margin-d,0)2
(2)
式中:y為成對樣本的標簽,y由成對樣本x1和x2的原始標簽確定,如果x1和x2的原始標簽相同,則成對樣本標簽y為1,否則為0。d是網(wǎng)絡(luò)A和網(wǎng)絡(luò)B輸出a1和a2的距離度量。在對比損失中距離度量可以有很多形式,在實驗中應用歐氏距離。margin是設(shè)定的閾值,當成對樣本原始標簽不同即y為0時,只剩下一項max(margin-d,0)2,此時希望d越大越好,當d超過閾值margin時損失為0。當成對樣本原始標簽相同即y為1時,只剩下一項yd2,此時希望d越小越好,d越小損失越小。所以可以通過最小化如式(2)所示的代價函數(shù)來增大不同類樣本之間的距離,減小同類樣本之間的距離。用訓練完成的SNN對星體的觀測數(shù)據(jù)做特征提取,每一條觀測數(shù)據(jù)用提取后的特征向量表示,最后用K-近鄰算法(KNN)進行分類。
應用SNN可以有效提高EFS數(shù)據(jù)集中的恒星/星系識別效果,有效解決了訓練樣本少和困難樣本挖掘兩個問題。而在BS和FS數(shù)據(jù)集中,樣本數(shù)量充足,但仍然面臨著困難樣本挖掘問題和類間不均衡問題。如果簡單應用SNN結(jié)構(gòu),大量的數(shù)據(jù)使得成對樣本組合方式爆炸式增長,利用SNN沒有辦法在短時間內(nèi)充分學習所有樣本信息,所以本文選擇了簡單的DNN結(jié)構(gòu)。這里借鑒集成學習中Boosting[19]的思想,增強對易分錯樣本的訓練,通過改變訓練過程中用到的代價函數(shù),讓模型對易分錯樣本進行更充分學習,我們稱使用該代價函數(shù)的模型為代價敏感(Cost Sensitive,CS)模型。和傳統(tǒng)的集成學習相比,通過改進代價函數(shù)可以簡化訓練過程以及縮短訓練時間,在一定程度上提高識別效果。
(3)
(4)
本節(jié)具體介紹實驗配置和具體過程,最后與其他相關(guān)工作進行實驗結(jié)果比較。本文應用深度學習工具Pytorch進行了網(wǎng)絡(luò)模型的構(gòu)建,同時應用GeForce GTX 1080進行訓練加速。
每一個星體樣本數(shù)據(jù)都是長度為13的向量,該向量的每一個分量都代表一個屬性,擁有不同的物理意義,所以每一個分量的量綱差距較大。表1所示是實驗數(shù)據(jù)的3條樣例,展示了每條樣例的3個屬性,每一個屬性的取值大小相差較大,取值范圍不同。如果使用原始的特征向量來訓練網(wǎng)絡(luò)模型,會嚴重影響模型的泛化性。本文按照屬性進行標準化,把每一種屬性的取值都控制在相同的取值區(qū)間內(nèi)。標準化處理的計算式為:
(5)
表1 原始數(shù)據(jù)樣例展示
應用SQL查詢語言,從原始的SDSS數(shù)據(jù)庫中得到了約88萬條實驗數(shù)據(jù),然后根據(jù)屬性modelMag_r取值范圍的不同將所有數(shù)據(jù)劃分為BS、FS和EFS三個數(shù)據(jù)集。表2統(tǒng)計了各個數(shù)據(jù)集恒星和星系的數(shù)量。
表2 數(shù)據(jù)集數(shù)據(jù)量信息
BS數(shù)據(jù)集約有762 788條星系數(shù)據(jù),將近58 610條恒星數(shù)據(jù);FS數(shù)據(jù)集共有62 782多條數(shù)據(jù);EFS數(shù)據(jù)集共有約3 570條數(shù)據(jù)。為了和文獻[8]、文獻[9]做對比實驗,本文采用相同的數(shù)據(jù)集劃分方式,同樣做十折交叉驗證,將各個數(shù)據(jù)集平均劃分成10份,每次混洗后選擇不同的9份做訓練,另外1份做測試,如此重復10次,實驗結(jié)果取10次實驗的平均值。
在上述的三個數(shù)據(jù)集中都存在不同程度的類間不均衡問題,所以選擇了與文獻[8]、文獻[9]相同的實驗結(jié)果評價指標完備函數(shù)CP,其計算式表示為:
(6)
對于BS和FS數(shù)據(jù)集,本文直接選擇含有2個隱藏層的全連接網(wǎng)絡(luò),每個隱藏層的單元個數(shù)為100,輸出層為2,即類別個數(shù)。用式(4)作為代價函數(shù)進行訓練,優(yōu)化網(wǎng)絡(luò)參數(shù),通過實驗調(diào)整超參數(shù)α和γ。對于BS數(shù)據(jù)集,設(shè)置α和γ分別為0.7和2.0;對于FS數(shù)據(jù)集,設(shè)置α和γ分別為0和2.0。對于EFS數(shù)據(jù)集,采用圖2所示的孿生網(wǎng)絡(luò)(SNN)結(jié)構(gòu),網(wǎng)絡(luò)A和B的結(jié)構(gòu)同樣是含有2個隱藏層的全連接網(wǎng)絡(luò),用式(2)作為代價函數(shù)進行訓練,優(yōu)化網(wǎng)絡(luò)參數(shù),其中超參數(shù)margin設(shè)置為1.5。
對于BS數(shù)據(jù)集,恒星和星系之間有較明顯的差別,主要面臨的問題是類間不均衡問題。所以式(4)中不同的α所訓練出的模型,最終的識別效果不同,圖4給出了完備函數(shù)CP、準確率accuracy以及F1-score隨α的變化情況??梢钥闯鐾ㄟ^調(diào)整參數(shù)α可以使得CP最高可達99.95%,當α取0.7時分類模型為最優(yōu)狀態(tài),在CP較高的情況下,保證accuracy和F1-score最高。
圖4 調(diào)整α對BS數(shù)據(jù)集識別效果的影響
對于FS數(shù)據(jù)集,由于類間的不均衡程度較小,直接設(shè)置α為0,根據(jù)實驗調(diào)節(jié)參數(shù)γ,圖5給出了完備函數(shù)CP和準確率accuracy隨γ的變化情況。從圖中可知當參數(shù)γ取2.0時完備函數(shù)CP和準確率accuracy都達到最高,分別是96.62%和96.56%。
圖5 調(diào)整γ對FS數(shù)據(jù)集識別效果的影響
EFS數(shù)據(jù)集由于識別難度較大,同時面臨著類間差距小、類間不均衡和小樣本數(shù)據(jù)三個問題。本文應用孿生網(wǎng)絡(luò)結(jié)構(gòu)以及困難樣本挖掘的訓練技巧可以有效提高在EFS數(shù)據(jù)集中的識別效果。將數(shù)據(jù)成對輸入網(wǎng)絡(luò)參與訓練,可以有效增加訓練數(shù)據(jù)的多樣性。假設(shè)原始訓練集有q個樣本,從q個樣本中隨機選擇一對樣本輸入,則有q(q-1)/2種不同的輸入,即對于孿生網(wǎng)絡(luò)訓練集樣本量增加了q(q-3)/2。對于EFS數(shù)據(jù)集中的數(shù)據(jù),分別通過PCA降維和孿生網(wǎng)絡(luò)提取2維特征,然后以坐標的形式在二維平面上展示出來,如圖2所示。通過圖2(a)、(b)的對比,可以明顯看出應用孿生網(wǎng)絡(luò)提取的特征使得類內(nèi)距離減小類間距離增大,空間位置重疊樣本個數(shù)減少,兩類樣本呈現(xiàn)出明顯的分界線。
在EFS數(shù)據(jù)集中仍然存在類間不均衡問題,所以在孿生網(wǎng)絡(luò)訓練過程中,隨機抽取一對樣本作為網(wǎng)絡(luò)輸入,樣本對(恒星,星系)、(恒星,恒星)、(星系,星系)和(星系,恒星)出現(xiàn)的概率是不同的,為了使SNN在類間和類內(nèi)充分學得樣本信息,手動控制這4類樣本對出現(xiàn)的概率相同。本文稱之為硬調(diào)整手段,此訓練方式加模型結(jié)構(gòu)稱為H-SNN。
采用相同的評價指標完備函數(shù)CP,對比了之前的相關(guān)工作在相同數(shù)據(jù)集上的識別效果。如表3所示,在BS和FS數(shù)據(jù)集上本文的代價敏感(CS)模型對星系的識別效果有微小提升,本文H-SNN模型大幅提高了在EFS數(shù)據(jù)集上的星系識別效果,使得評價指標達到87.5%。
表3 各模型CP結(jié)果對比(%)
很多簡單傳統(tǒng)的機器學習方法在數(shù)據(jù)干凈、數(shù)據(jù)量大的亮星集中都可以達到很好的分類效果,所以目前針對恒星/星系識別的研究主要是為了提升模型對暗星的識別效果。本文針對極暗星集(EFS)數(shù)據(jù)量小、類間差距小的特點,提出利用硬調(diào)整孿生網(wǎng)絡(luò)(H-SNN)提取特征然后用KNN分類的方法,使得在EFS數(shù)據(jù)集中CP較之前最好結(jié)果提升了8%左右;針對暗星集(FS)數(shù)據(jù)量充足、部分數(shù)據(jù)難分的特點提出利用代價敏感(CS)模型進行識別分類,使得在FS數(shù)據(jù)集中CP較之前最好結(jié)果提升了1%左右;仍然將CS模型應用到亮星集(BS)中進行訓練和測試,使得在BS數(shù)據(jù)集中CP較之前最好結(jié)果仍有微小提升。雖然本文從識別算法著手大幅提升了對暗星體的識別效果,但其仍有較大的上升空間,今后還可以從另一個研究方向努力,即收集更多干凈有效的暗星體觀測數(shù)據(jù)[10]。