陳清源,金 帆,馮德華,王云龍,梁毅軍*
(1. 西安交通大學,陜西 西安 710049;2. 浙江科技學院,浙江 杭州 310023)
太陽黑子與太陽活動密切相關,太陽活動中最強烈的活動現(xiàn)象是太陽耀斑[1-2],主要爆發(fā)在太陽黑子上方的大氣中。這些活動會擾亂地球大氣層,影響地面無線電短波通信,并產生危害,如 “磁暴” 現(xiàn)象。世界各地的天文臺一直在追蹤所有可見的太陽黑子群,并對其進行分類和分析,以便及早發(fā)現(xiàn)耀斑。如果能夠比較準確地實現(xiàn)太陽黑子群自動分類,我們可以更好地檢測某些類別的太陽黑子群,對預警耀斑具有重要意義,同時提高對太陽周期、空間氣候及其對地球氣候系統(tǒng)影響的理解和預警能力。典型的黑子群分類方法可以分為基于傳統(tǒng)數字圖像處理算法、數學形態(tài)法和小波分析法,以及當下流行的基于數據驅動的機器學習方法。近年來,隨著觀測條件的進步,與太陽活動有關的數據迅速增長,基于深度學習方法的優(yōu)勢越來越顯著。
文[3]采用McIntosh分類方法,提出了一種混合系統(tǒng),該系統(tǒng)使用從太陽和太陽風層探測器/邁爾遜多普勒成像儀(Solar And Heliospheric Observatory/Michelson Doppler Imager, SOHO/MDI)磁圖圖像中提取的活動區(qū)數據,對白光圖像上的黑子群進行自動檢測。從白光圖像中檢測到黑子后,使用磁圖圖像對它們進行分組或聚類。通過集成圖像處理和神經網絡,自動對檢測到的黑子進行分類。但系統(tǒng)存在分組錯誤和小型黑子漏檢的缺陷。文[4]使用機器學習方法結合傳統(tǒng)圖像處理算法提取太陽黑子特征,改善了特征提取效果,但仍存在不同數據集間泛化性較差的問題。
文[5]采用改良后的七類Zurich分類方法,使用支持向量機(Support Vector Machine, SVM)實現(xiàn)對太陽全日面白光圖像黑子群的自動分類。在數據預處理階段,文[5]使用了邊緣檢測、噪聲去除以及二值化分割黑子群和日面,再對黑子群進行無監(jiān)督分割,將屬于同一組的黑子合并,然后提取每個黑子組的屬性,最后使用支持向量機進行分類。該方法精度對圖片質量和失真程度有所要求,且分割過程對推斷耗時有較大影響。
隨著深度學習的發(fā)展和可訓練數據量的增加,越來越多的人嘗試基于卷積神經網絡(Convolutional Neural Network, CNN)提取圖像特征,以解決圖像的分類[6-7]、分割[8-9]和檢測[10-11]問題。文[12]使用卷積神經網絡對黑子群的磁類型進行分類,在數據預處理階段將圖像分為3類,分別為白光圖、磁圖以及白光圖和磁圖的合成圖像。將3類圖像分別作為輸入源輸入卷積神經網絡進行分類,結果顯示,單獨使用白光圖的分類效果最佳。文[12]認為,相對白光圖,磁圖結構較為復雜,且磁圖使用卷積神經網絡不能很好地提取特征,是造成使用磁圖分類不佳的主要原因之一。除此之外,3類圖像樣本數量不均衡帶來的問題同樣沒有得到解決,存在Beta-x類過擬合現(xiàn)象。
文[13]提出一種雙流卷積神經網絡的太陽黑子磁類型分類方法。該模型通過雙流結構解決了白光圖和磁圖的多元輸入問題,在Alpha類上的分類準確率較高,但模型參數量較大,在Beta-x類上依然存在過擬合問題。除了分類問題,當下最優(yōu)的太陽黑子檢測模型同樣存在小樣本類別過擬合的問題,如文[14]提出的SunspotsNet太陽黑子檢測模型依然無法解決類別不均衡問題。
本文提出的雙模型集成算法通過兩個模型分別承擔Alpha類和Beta-x類的分類任務,即針對Alpha類和Beta-x類分別設計最適合的分類模型和訓練策略,并輔以大量針對不均衡數據集訓練的調優(yōu)技巧,最終對兩個模型的結果進行集成,從而能夠最大程度地解決數據集中類別不均衡的問題。上述雙模型集成算法與主流的集成算法不同[15-17],其中涉及的兩個模型均有明確的任務分工,集成單元更少,效果更優(yōu)。另外,本文提出的基于雙模型集成的不平衡數據集定向分類模型取得了阿里天池太陽風暴識別和預警人工智能挑戰(zhàn)賽的第二名,挑戰(zhàn)賽地址:https://tianchi.aliyun.com/competition/entrance/531803/rankingList;代碼也已開源:https://github.com/qingyuanchen1997/Dual-Model-Integration。
深度學習由數據驅動,故本文首先介紹并分析實驗所用數據集,進而引出后續(xù)算法。
本文實驗所用數據集為SOLAR-STORM1,由空間環(huán)境人工智能預警創(chuàng)新工坊整理提供,可在天池實驗室(https://tianchi.aliyun.com/dataset/)公開下載。該數據集基于威爾遜山(Mount Wilson)黑子群磁類型分類方案,該方案根據磁場極性對黑子群進行分類。數據集共包含Alpha, Beta和Beta-x 3個類別的太陽黑子數據樣本,分別代表單極黑子群、極性之間具有簡單且明確劃分的雙極黑子群和極性之間無明確劃分的復雜雙極黑子群,3個類別總計14 469個數據樣本,每個數據樣本包含兩張圖像:磁圖和白光圖,兩者為一一對應關系,如圖1。其中Alpha類太陽黑子的磁場圖和白光圖各4 709張,占32.54%;Beta類太陽黑子的磁場圖和白光圖各7 353張,占50.82%;Beta-x類太陽黑子的磁場圖和白光圖各2 407張,占16.64%。具體數據如表1。數據雖整體數量尚可,但3個類別的訓練圖像數量差異卻十分巨大,其中Beta-x類圖像的數量遠小于Alpha和Beta兩個類別;另經查閱資料得知,在觀測過程中,Alpha類和Beta類的太陽黑子出現(xiàn)的概率也顯著高于Beta-x類。
圖1 Alpha(左1)、Beta(左2)和更復雜的Beta-x(左3、左4)磁類型的太陽黑子群磁場觀測圖像(行1)和白光觀測圖像(行2)
表1 Alpha, Beta和Beta-x黑子數據樣本占訓練集比重
由于數據集在萬張量級,總計14 469組數據樣本,為保證模型在驗證集和測試集上取得可靠的結果,將樣本按3∶1∶1的比例劃分為訓練集、驗證集和測試集。另外,由于數據具有時間連續(xù)性,時間精度為96 min,即每間隔96 min對黑子群進行一次觀測,且黑子群演化較為緩慢,故同一個黑子群在一定時間內通常保持同一種磁類型,且相似度較高。為避免訓練集同驗證集、
測試集在信息上重疊,實驗基于時間段對數據集進行劃分,將位于同一時間段內的不同樣本統(tǒng)一放入訓練集或驗證集或測試集。文中所有實驗均采用五折交叉驗證,即將數據集切分為5份,1份作為驗證集,1份作為測試集,剩余3份作為訓練集。每組實驗共進行5次,每次實驗基于已切分的5份數據集子集重構訓練集、驗證集和測試集,最終結果取5次實驗的平均值。為保證雙模型集成的可操作性,在每一輪訓練中兩個模型使用相同的數據集。實驗首先使用骨干網絡(Backbone)作為ResNet50卷積層的網絡在訓練集上進行訓練,并用訓練的模型對訓練集和驗證集進行分類。
由表2可見,Beta-x類在訓練集上的F1分數遠高于在驗證集上的,而Alpha類和Beta類在訓練集上的F1分數只是略高于驗證集上的,由此可見,基于ResNet50訓練的模型對于訓練圖片數量較少的Beta-x類存在過擬合現(xiàn)象。
表2 使用ResNet50卷積層作為骨干網絡,Alpha類、Beta類和Beta-x類在訓練集和驗證集上的F1分數
實驗采用比ResNet50卷積層數更少的AlexNet卷積層作為骨干網絡,從而得到更輕量級的網絡模型,并重新進行訓練和分類,結果如表3。更小更輕的網絡解決了Beta-x類因數量較少造成的過擬合問題,且顯著提高了Beta-x類在驗證集上的F1分數。但由于此網絡模型參數量較少,故模型的擬合能力較弱,導致訓練圖像數量較多的Alpha類和數量更多的Beta類出現(xiàn)了欠擬合現(xiàn)象,其F1分數低于ResNet50模型分類得到的F1分數。
表3 使用AlexNet作為骨干網絡,Alpha類、Beta類和Beta-x類在訓練集和驗證集上的F1分數
由此可見,在分類數據集各類別數量極不平衡的情況下,我們無法找出單一的神經網絡模型同時兼顧訓練圖像數量較多和較少的類別。即對于參數量較大的網絡,擬合能力較強,但需要較多的訓練圖像,此類模型對分類問題中訓練圖像數量較多的類別更有利;而對于參數量較少的網絡,擬合能力較弱,但需要較少的訓練圖像,此類模型對分類問題中訓練圖像數量較少的類別更有利。因此,本文確立的雙模型集成理論上是有效的。
經過多個模型的測試,我們發(fā)現(xiàn)Alpha類和Beta-x類存在互不相干性。由表4可得,在所有模型的分類結果中,真實的Alpha類沒有出現(xiàn)或極少出現(xiàn)誤分為Beta-x類的情況,同樣,真實的Beta-x類沒有出現(xiàn)或極少出現(xiàn)誤分為Alpha類的情況,兩者的錯誤均是因為與Beta類混淆。另外將利用神經網絡提取的三維特征在三維特征空間中顯示,由圖2可以看出,Alpha類和Beta-x類的樣本點在特征空間中距離普遍較遠,兩者特征點極少發(fā)生混疊。上述實驗結果確定了雙模型集成的可行性,即不同模型的Alpha類與Beta-x類的結果互不影響,集成后的結果可以保留兩個模型分別在Alpha類和Beta-x類上的分類精度。因此,本文確立的雙模型集成理論是可行的。
表4 各網絡模型對驗證集的分類結果中Alpha類和Beta-x類相互誤分的圖像數量
圖2 Alpha類(紅)、Beta類(綠)和Beta-x類(藍)特征空間分布示意圖
綜合上述情況,本文分別單獨設計一重一輕兩個模型,利用重模型的強擬合能力專注于數量較多的Alpha類太陽黑子分類;利用輕模型的抗過擬合能力專注于數量較少的Beta-x類太陽黑子分類,最后再利用Alpha類和Beta-x類的互不相干性,對兩個模型的分類結果進行不損失精度的集成融合,用重模型分出的Alpha類和輕模型分出的Beta-x類夾逼出Beta類,即將未被標記類別的樣本劃歸為Beta類,如圖3。
圖3 雙模型集成示意圖Fig.3 Schematic diagram of dual model integration
本文基于ResNet18設計了雙通道并行網絡paraResNet,將其作為參數較多的大模型針對訓練圖像數量較多的Alpha類;另外基于AlexNet設計了miniAlexNet模型,作為參數較少的小模型針對訓練圖像數量較少的Beta-x類。
1.3.1 網絡結構
在確立了雙模型集成策略后,本文首先針對性設計承擔Alpha類分類任務的模型。
比賽主辦方提供的數據集中每個太陽黑子群類別均包含兩種圖像,磁場觀測圖像和白光觀測圖像,如圖4。兩圖像尺寸相同,位深相同,故我們首先嘗試將均為8位位深的單通道白光觀測圖像和磁場觀測圖像拼接成16位位深圖像輸入ResNet18網絡進行訓練和分類,但是由于紋理特征差異較大,拼接成的雙通道圖像不是一幅自然圖像,分類效果并不理想。故根據此數據集擁有白光和磁場兩種圖像的特點,為充分提取白光圖和磁場圖的特征,本文采用與文[13]雙流模型類似的方案,設計了雙通道ResNet18并行網絡以側重在Alpha類上的分類性能;該網絡的上下兩個通道分別負責提取白光圖和磁圖的圖像特征,而后將提取的特征拼接后輸入全連接網絡,網絡結構如圖5。
圖4 (a)白光觀測圖像;(b)磁場觀測圖像
圖5 paraResNet網絡結構圖Fig.5 Network structure diagram of paraResNet
在此基礎上,本文實驗參考文[18]在模型優(yōu)化方面的工作,對ResNet18的下采樣層進行改進,將原本同時兼顧減小特征圖尺寸和改變特征張量深度的卷積層,替換成負責減小特征圖尺寸的平均池化層和負責改變特征張量深度的步長為1的卷積層,通過任務分工減輕原卷積核的負擔,提高下采樣模塊的精度。改進方案如圖6。本文將網絡結構稱為parallel-ResNet18-D,縮寫為paraResNet。
圖6 ResNet18的下采樣改進方案:ResNet-D
1.3.2 訓練策略
在訓練技巧上,本文首先使用單通道白光圖和磁場圖分別對兩個單網絡ResNet18模型進行預訓練(不采用ImageNet預訓練),再將兩個預訓練模型的卷積層遷移至雙網絡模型的并行卷積層。使用加權的交叉熵損失,樣本較少的類別享有更大的權重,用于減小各類別樣本數量不均衡帶來的影響。
在數據增強方面,由于Alpha類和與其相鄰的Beta類可用于訓練的圖像數量較多,故只采用對圖像信息損失較小的水平鏡像和豎直鏡像的數據增強方法。若再使用其他數據增強方法,不僅無法提高模型分類正確率,反而影響訓練時間。
1.4.1 網絡結構
針對訓練樣本較少的Beta-x類,為減少參數量,本文未使用雙通道并行網絡結構,而是使用比ResNet18更為輕量級的AlexNet[19]的卷積層作為Beta-x模型的骨干網絡,輸入源為白光圖和磁圖的混合圖像,即圖像的第1個通道為白光圖,第2個通道為磁圖,為使用ImageNet數據集的預訓練模型,需保證輸入圖像為常規(guī)三通道圖像,故設置第3通道為白光圖和磁圖各按0.5權重的加權和,以引導網絡學習白光圖和磁圖之間的紋理關聯(lián)信息并填補通道空缺。為進一步減少后續(xù)全連接層的參數量,在最后一個卷積層后接一個輸入大小為3 × 3的自適應池化層,最后將特征輸入單層全連接,輸出3個類別的置信度。同時,為了補償網絡提取圖像特征的能力,為網絡輸入較高分辨率的圖像,將原圖像分辨率變換為 500 × 375,網絡結構如圖7。
圖7 miniAlexNet網絡結構圖Fig.7 Network structure diagram of miniAlexNet
1.4.2 訓練策略
首先,對數據集進行清洗。對于 Alpha類和Beta類的數據,鑒于時間軸連續(xù)性較差,全部保留。對于Beta-x類的數據,首先按照時間進行排序,根據該類數據集圖像序列在時間軸上的強連續(xù)性,對Beta-x類的數據以3/4的下采樣率進行數據清洗,大大降低了數據的冗余度和網絡對重復信息進行無用學習的壓力。
由于Beta-x類和Beta類之間的差異較小,故采用降溫技巧,即降低原先輸出的logit值,再通過softmax函數增加網絡在學習各個類別的差異性,降低網絡學習壓力,提高收斂速度。
在數據增強方面,我們采用對圖像信息影響較大但抗過擬合效果更佳的圖像隨機角度旋轉對訓練集進行增廣,旋轉角度控制在90°以內。
最后,通過分析對驗證集的logit輸出分布,我們發(fā)現(xiàn)當Beta-x輸出頭的logit值同Beta輸出頭的logit值的差值在[0, 0.5]區(qū)間時,存在7%的Beta類樣本誤判為Beta-x類。故當兩者代表的輸出頭的logit值的差值在[0, 0.5]區(qū)間內時,增大Beta類輸出頭的logit值,進行概率校正。
基于1.3節(jié)討論的Alpha類和Beta-x類的不相干性,將paraResNet模型得到的分類結果同miniAlexNet模型的分類結果融合,即采用前者的Alpha類分類結果和后者的Beta-x類分類結果,將未標記類別的樣本劃歸為Beta類,從而夾逼出Beta類的分類結果。
在針對Alpha類的模型訓練過程中,本文實驗采用Adam自適應優(yōu)化器[20],初始學習率定為2 × 10-6;作為隨機梯度下降(Stochastic Gradient Descent, SGD)的擴展,Adam Optimizer能夠根據每個參數的先前梯度,自適應地調整梯度的系數,適用于數據量較大的情況。即對各個類別的交叉熵損失施加權重,所加權重Alpha類為1.56,Beta類為1.0,Beta-x類為3.05。該權重基于Alpha類、Beta類和Beta-x類在訓練集中的樣本數量比例進行設置,在該比例的基礎上根據驗證集分類效果進行微調,從而能夠在損失層降低訓練數據類別不均衡帶來的影響。
在針對Beta-x類的模型訓練過程中,實驗采用帶有動量的隨機梯度下降策略,學習率為0.000 8,動量參數為0.9。另外,本實驗做了兩個額外的數據集預處理操作,首先因Beta-x類樣本數據量本身較小,故將輸入圖像分辨率修改為500 × 375,盡可能保留數據集信息;其次對訓練集中的冗余信息進行濾除,即對Beta-x類中在時間軸上連續(xù)的圖像樣本序列進行以4為步長的下采樣,最終保留891個訓練樣本。
實驗采用F1分數作為太陽黑子三分類任務的衡量指標,它是精確率和召回率的調和平均數,最大為1,最小為0;F1分數接近1代表模型在該類別上的分類性能較好,接近0則代表模型在該類別上的分類性能較差。F1分數計算公式為
(1)
其中,P為精確率;R為召回率。數據集共有Alpha,Beta和Beta-x 3個類別,每個類別對應一個F1分數,因為Beta類太陽黑子在現(xiàn)實中出現(xiàn)概率最高,故實驗將Beta類的F1分數作為首要考慮對象,其次為Alpha類和Beta-x類。
本文針對訓練數據不平衡的特性,采用針對性的雙模型融合算法,即使用雙通道并行ResNet18進行針對性訓練得到較好的Alpha類分類模型,使用miniAlexNet進行針對性訓練得到較好的Beta-x類分類模型。最后再基于Alpha類和Beta-x類的不相干性,將前者的Alpha類分類結果同后者的Beta類分類結果進行融合,得到最終的三分類結果。
本文對分類模型的評價指標同比賽方要求相同,使用綜合了精確率和召回率的F1分數以衡量模型在測試集上的分類性能。
2.3.1 Alpha類模型
本文首先對Alpha類的模型進行消融實驗,以驗證各項策略的有效性。由表5可見,每一項技巧對模型的分類性能有了顯著提高。數據增強(水平鏡像+豎直鏡像)在對圖像信息影響較小的基礎上彌補了訓練集較小的問題,增強了抗過擬合能力。雙通道網絡更好地提取太陽黑子的白光圖像和磁場圖像的特征,更多的參數也帶來更強的擬合能力。損失加權平衡了Alpha類和Beta類在訓練數據量上的不平衡關系;下采樣模塊精度提高進一步提升了網絡提取特征的有效性。最為關鍵的是,針對性訓練后的雙通道并行模型paraResNet對Alpha類的分類效果非常好。
表5 各項技巧為Alpha模型帶來的F1分數提高
2.3.2 Beta-x模型
我們對Beta-x類的模型進行消融實驗,驗證各項策略的有效性。
由表6可見,每一項技巧對模型的分類性能有了顯著提高。數據增強(隨機角度旋轉)降低了Beta-x類數據量過小帶來的不利影響,降低了小數據量帶來的過擬合風險;將更高分辨率的圖像進行網絡訓練,彌補了小網絡特征提取能力的不足;降溫和概率性校正則通過人為調整干預,提升了模型對復雜分類邊界的擬合能力;而小巧的網絡和較少的參數使miniAlexNet模型對訓練數據量較少的Beta-x類的分類效果相比雙通道網絡更好。
表6 各項技巧為Beta-x模型帶來的F1分數提高
2.3.3 雙模型集成
模型最終將paraResNet和miniAlexNet集成,即將前者的Alpha類分類結果同后者的Beta-x類分類結果進行融合,將未標記類別的樣本劃歸為Beta類,最終得到三分類結果。
由表7可以看出,融合后的模型完全保留了雙通道并行模型paraResNet在Alpha類上得到的F1分數和miniAlexNet模型在Beta-x類上得到的F1分數,從而夾逼出比兩者都高的Beta類的F1分數,最終在測試集上,Alpha類、Beta類和Beta-x類的F1分數分別為0.970,0.946和0.877。
表7 雙模型集成在測試集上帶來的F1分數提高
本文對文[12]和文[13]設計的網絡結構以及當下主流網絡結構ResNet[21]在使用翻轉增強和損失加權的基礎上,在SOLAR-STORM1數據集上進行實驗驗證。
對比實驗結果如表8,從表8可以看出,本文的paraResNet模型在Alpha類上取得了非常優(yōu)異的效果,F(xiàn)1分數達0.970;同樣的,本文的miniAlexNet網絡在Beta-x類上取得了優(yōu)異的性能,F(xiàn)1分數達到0.877。將paraResNet模型和miniAlexNet模型集成后,保留了前者在Alpha類的性能和后者在Beta-x類的性能,取得了最優(yōu)的Beta類分類結果,Beta類的F1分數達到0.946,遠超所有單網絡模型。
表8 多種模型實驗結果Table 8 Experimental results of various models
本文對太陽黑子數據集進行分析,在論證雙模型集成有效性和可行性的基礎上,通過分別訓練針對Alpha類的雙通道并行模型paraResNet和針對Beta-x類的miniAlexNet模型,并將兩者結果融合夾逼Beta類的方法,巧妙地避免了重模型在少樣本類別的過擬合問題和輕模型在多樣本類別擬合能力不足的問題,且保留了兩者在各自優(yōu)勢類別上的優(yōu)異性能,從全新的角度降低了類別不均衡問題帶來的影響,最終在SOLAR-STORM1數據集的3個類別取得的平均F1分數超越了所有單網絡模型。
雙模型集成算法不僅對太陽黑子分類任務有效,其余任何三分類任務均可參考此集成方法,此算法對所有基于機器學習的、各類別樣本數量不均衡的分類任務具有啟發(fā)意義。
為了進一步減小模型的復雜度、減少參數量和前向推理耗時,并降低模型的部署難度,未來我們可以考慮通過知識蒸餾和小樣本學習的方式,使單網絡模型能夠同時兼顧在多樣本類別和少樣本類別的分類性能,從而替代雙模型結構。