王 端,王威策,潘翠杰,王東東
(1.核工業(yè)研究生部,北京 102413;2.核工業(yè)西南物理研究院,四川 成都 610041;3.中國(guó)原子能科學(xué)研究院,北京 102413)
壓水堆核電站堆芯換料設(shè)計(jì)與核電廠的經(jīng)濟(jì)性和安全性密切相關(guān),一個(gè)優(yōu)選的堆芯裝載方案,可較好地展平堆芯功率分布,增加卸料燃耗深度,延長(zhǎng)堆芯換料周期,從而提高燃料利用率和核電廠安全性。堆芯優(yōu)化裝載方案的搜索是一項(xiàng)十分費(fèi)時(shí)費(fèi)力的工作,目前國(guó)內(nèi)工程設(shè)計(jì)單位通常采用手工搜索的做法。隨著中國(guó)核電迅速發(fā)展,核電運(yùn)行機(jī)組增多,欲在短時(shí)間內(nèi)優(yōu)選換料方案,換料工程師將承受較大的壓力和困難。因此,研發(fā)高效實(shí)用的堆芯換料設(shè)計(jì)軟件具有很高的工程應(yīng)用價(jià)值和實(shí)際意義。
壓水堆堆芯換料設(shè)計(jì)是在眾多換料方案中選擇最優(yōu)換料方案,本質(zhì)上是屬于多變量、非線性的動(dòng)態(tài)優(yōu)化問(wèn)題,現(xiàn)代數(shù)學(xué)理論已證明這類問(wèn)題是NP-難問(wèn)題[1-2]。目前,國(guó)內(nèi)外已圍繞該問(wèn)題利用各種優(yōu)化方法開展了大量的研究,主要分為確定性優(yōu)化方法——線性規(guī)劃、非線性規(guī)劃、動(dòng)態(tài)規(guī)劃、直接搜索、專家系統(tǒng)等[3-4],以及隨機(jī)優(yōu)化算法——模擬退火算法、遺傳算法、粒子群算法等[5-10]。但迄今為止,尚無(wú)快速搜索出全局最優(yōu)解的通用方法。其中1個(gè)主要的困難是,在每種換料方案下,堆芯參數(shù)的取得需調(diào)用專用的物理和熱工耦合程序,計(jì)算量大、耗時(shí)多。如果能開發(fā)出快速預(yù)測(cè)壓水堆堆芯參數(shù)的程序,對(duì)于節(jié)約最優(yōu)方案的搜索時(shí)間,具有非常重要的意義。
另一方面,核電廠在正常運(yùn)行和運(yùn)行瞬變中,堆芯的運(yùn)行工況處于經(jīng)常變化的狀態(tài)(如負(fù)荷追隨運(yùn)行),這些變化導(dǎo)致實(shí)際運(yùn)行中的堆芯狀態(tài)與裝料方案中的計(jì)算結(jié)果發(fā)生偏離,操縱員需及時(shí)準(zhǔn)確地了解堆芯功率因子等參數(shù)狀況。因此,研制一種能快速判斷壓水堆堆芯參數(shù)的計(jì)算機(jī)實(shí)時(shí)預(yù)測(cè)程序也是十分必要的。
在20世紀(jì)90年代,研究者開始使用各種人工智能算法進(jìn)行堆芯參數(shù)的預(yù)測(cè)。Kim等[11]開發(fā)出了基于BP(back propagation)人工神經(jīng)網(wǎng)絡(luò)的高麗一號(hào)壓水堆堆芯參數(shù)預(yù)測(cè)程序,且相對(duì)誤差在10%以內(nèi),引起了后續(xù)研究者的興趣[12]。BP人工神經(jīng)網(wǎng)絡(luò)是一種無(wú)反饋前向網(wǎng)絡(luò)[13],一般由輸入層、隱含層和輸出層構(gòu)成。作為人工神經(jīng)網(wǎng)絡(luò)的重要模型之一,BP神經(jīng)網(wǎng)絡(luò)能將給定的輸入輸出數(shù)據(jù)對(duì)中的映射關(guān)系經(jīng)過(guò)訓(xùn)練學(xué)習(xí)得到,對(duì)于未學(xué)習(xí)過(guò)的數(shù)據(jù)依然能做出非常不錯(cuò)的預(yù)測(cè),理論上具有實(shí)現(xiàn)任何復(fù)雜非線性映射功能的特點(diǎn),因而成為較成功的預(yù)測(cè)方法。但網(wǎng)絡(luò)本身存在一些缺點(diǎn)需進(jìn)一步改進(jìn),包括神經(jīng)元節(jié)點(diǎn)數(shù)難以確定、傳統(tǒng)梯度下降算法效率不高等,這也是本次工作的重點(diǎn)。
綜上所述,基于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)方法能快速準(zhǔn)確地獲得核電廠堆芯換料關(guān)鍵參數(shù),減少最優(yōu)換料方案的搜索時(shí)間,是一個(gè)具有重大研究意義的課題。但傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)存在一些問(wèn)題,影響了預(yù)測(cè)的精度。本文基于秦山二期壓水堆堆芯參數(shù)預(yù)測(cè)問(wèn)題,在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)上引入自適應(yīng)方法,通過(guò)調(diào)整學(xué)習(xí)率、權(quán)重和網(wǎng)絡(luò)節(jié)點(diǎn)數(shù),得到優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu),提高預(yù)測(cè)精度,旨為人工智能在核工業(yè)領(lǐng)域的進(jìn)一步應(yīng)用做出探索。
對(duì)于隱含層的第j個(gè)節(jié)點(diǎn)有:
(1)
(2)
對(duì)于輸出層的第j個(gè)節(jié)點(diǎn)有:
(3)
(4)
然后定義1個(gè)損失函數(shù)E:
(5)
式中,di為輸出層第i個(gè)節(jié)點(diǎn)期望輸出。
圖1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、參數(shù)示意圖Fig.1 Schematic diagram of neural network structure and parameter
傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程就是以降低損失函數(shù)E為目標(biāo),不斷調(diào)整輸入、輸出層的權(quán)值w,令期望輸出和實(shí)際輸出靠近的迭代過(guò)程。這是一個(gè)優(yōu)化問(wèn)題,通常采用梯度下降算法來(lái)優(yōu)化權(quán)值。梯度下降算法使用如下公式:
(6)
式中:n為迭代次數(shù);ε為固定學(xué)習(xí)率,ε的取值對(duì)算法的收斂性和收斂速度有較大的影響。
傳統(tǒng)的BP網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,工作方式穩(wěn)定,理論上可實(shí)現(xiàn)高精度非線性擬合,對(duì)于簡(jiǎn)單分類、非線性映射、模式識(shí)別等問(wèn)題有一定的應(yīng)用空間[14]。但傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)也有幾個(gè)較為明顯的不足,包括易陷入局部極值、學(xué)習(xí)率不可調(diào)、隱含層節(jié)點(diǎn)數(shù)難以確定及訓(xùn)練效果嚴(yán)重依賴樣本數(shù)量等。下面的研究運(yùn)用了一些優(yōu)化策略,令網(wǎng)絡(luò)通過(guò)自適應(yīng)調(diào)整一定程度上避免了上述缺陷。
1) 輸入與輸出向量的確定
BP神經(jīng)網(wǎng)絡(luò)需將原始數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的訓(xùn)練集。假設(shè)有N個(gè)訓(xùn)練樣本,則每個(gè)訓(xùn)練樣本應(yīng)為Tk=(Xk,Yk)(k=0,1,2,…,N-1),其中,Xk=[xk1,xk2,…,xki],Yk=[yk1,yk2,…,ykj],式中,i、j分別為輸入、輸出維度。
現(xiàn)有1 000組秦山二期壓水堆1/8對(duì)稱排布的反應(yīng)堆堆芯數(shù)據(jù),是通過(guò)方形組件堆芯燃料管理程序系統(tǒng)CMS計(jì)算得出,精度較高。每組數(shù)據(jù)樣本由堆芯排布方式與3個(gè)堆芯參數(shù)(有效增殖因數(shù)keff、組件功率峰因子RPF、棒功率峰因子FΔH)組成。輸入維度由反應(yīng)堆堆芯排布決定,輸出維度為堆芯參數(shù)。反應(yīng)堆堆芯排布如圖2所示。圖中每個(gè)方形位置代表1個(gè)燃耗組件,燃耗組件分為A、B、C、D 4種,分別代表新燃料燃耗組件、1次、2次、3次燃料燃耗組件,燃耗組件不可為空。共有21個(gè)組件,所以輸入維度為21。
圖2 堆芯燃耗組件排布示意圖Fig.2 Schematic diagram of core burnup assembly layout
將裝載方式轉(zhuǎn)換為向量。為保證歸一化以及形式上的對(duì)稱,在[-1,1]取等間距的4個(gè)點(diǎn),用-1表示A,-1/3表示B,1/3表示C,1表示D,組件讀入順序?yàn)橄葟纳系较?,再?gòu)淖蟮接?。以圖2為例,輸入向量X=[-1,1/3,-1,1/3,1,1,-1,-1,-1/3,1,1,-1/3,-1,1,1/3,-1/3,-1/3,-1,1,-1,-1]。為保證精度,訓(xùn)練時(shí)分別用3套獨(dú)立的網(wǎng)絡(luò)預(yù)測(cè)3個(gè)參數(shù),因此輸出維度為1。
2) 數(shù)據(jù)集分類
原始數(shù)據(jù)樣本的排布具有一定的規(guī)律性,局部特征較為明顯。為避免網(wǎng)絡(luò)過(guò)多地學(xué)習(xí)局部特征(噪聲),每次訓(xùn)練開始前均對(duì)1 000個(gè)數(shù)據(jù)隨機(jī)打亂順序,得到1個(gè)重新隨機(jī)排列的數(shù)據(jù)集A,A=[[X0,Y0],[X1,Y1],[X2,Y2],…,[X999,Y999]]。
取A的前970組數(shù)據(jù)構(gòu)成1個(gè)訓(xùn)練集T,最后30組構(gòu)成測(cè)試集B。再抽取T中的前30組數(shù)據(jù)構(gòu)成1個(gè)對(duì)照集C。網(wǎng)絡(luò)訓(xùn)練過(guò)程中只有訓(xùn)練集T參與網(wǎng)絡(luò)訓(xùn)練,測(cè)試集B只用于預(yù)測(cè)和誤差分析。對(duì)照集C參加訓(xùn)練,樣本數(shù)量與測(cè)試集B相同,其功能為分析過(guò)擬合程度。網(wǎng)絡(luò)訓(xùn)練過(guò)程中將會(huì)對(duì)比測(cè)試集B與對(duì)照集C的預(yù)測(cè)結(jié)果從而監(jiān)視過(guò)擬合情況。
BP神經(jīng)網(wǎng)絡(luò)的算法流程如圖3所示。
圖3 BP神經(jīng)網(wǎng)絡(luò)算法流程圖Fig.3 Algorithm flow chart of BP neural network
整個(gè)網(wǎng)絡(luò)的搭建基于python上的開源框架tensorflow。
1) 權(quán)重、偏置的初始化與激勵(lì)函數(shù)選取
由式(6),初始權(quán)重的值如果相同,初始輸入差別就會(huì)很小,為加速收斂,使用tensorflow內(nèi)置的truncated_normal函數(shù),產(chǎn)生[-2,2]范圍中服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)值作為權(quán)重的初始值。
神經(jīng)網(wǎng)絡(luò)的偏置一般設(shè)置為0.1~1[15],結(jié)合國(guó)外關(guān)于壓水堆的神經(jīng)網(wǎng)絡(luò)研究[11]和數(shù)值實(shí)驗(yàn),設(shè)置偏置為b=0.1。
由于本次實(shí)驗(yàn)的輸入向量歸一化后處于區(qū)間[-1,1],所以選擇映射到[-1,1]之間并且具有對(duì)稱性的tanh函數(shù)作為激勵(lì)函數(shù)。
2) 梯度下降算法的改進(jìn)與自適應(yīng)學(xué)習(xí)率優(yōu)化器的選取
自適應(yīng)學(xué)習(xí)率相對(duì)于固定學(xué)習(xí)率優(yōu)勢(shì)明顯,其能根據(jù)損失函數(shù)的變化合理調(diào)整大小,加速搜索速度。tensorflow中優(yōu)化器集成了梯度下降算法與權(quán)重更新的功能,通過(guò)實(shí)驗(yàn)比較,在眾多優(yōu)化算法中選擇損失函數(shù)最小且下降最快的AdamOptimizer算法。
AdamOptimizer是常規(guī)梯度下降算法的改進(jìn)算法。AdamOptimizer的權(quán)重更新方式如下:
(7)
mt=β1mt-1+(1-β1)gt
(8)
(9)
(10)
(11)
(12)
(13)
式中:β1、β2為衰減速率,一般設(shè)置β1=0.9,β2=0.999;gt為梯度;lr0為初始學(xué)習(xí)率,實(shí)驗(yàn)設(shè)置lr0=0.03。當(dāng)mt與vt被初始化為0向量,則它們就會(huì)向0偏置,所以做了偏差校正,即式(10)、(11),從數(shù)學(xué)上來(lái)講,mt、vt實(shí)際就是梯度的一階、二階矩估計(jì)。
AdamOptimizer相較于傳統(tǒng)學(xué)習(xí)率固定的梯度算法,通過(guò)式(12)令學(xué)習(xí)率自適應(yīng)變化,同時(shí)優(yōu)化了梯度下降算法,令整體收斂效率相對(duì)傳統(tǒng)算法得到提升,并且提高網(wǎng)絡(luò)的預(yù)測(cè)精確性。
3) 隱含層神經(jīng)元節(jié)點(diǎn)數(shù)的選取
隱含層節(jié)點(diǎn)數(shù)的選擇對(duì)于神經(jīng)網(wǎng)絡(luò)的優(yōu)化至關(guān)重要,隱含層節(jié)點(diǎn)數(shù)會(huì)直接影響網(wǎng)絡(luò)的性能。一個(gè)基本原則是,應(yīng)選擇合理的隱含層節(jié)點(diǎn)數(shù),使網(wǎng)絡(luò)的整體自由度與數(shù)據(jù)樣本數(shù)相當(dāng)。選用AdamOptimizer,迭代8 000次,測(cè)試神經(jīng)元數(shù)在70~400范圍內(nèi)的誤差變化。每間隔10個(gè)神經(jīng)元統(tǒng)計(jì)1次測(cè)試集30組數(shù)據(jù)樣本的平均相對(duì)誤差與最大相對(duì)誤差,如圖4所示。
圖4 神經(jīng)元數(shù)-誤差曲線Fig.4 Curve of neuron number and error
從圖4可得,神經(jīng)元數(shù)在[300,350]范圍內(nèi)有較好的預(yù)測(cè)精度,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)盡量緊湊的原則,選取神經(jīng)元節(jié)點(diǎn)數(shù)為300。
4) dropout方法動(dòng)態(tài)調(diào)整節(jié)點(diǎn)數(shù)
當(dāng)模型復(fù)雜而訓(xùn)練樣本數(shù)量不足時(shí),網(wǎng)絡(luò)會(huì)在學(xué)習(xí)全局特征的同時(shí)也將局部特征或噪聲特性一起學(xué)習(xí),出現(xiàn)過(guò)擬合,導(dǎo)致網(wǎng)絡(luò)失真、預(yù)測(cè)精度下降。在迭代次數(shù)8 000次的實(shí)驗(yàn)條件下,每50次記錄對(duì)照集和測(cè)試集30組數(shù)據(jù)的平均相對(duì)誤差,分析過(guò)擬合情況,繪制成圖5。
從圖5可發(fā)現(xiàn),迭代次數(shù)大于1 000次后,對(duì)照集與測(cè)試集的平均相對(duì)誤差出現(xiàn)了明顯的差距,兩個(gè)數(shù)據(jù)集之間結(jié)果的差距接近2%,出現(xiàn)過(guò)擬合現(xiàn)象。采用dropout方法降低過(guò)擬合危害。對(duì)于BP神經(jīng)網(wǎng)絡(luò),dropout方法在每次迭代優(yōu)化器更新權(quán)重后,隨機(jī)將一部分神經(jīng)元節(jié)點(diǎn)對(duì)應(yīng)權(quán)重重置為0,實(shí)際達(dá)到了動(dòng)態(tài)神經(jīng)元節(jié)點(diǎn)的效果。dropout方法的優(yōu)勢(shì)可總結(jié)為以下3點(diǎn):1) 每次迭代時(shí)各神經(jīng)元節(jié)點(diǎn)均與不同的神經(jīng)元一起訓(xùn)練,削弱了各神經(jīng)元之間的耦合性,增強(qiáng)了網(wǎng)絡(luò)的泛化;2) 增強(qiáng)了數(shù)據(jù)的特征提高了網(wǎng)絡(luò)的稀疏度;3) 每個(gè)神經(jīng)元沒有百分百參與學(xué)習(xí),使得節(jié)點(diǎn)不會(huì)過(guò)度學(xué)習(xí)。實(shí)驗(yàn)中設(shè)置dropout重置權(quán)重比率為20%,在其他條件與圖5實(shí)驗(yàn)條件一致的情況下,重新進(jìn)行實(shí)驗(yàn),繪制曲線示于圖6。
圖5 過(guò)擬合下測(cè)試集、對(duì)照集誤差對(duì)比Fig.5 Error comparison of test set and contrast set under overflow
圖6 dropout修正后測(cè)試集、對(duì)照集誤差對(duì)比Fig.6 Error comparison of test set and contrast set after dropout modification
由圖6可明顯看到對(duì)照集與測(cè)試集的平均相對(duì)誤差曲線相對(duì)于圖5有了很大的接近。測(cè)試集與對(duì)照集的差距在1%左右,相對(duì)于不使用dropout的方法差距縮小了60%以上,說(shuō)明dropout方法有效地改善了過(guò)擬合現(xiàn)象。
對(duì)3個(gè)參數(shù)的預(yù)測(cè)情況進(jìn)行了數(shù)值實(shí)驗(yàn),結(jié)果列于表1。實(shí)驗(yàn)條件設(shè)置為迭代次數(shù)為8 000次,初始學(xué)習(xí)率為0.03,神經(jīng)元節(jié)點(diǎn)數(shù)為300。獨(dú)立重復(fù)進(jìn)行10次實(shí)驗(yàn),統(tǒng)計(jì)測(cè)試集30組數(shù)據(jù)樣本的預(yù)測(cè)結(jié)果與原始數(shù)據(jù)對(duì)比后的最小相對(duì)誤差、最大相對(duì)誤差、平均相對(duì)誤差(MRE)、均方誤差(MSE),以及相對(duì)誤差小于1%的樣本數(shù)與相對(duì)誤差大于5%的樣本數(shù)。MSE與MRE由下式給出:
(14)
(15)
式中:fi為預(yù)測(cè)值;yi為實(shí)際值;n為樣本數(shù)量。MSE與MRE越小,預(yù)測(cè)效果越好。
從表1發(fā)現(xiàn),每個(gè)參數(shù)的平均相對(duì)誤差均小于2%,均方誤差均小于0.003,最大相對(duì)誤差在5%附近,說(shuō)明預(yù)測(cè)誤差小、精度較高。圖7統(tǒng)計(jì)了3個(gè)參數(shù)的誤差分布情況,84%的數(shù)據(jù)相對(duì)誤差均在2%以下,說(shuō)明預(yù)測(cè)可靠性較高。
表1 誤差分析Table 1 Error analysis
圖7 誤差分布餅圖Fig.7 Pie chart of error distribution
本文運(yùn)用新型人工智能方法——BP神經(jīng)網(wǎng)絡(luò)方法,通過(guò)自適應(yīng)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),相對(duì)于傳統(tǒng)方法,快速準(zhǔn)確地預(yù)測(cè)了秦山二期壓水堆堆芯燃料換料3個(gè)關(guān)鍵參數(shù),其結(jié)果可推廣至任意堆芯堆型、任意關(guān)鍵參數(shù)預(yù)測(cè)。該方法不需特定領(lǐng)域的專業(yè)知識(shí),只要有足夠多的數(shù)據(jù),即可實(shí)現(xiàn)精度較高的快速預(yù)測(cè),有很好的應(yīng)用前景。在核工業(yè)領(lǐng)域,對(duì)于神經(jīng)網(wǎng)絡(luò)方法的理論研究和應(yīng)用拓展,還需進(jìn)一步進(jìn)行研究。