仝 茵,劉 麗
(1.中國原子能科學研究院,北京 102413;2.中國電子科學研究院,北京 100041)
核素鑒別具有實際應用意義。在多種的測量環(huán)境中,放射性核素經(jīng)過γ能譜儀等核物理設(shè)備儀器進行鑒別,探測器接收發(fā)射的γ射線源生成能譜數(shù)據(jù),能譜獲取后通過特定的方法進行分析,實現(xiàn)對核素的種類鑒別。目前成熟的核探測解譜方法,通常采用全能峰法、逐次差引法等技術(shù)來進行核素分析解譜[1]。傳統(tǒng)的方法存在的問題主要有:(1)獲取到的能量峰值向量的峰值信息不能涵蓋全部峰值,能譜的信息具有局部特征,或存在重疊峰值,從而可能導致核素判別出現(xiàn)錯失、誤判結(jié)果。(2)對于能譜隨測量環(huán)境變化的動態(tài)改變,傳統(tǒng)方法不具有強適應性,核素識別率會降低。
近年來核工業(yè)領(lǐng)域積極結(jié)合人工智能思想進行研究和應用,探索解決傳統(tǒng)方法中存在的短板,結(jié)合機器學習算法,進行工業(yè)創(chuàng)新。本文的思想,介紹了一個基于AdaBoost算法的核素識別系統(tǒng),將采樣生成的能譜數(shù)據(jù)理解為向量和圖片形式的數(shù)據(jù),將原始的能譜數(shù)據(jù)處理為矩陣形式,然后通過SVD方法對能譜矩陣進行特征信息提取,得到能譜特征向量作為后續(xù)模型的訓練數(shù)據(jù),使用AdaBoost算法來建立訓練模型識別核素種類,將每一輪弱分類器在訓練數(shù)據(jù)集上的結(jié)果與實際真實的類別結(jié)果進行對比,根據(jù)每一輪對比結(jié)果的偏差度,復調(diào)下一輪整模型的參數(shù),從而提高核素識別的準確度。
核素識別需要以大量的樣本為鑒別基礎(chǔ),得到包含更為全面的核素能譜數(shù)據(jù)的特征信息,從而提高核素識別準確度。此處使用MCNP(Monte Carlo N Particle Transport Code)基于蒙特卡羅方法模擬生成能譜數(shù)據(jù)樣本,包括Eu152、AM241、Na22、I131等9種類別單一核素以及混合核素的能譜數(shù)據(jù)樣本。MCNP是美國洛斯阿拉莫斯國家實驗室開發(fā)的一個開源工具包,能夠模擬比較逼真的物理實驗過程[2],在本文應用中,用來模擬構(gòu)建粒子類型、記錄能譜及定義衰變鏈的過程,生成多個能譜數(shù)據(jù)集。能譜數(shù)據(jù)形態(tài)見圖1。
圖1為核素I131和AM241的混合能譜圖,橫軸是能量道址區(qū)間,縱軸是能量計數(shù),每一個蒙特卡洛能譜數(shù)據(jù)集看做一個向量,γ能譜的道數(shù)作為向量的維度,每個能譜向量為:
Ui={u1,u2,u3…un}
(1)
式中,n∈{1,1500},共1500個波道。每個能量計數(shù)作為向量的一個維度,其中i∈{1,m},m是樣本數(shù)量。本次共生成1100個能譜數(shù)據(jù)樣本。
當γ能譜的能量計數(shù)取值范圍較大時,比如計數(shù)的區(qū)間為幾百甚至上千,為了減輕各個維度間取值的量綱影響,使得各維度的數(shù)值趨向同一數(shù)量級[3],我們對能譜數(shù)據(jù)集進行標準化處理如下:
i∈{1,m},j∈{1,n}
(2)
標準化能譜數(shù)據(jù)后,繼續(xù)進行零均值化,得到標準差為1,均值為零的標準正太分布的能譜數(shù)據(jù),如下:
i∈{1,m},j∈{1,n}
(3)
在對γ能譜數(shù)據(jù)樣本集進行預處理后,將其由原來的一維向量表示為二維的矩陣形式來應用AdaBoost算法進行分類,實際環(huán)境中,生成的全能譜數(shù)據(jù)由于存在儀器誤差或環(huán)境干擾的原因,包含噪音和非特征因素,為了保證最終機器學習模型效果,需要對能譜數(shù)據(jù)維度規(guī)約,此處使用特征提取來減小特征的維度,提取到能譜數(shù)據(jù)中最明顯的能量特征值,以更小數(shù)據(jù)維度更有效的表示AdaBoost模型的數(shù)據(jù)輸入。矩陣形式如為:
(4)
SVD是機器學習中常用的線性回歸問題去噪、降維方法,其原理是因數(shù)分解矩陣的線性代數(shù)[4-5]。被廣泛的用在特征提取和矩陣壓縮存儲問題。本問題中考慮一個由m個樣本的能譜數(shù)據(jù)集,每個樣本包含n道數(shù)據(jù)維度。SVD對樣本集進行特征抽取來獲得奇異值特征分解向量ξi(i∈1,2,3,…m),SVD奇異值分解形式如下:
(5)
奇異值特征的權(quán)重下降的較快,奇異值矩陣ξi的前t個奇異值包含Ai矩陣的大部分信息量,對待不同核素形成不同的奇異值矩陣長度,我們統(tǒng)一抽取其奇異值長度的前t個奇異值構(gòu)成t維奇異值向量,令t為10,提取到能譜的多于90%的能量,得到X1×10的特征向量。
將上節(jié)得到特征向量X1×10作為AdaBoost模型的輸入樣本特征,選取核素中的五種核素的特征向量,驗證其做為輸入樣本的有效性,分別取向量t=2和t=3時,兩維和三維子空間的空間分布狀況。經(jīng)過空間投射驗證,多種類核素在降維子空間分布有顯著不同,分布識別度高,由二維、三維推及更高維度,可以作為準確輸入樣本特征進行識別,部分核素的降維空間分布如圖2。
圖2 核素前兩維和前三維特征向量空間分布對比
圖中坐標軸表示特征向量的前二維、及三維的維度,每一個種類的核素衰變仿真模擬生成100組數(shù)據(jù),每組核素數(shù)據(jù)對應一個特征向量X1×10和核素標簽y。組成數(shù)據(jù)(X(i),y(i))作為模型訓練數(shù)據(jù)集。
為了對核素分類效果做區(qū)分對比,防止建立的模型對數(shù)據(jù)集數(shù)據(jù)過擬合或欠擬合等問題,影響模型的實際應用效果,將數(shù)據(jù)集分別應用到多個識別算法進行分析,多個獨立分類器的對比效果見圖3。
圖3 多個分類器分類效果對比
通過核素測試數(shù)據(jù)集與訓練數(shù)據(jù)集在不同分類方法上產(chǎn)生效果的對比,可以看到?jīng)Q策樹方法和K近鄰方法在核素數(shù)據(jù)集上的擬合效果方面和數(shù)據(jù)預測方面都有出色表現(xiàn)[6],考慮到k近鄰方法分類效果較依賴初始中心值參數(shù)的設(shè)置[7],并且無法作為弱分類器進一步應用到AdaBoost集成算法中提升模型的性能,兼顧核素特征樣本數(shù)據(jù)為離散值的特性。本文選擇分類決策樹方法對核素識別處理。分類決策樹CART算法建立決策樹算法描述如下:
算法1:分類決策樹CART算法
輸入:D=(X(i),y(i))i∈{1,m},y(i)∈{1,8},特征屬性A=ajj∈{1,n},樣本類別k∈{1,K},aj特征取值v∈{V}={1,V}
初始化:基尼系數(shù)閾值εGini, 樣本個數(shù)|m|閾值εm,
輸出:決策樹T
1.當前節(jié)點node,if|m|<εm||{A}=φ,返回決策子樹T,當前節(jié)點停止遞歸
2.對于樣本集D,IfGini(D)<εGini,返回決策子樹T,當前節(jié)點停止遞歸
3.當前節(jié)點node,為node選擇最優(yōu)屬性a*,a*對應的最優(yōu)值vbest,將數(shù)據(jù)集D劃分為子數(shù)據(jù)集{DVbest}和{DV*}
4.a*取值v∈{1,V}其中,a*=argmin Gini(D,aj)
5.While ?v∈{V}={1,V} ?v*∈{V*}={V}-v,|DV|為a*=v的樣本個數(shù) do
6. For (w=1, w {V*} -= {V}-vw If Gini(D,a*)w > Gini(D,a*)w+1 vbest=vw+1 else vbest=vw End if End For 7.End While 8.根據(jù)最優(yōu)特征a*和a*對應的最優(yōu)值vbest,生成二叉樹節(jié)點Nsub(即第3步的節(jié)點node),并把數(shù)據(jù)集劃分為兩部分,建立Nsub節(jié)點的左右節(jié)點,左節(jié)點對應數(shù)據(jù)集{DVbest},右節(jié)點對應數(shù)據(jù)集{DV*},對左右節(jié)點重復調(diào)用1-7,生成決策樹T v的數(shù)量由特征屬性A的值個數(shù)決定,不同的特征值aj有不同數(shù)目的取值集合{V},當前核素識別任務中,每個樣本的核素特征向量是十維,每個樣本的特征屬性A的數(shù)量為10,共有10類特征屬性去計算基尼系數(shù),取基尼系數(shù)最小的特征a*,對二叉樹進行劃分。K是核素標簽的數(shù)量,此處K值取6,共6類單一核素標簽。 分類決策樹模型,使用多組核素數(shù)據(jù)進行訓練,訓練過程如下: (1)讀取m組大小的核素特征向量,每條特征向量匹配實際的核素標簽,形成數(shù)據(jù)集D(X(i),y(i))去做訓練。 (2)確定算法1輸入?yún)?shù)和初始化參數(shù),調(diào)用算法1進行計算,得到?jīng)Q策樹T。 (3)取非屬于m組的,同樣格式的一組核素特征向量作為測試數(shù)據(jù)集,在訓練的決策樹T上,測試生成決策樹分類模型的準確率。核素測試集的是識別精度約為73.33。 (4)使用決策樹T對訓練數(shù)據(jù)集進行預測,精度為91.43。 在對生成的決策樹做預測時,測試集的樣本劃分到某葉子節(jié)點后,如果該葉子節(jié)點里有多個訓練樣本,那么該測試樣本取該葉子節(jié)點的概率最大的類別作為預測類別。 總結(jié),決策樹CART分類模型作為核素識別分類器,從預測結(jié)果來看,存在的一下問題: (1)決策樹模型在核素數(shù)據(jù)的應用效果有輕度過擬合。該問題可以通過調(diào)節(jié)樹深度或者計算決策子樹的損失函數(shù)的剪枝算法來提高模型泛化能力。 (2)為了提高模型的準確率,也可以特征屬性擇優(yōu)時,選擇多變量特征屬性組合來做最優(yōu)劃分屬性。 (3)核素特征屬性提取維數(shù)增加,樣本結(jié)構(gòu)發(fā)生變化,會導致決策樹結(jié)構(gòu)的改變,另外尋優(yōu)決策樹過程是NP-hard,得到的最優(yōu)解有可能是局部最優(yōu)解,影響精確率。這些問題可以通過集成學習改進。 單個決策樹分類器在訓練集樣本上的結(jié)果表現(xiàn)出一定的錯誤率,如上節(jié)訓練結(jié)果錯誤率為0.2666,集成算法AdaBoost集合了多個決策樹分類器對核素數(shù)據(jù)集進行多輪訓練,每一輪都根據(jù)單個決策樹分類器的錯誤率不斷修正核素數(shù)據(jù)集中樣本的權(quán)值分布,增加分類錯誤的核素樣本的權(quán)重,同時減小分類正確核素樣本的權(quán)重,最后根據(jù)每一輪決策樹分類器的權(quán)重系數(shù),形成多輪形成的相應決策樹分類器組合,構(gòu)建一個泛化性能好的強分類器模型,降低單個決策樹分類器的訓練結(jié)果的偏差,從而提高集成模型的分類精確度[8][9]。 AdaBoost集成算法進行核素識別過程如下: 算法2:AdaBoost集成算法對核素的識別輸入:D=(X(i),y(i))i∈{1,m} y(i)∈{1,8}弱分類器:算法1產(chǎn)生的分類器f(X(i))初始化:第一個決策樹分類器的樣本權(quán)重分布D(1)=(w11,w12,w13…w1m) ,w1i=1/m訓練輪數(shù):K輸出:強分類器F(X(i))=sign(∑K k=1αkfk(X(i)))1.計算第一個決策樹分類器在D上的加權(quán)誤差率為e1=P(f1(X(i)-y(i))>0.5)=∑mi=1w1iI(f1(X(i)-y(i))>0.5)2.計算第一個分類器的權(quán)重系數(shù)為α1=1/2[log(1-e1)/e1]規(guī)范化因子Zk=∑m i=1w1iexp(-αkI(f1(X(i)-y(i))>0.5))3.更新第2個決策樹分類器的樣本集權(quán)重系數(shù)分布W2i=[w1iexp(-αkI(f1(X(i)-y(i))>0.5))]/Z14.If e1<0.5 重復1-3步,訓練第2、3...輪決策樹分類器,直到訓練輪數(shù)到K次停止,最終得到對應的決策樹分類器對應的權(quán)重系數(shù)αk和相應的分類器fk(X(i))結(jié)果5.集成策略采用K輪類別投票法,得到樣本X(i)的最終強分類器F(X(i)) 如果訓練過程中,ei>0.5,導致整個強學習器沒有循環(huán)到K輪就停止。如果出現(xiàn)未迭代完成就終止的情況,放棄當前決策樹分類器,基于當前輪次的數(shù)據(jù)樣本分布重新采樣,生成新的核素樣本數(shù)據(jù)集,重新訓練決策樹分類器,使得K輪迭代完成,不影響到最終強學習器的效果。 總結(jié),AdaBoost集成模型應用在真實的能譜測量環(huán)境中,提高能譜數(shù)據(jù)分析識別分類的精準度。根據(jù)每一輪決策樹分類器的錯誤率調(diào)整更新分類錯誤樣本的權(quán)重值,最終將多輪的決策樹分類器的的訓練結(jié)果的融合。在存在噪音的真實衰減環(huán)境中,對能譜數(shù)據(jù)識別預測的訓練結(jié)果有良好的泛化能力,經(jīng)過檢測,模型在核素測試數(shù)據(jù)集的預測精準度表現(xiàn)為98.33%。 在AdaBoost集成算法對核素數(shù)據(jù)建模階段,使用交叉驗證的方法[10],對模型參數(shù)學習率和訓練器個數(shù)進行優(yōu)化,設(shè)定模型的學習率范圍為v:[0.1,1.0],模型進行迭代訓練的決策樹分類器個數(shù)為n:[100,1000],通過5折交叉驗證調(diào)參來獲得模型在測試樣本集上的準確率表現(xiàn),如圖4,決策樹分類器的個數(shù)為300,學習率取0.8,得到核素測試數(shù)據(jù)集的分類預測精確度為98.33%。 圖4 AdaBoost算法參數(shù)尋優(yōu) 模型對包含部分混合能譜向量的測試數(shù)據(jù)集進行預測,(混合核素的能譜數(shù)據(jù)樣本包含三類混合數(shù)據(jù),為AM241+Na22、Eu152+Na22、I131+AM241三組不同混合類別核素的能譜數(shù)據(jù)樣本),AdaBoost模型在混合核素數(shù)據(jù)集上得到的預測效果如表1,可以看到,模型對多重核素混疊的能譜的識別效果,仍有較高的識別精確度,能夠精準識別出單一核素和混合核素的區(qū)別,效果如圖5所示(圖中,三組不同混合核素種類的表示形式分別為12、34、56)。 表1 混合核素識別效果 圖5 混合核素識別精準度 本文的工作內(nèi)容包括:(1)對高維度能譜數(shù)據(jù)向量的降維處理,提取到包含大部分能譜數(shù)據(jù)特征的前十維數(shù)據(jù),降低了高維能譜數(shù)據(jù)處理難度和存在的噪音問題,為核素識別奠定基礎(chǔ)。(2)比較不同的建模算法,選擇單元分類器決策樹對核素數(shù)據(jù)集進行訓練,進一步應用AdaBoost集成學習算法對單元分類器效果的弱性能進行提升,通過對學習步長和決策樹分類器個數(shù)這兩個參數(shù)的調(diào)優(yōu),構(gòu)建一個在訓練集和測試集上具有良好分類效果的模型,解決了傳統(tǒng)能譜分析解譜方法中,重疊的能譜數(shù)據(jù)和能譜局部特征導致識別能譜精確度低的問題,可以高精確度的對核素識別分類。 本文不足處,在于樣本數(shù)據(jù)集中的核素種類為9種固定類型,對于衰減生成的能譜數(shù)據(jù)中,能量復雜的未知能譜數(shù)據(jù)集的識別需要在下一步繼續(xù)研究。3.2 AdaBoost集成算法對獨立分類器模型的融合
4 測試結(jié)果及分析
4.1 模型參數(shù)尋優(yōu)
4.2 多重核素鑒別結(jié)果
5 結(jié) 語