趙 炯 馬 超 周奇才 熊肖磊
同濟(jì)大學(xué)機(jī)械與能源工程學(xué)院 上海 201804
為了減少隧道施工安全問(wèn)題,發(fā)展智能化盾構(gòu)施工技術(shù),現(xiàn)在隧道施工盾構(gòu)機(jī)都往智能化方向發(fā)展[1],包括智能掘進(jìn)和智能化管片拼裝。然而,目前這方面還缺乏系統(tǒng)的、完善的掘進(jìn)適應(yīng)性決策體系和理論基礎(chǔ)[2],依據(jù)不同環(huán)境和不同地質(zhì)條件,盾構(gòu)機(jī)需要作出不同的參數(shù)調(diào)整。傳統(tǒng)方法是靠人工視情況調(diào)整各參數(shù),使其在不同環(huán)境下能正常工作,難免會(huì)有意外情況,雖問(wèn)題不大但對(duì)施工過(guò)程會(huì)有影響。所以,對(duì)智能化盾構(gòu)的研究不僅會(huì)對(duì)隧道工程的發(fā)展有很大的促進(jìn)作用[3],而且也能進(jìn)一步提高隧道施工的安全性,保障施工人員的安全和提高工程效率[4]。
針對(duì)以上問(wèn)題,利用現(xiàn)有的一系列成熟數(shù)據(jù)處理和機(jī)器學(xué)習(xí)方法將盾構(gòu)的歷史數(shù)據(jù)進(jìn)行整合和處理,將其運(yùn)用到合理的機(jī)器學(xué)習(xí)算法中,得出各類傳感器數(shù)據(jù)與推進(jìn)速度之間的模型。將實(shí)時(shí)的傳感器數(shù)據(jù)放入此模型中,從而得出此時(shí)對(duì)應(yīng)的推進(jìn)速度。
神經(jīng)網(wǎng)絡(luò)與人類的神經(jīng)網(wǎng)絡(luò)相似,是科學(xué)家從人類身上得到啟發(fā)而建立的一種學(xué)習(xí)模型。它由一個(gè)個(gè)單獨(dú)的神經(jīng)元組成,每個(gè)神經(jīng)元接收其上一層神經(jīng)元所發(fā)送的信息,經(jīng)過(guò)多個(gè)神經(jīng)元的傳遞給出最終的信息,也就是所需要的數(shù)據(jù)值[5]。
如圖1所示,多層感知器的基本結(jié)構(gòu)主要由輸入層、隱藏層和輸出層等組成。隱藏層可以有多個(gè)層次,輸入層和輸出層一般都只有一層,輸入層不同的神經(jīng)元代表的是不同的特征,輸出層是最終輸出的數(shù)據(jù),可以有多個(gè),這里只是針對(duì)本次的研究只畫出一個(gè)神經(jīng)元。
圖1 多層感知器(MLP)的基本構(gòu)成
對(duì)應(yīng)下一層的取值為
在上述表達(dá)式中,上角標(biāo)表示的是計(jì)算的下一層層數(shù),σ函數(shù)在神經(jīng)網(wǎng)絡(luò)中稱為激活函數(shù),確定激活函數(shù)也是神經(jīng)網(wǎng)絡(luò)的核心[6]。在隱藏層中,每個(gè)神經(jīng)元都存在一個(gè)激活函數(shù),數(shù)據(jù)的流向逐層傳遞,每一層處理的數(shù)據(jù)都是上一層傳遞的數(shù)據(jù),故確定隱藏層數(shù)量和激活函數(shù)在神經(jīng)網(wǎng)絡(luò)中尤為重要。本文所選輸出層的激活函數(shù)是Adam函數(shù),隱藏層一般有3種激活函數(shù)可以選擇,即非線性矯正函(Relu)、雙曲正切處理函數(shù)(Tanh)和Sigmod函數(shù)(Logistic),本文選擇的激活函數(shù)是Tanh函數(shù),可表示為
神經(jīng)網(wǎng)絡(luò)其實(shí)是一個(gè)黑盒模型,對(duì)使用者來(lái)說(shuō)可見(jiàn)的就是輸入層,輸出層,隱藏層對(duì)應(yīng)的層數(shù)、神經(jīng)元數(shù)量和激活函數(shù)。輸入層對(duì)應(yīng)的是輸入的特征值,輸出層是要得到的數(shù)據(jù)集。所以,神經(jīng)網(wǎng)絡(luò)中最重要的就是確定隱藏層的層數(shù)、每層的神經(jīng)元數(shù)量、對(duì)應(yīng)的激活函數(shù)。當(dāng)然,這些數(shù)值要依據(jù)具體數(shù)據(jù)進(jìn)行計(jì)算,多次調(diào)整對(duì)應(yīng)的參數(shù)得到最好的結(jié)果。
本文所使用的每臺(tái)盾構(gòu)機(jī)數(shù)據(jù)字段大約有400個(gè),數(shù)據(jù)大約有3萬(wàn)條左右,在此只選取1臺(tái)盾構(gòu)機(jī)的數(shù)據(jù)進(jìn)行計(jì)算。
每個(gè)盾構(gòu)數(shù)據(jù)表都有一張對(duì)應(yīng)的參數(shù)說(shuō)明,通過(guò)每一張盾構(gòu)表的參數(shù)說(shuō)明即可得知很多字段是開(kāi)關(guān)量。不僅如此,還有很多字段的數(shù)值一直為常量值,分析這些數(shù)據(jù)字段與推進(jìn)速度無(wú)直接關(guān)系,進(jìn)行數(shù)據(jù)處理時(shí)可直接刪除,經(jīng)過(guò)這一步的數(shù)據(jù)篩選留下44個(gè)字段。
本文主要研究盾構(gòu)機(jī)推進(jìn)時(shí)的推進(jìn)速度,所以除去管片拼裝時(shí)產(chǎn)生的數(shù)據(jù),即將推進(jìn)速度小于等于0的數(shù)據(jù)行刪除。
按照前2步數(shù)據(jù)篩選條件將數(shù)據(jù)進(jìn)行第1步篩選,然后數(shù)據(jù)通過(guò)數(shù)據(jù)庫(kù)導(dǎo)出并保存為CSV文件,使用Python的Pandas模塊對(duì)這個(gè)文件進(jìn)行讀取,之后使用Describe方法形成一個(gè)數(shù)據(jù)表格,如表1所示。
表1 篩選條件實(shí)際數(shù)據(jù)值
由表1可知,目前還有很多字段是不可用的,其數(shù)據(jù)有異常值,表中25%、50%、77%、99%等是將該列數(shù)據(jù)進(jìn)行排序之后處于相對(duì)應(yīng)位置的值。分析可能出現(xiàn)這些異常值的原因是在實(shí)際的工程環(huán)境中網(wǎng)絡(luò)通信異常或關(guān)鍵的傳感器出現(xiàn)問(wèn)題,亦有可能某些字段只是列出來(lái)而并無(wú)在實(shí)際過(guò)程中的應(yīng)用。刪除之后再進(jìn)行統(tǒng)計(jì)化的查看,截取部分統(tǒng)計(jì)數(shù)據(jù)如表2所示(此處截取出的數(shù)據(jù)表示在上一步處理完成之后還有異常的部分?jǐn)?shù)據(jù))。
1.1.5 文獻(xiàn)排除標(biāo)準(zhǔn) 無(wú)法獲得全文,無(wú)有效數(shù)據(jù)提取,同一作者或同一研究團(tuán)隊(duì)重復(fù)發(fā)表,孕婦合并嚴(yán)重并發(fā)癥,非隨機(jī)對(duì)照研究,回顧性研究,綜述及動(dòng)物實(shí)驗(yàn),非英文或中文的文獻(xiàn)。
表2 土壓異常值
由表2可知,土壓最小值多為-9 999,而在盾構(gòu)運(yùn)行過(guò)程中土壓不會(huì)為負(fù)值,所以在此進(jìn)行下一步操作,將土壓為負(fù)的行數(shù)據(jù)刪除。完成之后最后再查看一次數(shù)據(jù),此時(shí)有部分?jǐn)?shù)據(jù)受到影響,這些數(shù)據(jù)包括俯仰角、側(cè)滾角、方位角、刀盤液壓泵出口壓力、1號(hào)仿形刀行程、2號(hào)仿形刀行程等。在刪除土壓為負(fù)值的行后,這部分?jǐn)?shù)據(jù)均為0,對(duì)此后的數(shù)據(jù)計(jì)算無(wú)關(guān)鍵作用,在此處對(duì)其進(jìn)行刪除。
經(jīng)過(guò)上述處理后,將目標(biāo)數(shù)值列提取出來(lái)單獨(dú)作為一張表,然后在原數(shù)據(jù)上推進(jìn)速度列刪除。
使用Sklearn.Preprocessong中的MinMaxScaler模塊對(duì)剩余的數(shù)據(jù)進(jìn)行數(shù)據(jù)歸一化。數(shù)據(jù)歸一化之后,需要對(duì)每一列按照之前的命名順序進(jìn)行命名,在此加上數(shù)據(jù)對(duì)應(yīng)的每一列的名字以便后面的觀察。
對(duì)數(shù)據(jù)進(jìn)行卡方檢驗(yàn)對(duì)之前處理后的數(shù)據(jù)進(jìn)行打分,提取合適的數(shù)據(jù)特征。使用Sklearn.Feature_Selection中的SelectKBest和Chi2模塊進(jìn)行數(shù)據(jù)的卡方檢驗(yàn),在此使用的數(shù)據(jù)是之前提取的推進(jìn)速度,也就是標(biāo)簽值;另一個(gè)是進(jìn)行歸一化處理后的數(shù)據(jù)集。設(shè)置30%為測(cè)試集,70%為訓(xùn)練集,進(jìn)行訓(xùn)練打分之后的特征如表3所示。
表3 卡方計(jì)算結(jié)果
表3所示為最終選定的特征值,隨后在推進(jìn)速度預(yù)測(cè)中將用到傳感器的參數(shù)對(duì)應(yīng)的數(shù)據(jù)。
在使用神經(jīng)網(wǎng)絡(luò)前,先對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化操作,在此使用的數(shù)據(jù)不是在卡方時(shí)歸一化的數(shù)據(jù),而是在歸一化之前的原始數(shù)據(jù)。標(biāo)準(zhǔn)化數(shù)據(jù)完成后使用Sklearn Model_Selection中的Train_Test_Split模塊對(duì)其進(jìn)行訓(xùn)練集和測(cè)試集的劃分。在標(biāo)簽值使用前得到推進(jìn)速度,然后設(shè)置30%的數(shù)據(jù)為測(cè)試集,70%的數(shù)據(jù)為訓(xùn)練集。對(duì)數(shù)據(jù)和標(biāo)簽值進(jìn)行數(shù)據(jù)劃分。當(dāng)數(shù)據(jù)集劃分完成,即使用Sklearn.Neurak_Network中的MLPRegressor模塊進(jìn)行神經(jīng)網(wǎng)絡(luò)回歸算法的運(yùn)算。在計(jì)算中,選用4層隱藏層,使用這些參數(shù)的原因是通過(guò)多次的算法運(yùn)算和驗(yàn)證,數(shù)據(jù)在這些神經(jīng)元下計(jì)算能得到較好的計(jì)算結(jié)果。設(shè)置計(jì)算的最大迭代次數(shù)為40 000次,在此處一定要設(shè)置最大迭代次數(shù),如果使用默認(rèn)值迭代將有可能出現(xiàn)迭代次數(shù)不夠無(wú)法得到最后結(jié)果。在每個(gè)神經(jīng)元中都需要一個(gè)激活函數(shù),本次計(jì)算中選用Tanh,如果未激活函數(shù),隱藏層中的數(shù)據(jù)關(guān)系將是線性的,隱藏層沒(méi)有起任何作用,所以應(yīng)使用一個(gè)非線性的激活函數(shù)。梯度下降選擇Adam,其他參數(shù)設(shè)置為默認(rèn)。
在MLP神經(jīng)網(wǎng)絡(luò)中,評(píng)價(jià)回歸模型有平均絕對(duì)誤差、中值絕對(duì)誤差、可解釋方差值等評(píng)價(jià)指標(biāo),對(duì)應(yīng)的最優(yōu)值和其在Sklearn中對(duì)應(yīng)的函數(shù)如表4所示。
表4 各種評(píng)價(jià)指標(biāo)
經(jīng)過(guò)計(jì)算后,得到對(duì)應(yīng)的值為 :平均絕對(duì)誤差1.074,中值絕對(duì)誤差0.431,可解釋方差值0.996。最后使用測(cè)試集的值代入模型中得出對(duì)應(yīng)的推進(jìn)速度預(yù)測(cè)值,再將預(yù)測(cè)值和實(shí)際數(shù)據(jù)在同一副圖上表示出來(lái),如圖2所示。
圖2 預(yù)測(cè)值與實(shí)際數(shù)值結(jié)果圖
在圖2中,紅色表示實(shí)際值,藍(lán)色表示對(duì)應(yīng)的預(yù)測(cè)值。每一個(gè)數(shù)值都有一個(gè)對(duì)應(yīng)的自增標(biāo)簽,本次實(shí)驗(yàn)的數(shù)據(jù)中所用的數(shù)據(jù)一共有8 000多條,將其中的30%用作實(shí)際的目標(biāo)值,即有2 000余條數(shù)據(jù)。橫坐標(biāo)表示的是從0~2 000條數(shù)據(jù)對(duì)應(yīng)的標(biāo)簽值,2組數(shù)據(jù)中對(duì)應(yīng)數(shù)據(jù)的標(biāo)簽值是一樣的,故用標(biāo)簽值作為橫坐標(biāo)??v坐標(biāo)是預(yù)測(cè)值和真實(shí)值得具體數(shù)值,但由于數(shù)據(jù)比較多,在一張圖中無(wú)法準(zhǔn)確表達(dá),所以在這里選了4個(gè)區(qū)段的值每10個(gè)數(shù)據(jù)為一個(gè)區(qū)域,紅色線是目標(biāo)值,藍(lán)色線是預(yù)測(cè)值。在圖2a中,基本每個(gè)點(diǎn)數(shù)據(jù)都是相同的,但仍有差值,而圖上點(diǎn)的坐標(biāo)跨度較大,無(wú)法明顯看出。在圖2b、圖2c中,可以看出幾個(gè)點(diǎn)有很明顯的差異,但相差不多,在可接受范圍內(nèi)。
由圖2可知,大部分的值和真實(shí)值相接近。盡管在有的數(shù)據(jù)值上會(huì)有差異,但這些差異都保持在2左右。在實(shí)際運(yùn)行時(shí),這些差值在可接受范圍之內(nèi)的,本次模型的研究總體而言符合預(yù)期的要求。