劉曉飛 勞保強 安 濤 徐志駿 張仲莉
(1 中國科學院上海天文臺上海200030)(2 中國科學院大學北京100049)
脈沖星是快速旋轉、高度磁化的中子星[1]. 脈沖星為天文學的研究做出了巨大的貢獻, 它既可以作為星際介質(zhì)物理性質(zhì)的探測器[2], 也可用于指示極端條件的天體物理現(xiàn)象[3], 其性質(zhì)還為暗物質(zhì)的存在提供了間接證據(jù), 是研究強引力場的天體實驗室[4], 尤其是對引力波輻射的檢測[5–6]. 脈沖星的研究是射電天文學領域中一個有意義的課題, 因此, 發(fā)現(xiàn)新脈沖星、識別脈沖星候選體(可能檢測到的新脈沖星)對揭示新的天文現(xiàn)象具有重要意義[7]. 然而, 已知脈沖星的數(shù)量很少[8], 需要尋找新的脈沖星. 自第1顆脈沖星發(fā)現(xiàn)以來, 脈沖星搜尋已經(jīng)持續(xù)了很長一段時間[9].
在天文大數(shù)據(jù)時代, 具有大視場、快速巡天功能的平方公里陣列(Square Kilometre Array, SKA)射電望遠鏡[10]及500 m孔徑球面射電望遠鏡(Five-hundred-meter Aperture Spherical Telescope, FAST)[11]等高靈敏度大型望遠鏡的出現(xiàn), 使得脈沖星觀測產(chǎn)生了大量數(shù)據(jù), 預計會發(fā)現(xiàn)大量的脈沖星[12]. 在如此龐大的數(shù)據(jù)中, 不僅包含了數(shù)百萬個候選脈沖星[13], 還包含了大量的人為射電頻率干擾(Radio Frequency Interference, RFI)和各種非脈沖信號數(shù)據(jù), 使得脈沖星的識別變得尤為困難. 天文學家需要尋求更加合理的篩選方法, 從而準確快速地完成海量候選體的識別.
目前, 提出了許多脈沖星候選體的篩選方法. 主要有: 手動篩選法[14–15], 其主要通過志愿者目視來對感興趣的對象進行搜索或分類[9]; 圖形工具篩選法[16–17]; 以及半自動排名法[18]. 在天文大數(shù)據(jù)時代, 目視檢查大量的脈沖星候選體是不現(xiàn)實的, 因此, 有監(jiān)督的機器學習方法應運而生[9]. 自2010年以來, 用于脈沖星候選體識別的機器學習方法迅速增多, 并且成為一種流行的方法. 文獻[6, 9, 18]中的這些工作運用淺層神經(jīng)網(wǎng)絡(不超過3層)來訓練數(shù)據(jù)集實現(xiàn)了對候選體的分類, 并且隨著不斷地精心設計和提取有效特征, 分類性能得到了改善. 文獻[19]將人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)、支持向量機(Support Vector Machines, SVM)和卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)這3種不同的監(jiān)督算法組合使用, 引入圖片模式識別的方法, 從診斷圖中進行學習, 而不再從手動設計的特征中學習, 從而有效避免了依賴人工經(jīng)驗設計特征的缺點, 所設計的模型在PALFA (Pulsar Arecibo L-Band Feed Array)的觀測數(shù)據(jù)中發(fā)現(xiàn)了6顆新的脈沖星. 此外, 統(tǒng)計學習方法也適用于對脈沖星候選體進行分類[7,20], 利用統(tǒng)計學習的方法, 可以減小偏差. 有監(jiān)督的機器學習, 特別是深度學習的最新方法[13,21–23]也被用于處理脈沖星分類問題. 文獻[13, 21]使用數(shù)據(jù)增強來解決不平衡問題, 并使用CNN的變體來訓練模型, 利用提取的更深層的特征來進行分類, 使得精確度進一步提升. 文獻[22]使用CNN組成的模型來訓練FAST觀測的脈沖星候選體數(shù)據(jù), 在326個真實脈沖星數(shù)據(jù)中, 只有4個未正確判別. 文獻[23]使用集成學習的方法對數(shù)據(jù)進行處理, 此方法是在文獻[19]所設計模型的基礎上進行改進的, 其利用15層殘差網(wǎng)絡(Residual Network, ResNet)代替CNN網(wǎng)絡, 新模型可以識別出96%以上的真實脈沖星并且分類速率也進一步提升, 該模型在配置有2個GPU和24個CPU核心的計算平臺上每天可完成160萬個以上的候選樣本分類任務(平均54 ms完成1個樣本分類).
有監(jiān)督的機器學習是一門數(shù)據(jù)驅(qū)動的方法. 傳統(tǒng)的機器學習方法[18]依據(jù)從數(shù)據(jù)中提取的特征或一些人為設計構造的特征來進行模型的學習與訓練, 基于已知知識獲得的特征可能會忽略數(shù)據(jù)的某些潛在特征. 相反, 使用深度學習方法從數(shù)據(jù)中直接學習可以獲得更好的性能. 本文應用深度ResNet來構建脈沖星候選體樣本分類系統(tǒng), 脈沖星候選體的診斷圖作為模型的輸入. 由于數(shù)據(jù)中的類別不均衡, 即負樣本數(shù)目遠遠大于正樣本數(shù)目, 會導致模型誤判, 本文通過對少數(shù)樣本進行過采樣來解決這一問題. 然后在HTRUS (The High Time Resolution Universe Survey)數(shù)據(jù)集[24]上訓練與評估構建的模型, 所訓練的模型在精確度(Precision)和召回率(Recall)上均獲得較優(yōu)的結果.
本文首先簡要介紹了用于訓練模型的脈沖星候選體樣本數(shù)據(jù)集, 同時介紹了數(shù)據(jù)預處理過程. 其次介紹了深度殘差網(wǎng)絡和模型的結構及損失函數(shù), 在第4節(jié)解釋了模型評估指標并詳細介紹模型的訓練細節(jié), 然后展示測試結果并進行對比分析. 最后, 進行了總結與展望.
下一代射電望遠鏡的脈沖星巡天觀測能夠產(chǎn)生大量的數(shù)據(jù), 由于診斷圖樣本量太大, 人工目視的方法將耗費大量的人力和時間, 并且隨著工作者目視檢查時間的延長, 由于疲勞極易判斷出錯. 使用自動的計算機處理算法即機器學習的方法來找到脈沖星候選體是一種必然趨勢. 另外, 在使用機器學習算法時, 首先需要將數(shù)據(jù)預處理成為適合模型訓練學習的輸入.
本文采用文獻[24]公開的數(shù)據(jù)集HTRUS來訓練和評估模型. 數(shù)據(jù)來自澳大利亞Parkes望遠鏡的多波束(13個波束)的觀測, 中心頻率是1352 MHz, 每個波束記錄帶寬為400 MHz, 實際使用了中間340 MHz帶寬上的數(shù)據(jù). 該數(shù)據(jù)集包含了1196個具有不同自旋周期、占空比和信噪比的脈沖星(正樣本), 還包含了89996個非脈沖星候選體(負樣本). 另外, 該數(shù)據(jù)集根據(jù)樣本的屬性和個數(shù)進行命名, 由此脈沖星樣本表示為從pulsar0000到pulsar1195, 非脈沖星樣本表示為從cand000001到cand089996. HTRUS的數(shù)據(jù)文件包含結構化數(shù)據(jù)和非結構化數(shù)據(jù), 其中有11個數(shù)值特征, 包括信號周期和最佳值(如最佳色散測度、最佳信噪比、最佳寬度等). 非結構化數(shù)據(jù)有6個矩陣數(shù)據(jù), 均可視作圖片數(shù)據(jù). 其中, 時間-相位圖和頻率-相位圖將作為本文的訓練集和測試集, 如圖1所示. 圖1是來自HTRUS數(shù)據(jù)集中脈沖星(pulsar0816)和RFI (cand036371)樣本的時間-相位圖和頻率-相位圖示例, 圖中左圖由pulsar0816數(shù)據(jù)產(chǎn)生, 右圖由cand036371產(chǎn)生.
圖1 樣本圖像示例. 左: 脈沖星; 右: 射電頻率干擾信號.Fig.1 Examples of sample plot. Left: a pulsar example; Right: RFI signals.
從圖1可以看出脈沖星候選體和非脈沖星候選體具有明顯不同的特征: (1)頻率-相位圖是3維(時間-頻率-相位)數(shù)據(jù)在時間維度上進行求和獲得的, 它反映了觀測期間信號的強度. 對于理想的脈沖星信號, 將在整個觀測周期內(nèi)觀察到該信號, 且存在一個或幾個垂直條紋; (2)時間-相位圖是3維(時間-頻率-相位)數(shù)據(jù)在頻率維度上進行求和獲得的, 可以反映不同頻率下的信號強度. 同樣對于理想脈沖星信號, 應該存在一個或多個垂直條紋. 通過統(tǒng)計我們發(fā)現(xiàn)HTRUS中的大多數(shù)脈沖星樣本的時間-相位圖和頻率-相位圖均存在一個或者多個垂直條紋, 特征非常明顯. 非脈沖星的圖像則是雜亂無章, 無規(guī)律可言. 這些從樣本數(shù)據(jù)中獲得的時間-相位圖和頻率-相位圖將輸入到本文的算法進行訓練與測試.
數(shù)據(jù)預處理可以看作是一種數(shù)據(jù)挖掘技術, 可以將原始數(shù)據(jù)轉換為易于處理的格式, 從而可以進一步分析. 原始數(shù)據(jù)通常存在噪聲和樣本不平衡等問題, 數(shù)據(jù)預處理是解決此類問題并為特征工程或下一步模型訓練做好充分準備的可靠方法. 首先模型輸入PNG圖像大小不一, 所以需要統(tǒng)一大小; 另外, 在數(shù)據(jù)集中, 正負樣本之間的比率約為1 : 73, 樣本分布偏向負類別, 這意味著數(shù)據(jù)類別嚴重失衡[25]. 非平衡問題會降低模型的準確性[25–26], 并且模型最后的輸出softmax函數(shù)是基于閾值的, 在數(shù)據(jù)不平衡的時候, 特定的閾值會導致模型輸出傾向于類別數(shù)據(jù)多的一類.
下面介紹具體的處理步驟: 首先從數(shù)據(jù)集中獲得需要的診斷因子圖, 從HTRUS數(shù)據(jù)中獲得的每個樣本診斷圖的大小是不同的. 為了便于訓練模型, 先對所有的樣本圖片進行圖片的縮放, 使其成為500×500像素同一大小的灰度圖. 其次, 將正負樣本獲得的圖片數(shù)據(jù)分別隨機分為兩部分: 訓練集(80%), 測試集(20%). 然后, 處理數(shù)據(jù)非均衡問題, 處理數(shù)據(jù)不均衡問題常用的方法是對少數(shù)類別樣本進行過采樣, 或者對多數(shù)類別樣本進行欠采樣, 以此來調(diào)整數(shù)據(jù)比率達到樣本均衡. 在訓練數(shù)據(jù)集中, 由于少數(shù)類別(脈沖星)的數(shù)量太少, 如果對多數(shù)類別(RFI)進行欠采樣就會導致訓練樣本數(shù)據(jù)的犧牲, 造成數(shù)據(jù)量太少, 無法進行學習, 所以采取對少數(shù)類進行過采樣增加樣本. 過采樣包括簡單的過采樣[27](oversampling)和基于隨機過采樣算法的合成少數(shù)類過采樣技術[28](Synthetic Minority Oversampling Technique, SMOTE). 由于模型輸入是診斷圖圖片數(shù)據(jù), 利用SMOTE方法進行處理時, 需要先對圖像數(shù)據(jù)進行重塑, 然后進行過采樣, 嘗試這種方法后, 發(fā)現(xiàn)對于HTRUS數(shù)據(jù)集, SMOTE非常緩慢, 且最后分類效果不好. 分析原因可能是因為重塑圖像后, 圖像會丟失掉像素之間的位置關聯(lián)信息, 而由于模型是基于卷積的殘差網(wǎng)絡, 圖像反映的信息是使用卷積的主要原因.
綜上, 選擇使用簡單的過采樣方法處理數(shù)據(jù). 對少數(shù)類過采樣是從少數(shù)樣本中隨機抽取樣本進行復制, 直到達到想要的數(shù)量. 由于本質(zhì)并沒有為模型引入更多的數(shù)據(jù), 可能會導致過分強調(diào)少數(shù)類, 放大少數(shù)類別中噪聲對模型的影響. 因此我們嘗試了不同的比率取值, 將脈沖星正樣本與非脈沖星負樣本的比率設置在1 : 1到1 : 5的范圍內(nèi), 以尋找最佳比率值. 最終發(fā)現(xiàn)當設置為1: 2的時候為最佳比率,表1中交叉驗證集為過采樣之后的數(shù)據(jù)量. 此處需要強調(diào)的是, 對少數(shù)樣本(脈沖星正樣本)進行過采樣時處理的是80%的訓練集, 測試集沒有做處理.
數(shù)據(jù)集預處理完成后開始進行模型訓練, 為了充分利用訓練數(shù)據(jù)集, 采用了5折交叉驗證來完成訓練模型的調(diào)參, 找出效果最優(yōu)的模型. 交叉驗證作用是嘗試利用不同的訓練集/驗證集劃分來對模型做多組不同的訓練/驗證, 來應對單獨測試結果過于片面以及訓練數(shù)據(jù)不足的問題. 本文訓練過程中所采用的5折交叉驗證是指將數(shù)據(jù)集(交叉驗證集)隨機劃分5個大小相近的互斥子集, 每次不重復地取其中1個子集做為測試集, 其余4個子集合并作為訓練集. 因此, 將會產(chǎn)生5組不同的訓練集和測試集. 計算該模型在每組訓練集上的均方誤差(Mean Square Error, MSE), 將5組訓練模型的MSE取平均作為最終的模型. 然后使用該模型對測試集進行預測, 從而衡量該模型的性能和分類能力. 在訓練過程中, 訓練集共有73272個樣本用于超參數(shù)篩選, 測試集有17920個樣本. 其中, 測試集中含有17680個負樣本, 240個正樣本. 樣本數(shù)量的詳細情況如表1所示. 表1中分別展示了HTRUS數(shù)據(jù)集的總樣本數(shù)量, 占比80%、20%所切割出的訓練集和測試集以及交叉驗證集, 其中交叉驗證集是對訓練集中正樣本進行過采樣之后用來交叉驗證訓練模型的樣本數(shù)量.
表1 數(shù)據(jù)集的介紹Table 1 Introduction to data set
自深層卷積神經(jīng)網(wǎng)絡從ImageNet分類挑戰(zhàn)[29]中取得巨大突破以來獲得了廣泛的研究, 它在許多其他計算機視覺任務(包括對象檢測、語義分割、邊緣檢測等)中也取得了令人驚訝的性能. 近年, 脈沖星候選體篩選使用的大多數(shù)深度學習網(wǎng)絡模型都是基于卷積神經(jīng)網(wǎng)絡或其某種變體: 文獻[19]使用5層卷積神經(jīng)網(wǎng)絡處理2維子圖進行脈沖星分類; 文獻[13]設計了一個11層的卷積神經(jīng)網(wǎng)絡結果以取代文獻[19]中簡單的5層體系結構, 并獲得了更好的性能; 文獻[21]使用生成對抗網(wǎng)絡(Generative Adversarial Networks,GAN)解決樣本類別不平衡問題, 然后使用卷積神經(jīng)網(wǎng)絡訓練新數(shù)據(jù)集; 文獻[22]描述了一個組合卷積神經(jīng)網(wǎng)絡, 來識別從FAST數(shù)據(jù)中收集的候選對象. 但深度神經(jīng)網(wǎng)絡隨著層數(shù)的逐漸加深變得難以訓練和優(yōu)化, 而卷積神經(jīng)網(wǎng)絡模型的訓練和分類相對較慢[23].另外, 隨著網(wǎng)絡的深入, 盡管增加了層數(shù), 但訓練誤差仍大于淺層的網(wǎng)絡, 為了解決這一問題, 殘差網(wǎng)絡隨之產(chǎn)生. ResNet[30]贏得了ImageNet的挑戰(zhàn), 引起了很多關注, 因為深度殘差網(wǎng)絡能夠“使深度學習變得更加深入”. 殘差網(wǎng)絡可以被視為具有殘差學習框架的典型卷積神經(jīng)網(wǎng)絡. 深度神經(jīng)網(wǎng)絡隨著網(wǎng)絡深度的增加, 往往會出現(xiàn)梯度彌散或梯度爆炸等問題, 運用正則化可以使得網(wǎng)絡繼續(xù)訓練, 但是, 隨著網(wǎng)絡層數(shù)的增加, 模型在訓練集上的準確率會達到飽和甚至下降, 也就是出現(xiàn)了退化問題. 文獻[30]提出了一種殘差學習框架(圖2)來解決退化問題. 如圖2所示,X表示殘差塊的輸入(診斷圖圖像), 模型的期望輸出為H(X),F(X)是網(wǎng)絡學習到的映射函數(shù), 所使用的激活函數(shù)為Relu (Rectified linear unit). 如果深層網(wǎng)絡的后面網(wǎng)絡層是恒等映射, 即直接把輸入的X傳到輸出, 那么模型就會退化成為一個淺層網(wǎng)絡, 其關系為H(X)=F(X)+X. 由殘差塊組成可知, 要學習的函數(shù)F(X)經(jīng)過殘差塊轉化為殘差函數(shù)F(X)=H(X)?X. 當F(X)=0,就構成了一個恒等映射H(X)=X, 擬合殘差相對更容易. 殘差網(wǎng)絡由一系列殘留塊組成, 每個殘差塊包含兩個分支: 恒等映射和殘差分支. 恒等映射從輸入到中間層以及從中間層到輸出層引入了捷徑連接(shortcut connections) (圖2中的Xidentity), 緩解了梯度消失問題, 同時降低了訓練難度. 殘差網(wǎng)絡容易優(yōu)化, 并且隨著網(wǎng)絡深度的增加, 準確率會提高.
圖2 殘差學習結構: 殘差塊[30]Fig.2 Residual learning structure: residual block[30]
ResNet結構是功能強大的識別系統(tǒng), 可以直接分析2維圖像. 根據(jù)網(wǎng)絡的這一特征, 直接將脈沖星數(shù)據(jù)集預處理后的2維子圖(圖1)作為輸入. 設計的網(wǎng)絡結構由圖像大小、網(wǎng)絡深度、特征映射的數(shù)量、卷積核大小、池化層大小等超參數(shù)確定. 為了獲得最佳模型, 通過交叉驗證的方法來調(diào)整模型超參數(shù)的各種組合. 首先將候選體標記數(shù)據(jù)隨機打亂進行分割, 其中80%的數(shù)據(jù)樣本組成訓練集, 20%的樣本組成測試集, 然后通過網(wǎng)格搜索的方式對模型進行訓練, 通過在測試集上計算其F1分數(shù)(F1-score)來表征性能. 最后, 根據(jù)分類精度確定了網(wǎng)絡結構和超參數(shù). 用14層的深度殘差網(wǎng)絡進行實驗, 發(fā)現(xiàn)它能夠獲得很高的精度. 因此, 本文設計的ResNet模型包括14層.圖3展示的是本文使用的ResNet模型網(wǎng)絡結構, 同時顯示了整個訓練過程. 圖3主要分為兩部分, 左側是模型的整體訓練流程, 右側的ResBlock是殘差塊(Residual block).Image data是模型的輸入數(shù)據(jù), 為500×500像素大小的灰度圖片. COV表示卷積運算, 其中COV-7×7-64所代表的分別是卷積核大小為7×7, 最后的輸出通道數(shù)目為64;C1 : 112×112×64中C代表卷積層(Convolution, C), C1表示卷積層為第1層, 經(jīng)過此層的卷積之后, 輸出大小為112×112×64. BN表示批量標準化(Batch Normalization),ResNet引入BN是為了提高模型的訓練速度, 加快收斂. Max pooling是最大值池化,Average pooling是平均池化, FC (Fully Connected layer)指的是全連接層, softmax是最后的輸出, 輸出顯示了2個類別的分類得分和類別名(1表示正樣本, 0表示負樣本),從而完成對樣本進行預測. 所設計ResNet模型的Resblock個數(shù)分別為[2, 2, 1, 1], 加上開始的1個卷積層和最后的1個全連接層共有14層. ResBlock部分, 輸入為所要分類處理的圖片, 大小為W ×H, 輸入圖片的通道數(shù)目為IN, 輸出圖片通道數(shù)目為OUT, 如果IN == OUT, 則經(jīng)過卷積塊處理之后的輸出結果為[W ×H ×OUT]; 反之, 輸出結果為{int[(W ?1)/2+1],int[(W ?1)/2+1],OUT}, 其中int為取整函數(shù).
圖3 模型架構[30]Fig.3 Model architecture[30]
與文獻[23]相比, 網(wǎng)絡模型的整體結構相似, 均是利用ResNet提取特征與分類. 本文的網(wǎng)絡模型是在傳統(tǒng)的18層ResNet網(wǎng)絡的基礎上, 以得到較優(yōu)的網(wǎng)絡性能為目標,經(jīng)過多次網(wǎng)絡結構修改和參數(shù)調(diào)整確定的. 不同之處有以下兩點: 首先是網(wǎng)絡的層數(shù)不同. 本文的ResNet層數(shù)是14層, 文獻[23]的ResNet層數(shù)為15層. 所設計ResNet模型如圖3所示, 包含1個輸入的卷積層、1個全連接輸出層、中間是12個卷積層, 共14層. 12個卷積層由4組殘差塊組成, 每組殘差塊包含的殘差塊的個數(shù)分別為[2, 2, 1, 1], 每個殘差塊均包含2個卷積層. 文獻[23]的網(wǎng)絡模型包含1個輸入卷積層、2個輸出層、中間是12個卷積層, 共15層. 12個卷積層由3組殘差塊組成, 每組有2個殘差塊, 每個殘差塊均有2個卷積層; 其次, 卷積層的步長和輸出通道大小均不同. 本文采用的步長分別是[2, 1, 2, 2,2], 因此最后一層卷積輸出的圖像的寬和高為輸入圖像的1/16. 文獻[23]使用的卷積層的步長均是1, 因此最后一層卷積輸出的圖像大小和輸入圖像大小相同. 本文的卷積層的輸出通道大小分別是[64, 64, 128, 256, 512], 第1個是輸入卷積層的輸出通道大小, 其余的是4組殘差塊的輸出通道大小. 文獻[23]卷積層的輸出通道大小分別是[16, 16, 32, 64],第1個是輸入卷積層的輸出通道大小, 其余3個是3組殘差塊的輸出通道大小.
除了模型本身已有的批量標準化處理, 在模型訓練過程中為了防止過度擬合, 使用批量歸一化處理和L2正則化, 具體定義見3.3節(jié). 用深層訓練神經(jīng)網(wǎng)絡具有挑戰(zhàn)性, 因為它們可能對初始隨機權重和學習算法的配置敏感. 批量歸一化處理[31]是一種用于訓練非常深的神經(jīng)網(wǎng)絡的技術, 該技術將每個小批次的輸入標準化, 使模型學習過程穩(wěn)定, 并顯著減少訓練深度網(wǎng)絡所需的訓練時間. 另外, 還使用Adam優(yōu)化器[32]在特定批次大小的數(shù)據(jù)中訓練網(wǎng)絡, 以加快訓練過程.
脈沖星候選體識別任務是二分類問題, 因此將交叉熵損失用作損失函數(shù)來優(yōu)化模型. 交叉熵損失L(ω)的定義如下:
其中,ω表示權重向量,N表示樣本數(shù),yn和?yn分別表示實際值和預測輸出值.
為了使模型更具有魯棒性, 添加了L2正則化作為權重衰減. 此時損失函數(shù)的計算公式重新定義為:
其中λ是懲罰系數(shù).
L2正則化可以減輕模型對樣本的敏感, 此外還使用批量歸一化處理技術和Adam優(yōu)化器來優(yōu)化模型.
由于HTRUS數(shù)據(jù)集類別存在高度不平衡問題, 無法直接根據(jù)分類準確度推斷模型性能. 因此, 需要建立新的評估指標來評估分類器的有效性, 引入了二分類的混淆矩陣,如下表2所示:
表2 混淆矩陣Table 2 Confusion matrix
TP是模型將正樣本正確識別為正樣本的數(shù)量, 即脈沖星被正確識別的數(shù)量. 這意味著觀測樣本屬于正類, 并且被分類器正確地標記為1;
TN是模型將正樣本錯誤識別為負樣本的數(shù)量, 即脈沖星被誤判為非脈沖星的數(shù)量;
FP是模型將負樣本錯誤識別為正樣本的數(shù)量, 即非脈沖星被誤判為脈沖星的數(shù)量;
FN是模型將非脈沖星正確識別為負樣本的數(shù)量. 這意味著觀測樣本屬于負類, 并且被分類器正確地標記為0.
總之, TP和FN表示可以正確識別的對象, 而TN和FP表示錯誤識別的對象. 基于這些值來定義指標以評估本文算法的性能, 以下是對本文所使用評估指標的解釋.召回率(Recall): 又稱查全率, 表示正確識別脈沖星的比例.
精確度(Precision): 精確度表示預測為正樣本的數(shù)據(jù)中脈沖星數(shù)量所占的比例.
準確率(Accuracy): 準確率是一般分類場景中最常用的評分指標, 它需要確保樣本平衡. 在HTRUS失衡數(shù)據(jù)集中, 這個評估分數(shù)幾乎沒有什么意義.
F1分數(shù)(F1-score): F1-score是精確度和召回率的調(diào)和平均值, 它提供了另一種準確性度量. 它可以用作精確度和召回率之間的折衷, 可以確保訓練的模型在不會忽略某些脈沖星信號的同時也有很高的分類準確率, 值越接近1代表分類效果越好.
在本小節(jié)中, 描述了14層殘差網(wǎng)絡(ResNet)的訓練和測試過程, 所使用的數(shù)據(jù)集為HTRUS數(shù)據(jù)集. 本文采用的實驗平臺是中國SKA區(qū)域數(shù)據(jù)中心原型機[33], 該原型機已經(jīng)成功應用于SKA連續(xù)譜成像數(shù)據(jù)處理[34]和SKA脈沖星數(shù)據(jù)處理[35]. 本文的訓練和測試任務均是在該原型機的GPU集群上完成, 該集群共有3個GPU節(jié)點, 共配置了16個GPU卡. 本文的工作主要使用了1個GPU卡, 型號是Nvidia Tesla V100 SXM2, 這個GPU卡的理論浮點運算能力約為15.7 TFLOP (單精度).
訓練采用了交叉驗證方法和模型超參數(shù)的設置與篩選. 在數(shù)據(jù)預處理完成之后, 采用5折交叉驗證的方法對交叉驗證集(表1)進行模型訓練, 詳細過程見2.2節(jié). 本文的網(wǎng)絡訓練一共進行了35輪(epoch)的迭代, 如圖4所示, 畫出了損失函數(shù)隨著迭代次數(shù)增加的變化曲線. 訓練的目的是盡可能減小損失并確保模型能夠收斂, 從而得到較優(yōu)的模型.觀察曲線可看出, 訓練過程中損失函數(shù)數(shù)值隨著訓練輪數(shù)的增加在不斷地降低, 最終到達一個較低的數(shù)值后保持平穩(wěn), 說明模型能夠收斂. 在進行實驗時也嘗試過用14層以上的ResNet進行模型訓練, 由于層數(shù)太深, 出現(xiàn)了過擬合, 最終獲得的損失函數(shù)曲線隨著訓練輪數(shù)的增加一直震蕩, 無法收斂.
根據(jù)損失函數(shù)曲線來診斷模型, 一般而言, 完美擬合是模型調(diào)整的目標, 它在損失函數(shù)曲線上的特點是訓練誤差(training loss)和測試誤差(validation loss)兩者都能夠收斂,并且兩者之間相差很小. 從圖4可以看出模型大概在10輪之后兩個損失函數(shù)曲線都開始收斂, 在35輪之后, 兩條曲線沒有肉眼可見的明顯差距, 證明最終構建的模型可以很好地擬合數(shù)據(jù).
圖4 損失函數(shù)曲線Fig.4 Loss function curve
關于模型超參數(shù)的設置與篩選, 在所設計模型訓練過程中為了防止過擬合采取了很多措施. 在損失函數(shù)求解過程中加入L2正則化, 在3.3節(jié)已經(jīng)給出介紹. 還使用批量歸一化對數(shù)據(jù)進行處理, 利用Adam優(yōu)化器優(yōu)化模型. 其中批處理的大小(batch size)為512,在每輪中, 每次從訓練集中隨機篩選512個候選體樣本來訓練模型和更新參數(shù). 重復此步驟, 直到使用完所有訓練數(shù)據(jù)為止. 一共訓練了35輪, 最終的損失函數(shù)值為0.38.Adam優(yōu)化器的超參數(shù)初始值的設置在表3中詳細給出, 其中batch size代表批處理大小,epoch表示訓練輪數(shù). CONV WEIGHT DECAY為卷積層權重衰減率, 用于權重衰減(L2正則化), CONV WEIGHT STDDEV為卷積層權重標準差, 可以避免模型過擬合問題. BN DECAY為BN層衰減率, BN EPSILON為BN層初始化參數(shù), 會影響模型的訓練速率和準確率.
表3 模型超參數(shù)數(shù)值Table 3 Hyperparameter values of model
模型訓練完成后, 用測試集進行模型性能的測試. 本小節(jié)展示了最終的模型測試結果, 并與利用人工智能方法構建的其他模型在HTURS數(shù)據(jù)集上的性能(表現(xiàn))進行比較,然后對誤判樣本進行了成圖分析.
測試結果如表4所示, 展示的是在測試集上所得出的混淆矩陣. 表4中, 已知測試集中含有17680個負樣本, 240個正樣本, 測試結果中全部的脈沖星都被判別正確, RFI則有6個樣本被誤判為脈沖星. 通過進一步計算可以得出, 對于HTRUS數(shù)據(jù)集, 在測試數(shù)據(jù)上, ResNet模型可以實現(xiàn)100%的召回率和98%的精確度, F1-score能夠達到99%. 另外, 每個樣本檢測完成所消耗的時間約為7 ms, 運行速度相當高.
表4 測試結果的混淆矩陣Table 4 Confusion matrix of testing results
表5是在HTRUS數(shù)據(jù)集上不同模型的測試結果, 其中SPINN[24](Straightforward Pulsar Identification using Neural Networks)是通過提取輸入數(shù)據(jù)6個數(shù)值特征作為網(wǎng)絡輸入, 訓練神經(jīng)網(wǎng)絡ANN獲得模型; GH-VFDT[7](the Gaussian-Hellinger Very Fast Decision Tree)是利用從輸入數(shù)據(jù)提取的8個數(shù)值特征對樹網(wǎng)絡進行訓練獲得模型; DCNN-S[13]是先用SMOTE方法對原始數(shù)據(jù)進行數(shù)據(jù)增強, 然后訓練深度卷積神經(jīng)網(wǎng)絡(Deep Convolutional Neural Network, DCNN)得到最終模型; CGANL2-SVM-1[21]是時間-相位圖作為網(wǎng)絡輸入, 通過訓練由深度卷積生成的對抗網(wǎng)絡(Deep Convolution Generative Adversarial Network, DCGAN), 分類層采用線性SVM(L2-SVM)來進行分類, 從而獲得最終模型. 根據(jù)結果可以看出本文的訓練模型獲得的分類性能較好, Recall能夠達到100%, 相比于其他模型, 精確度也提高到98%, 即預測為正樣本的數(shù)據(jù)中脈沖星數(shù)量所占的比例是98%, 因為在測試結果中僅有6個樣本被判斷錯誤(表4). 雖然精確度不能達到100%, 但是由于分類任務的關鍵是識別所有的脈沖星樣本, Recall的結果更為重要, 已經(jīng)達到了100%, 意味著模型在HTRUS測試集上能夠識別全部的脈沖星樣本. 綜上, 實驗結果表明本文設計的網(wǎng)絡獲得的模型具有較優(yōu)秀的分類性能.
表5 HTRUS數(shù)據(jù)集上不同分類器分類性能的比較Table 5 Comparison of classification performance for different classifiers on the HTRUS data set
另外為了分析模型的不足之處, 我們對判斷錯誤的RFI樣本進行了分析. 分析發(fā)現(xiàn)導致RFI誤判的原因主要有2個: 第1個原因是訓練數(shù)據(jù)中正樣本的問題, 在用于訓練的數(shù)據(jù)樣本中, 存在一部分流量密度小, 且噪聲水平較高的脈沖星正樣本, 它們的數(shù)據(jù)并不存在圖1所展示的明顯條紋, 其時間-相位圖和頻率-相位圖中信號強度的分布是雜亂無章的. 而在進行模型設計時, 除了要保證高精確度外, 還要保持極高的脈沖星召回率,使其不錯過任何一個候選體樣本, 因為這個原因可能會導致訓練出的模型存在偏置.第2個原因是預測數(shù)據(jù)中的負樣本(RFI)數(shù)據(jù)的問題, 這些數(shù)據(jù)產(chǎn)生的時間-相位圖和頻率-相位圖與脈沖星圖像很相似. 圖5給出了測試集中一個被誤判為脈沖星的RFI樣本(cand072775)示例. 在分析過程中, 為了防止人為觀察不夠準確引入錯誤, 加入了色散度量(Dispersion Measure, DM)-信噪比(Signal to Noise Ratio, SNR)曲線對樣本的分析,即圖5下方子圖. 圖5上方的兩個子圖是模型用來訓練的輸入子圖(時間-相位圖和頻率-相位圖). DM-SNR曲線記錄了SNR與DM的關系, 當使用不同的色散值進行消色散時, 色散曲線顯示脈沖曲線的相應SNR. 如果是脈沖信號, 則曲線將在非零位置出現(xiàn)一個峰值,而非脈沖信號的曲線則沒有明顯峰值或峰值在零處. 觀察此圖像的DM-SNR曲線沒有發(fā)現(xiàn)明顯的峰值, 這類信號大概率就是大氣層內(nèi)人造射電源的信號, 并非來自脈沖星的脈沖信號.
圖5 RFI誤判樣本示例Fig.5 Examples of misjudged RFI
為了解決脈沖星候選體識別問題, 提出了一種基于ResNet的網(wǎng)絡結構. 通過直接使用脈沖星候選體的2維子圖作為輸入, 它避免了數(shù)據(jù)中人為設計提取特征的繁瑣, 并且還可防止人為因素對數(shù)據(jù)的干擾, 更符合深度學習數(shù)據(jù)驅(qū)動的性質(zhì). 在此項工作中, 為了解決類別不平衡問題, 使用了過采樣技術對少數(shù)類別樣本進行處理. 為了應對樣本數(shù)量不足的問題采取交叉驗證的方法來訓練數(shù)據(jù)集, 使得所構建的模型能更充分地學習, 更好地擬合數(shù)據(jù). 所設計的14層ResNet模型最終達到了100%的Recall, 能夠識別所有的脈沖星樣本, 具有出色的分類能力.
ResNet是一種先進的網(wǎng)絡, 在脈沖星搜索領域具有良好的應用前景. 為了提高泛化性能和分類精度, 可以考慮其他的圖像處理方法, 不僅僅是應用過采樣的方法對數(shù)據(jù)進行處理, 還可以對脈沖星正樣本加入噪聲, 這樣模型就能夠更精細地學習到樣本數(shù)據(jù)之間的區(qū)別, 非脈沖星樣本被誤判的可能性可能會被降低; 其次, 還可以考慮數(shù)據(jù)的其他診斷圖特征(總輪廓直方圖, DM-SNR曲線等). 未來的工作將考慮DM-SNR曲線作為模型的輸入,并嘗試使用其他模型擬合曲線以確定是否值得使用其他特征作為輸入. 最后,最重要的是需要收集新的觀測數(shù)據(jù)樣本, 尤其是脈沖星正樣本的數(shù)量, 樣本數(shù)據(jù)問題越少(比如樣本不均衡問題), 數(shù)據(jù)量越大, 模型就越能發(fā)現(xiàn)數(shù)據(jù)所存在的內(nèi)在規(guī)律, 其分類精度就會越高.