任薈穎, 王婧, 王彥棡*
1.中國科學院計算機網(wǎng)絡信息中心, 北京 100190
2.中國科學院大學, 北京 100049
在過去的十年中,隨著計算機硬件的不斷發(fā)展,CFD(Computational Fluid Dynamics)已經(jīng)成為用于流體分析的更主要的工具。目前,對復雜流體力學系統(tǒng)進行建模主要有兩種途徑。第一種是基于理論的模型架構(gòu),即根據(jù)物理問題的控制方程,建立理想的系統(tǒng)描述;第二種則是目前比較流行的數(shù)據(jù)驅(qū)動方法[1-2],即根據(jù)系統(tǒng)仿真或試驗中的樣本數(shù)據(jù),直接構(gòu)造黑箱或灰箱模型。近年來,隨著計算機性能和精細化流動測試手段的發(fā)展,研究者能夠獲得高精度、高時空分辨率的流場信息。如何高效地利用這些大數(shù)據(jù),從中提取出關(guān)鍵信息,并指導流體力學的發(fā)展,已經(jīng)成為研究者關(guān)注的焦點。作為處理和分析數(shù)據(jù)的主要手段,數(shù)據(jù)挖掘、統(tǒng)計學習和機器學習等技術(shù),則為開展此類研究提供了重要基礎(chǔ)[3]。
雷諾時均Navier-Stokes(RANS)方程[4]提供了一種計算時間平均湍流量的有效方法,由于其計算易處理性而被廣泛使用。目前,RANS 模型在實際生產(chǎn)和工程中仍占有重要地位。而在RANS 計算的過程中,能否準確求解雷諾應力至關(guān)重要。近些年來,人們開始關(guān)注使用機器學習和深度方法來求解RANS 方程。Tracey 等人[5]使用核回歸來模擬雷諾應力各向異性特征值。該方法被證明在大量訓練數(shù)據(jù)上的應用效果較差。Tracey,Duraisamy 和Alonso[6]后來使用具有單個隱藏層的神經(jīng)網(wǎng)絡來模擬Spalart Allmaras 模型中的源項。實驗證明這些神經(jīng)網(wǎng)絡能夠重建這些源項。 Ma,Lu 和Tryggvason[7]使用神經(jīng)網(wǎng)絡代替流體閉合方程來模擬等溫氣泡流。Zhang 和Duraisamy[8]使用神經(jīng)網(wǎng)絡來預測湍流產(chǎn)生項的修正因子。該修正因子會影響預測的雷諾應力張量的幅度但不影響其各向異性。 Ling J,Ruiz A 和Lacaze G[9]等人提出使用隨機森林來預測雷諾應力各向異性。該方法被證明不能輕易地對張量數(shù)量強制執(zhí)行伽利略不變性,因此在預測完全各向異性張量方面的能力有限。Ling J,Kurzawski A 和Templeton J[10]提出一種新的深度神經(jīng)網(wǎng)絡結(jié)構(gòu)從高保真仿真數(shù)據(jù)中學習雷諾應力各向異性張量,并且他們展示了基于深度學習的雷諾應力對不同幾何形狀的流動的預測能力。這種方法被證明對DNS 仿真效果不好,并且只針對于定常流動。Kutz[11]解決了基于DL 的閉合方程應用的幾個開放性挑戰(zhàn),解決了應該選擇怎樣的訓練數(shù)據(jù)的問題。Chang 和Dinh[12]分析了五種類型的機器學習框架,討論了如何耦合機器學習框架和流體模擬的問題。Chang 和Dinh[13]后來采用了深度學習的方法來擬合雷諾應力。這種方法被證明對于非定常流動的效果擬合較差,無法擬合出精確的流場效果。
近些年來,自動機器學習技術(shù)(Auto Machine Learning,AutoML)有了長足的突破和發(fā)展。在深度學習領(lǐng)域,自動機器學習技術(shù)包含自動調(diào)節(jié)超參 數(shù)[14-15](例如學習率)、自動調(diào)整網(wǎng)絡結(jié)構(gòu)[16-17](例如神經(jīng)元的個數(shù),層數(shù)等),在深度學習領(lǐng)域取得了不錯的成績。由于在湍流問題中,不同的系統(tǒng)初始條件不同,數(shù)據(jù)的質(zhì)量千差萬別,難以使用統(tǒng)一的神經(jīng)網(wǎng)絡進行訓練。因此用深度學習中AutoML 的方法進行擬合,針對不同的數(shù)據(jù)集自動選取不同的網(wǎng)絡結(jié)構(gòu)和參數(shù)。此外本文還通過混合多種初始條件下的數(shù)據(jù)進行模型的訓練來提高擬合的精度和模型的魯棒性。實驗表明,擬合效果較之前的方法有了較大程度的提升。
機器學習中,調(diào)參和搜索網(wǎng)絡結(jié)構(gòu)被認為是一項繁瑣且耗費人力的工作。手動調(diào)參十分耗時,參數(shù)的好壞影響網(wǎng)絡的性能。 網(wǎng)格和隨機搜索需要很長的運行時間,因此誕生了很多自動調(diào)參的方法。 長期以來,高斯過程一直被認為是一種針對模型的建模損失函數(shù)的好方法[18]。高斯過程(GPs[19])具體描述為建立目標函數(shù)的概率模型,用它來選擇效果最好的超參數(shù),在真實的目標函數(shù)中進行評價。
超參數(shù)優(yōu)化的過程可以描述為:
這里(xf)表示在驗證集上評估得出的最低損失函數(shù)的值(例如,RMSE 或錯誤率);x*是產(chǎn)生該最低值的超參數(shù)集,并且x可以在超參數(shù)域χ中取任意值。簡單來說,我們想找到在驗證集度量標準上產(chǎn)生最佳分數(shù)的超參數(shù)集合。
高斯過程通過觀察過去的評估結(jié)果,計算超參數(shù)映射到目標函數(shù)得分概率的概率模型:
此函數(shù)被稱為目標函數(shù)的“代理”。高斯過程方法通過選擇最有潛力的超參數(shù)組,通過目標函數(shù)進行評估,再帶入到高斯過程模型中,進而選擇下一組超參數(shù),反復迭代。
具體的算法過程可以描述如下:
(1)建立高斯函數(shù)模型M,假設(shè)損失函數(shù)f的輸出值y與超參數(shù)x之間的關(guān)系服從M;
(2)從M中采集下一組函數(shù)值較高的參數(shù)x1+t;
(3)將x1+t帶入到損失函數(shù)f并計算出分數(shù)y1+t;
(4)將x1+t和y1+t更新到M中;
(5)重復步驟(1)到(4)直到滿足停止條件。
貝葉斯優(yōu)化方法在理論上是有效的,因為它以有根據(jù)的方式選擇了下一個超參數(shù)。它的基本思想是:花更多的時間選擇下一個超參數(shù),以減少對目標函數(shù)的調(diào)用。實際上,與在目標函數(shù)中評估花費的時間相比,選擇下一個超參數(shù)所花費的時間是很少甚至無關(guān)緊要的。通過評估,從過去的結(jié)果選取出看似更有希望的超參數(shù),貝葉斯方法可以在更少的迭代中找到比隨機搜索更好的模型參數(shù)設(shè)置。
機器學習與湍流建模相結(jié)合的研究工作是流體力學領(lǐng)域新興的熱門研究方向。現(xiàn)有的研究成果有力地驗證了其有效性和可行性,預示了機器學習在未來湍流模型應用中良好的應用前景[20]。一方面,這些研究工作以數(shù)值模擬器或?qū)嶒灝a(chǎn)生的高分辨率的數(shù)據(jù)作為驅(qū)動,一定程度上降低了機器學習模型封閉或湍流模型相關(guān)變量模型化的難度,證實了純數(shù)據(jù)驅(qū)動的機器學習黑箱模型在湍流研究應用中的有效性和可行性。另一方面,一些研究者還將機器學習用于描述和量化傳統(tǒng)模型計算結(jié)果的不確定度,對未來的建模工作具有很好的指導作用[21]。主要的研究方向和建模流程歸結(jié)為圖1所示。
圖1 機器學習應用于湍流研究的主要研究方向及流程Fig.1 Main research direction and process of machine learning applied to turbulence study
我們假設(shè)深度學習可以從不同流場區(qū)域中采集的速度場中發(fā)現(xiàn)隱藏的時間導數(shù)[13]。因此,我們可以從各種模擬時間步驟中采樣數(shù)據(jù),并使用總數(shù)據(jù)訓練神經(jīng)網(wǎng)絡。因為深度學習屬于監(jiān)督學習方法,需要輸入和輸出來訓練模型。因此,對于深度學習湍流模型,輸入應該是能表示平均流動特性的流動特征,目標為雷諾應力六個分量。我們基于RANS方程[22]選擇輸入的流動特征。RANS 方程推導輸入輸出的過程如下所示:
圖2 RANS-DL 模型Fig.2 RANS-DL model
這里是平均速度,i,j,k是方向,ρ,,τij,μ和分別為流體密度,平均壓力,雷諾應力分量,粘性系數(shù)和Kronecker delta 函數(shù)?;谖覀兊募僭O(shè),每個數(shù)據(jù)集的數(shù)據(jù)穩(wěn)定,因此不選擇時間導數(shù)作為訓練輸入。而壓力是從動量方程中單獨求解的,因此我們進一步發(fā)現(xiàn)壓力項可以從訓練輸入中排除。因此基于深度學習的湍流模型的輸入可以通過速度的空間導數(shù)來表示。使用矩陣形式顯示雷諾應力與導數(shù)算子、速度的之間的二元乘積,具有的函數(shù)關(guān)系如公式(6)所示:
由于DNN 能夠較好的解決回歸問題,我們使用DNN 來回歸擬合替雷諾應力。損失函數(shù)采用歐幾里德?lián)p失函數(shù),其中,分別為訓練數(shù)據(jù)的總數(shù),訓練結(jié)果和雷諾應力值,如公式(7)所示:
圖2 為模型的具體形式,只采用每個點的9 個速度導數(shù)作為輸入流特征,目標是它的六個雷諾應力分量。
我們假設(shè)閉包關(guān)系可以從守恒方程實驗數(shù)據(jù)和數(shù)據(jù)驅(qū)動的機器學習模型中分別導出。如圖3 所示,RANS-DL 工作流具體描述如下:
(1)首先定義了某一問題的物理幾何邊界,如模擬結(jié)構(gòu)和系統(tǒng)特性;
(2)利用該幾何邊界構(gòu)造了CFD 計算實例,包括初始條件、邊界條件等;
(3) CFD 求解器執(zhí)行模擬;
(4)從模擬中提取和處理相關(guān)數(shù)據(jù);
(5)使用這些處理后的數(shù)據(jù)來訓練神經(jīng)網(wǎng)絡。
本文采用了基于AutoML 的技術(shù),能夠根據(jù)不同的初始條件的數(shù)據(jù)集自動設(shè)計網(wǎng)絡結(jié)構(gòu)以及調(diào)整參數(shù)。本文采取貝葉斯優(yōu)化器負責自動構(gòu)建網(wǎng)絡模型結(jié)構(gòu)(例如RANS-DL 模型中隱藏層的節(jié)點數(shù),隱藏層的層數(shù)),以及自動搜索模型的參數(shù)(例如RANS-DL 模型中的學習率,學習率衰減指數(shù)以及L2 正則系數(shù))。 貝葉斯優(yōu)化器需要先用隨機搜索訓練n 個網(wǎng)絡,觀察n 個網(wǎng)絡的性能,從這些過去的經(jīng)驗中更新優(yōu)化器。主要流程和思想如圖4所示。
具體的流程如下:
(1)利用隨機搜索獲得n 個網(wǎng)絡結(jié)構(gòu)和MSE;
(2)從舊的模型結(jié)構(gòu),參數(shù)以及MSE 值生成下一輪需要搜索的模型結(jié)構(gòu)和參數(shù)用于模型訓練;
(3)模型訓練,在驗證集上驗證產(chǎn)生MSE 值;
(4)將本輪的模型結(jié)構(gòu)和參數(shù)以及得到的MSE的值再反饋到貝葉斯優(yōu)化器中;
(5) 重復步驟(1)~(4)直到達到搜索時間或者搜索網(wǎng)絡結(jié)構(gòu)得到的MSE 值達到預期,便結(jié)束得到最優(yōu)網(wǎng)絡的結(jié)構(gòu)及參數(shù)。
圖3 RANS-DL 工作流程Fig.3 RANS-DL workflow
圖4 AutoML 工作流程Fig.4 AutoML workflow
進行數(shù)值實驗來產(chǎn)生深度學習模擬雷諾應力需要的數(shù)據(jù)。采用k-ε模型求解RANS 模擬得到參考解,用于模型的訓練。圖5 描繪了Pitz 和Daily[23]提出的內(nèi)壁形狀,這是一個2D 的幾何形狀,包括一個向后的臺階和一個噴嘴。系統(tǒng)特性總結(jié)在表1 中。由于不穩(wěn)定的流動受到湍流混合層、剪切速率等的影響,因此這種幾何形狀足夠復雜。對于這種幾何形狀,k-ε模型已被驗證是可行的[24]。我們用OpenFOAM[25]中的pimpleFoam 求解器用于生成數(shù)據(jù)。
使用k-ε模型通過RANS 仿真生成訓練數(shù)據(jù)。 采用pimpleFoam 求解方程,固定時間步長5×10-10秒。為了觀察不同的系統(tǒng)初始條件對實驗結(jié)果的影響,我們設(shè)計了8 個數(shù)據(jù)集,并在表2 中列出。設(shè)計實驗如下:
(1)采用A1、A2、A3 分別訓練,并在驗證集B上驗證觀察實驗結(jié)果,觀測對訓練數(shù)據(jù)進行時間和空間的加密對測試結(jié)果有無影響;
(2)采用A1、A4、A5/A1、A6、A7 分別/混合訓練,并在驗證集B 上驗證觀察實驗結(jié)果,觀測改變訓練數(shù)據(jù)的入口流速/層流粘性系數(shù)對測試結(jié)果有無影響;
(3)采用A1、A6、A7 分別/混合訓練,并在驗證集B 上驗證觀察實驗結(jié)果,觀測改變訓練數(shù)據(jù)的層流粘性系數(shù)對測試結(jié)果有無影響。
表1 系統(tǒng)邊界信息Table 1 System boundary information
圖5 數(shù)值模擬實驗信息Fig.5 Experimental information of numerical simulation
表2 數(shù)據(jù)集信息Table 2 Dataset information
我們使用Tensorflow[26]來設(shè)計DNN 結(jié)構(gòu),激活函數(shù)采用ReLU[27],并且在每個隱藏層采用BN[28]。 模型采用Adam[29]算法作為深度學習的優(yōu)化算法來更新模型的參數(shù),例如權(quán)重w和偏差b等。模型的網(wǎng)絡結(jié)果和具體參數(shù),包含:網(wǎng)絡的層數(shù),每層隱藏單元的個數(shù)、學習率、L2 正則系數(shù)均用前文介紹的貝葉斯優(yōu)化方法進行搜索。
為了更好的展示實驗的結(jié)果,如圖5 所示,我們選取了驗證集上流場的不同區(qū)域來觀察模型訓練的效果。這些區(qū)域包含入口,臺階流,流場中較為平緩的區(qū)域以及出口處的區(qū)域,比較能代表流場的情況,從而反應出模型訓練的效果。
網(wǎng)絡結(jié)構(gòu)搜索以及參數(shù)調(diào)整的小時數(shù)為48 小時,本文做實驗的機器配置:CPU 為雙核4 線程, GPU 為Tesla V100。最終AutoML 的訓練效果如圖6 所示。經(jīng)過訓練,本文最終采用的模型參數(shù)如表3所示。
圖6 AutoML 的效果Fig.6 Effect of AutoML model
表3 模型參數(shù)Table 3 model parameter
如圖7 所示,與Chang 和Dinh[10]采用的神經(jīng)網(wǎng)絡結(jié)構(gòu)來擬合雷諾應力的效果對比,我們用AutoML 獲得的網(wǎng)絡結(jié)構(gòu)擬合效果更為優(yōu)異。
圖7 AutoML 的網(wǎng)絡結(jié)構(gòu)與之前方法的對比Fig.7 Comparison between AutoML network structure and previous methods
我們假設(shè)深度學習可以從不同流場區(qū)域中采集的速度場中發(fā)現(xiàn)隱藏的時間導數(shù),因此需要驗證訓練好的模型能否重建驗證集上的不同時刻的雷諾應力的參考解。 如圖8 所示,在模擬過程中,每個雷諾應力張量分量的MSE 隨時間保持穩(wěn)定。因此可以得出結(jié)論,DNN 模型可以學習到流場數(shù)據(jù)中隱含的時間導數(shù)信息。
圖8 雷諾應力張量分量隨時間變化擬合效果Fig.8 MSE along with the time during simulation
為了檢驗數(shù)值實驗中網(wǎng)格的疏密對深度學習網(wǎng)絡模型的訓練效果有無影響,我們將模型分別以四倍的網(wǎng)格差在不同疏密程度的數(shù)據(jù)上進行訓練,同時為了降低數(shù)據(jù)規(guī)模變化對模型訓練造成的影響,將稀疏網(wǎng)格的數(shù)據(jù)在時間采樣上加密了四倍,在驗證集上進行驗證。如圖9 所示,從粗網(wǎng)格生成的訓練數(shù)據(jù)的訓練結(jié)果與從細網(wǎng)格生成的數(shù)據(jù)訓練結(jié)果幾乎相同。
圖9 不同疏密網(wǎng)格數(shù)據(jù)訓練模型的效果Fig.9 MSE with different grid quantity
為了檢驗入口流速的改變是否會對模型的訓練結(jié)果造成影響,將模型分別在入口流速為5m/s、20m/s 以及混合多種流速的情況下進行訓練,并在驗證集上進行驗證。如圖10 所示,模型在較小的入口流速下訓練模型,會傾向于預測較小的結(jié)果;模型在較大的入口流速下訓練模型,預測的結(jié)果也會偏大;而在混合入口流速下,訓練的效果更好,模型的魯棒性也更好。
為了檢驗層流粘性系數(shù)的改變是否會對模型的訓練結(jié)果造成影響,將模型分別在層流粘性系數(shù)為 0.5e-5m/s、1e-5m/s、2e-5m/s 以及混合多種層流粘性系數(shù)的情況下進行訓練,并在驗證集上進行驗證。如圖11 所示,模型在較小的層流粘性系數(shù)下訓練模型,會傾向于預測較大的結(jié)果;模型在較大的層流粘性系數(shù)下訓練模型,預測的結(jié)果會偏??;而在混合層流粘性系數(shù)下,訓練的效果更好,模型的魯棒性也更好。
本文提出了一種用AutoML 方法建模RANS 模型 的方法,該方法使用AutoML 方法來再現(xiàn)RANS(k-ε) 數(shù)值模擬的解。通過實驗結(jié)果的分析, 可以看出基于 AutoML 的方法能夠自動構(gòu)建網(wǎng)絡結(jié)構(gòu)和調(diào)整參數(shù), 在保證準確率的情況下減少人力的工作。另外,本文還發(fā)現(xiàn)了一些有意義的結(jié)論:速度場的一階空間導數(shù)的流動特征對于重建RANS 結(jié)果是必要且充分的,模型能學到流場數(shù)據(jù)中隱含的時間導數(shù)信息;另外,在混合入口流速、層流粘性系數(shù)的數(shù)據(jù)上訓練,能使得模型的魯棒性更好. 目前,系統(tǒng)的針對湍流機器學習的特征選取的研究還相對較少。在現(xiàn)有工作積累的經(jīng)驗基礎(chǔ)上,機器學習在未來的湍流模型化中必將扮演著更加重要的角色。
圖10 不同入口流速下數(shù)據(jù)訓練模型的效果Fig.10 The effect of data training model under different inlet velocity
圖11 不同層流粘性系數(shù)下數(shù)據(jù)訓練模型的效果Fig.11 The effect of data training model under different laminar viscosity coefficient
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。