唐琳 周爽 廖先莉,2 劉澤 李波
1(成都大學(xué) 電子信息與電氣工程學(xué)院 成都 610106)
2(成都理工大學(xué) 核技術(shù)與自動化工程學(xué)院 成都 610059)
3(南洋理工大學(xué) 電氣與電子工程學(xué)院 新加坡 639798)
能譜測量的能量分辨率受脈沖高度估計(jì)精確度的影響,而脈沖高度估計(jì)的難點(diǎn)就是對畸變脈沖的估計(jì)。當(dāng)測量系統(tǒng)輸出的核脈沖寬度沒能達(dá)到數(shù)字處理單元對脈沖寬度的最低要求時(shí),這樣的脈沖被稱為截?cái)嗝}沖。截?cái)嗝}沖作為畸變脈沖的一種,經(jīng)過放大和整形,在數(shù)字化過程中得到了失真的脈沖高度,對這些脈沖高度采用多道分析器(Multichannel Analyzer,MCA)進(jìn)行分析,每一個(gè)脈沖高度都對應(yīng)著相應(yīng)道址上的一次計(jì)數(shù),當(dāng)測量系統(tǒng)輸出的脈沖因?qū)挾炔蛔愣a(chǎn)生幅度損失時(shí),該脈沖對應(yīng)的計(jì)數(shù)道址就會向左發(fā)生漂移。當(dāng)這類脈沖的數(shù)量足夠多時(shí),它也扭曲了測量得到的光譜,文獻(xiàn)[1]對成譜原理及過程進(jìn)行了詳細(xì)分析。
近幾年,作為光譜學(xué)領(lǐng)域以及輻射測量領(lǐng)域的研究熱點(diǎn),國內(nèi)外學(xué)者發(fā)表了很多關(guān)于脈沖畸變、脈沖堆積的改進(jìn)方法,可以概括為脈沖形狀甄別以及脈沖幅度計(jì)算兩個(gè)類別。從脈沖形狀甄別上來看,用于截?cái)嗝}沖最簡單、高效的方法是脈沖剔除,作者在文獻(xiàn)[1]中詳細(xì)陳述了關(guān)于截?cái)嗝}沖剔除的方法以及剔除的結(jié)果分析,與此同時(shí),該方法也存在凈計(jì)數(shù)損失的缺陷,因此,在后期的研究中又提出了脈沖衰減時(shí)間修復(fù)[2]、上升時(shí)間修復(fù)[3]、多脈沖局部成譜[4]等算法來對計(jì)數(shù)進(jìn)行補(bǔ)償。針對脈沖畸變,除了剔除與修復(fù)以外,也有學(xué)者提出將基于脈沖形狀的數(shù)學(xué)模型并將其應(yīng)用于γ射線光譜中[5]或?qū)⒒跀?shù)值方法的濾波器模型應(yīng)用于中子γ監(jiān)測[6],這兩種方法都能夠有效消除光譜失真,但也存在對脈沖形狀限制較為嚴(yán)格的缺陷。另一方面,傳統(tǒng)的脈沖幅度計(jì)算最常用的方法是數(shù)字整形濾波,包括三角整形[7]、梯形整形[8]、高斯整形[9]、雙指數(shù)脈沖響應(yīng)整形[10]、CR-RC整形[11-12]以及準(zhǔn)高斯脈沖整形[13]。這些數(shù)字整形方法對于絕大部分脈沖的幅度計(jì)算都能實(shí)現(xiàn)較高的精度,但對于本文所提的截?cái)嗝}沖,當(dāng)脈沖寬度嚴(yán)重不足時(shí)將會對脈沖高度的計(jì)算產(chǎn)生較大的影響。
近年來,深度學(xué)習(xí)技術(shù)發(fā)展迅猛,這為脈沖高度估計(jì)提供了新的思路。眾所周知,脈沖高度估計(jì)最簡單有效的方式是通過高精度模數(shù)轉(zhuǎn)換對核脈沖信號進(jìn)行數(shù)字采樣來實(shí)現(xiàn)線性展開(Linear unfolding),然后,通過尋峰算法搜索每個(gè)脈沖的峰值作為脈沖高度值[14-15],但該方式對各種類型的噪聲都不具備免疫能力。為了避免這個(gè)問題,也有學(xué)者嘗試進(jìn)行在非線性濾波器的設(shè)計(jì)[16],但設(shè)計(jì)過程較為復(fù)雜。
基于上述原因,本文旨在實(shí)現(xiàn)一種兼顧信噪比與脈沖高度估計(jì)的復(fù)合神經(jīng)網(wǎng)絡(luò)模型,考慮到UNet已經(jīng)作為濾波器模型被成功應(yīng)用在音頻源分割[17],本文以UNet的編碼-解碼為基本框架并添加了一個(gè)對時(shí)序更為敏感的長短期記憶模型(Long and Shortterm Memory,LSTM)。LSTM作為一種特殊的遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,RNN),適用于在時(shí)間軸上有相關(guān)性的事件預(yù)測,前期已經(jīng)被成功應(yīng)用于堆積脈沖的識別與分離[18-20]。本研究展示了一個(gè)由多模型進(jìn)行復(fù)合產(chǎn)生的神經(jīng)網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu)和訓(xùn)練過程,該模型用于對測量系統(tǒng)輸出脈沖進(jìn)行反卷積展開,從而在不忽略信噪比的情況下實(shí)現(xiàn)脈沖高度的準(zhǔn)確估計(jì)。
本文提出的UNet+LSTM模型用于對硅漂移探測器輸出的截?cái)嗝}沖進(jìn)行高度估計(jì)。硅漂移探測器輸出的弱電流信號經(jīng)開關(guān)復(fù)位型的前置放大電器放大后輸出堆積上升的階躍脈沖,如圖1所示。
圖1 前置放大器的輸出信號Fig.1 Output signal of a preamplifier
從圖1可以看出,前放輸出的階躍脈沖不僅是堆積上升的,而且還包含很多噪聲。因此,在制作模擬數(shù)據(jù)集的時(shí)候,為了對脈沖幅度進(jìn)行歸一化處理,用于產(chǎn)生脈沖幅度的隨機(jī)數(shù)X1服從0~1之間的均勻分布,用于產(chǎn)生噪聲幅度的隨機(jī)數(shù)X2服從0~0.05之間的均勻分布,其數(shù)據(jù)集制作過程如圖2所示。堆積上升的階躍脈沖疊加噪聲后然后再由CR微分整形器濾除直流成分并將階躍脈沖整形為負(fù)指數(shù)脈沖。負(fù)指數(shù)脈沖序列經(jīng)數(shù)字化采樣建模產(chǎn)生矩陣形式的數(shù)據(jù)集[21]。
圖2 數(shù)據(jù)集制作過程Fig.2 Generation process of datasets
為了得到完整的負(fù)指數(shù)整形脈沖,階躍脈沖需要有一定的保持時(shí)間,當(dāng)采樣頻率為50 MHz、采樣點(diǎn)數(shù)為128點(diǎn)時(shí),每個(gè)階躍脈沖的理想寬度為6.4 μs。但實(shí)際測量中測量系統(tǒng)輸出的階躍脈沖常常會包含一些寬度不夠的脈沖,如圖2中階躍脈沖序列中的最后一個(gè)脈沖所示,本文把這種脈沖寬度不足的脈沖定義為截?cái)嗝}沖。這種脈沖在經(jīng)過CR微分整形后將會以被截?cái)嗟呢?fù)指數(shù)脈沖形式呈現(xiàn)[22-24],如圖2中負(fù)指數(shù)脈沖序列中的最后一個(gè)脈沖所示。
將CR整形后的結(jié)果進(jìn)行采樣,采樣周期Ts為50 MHz,采樣點(diǎn)數(shù)128點(diǎn),生成的脈沖幅度矩陣如式(1)所示。矩陣包含N行n+1列,其中:N代表脈沖數(shù)量,n代表每個(gè)脈沖的采樣點(diǎn)數(shù),取值128。因此,矩陣(1)中每一行代表一個(gè)脈沖的128個(gè)采樣幅值以及該脈沖的真實(shí)高度。以第一個(gè)脈沖為例,第一行前128列代表該脈沖的128個(gè)采樣值,最后一列P1代表第一個(gè)脈沖的脈沖高度。根據(jù)模型訓(xùn)練需要,本文將數(shù)據(jù)集按照7∶2∶1的比例分割為訓(xùn)練集、驗(yàn)證集、測試集[25]。
為了評估截?cái)嗝}沖數(shù)量對本文所提議模型性能的影響,引入截?cái)嗦手笜?biāo)Rt,Rt表示截?cái)嗝}沖數(shù)量占總脈沖數(shù)量的比例。在數(shù)據(jù)集的制作中,生成截?cái)嗦什煌脑肼暶}沖序列1 000個(gè),每個(gè)序列包含4個(gè)脈沖,而每個(gè)脈沖由128個(gè)采樣點(diǎn)組成,因此,在模擬數(shù)據(jù)集中1 000個(gè)脈沖序列生成了512 000個(gè)樣本。在實(shí)際測量中得到的脈沖序列其截?cái)嗦释ǔS著計(jì)數(shù)率升高而升高,但通常都在25%以下,因此,在進(jìn)行截?cái)嗦史峙涞臅r(shí)候重點(diǎn)關(guān)注了25%以下的比例,模擬產(chǎn)生的數(shù)據(jù)集中,截?cái)嗦?%、10%、15%、20%、25%、35%、45%、50%、75%和100%的脈沖序列各占比10%。
本文提出一種改進(jìn)的UNet模型,其內(nèi)部結(jié)構(gòu)如圖3所示,使用§2生成的數(shù)據(jù)集訓(xùn)練模型。在模型訓(xùn)練過程中,輸入信號是疊加了噪聲的脈沖幅度矩陣,而輸出信號則是被展開的脈沖高度集合。該網(wǎng)絡(luò)包括提取信號特征的編碼器以及進(jìn)行特征融合的解碼器,不管是編碼器還是解碼器都包含4個(gè)卷積核大小為3×3的卷積塊,不同之處在于編碼器在卷積層之后使用最大池化運(yùn)算進(jìn)行下采樣,池化大小為2×2,步長為2,而解碼器則是先通過2×2轉(zhuǎn)置卷積運(yùn)算對輸入信號進(jìn)行上采樣,減少特征通道數(shù),然后再進(jìn)行卷積運(yùn)算。區(qū)別于傳統(tǒng)UNet的是改進(jìn)后的UNet在編碼器和解碼器之添加了LSTM,LSTM輸出的是特征值,因此,在特征值與損失函數(shù)之間還需要用一個(gè)全連接層進(jìn)行連接。
圖3 UNet-LSTM模型結(jié)構(gòu)示意圖Fig.3 Structural diagram of UNet-LSTM model
為了評估模型輸出和期望輸出之間的差異,均方差(Mean Square Error,MSE)被用作模型的損失函數(shù)并將損失值LMSE反饋給網(wǎng)絡(luò)來更新權(quán)重,實(shí)現(xiàn)減少后續(xù)迭代誤差的目的。模型輸出值脈沖高度集P'i與預(yù)期的輸出值Pi的誤差則可以通過損失函數(shù)來計(jì)算。對于有N個(gè)樣本的訓(xùn)練集,損失函數(shù)的計(jì)算式如式(2)所示:
圖4顯示了模型訓(xùn)練過程中LSTM的層數(shù)和batch_size的超參優(yōu)化過程,使用Adam優(yōu)化器,采用可變學(xué)習(xí)率對模型進(jìn)行訓(xùn)練,初始值為0.000 1,在1×10-5~1×10-3區(qū)間內(nèi)動態(tài)更新。如果batch_size設(shè)置得太大,可能會導(dǎo)致訓(xùn)練過程中內(nèi)存溢出,并且模型容易收斂到局部最優(yōu),從而無法完成訓(xùn)練;如果batch_size太小,則模型的收斂速度太慢,訓(xùn)練時(shí)間太長。圖4顯示了當(dāng)LSTM模型的層數(shù)為5且參數(shù)batch_size分別設(shè)置為10和100時(shí),在訓(xùn)練集和驗(yàn)證集上獲得的迭代損失值。當(dāng)batch_size為100時(shí),模型在第40個(gè)epch收斂,收斂后的損失值依然高達(dá)1.8×105;當(dāng)batch_size設(shè)置為10時(shí),模型正常收斂,并且收斂后的損失值能夠快速下降。
圖4 UNet-LSTM模型訓(xùn)練過程中的損失值變化(彩圖見網(wǎng)絡(luò)版)Fig.4 Changes in loss values during the training of the UNet-LSTM model (color online)
在對LSTM模型進(jìn)行參數(shù)優(yōu)化時(shí),理論上講,層數(shù)越多訓(xùn)練結(jié)果就越理想。當(dāng)然,梯度消失的問題也需要考慮,層數(shù)的增加會帶來更大的計(jì)算負(fù)擔(dān),因此在優(yōu)化超參時(shí)通常將層數(shù)設(shè)置為3~6。圖4顯示了LSTM層數(shù)分別為3和5時(shí)在訓(xùn)練集上獲得的損失值迭代圖。可以看出,當(dāng)batch_size為10時(shí),LSTM模型即便層數(shù)不同但衰減速度是接近的,但當(dāng)層數(shù)為3時(shí),模型收斂后的損失值仍然高達(dá)1.6×105;當(dāng)層數(shù)為5時(shí),模型不僅能夠快速收斂,而且收斂后的損失值也會快速降低。
取驗(yàn)證集中200個(gè)脈沖序列中任意5個(gè)序列進(jìn)行分析,如圖5所示,每個(gè)序列包含4個(gè)脈沖,且脈沖幅度都在0~1之間,其中序列S1包含脈沖P1~P4,截?cái)嗝}沖為P3;序列S2包含脈沖P5~P8,截?cái)嗝}沖為P6和P7;序列S3包含脈沖P9~P12,截?cái)嗝}沖為P9和P11;序列S4包含脈沖P13~P16,截?cái)嗝}沖為P14;序列S5包含脈沖P17~P20,截?cái)嗝}沖為P18和P19。
圖5 模擬脈沖序列圖Fig.5 Simulated pulse sequence diagram
為了驗(yàn)證模型脈沖高度估計(jì)的性能,對圖5所示的20個(gè)脈沖分別采用傳統(tǒng)的數(shù)字梯形成形方法和復(fù)合神經(jīng)網(wǎng)絡(luò)模型進(jìn)行脈沖高度預(yù)測。取序列S1中4個(gè)負(fù)指數(shù)脈沖如圖6中的紅色曲線所示,截?cái)嗝}沖P3在衰減過程中發(fā)生了截?cái)?,損失了截?cái)嘀蟮乃忻}沖幅度信息,導(dǎo)致成形結(jié)果的幅度有較大的損失。
圖6 梯形成形結(jié)果(彩圖見網(wǎng)絡(luò)版)Fig.6 Trapezoidal shaping result (color online)
在對模型和梯形成形結(jié)果進(jìn)行對比時(shí),用Δ表示脈沖高度估計(jì)的絕對誤差,δ表示相對誤差,Areal表示真實(shí)脈沖高度,ATrape表示通過梯形成形算法得到的脈沖高度,從而得出梯形成形對脈沖高度估計(jì)的絕對誤差ΔTrape和相對誤差δTrape的計(jì)算公式分別如式(3)和(4)所示,AUNet表示UNet-LSTM模型預(yù)測得到的脈沖高度,UNet-LSTM模型對截?cái)嗝}沖高度估計(jì)的絕對誤差ΔUNet和相對誤差δUNet的計(jì)算公式分別如式(5)和(6)所示。
對圖5所示的20個(gè)脈沖采用傳統(tǒng)的梯形成形算法以及本文提議的神經(jīng)網(wǎng)絡(luò)模型分別進(jìn)行脈沖高度分析,結(jié)果如表1所示。如前文所述,當(dāng)采樣頻率為20 MHz,采樣周期為50 ns時(shí),一個(gè)完整的負(fù)指數(shù)脈沖包含128個(gè)采樣點(diǎn),理想脈沖寬度為6.4 μs。圖5所示的發(fā)生截?cái)嗟拿}沖包括P3(包含20個(gè)采樣點(diǎn))、P6(包含30個(gè)采樣點(diǎn))、P7(包含40個(gè)采樣點(diǎn))、P9(包含50個(gè)采樣點(diǎn))、P11(包含60個(gè)采樣點(diǎn))、P14(包含80個(gè)采樣點(diǎn))、P18(包含100個(gè)采樣點(diǎn))、P19(包含120個(gè)采樣點(diǎn)),對該脈沖序列進(jìn)行梯形成形,梯形成形的上升時(shí)間包含30個(gè)采樣點(diǎn),持續(xù)時(shí)間為1.5 μs,平頂寬度為3.4 μs。
表1 神經(jīng)網(wǎng)絡(luò)模型對截?cái)嗝}沖高度的估計(jì)值與真實(shí)值的對比Table 1 Comparison between the estimated and true values of the pulse height using neural network models
在前期研究成果[2]中已經(jīng)得出傳統(tǒng)的成形算法要求負(fù)指數(shù)脈沖寬度至少大于三角成形或者梯形成形的上升時(shí)間,否則得到的成形結(jié)果就會產(chǎn)生較大的誤差,因此,本文在采用梯形成形時(shí)選擇了較小的上升時(shí)間來盡可能地避免成形誤差產(chǎn)生。從表1中梯形成形對脈沖高度的計(jì)算結(jié)果可以看出,8個(gè)截?cái)嗝}沖中僅P3的脈沖寬度小于梯形成形的上升時(shí)間,其梯形成形結(jié)果相對誤差高達(dá)21.33%,而其他截?cái)嗝}沖的相對誤差都能夠控制在5%左右,最終梯形成形算法對該序列脈沖高度估計(jì)的平均相對誤差為4.22%。采用UNet-LSTM模型對輸入脈沖序列進(jìn)行展開并進(jìn)行脈沖高度估計(jì),可以看出,估計(jì)結(jié)果并未受到脈沖截?cái)嗟挠绊懀骄鄬φ`差約為2.31%,該模型對驗(yàn)證集中200個(gè)脈沖序列進(jìn)行高度估計(jì)得到的平均相對誤差約為2.18%。
為了在實(shí)際應(yīng)用中對所提出的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行驗(yàn)證,在規(guī)定的實(shí)驗(yàn)條件下,截取相同樣品不同截?cái)嗦实拿}沖序列以及不同樣品相同截?cái)嗦实拿}沖序列調(diào)用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行脈沖高度估計(jì),其實(shí)驗(yàn)結(jié)果如表2所示。表2展示的8個(gè)脈沖序列是從實(shí)際測量得到的離線脈沖序列中截取的,其實(shí)驗(yàn)平臺的配置如下:
表2 神經(jīng)網(wǎng)絡(luò)模型對不同樣品的脈沖高度估計(jì)效果對照表Table 2 Comparison of the pulse height estimation effects of neural network models on different samples
1) KYW2000A型X光管,帶有Ag target的X射線管被用來輻照樣品,X射線管的電流被設(shè)定為8 μA,電壓保持在35 kV;
2) FAST SDD探測器(123 eV FWHM Resolution @ 5.9 keV);
3) 粉末鐵礦樣品、粉末巖石樣品;
4) 數(shù)字系統(tǒng)采用ADC9235,工作在20 MSPS,分辨率為12位。
其中:FAST SDD如圖7(a)所示,X光管如圖7(b)所示。
圖7 實(shí)驗(yàn)裝置圖片 (a) 探測器,(b) X光管Fig.7 Photographs of experimental setup (a) Detector, (b) X-ray tube
為了保守地測試本文所提的神經(jīng)網(wǎng)絡(luò)模型,測試集截取的負(fù)指數(shù)脈沖輸入信號比訓(xùn)練集和驗(yàn)證集中的輸入信號噪聲更大。探測器輸出的階躍脈沖信號經(jīng)開關(guān)復(fù)位型前置放大器和CR微分整形電路輸出負(fù)指數(shù)脈沖序列,經(jīng)數(shù)字化后將獲得的脈沖序列輸入U(xiǎn)Net-LSTM模型進(jìn)行脈沖高度估計(jì)的離線處理。從兩種樣品多次實(shí)驗(yàn)獲得的離線脈沖中分別截取截?cái)嗦蕿?5%、50%、75%、100%的實(shí)測脈沖序列進(jìn)行模型預(yù)測結(jié)果分析,結(jié)果如表2所示。
8組脈沖序列中,樣品類型不同、截?cái)嗦什煌紱]有對神經(jīng)網(wǎng)絡(luò)模型的脈沖高度估計(jì)結(jié)果有任何影響,即便是在截?cái)嗦矢哌_(dá)100%的極端情況下,本文訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型依然獲得了遠(yuǎn)優(yōu)于傳統(tǒng)脈沖估計(jì)方法的性能,在兩種樣品、8組離線脈沖序列的幅度估計(jì)中得到的平均相對誤差為2.36%。
在這項(xiàng)研究中,提出改進(jìn)的UNet模型對脈沖高度進(jìn)行估計(jì),該模型在UNet結(jié)構(gòu)的基礎(chǔ)上添加了LSTM,以模擬生成的脈沖序列作為數(shù)據(jù)集對本文提議的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和驗(yàn)證。驗(yàn)證集上的損失值在下降過程中出現(xiàn)了震蕩,最終在第46個(gè)epoch時(shí)驗(yàn)證集和訓(xùn)練集的損失值都達(dá)到了10-4的數(shù)量級,模型收斂良好。在模型驗(yàn)證環(huán)節(jié)中,取5個(gè)脈沖序列進(jìn)行脈沖高度估計(jì),其中UNet-LSTM模型對脈沖高度估計(jì)的平均相對誤差約為2.31%,相較于傳統(tǒng)的梯形成形算法對脈沖高度估計(jì)得到的平均相對誤差降低了1.91%。在粉末鐵礦樣品和粉末巖石樣品的實(shí)際測量中,不同截?cái)嗦实膶?shí)測脈沖序列也進(jìn)一步驗(yàn)證了UNet-LSTM模型的脈沖高度估計(jì)性能,在兩種樣品、8組離線脈沖序列的幅度估計(jì)中得到的平均相對誤差為2.36%。模擬與實(shí)驗(yàn)結(jié)果表明,該模型能夠準(zhǔn)確地對發(fā)生了截?cái)嗟拿}沖序列進(jìn)行脈沖高度估計(jì)。
本文提出的神經(jīng)網(wǎng)絡(luò)模型并不僅是針對特定的探測器,在今后的研究中,將重點(diǎn)考慮將該模型應(yīng)用于快速光譜學(xué),通過準(zhǔn)確預(yù)測脈沖高度來改善光譜學(xué)分析性能,這對于光譜精細(xì)化分析以及元素含量分析都是具有重大意義的。
作者貢獻(xiàn)聲明唐琳負(fù)責(zé)論文整體構(gòu)思,初稿完善;周爽直接參與論文研究,負(fù)責(zé)模型訓(xùn)練;廖先莉負(fù)責(zé)數(shù)據(jù)集制作;劉澤負(fù)責(zé)實(shí)驗(yàn)暑假數(shù)據(jù)的收集與整理;李波負(fù)責(zé)實(shí)驗(yàn)測試結(jié)果分析。