?

循環展開在電磁場計算中的應用

2024-03-05 00:40邢闊鵬閻秀恪任自艷
東北電力技術 2024年2期
關鍵詞:機器有限元預測

邢闊鵬,閻秀恪,任自艷

(沈陽工業大學電氣工程學院,遼寧 沈陽 110870)

0 引言

隨著特高壓電網的建設與發展,系統中電氣設備的容量和體積不斷增大[1]。在進行設備耦合物理場有限元分析時,為了實現高精度計算,必須對電氣模型進行較為精細剖分,網格數量的龐大使得計算規模變大,消耗大量的計算資源和計算時間。為了提升有限元計算效率,學者們在網格剖分、方程組求解、并行計算等方面做了很多研究[2]。

除了上述算法層級的研究,代碼層級的指令級并行技術對于程序的速度優化也存在著重要影響,例如循環展開,循環展開已被證明為加快計算機運算有效的方法,能夠直接提高程序的性能。

循環展開能夠減小循環開銷對于程序運行時間的影響,但是循環展開增加了計算代碼的數量,受到機器資源硬件的影響,不能夠總是對其完全展開。針對不同結構的循環程序進行分析,確定最佳的展開度,將會在整體上最有效地提高有限元的計算性能和計算效率。確定不同特征變量的循環計算中的最佳展開因子,大致有啟發式方法、機器學習、迭代編譯3類方法。隨著人工智能的發展,機器學習在軍事決策、醫學診斷、氣象預測等領域有著廣泛的研究和應用[3]。

對于循環展開因子的尋優,學者們通過循環特征與展開因子之間的關聯數據集,建立不同機器學習算法模型,調整參數以提高預測準確度。文獻[4]使用多種機器學習算法,交叉驗證進行準確度計算,討論了不同機器學習算法的模型準確度,在其數據集上取得了65%的準確率。文獻[5]為預測最佳展開因子,對隨機森林(random forest,RF)中的決策樹進行加權思想的改進,最終在其數據集上取得了81%的準確率。目前采用機器學習對循環展開因子的預測研究,大多基于已有的循環特征與展開因子間的關聯數據集,數據集的獲得并未提及,而這一數據集的建立也包含了循環特征與計算時間以及展開因子之間的預測與擇優,且應用于不同領域的循環特征也不相同。

本文針對工程電磁場有限元分析中的循環計算,在代碼層面研究最佳展開因子的預測。首先通過大量循環計算,建立不同循環特征、不同展開因子與計算時間的數據集,基于數據集來建立不同的機器學習算法模型并進行參數優化。然后得到特征變量到計算時間的回歸預測,選擇不同循環特征計算時間最少時對應的展開因子為最佳因子,建立循環特征與展開因子之間的關聯數據集。最后通過建立及訓練機器學習模型完成展開因子的分類預測,將預測得到的展開因子應用到1臺單相變壓器的磁場有限元計算,不同網格數量下的計算效率都得到了提高。

1 機器學習與循環展開

機器學習是現代數據科學領域不可或缺的組成部分,機器學習對于數據統計計算有著極其敏銳的分析力和洞察力[6]。通過使用統計方法,對算法進行訓練,用來實現分類或回歸預測的功能,揭示數據挖掘項目中關聯的關鍵信息,這些構成了模型的決策功能,從而有效影響最后的評估指標[7]。

機器學習是在數據和統計基礎上,對數據集中數據關聯關系的探索,數據集中的信息越豐富,機器學習的預測效果越理想。機器學習算法在建立時,首先將數據集分為訓練集、驗證集和測試集,訓練集中的數據是形成機器學習模型的基礎,對訓練集進行分析能夠形成初始算法模型,驗證集可以對算法模型進行優化時檢測模型優化前后的效果,經常用于尋找最佳超參數,測試集對最終的模型進行評估[8],機器學習模型建立的過程如圖1所示。

圖1 模型建立流程

對于循環展開,循環特征與展開因子間由計算時間來建立聯系,相同循環特征、不同展開因子對應不同的計算時間,計算時間的擇優得到這組循環特征對應的最佳展開因子。因此,對最佳循環展開因子的預測分為2個階段。第1階段建立不同循環特征、不同展開因子及計算時間的數據集,進行循環特征到計算時間的預測,這個過程屬于回歸預測,需要建立機器學習回歸模型,并進行參數優化以提高擬合度。第2階段通過回歸預測得到的數據進行擇優,建立循環特征與展開因子之間的關聯數據集,進行從循環特征到展開因子的預測,這個過程屬于分類預測,需要建立機器學習的分類模型,并進行數據預處理以提高準確度,具體流程見圖2。

圖2 數據分析流程

2 機器學習模型建立

數據集是機器學習的基礎,根據有限元分析中循環包含的信息選取表征循環的特征變量。本文選取迭代次數、運行計算1、運行計算2、基本數據類型1、基本數據類型2、語句數、一次依賴地址數、多次依賴地址數、尋址總次數、尋址數組個數、展開次數和時間作為數據內容的特征部分,在有限元計算的程序中進行大量計算,對其進行整理并總結出最終的數據集。

2.1 建立數據集

通過建立不同的學習模型對數據集進行測試和比較,選擇較好的機器學習模型進行最后的分析和計算。本文使用了多種機器學習模型進行建模分析,使用單一學習器進行分析可能會造成預測的不準確,集成算法會對這種現象產生抑制,本文分別研究了單一學習器的最近鄰(K-nearest neighbor,KNN)算法和支持向量機(support vector machines,SVM)算法的計算方法和預測效果,還研究了集成方式的RF算法及其改進版算法的預測效果。比較它們之間的指標結果,采用效果最好的模型作為最終的回歸預測模型。

2.2 建立機器學習模型

KNN算法是通過測量不同特征值之間的距離來進行預測,在回歸算法中其輸出的值為其閾值范圍內K個離測試樣本最近數據的平均值[9]。在KNN算法中,對于閾值的限定可以對偏離眾數的特殊值進行剔除,減小異常值對模型造成的不良影響[10]。

同樣使用距離來進行衡量計算的還有SVM算法,其最初是用來進行二分類,要實現各類樣本點到超平面的距離最遠,從而劃分為2類,而回歸算法則是與其相反,找到各類樣本點到超平面的距離最近實現數據的回歸擬合,但SVM算法和KNN算法比較適合用于小數據集的場合。其用到的是點到面的距離公式并將其向量化,點到面的距離公式:

(1)

分離超平面的數學表達式為ωx+b=0,將距離公式向量化后:

(2)

式中:xi為第i個特征向量;yi為類標記,取+1或-1;ω、b分別為直線的法向量和截距;‖ω‖為ω的二范數。

通過構建大量的基學習器(決策樹),RF能夠在很大程度上降低過擬合,即使有個別決策樹會因為離群值的影響而導致預測不精確,但是其預測結果是參照多個決策樹得出的結果,從而降低了離群值所造成的影響[11]。在當前機器學習算法中,具有極好的準確率,但噪音的存在會造成過擬合缺陷[12]。RF算法如圖3所示。

圖3 RF算法

信息熵是對信息多少的量化,信息熵越小含有的信息量越大。RF算法中特征重要性需要信息熵來表示,選擇重要性高的特征作為首先分裂屬性,能夠使模型計算更加準確且迅速[13]。信息熵H(D)的計算公式如下:

(3)

為了衡量不同劃分方式降低信息熵的效果,還需要計算分裂后信息熵的減少值,該減少值稱為信息增益,計算公式如下:

(4)

式中:Pi為某個類別信息所占的比例;|D|為樣本容量;假設有k個類Ck,特征A有n個不同的取值,根據取值將劃分為n個D1,D2,…,Di子集,|Di|為Di樣本個數,子集Di中屬于類Ck的樣本集合為Dik。

為了克服RF存在容易過擬合的缺點,出現了梯度提升樹(gradient boosting decison tree,GDBT)和極端梯度提升樹(extreme gradient boost,XGB)算法。GDBT利用前1輪迭代弱學習器的誤差率來更新訓練集的權重,是一種迭代方式的算法模型。通過不斷計算和擬合殘差學習1個新的樹,不斷地更新函數值得到回歸提升樹。

(5)

式中:θm為決策樹的參數;m為樹的個數;x為輸入量;T(x;θm)為決策樹,是每次使用殘差擬合的函數值。

(6)

2種方法形成的模型最大的區別就是對于訓練數據的處理及對于權重和分割節點方法的選取不同,但都是更好的對模型進行修正權重,使得模型更加快速和準確。

本文建立了上述機器學習算法的模型并對數據集進行了預測,用平均絕對值誤差(mean absolute error,MAE)、均方誤差(mean squared error,MSE)、和平均絕對偏差(mean absolute deviation,MAD)作為模型的評價指標,結果如表1所示。

表1 機器學習模型評估

由表1數據可知,數據集在KNN算法和SVM算法的擬合程度較差,所以選擇其余3種學習器進行優化和分析。而RF、XGB和GDBT 3種方法的擬合效果較好,其中RF在訓練集中表現較其他突出,但在測試集中不如XGB和GDBT,說明在此數據集中的RF泛化效果不如其他2種,但均方差等評價指標都在一個水平。RF算法測試集的真實值和預測值對比如圖4所示,可以看出RF的預測值與真實值之間誤差更小,擬合度更高,集成算法有一定的改善效果但擬合度還有待提高,將對這種情況進行進一步分析和改進。

圖4 RF算法測試集的真實值和預測值對比

2.3 參數優化

由于模型評估的分數和擬合效果并不是特別理想,選取評估指標最好的算法模型,針對RF、XGB和GDBT 3種機器學習算法采取網格搜索技術(GridSearchCV)遍歷各個學習器中設置的超參數[14],在每次迭代過程中對模型進行評價,根據計算的所有預測值中選出最佳的1套超參數組合構成最佳模型,采用過多的超參數進行優化會使計算時間過長,所以使用適當的超參數優化是必要的。

由表2可知,幾乎每個學習器經過網格搜索超參數的優化之后,評價指標都有所改進,與真實值更加接近,對模型的預測能力進行了改進提升,但在測試集上的效果尚不夠理想。

表2 優化后的模型評估

2.4 模型融合

為了提高預測值與真實值的擬合度,本文進行了3種算法之間的模型融合研究。模型融合是一種集成算法,其中包括Bagging、Boosting、Stacking等多種計算形式,在本文中主要使用Stacking堆疊法對模型進行再優化分析,Stacking法是基于模型預測結果作為新1輪預測中的特征形成的多層預測模型[15],圖5是Stacking方法的訓練過程。

圖5 Stacking訓練過程

基于對參數進行優化后的RF、XGB和GDBT算法,使用Stacking方法對原數據擬合的堆疊進行建模,對訓練集和驗證集進行預測,從而實現二次學習,達到更高的擬合度,對第2層的學習使用簡單模型降低復雜度,減小過擬合的可能性,表3的數據是模型融合后進行的評估結果。

表3 模型融合后的評估結果

由表3可知,XGB+GDBT模型融合在測試中能夠達到較其他模型更好的結果,比之前的模型評估結果更加貼近真實值,誤差變得更小,選取該模型作為回歸預測的最終模型,圖6是XGB+GDBT模型融合后的真實值與預測值對比圖,可以看到其擁有良好的數據擬合能力。

圖6 測試集真實值和預測值對比

由圖6可知,數據集在使用Stacking方式下的XGB+GDBT算法模型實現的擬合程度較高,誤差較小,完成了回歸預測。通過回歸模型,能不進行循環計算,較為準確地預測任意特征、任意展開因子循環的計算時間,從而找到某一循環特征對應的最佳展開因子,進而建立循環特征與最佳展開因子關聯的數據集?;跀祿?建立機器學習分類預測模型,實現由循環特征到最佳展開因子的預測。

2.5 分類預測

建立特征到展開因子的關聯數據集后,由于展開因子是離散的整數,之前的回歸模型則不再適用,需要重新建立分類模型。神經網絡模型在分類算法中具有處理大數據的能力,直接將原始的數據作為輸入,網絡從輸出層到輸入層對每一層進行權重的更新[16],通過Softmax公式計算能準確地處理多分類數據集,神經網絡結構如圖7所示。

圖7 神經網絡結構

在對數據集進行標準化預處理的操作后,建立了1個4層的神經網絡模型,輸入為循環展開數據集的特征,輸出是最佳展開因子的標簽,最后的模型準確率達到95%,可以準確預測最佳展開因子。圖8為模型訓練時損失和準確度的迭代過程。

圖8 模型損失和準確度曲線

3 循環展開在電磁場有限元分析中的應用

將上述模型應用到電磁場有限元分析代碼中的循環計算,預測最佳展開因子,并將展開前后的代碼用于計算1臺型號為DSP-241000/500單相變壓器的主磁場,并對展開前后的計算時間進行了對比分析。有限元計算程序由C++語言編寫,在CPU為i5-8300H、主頻為2.30 GHz、運行內存為8 GB的計算機上執行有限元計算。變壓器參數如表4所示,使用C++計算程序計算得到的磁場分布如圖9所示,變壓器磁力線分布如圖10所示。

表4 變壓器額定參數

圖9 變壓器磁場分布

圖10 變壓器磁力線分布

本文計算的是變壓器空載情況,為了計算更符合實際,選擇較為安全的低壓側進行試驗,高壓側開路。從圖9、圖10中可知變壓器的主磁場主要分布在鐵心里,磁力線在鐵心中閉合,鐵心中的磁密約為1.5 T。本文研究了不同網格下的不同單元數和不同節點數對于計算的影響,比較了展開前后的計算時間,計算的加速效果對比如表5所示。

表5 加速對比

使用不同網格剖分后進行計算,在程序中進行循環展開會提升計算速度,但網格和單元數只是影響循環的一部分變量,其他關聯數據和硬件設施等因素也會影響加速效果。

4 結語

本文使用循環展開對程序進行加速,但為了確定其中關鍵性因素——最佳展開因子,使用機器學習模型對數據集進行建模預測和分析。為了達到良好的預測效果,對比了多種機器學習模型和提升算法,通過比較而得Stacking方法的準確度最高,采用此方法建立最后的時間預測模型,由此得到最佳的影響計算速度的特征和最佳展開因子的數據集。通過建立一個神經網絡模型進行最后的多分類預測。為了驗證加速效果在變壓器的有限元計算模型中提取單元和節點信息,將展開前后的程序進行計算,得到良好的加速程度,從而可以看出選擇最佳展開因子對程序進行展開,計算有著明顯加速提升的效果。從本文可以看出使用循環展開對程序能夠進行加速提升,另外循環展開不僅能夠在串行計算中使用,也能夠在并行計算中起到加速效果,可以為其他優化創造機會,實現程序的二次加速。

猜你喜歡
機器有限元預測
無可預測
機器狗
選修2-2期中考試預測卷(A卷)
選修2-2期中考試預測卷(B卷)
機器狗
未來機器城
不必預測未來,只需把握現在
無敵機器蛛
磨削淬硬殘余應力的有限元分析
基于SolidWorks的吸嘴支撐臂有限元分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合