馮 驍,夏文澤,王 喆,*,錢志明,劉 杰,許雪喬
(1.北京華展匯元信息技術有限公司,北京 100044;2.北京首創股份有限公司技術中心,北京 100044)
作為一個水資源極度緊缺的國家,我國的水環境現狀不容樂觀,為了維護人們的正常生活,與用水相關的污水處理越發被重視。其中水質預測對于污水處理的優化調度與精準控制起到了極大的作用,比如對出水總氮,濃度預測就是評價水處理效果及程度的關鍵指標之一[1]。但是從預測控制系統的設計角度看,城市污水處理系統由于污染物質的多樣性、繁雜性和變化性,該系統變為難以預測控制的復雜流程。這些復雜特征主要體現在以下幾個方面:研究對象的復雜性、研究環境的復雜性、工藝任務的復雜性以及處理過程中包含多目標融合的復雜性,均使城市污水處理過程難以被很好解析及映射[2]。
基于上述原因,根據傳統工藝控制理論的城市污水處理過程控制系統難以取得滿意的預測及控制效果。而近年來在國內外,控制領域神經網絡預測控制系統已被廣泛應用[3]。該類系統自身具有自學習、自適應和自組織功能,特別是在模型搭建之初,無需建立數據對象精確機理關系的特點[4],可相對有效地用于復雜城市污水處理過程的映射工作,但并不是所有映射結果都十分準確。由于神經網絡模型的自身特點,它映射城市污水處理過程中必定處于模擬黑盒狀態,無法很好地詮釋控制系統的機理,使模型在模擬過程中會出現隨機誤差現象,致使控制系統無法做到準確映射污水處理過程并加以控制[5]。不僅如此,國外學者研究表明,由于誤差噪聲的引入,神經網絡會更突顯其自適應特征的屬性,使模型輸出結果更具模糊效果[6]。這類性質在某些領域具有優勢,但在精準工控領域存在致命問題,這也是本文在研究中想要避免的方向。
對此,本文研究一種基于SVR誤差補償技術的神經網絡城市污水廠水質預測模型。該模型使用BP神經網絡預測出水總氮水質,并利用預測誤差搭建補償模型,對預測結果出現的隨機誤差進行校正,起到提升水質預測精準度的作用,并最終達到準確調度城市污水廠污水處理系統的目的。同時,本文還嘗試利用馬爾科夫概率補償的方式進行隨機誤差的校正,但精度提升效果不如SVR補償模型,這也說明SVR模型在誤差補償方面體現的強大性能。
本文根據研究內容制定了模型架構,如圖1所示。該模型分為兩個模塊,其中一個為訓練模塊,另一個為水質預測模塊。在訓練模塊中,先將歷史模型分為兩份:利用第一份歷史數據搭建歷史清洗模型,并對已有數據進行清洗,再將清洗結果訓練BP神經網絡;利用另一份歷史數據通過數據清洗與訓練好的BP神經網絡預測,得到預測誤差,利用此誤差搭建SVR補償模型或馬爾科夫補償模型。在預測模塊中,利用當前實際數據進行數據清洗與BP神經網絡預測,并用前一時刻的預測誤差進行補償模型的換算對預測結果進行補償,最終得到校正后的預測結果。

圖1 模型架構圖Fig.1 Model Architecture
數據清洗是水質預測的必要步驟,可有效提高水質預測的準確度。一般情況下,對于穩定運行的大型城市污水處理廠,其歷史輸入水質數據都有一定的關聯性。根據這一性質,本文提出了一種歷史模型數據清洗算法,其主旨思想是利用已穩定運行的城市污水廠的歷史數據構建清洗算法模型,然后通過模型對新輸入的水質數據進行跳變值清洗。本文從兩個維度對輸入水質數據進行數據清洗,分別為單變量自我縱向清洗和多變量綜合橫向清洗。
1.2.1 縱向清洗方法
縱向清洗是指利用單一指標本身數值出現的頻率構建統計模型,對大概率(95%以內概率)數值出現范圍進行標定,并用此標定范圍對新數據源進行清洗。具體步驟如下。首先,將某一指標的值域通過kmeans聚類算法分為50份[7],值域分配如式(1),數據集質心更新如式(2);然后,再對所有已分類的數據集合中的點數進行統計,最后求出大概率值域。
(1)
其中:dist()——標準L2歐式距離;
C——所有已分類的數據集合的質心集合;
ci——第i個數據集合的質心;
xj——待分類的數據點。
(2)
其中:Si——已分配的第i個數據集合;
Ni——已分配的第i個數據集合的點數;
ci——第i個數據集合的質心;
xj——待分類的數據點。
1.2.2 橫向清洗方法
橫向清洗是指利用各個指標之間的關系建立關系向量,例如考察入水總氮指標時,需要聯系入水水量、入水COD、入水氨氮和入水溫度等指標綜合分析。首先,根據指標間的關系建立關系向量,再計算新舊向量間的余弦角度與馬氏距離;然后,加權處理后清洗掉小概率5%占比的奇異點數值,余弦角度如式(3),馬氏距離如式(4);最后,需對兩種橫向計算結果進行加權綜合,再對橫縱兩部分所得清洗結果進行并集處理,并最終得到清洗結果。
(3)
其中:Ai、Bi——新舊關系向量;
n——向量包含個數。
(4)
其中:xi、xj——新舊兩個關系向量的數值;
S——協方差矩陣。
馬爾科夫鏈是指數學中具有馬爾科夫性質的離散事件隨機過程。在其事態發生過程中,系統根據概率分布可以從一個狀態變到另一個狀態,也可以保持當前狀態。其實質是系統針對事態當前狀態對于即將發生的情況進行概率預測,即根據目前狀況來預測其將來時刻變動狀況[8]。應用到水質預測領域,就是根據BP神經網絡的上一時刻輸出誤差,預測這一時刻各種誤差情況的概率,具體操作如下。
在事態發展變化過程中,先設所得數據過程為符合馬爾科夫性質的隨機過程,它的序列狀態可表示為...,Xt-2,Xt-1,Xt,Xt+1,...,而在時刻Xt+1狀態的條件概率僅僅依賴于時刻Xt,如式(5)。
P(Xt-1|...Xt-2,Xt-1,Xt)=P(Xt+1|Xt)
(5)
此時可以根據序列性質設定其包含m個可能狀態,如式(6)~式(8)。
(6)
(7)
(8)
其中:m——利用誤差均值與標準差分級方法劃分為幾級;
fij——序列狀態從i經過一步轉移到狀態j的頻數;
Pij——轉移概率;
P*j——相應的邊際概率;
χ2——馬氏統計量[8]。
利用卡方檢驗驗證所得馬氏統計量是否大于卡方邊界值,大于則滿足馬氏性,小于則不滿足馬氏性[8]。經驗證,以預測誤差所得結果劃分的誤差區間矩陣滿足馬氏性,即可以利用轉移概率組成的轉移概率矩陣表達下一步水質預測誤差狀態,其中轉移矩陣效果如式(9)。
(9)
綜上所述,依據概率矩陣得到補償誤差向量,并根據補償誤差向量輸出預測結果。
SVR(support vector regression)全稱是支持向量回歸機,它是SVM(support vector machine)支持向量機對回歸問題的一種升級運用。SVM與邏輯分類器類似,是一種二分類模型,其基本模型定義為特征空間上的間隔最大的線性分類器,其學習策略是間隔最大化,SVM問題最終可以轉化為一個凸二次規劃問題的求解模型。如圖2所示,SVR回歸與SVM分類的區別在于,SVR的樣本點最終只有一類,它所尋求的最優超平面不是像SVM那樣使兩類或多類樣本點分的“最開”,而是使所有的樣本點離著超平面的總偏差最小[9]。這些屬性的直白理解為SVM是要使超平面與各個最近樣本點集合的“距離”最大化;而SVR則是要使超平面距最遠樣本集合點的“距離”最小化。因此,利用SVR的特點屬性求最優解的過程就是將已有的預測模型誤差集合通過超平面技術求得最佳描述的過程[10]。此外在國外學者研究過程中,已將它與神經網絡模型相結合,并應用于工控領域,且取得了良好的效果,如在數控機床熱誤差檢測、大氣污染物濃度預測以及污水處理廠水質預測等方面均得到廣泛的應用。而引發此現象的原因是SVR本身所具有的嚴格數學理論特性、直觀的幾何解釋和良好的泛化能力, 可以以任意精度逼近任意函數, 并能有效避免神經網絡因欠學習和過學習所引發的梯度爆炸現象[11],尤其在處理小樣本訓練學習問題上具有獨到的優越性[12]。

圖2 SVM與SVR的對比圖Fig.2 Comparison between SVM and SVR
SVR本質是通過一個非線性映射將不能線性回歸的樣本數據映射到高維進行線性回歸[13],該回歸的函數表達如式(10)。
f(x)=wTφ(x)+b
(10)
如前所述,SVR滿足兩個性質,第一個性質要求所有的樣本點離著超平面的總偏差最小,第二個要求回歸值與真實值偏離程度不太大,即無需計算損失,因此,SVR的目標函數表達如式(11)。
(11)

(12)
s.t.
(13)
通過拉格朗日方法求解式(12)~式(13)[14],并根據對偶原理進行對偶轉化得到式(14)~式(15)。
(14)
s.t.
(15)

K(xi,xj)——核函數;
c——懲罰因子。

(16)
本試驗數據是南京市某城市污水處理廠的真實數據,該廠工藝為AAO工藝。該污水處理廠內可得的指標主要為進水水質參數、過程量參數及操作參數,這些參數分別為進出水處在線儀表所獲參數、廠內重要水處理構筑物內在線儀表所獲參數,以及廠內涉及運營策略的設備運行參數。為保證預測質量,本研究的輸入值需覆蓋三類指標,以保證輸入參量的全面性[15]。由于廠內可獲得參數的限制,刨除輸出參量外,所測指標僅為13種模擬參量,其中屬于操作參數的指標有二沉池回流量。(1)選取二沉池回流量作為操作參數。(2)屬于過程量參數的指標有厭氧池ORP、厭氧池電導率、混合池溶解氧、好氧池氨氮、好氧池溶解氧,這些指標均直接參與,甚至直接指示水處理過程氨氮的代謝行為,因此全部選取。(3)屬于進水水質的指標包括進水COD、氨氮、總氮、總磷、水量、溫度及pH,但由于所選擇的時間段僅為1月內的數據,溫度和pH無明顯變化,二者只作為指示參數進行常規記錄相當于常量,溫度和pH不納入模型輸入變量。此外方差過小的數據對BP神經網絡的訓練會產生影響,因此,本文選取除溫度和pH以外的指標作為進水水質參數[16]。最終選取的模型輸入值與模型預測值如表1所示。
所有試驗數據包含連續8 d共1 152組數據,每個數據時間間隔10 min。將這些數據按照數據清洗規則進行清洗篩選,其中橫縱數據清洗權重為1∶1,清洗效果如圖3所示。由圖3可知,數據集中異常數值被刪除,清洗數據占比為總數據集的11.02%,最后剩余數據1 025組,這些數據中有820組數據設定為訓練集,剩下205組數據為測試集[17]。

表1 模型輸入參量與預測參量Tab.1 Model Input and Output Parameters
本次試驗 BP 神經網絡結構設計為 4 層網絡,一層輸入網絡,兩層隱藏層網絡,節點分別為15和3,最后一層為輸出網絡[18]。模型優化器選擇為Adam[19],學習率初始為0.01,每隔100個epoch學習率減小為原來的1/10,計算損失值以均方誤差結算(MSE)作為模型精度的評價指標。MSE的表示如式(17)[20]。

圖3 數據清洗效果Fig.3 Result of Data Cleaning
(17)
其中:n——數據集大?。?/p>
G——網絡模型,根據樣本x輸出預測向量G(x)。
模型訓練完成后,損失函數降低效果如圖4所示,可知損失函數數值已從8控制到0.005以下[21],說明模型已學到輸入參數與輸出參數之間的映射關系。

圖4 損失函數訓練效果Fig.4 Training Effect of Loss Function
搭建SVR計算模型需在SVM模型基礎上進行,即在SVM的分類基礎上引入不敏感損失函數,從而得到回歸型支持向量機SVR數學模型[22]。其中具體模型參數及步驟如下:
(1)利用BP神經網絡進行水質預測,并輸出誤差數據集;
(2)將誤差數據集分為訓練集和測試集(8∶2分布),且需要說明的是SVR輸入為誤差數據,輸出為誤差補償值;
(3)對所有數據進行歸一化處理;
(4)尋找SVR模型的最佳c參數(懲罰因子,誤差寬容度,范圍是-10~10,步進0.5)以及g參數(RBF函數的gamma,決定數據映射到新特征空間后的分布,范圍是-10~10,步進0.5)[23];
(5)創建訓練SVR模型,設置epsilon-SVR為損失函數,且epsilon設為0.1,徑向基函數選為:exp(-gamma*|u-v|2)[24];
(6)利用數據集對SVR模型進行仿真。
利用馬爾科夫鏈組成概率補償模型進行誤差補償的對比試驗[25]。先建立分級區間,利用訓練數據集的誤差矩陣均值μ與方差σ搭建6級分級區域,一般可將數據矩陣分級為:(xi>μ+σ),(μ+0.5σ 本次試驗驗證數據是依據上述南京市某污水處理廠的測試集數據整理得來,總共205組試驗數據,結果如圖5所示。 圖5 預測結果Fig.5 Forecast Results 圖5是BP神經網絡、SVR模型與馬爾科夫模型的預測結果圖,圖中縱坐標是總氮輸出值,橫坐標是樣本數(樣本順序按照時間排列),曲線為各模型預測數值的結果曲線。試驗結果如表2所示,SVR補償模型預測的測試集數據波形與測試集真實值數據波形相關度為0.93,高于其他兩種預測方式,該結果說明其曲線外形最為相似;且SVR補償模型預測值與真實值結果的歐氏距離為3種預測差值的最小值,達到0.256,說明SVR補償數值最接近真實值。通過以上結果可以表明,SVR補償模型預測數據最為準確[26]。 表2 預測對比結果Tab.2 Results of Forecast Comparison 圖6 誤差結果Fig.6 Error Results 圖6是真實值與預測模型結果之間的誤差結果圖,曲線越接近0說明預測值與真實值越接近。圖中縱坐標為總氮的預測誤差,橫坐標為樣本數(樣本順序按照時間排列),曲線為各模型預測誤差數值。其中,縱坐標的0值虛線表示0誤差,即無誤差結果。利用平均絕對誤差(AAE)、均方誤差(RMSE)以及廣義終值誤差(GFVE)指標分析SVR、馬爾科夫的補償結果[27]。由表3可知,SVR補償結果的各項誤差值均比馬爾科夫補償誤差以及無補償誤差小,說明SVR補償具有更小的穩態誤差,且其結果波動小,準確性更高。 表3 誤差對比結果Tab.3 Error Comparison Results 通過試驗,可以看到SVR的預測數據精度優于BP神經網絡單獨預測的精度,且其預測結果也優于馬爾科夫鏈誤差補償的預測結果。 針對城市污水廠污水處理反應過程復雜性及模糊性的特點,本文先以歷史模型對數據進行清洗,有效提高了數據輸入質量,之后再以BP神經網絡為基礎設計開發了SVR誤差補償模型,彌補了普通神經網絡對黑盒模型隨機誤差、機理誤差反應不足的現象,有效提高了預測水質結果的準確性。具體預測過程為:首先,通過城市污水廠傳感器收集到某一時刻的輸入數據;然后,通過數據清洗算法對輸入數據進行清洗;接著,將清洗過后的數據送入在訓練數據中訓練好的BP神經網絡,得到此時刻的預測輸出;再將前一個時刻BP網絡預測值與真實輸出值的誤差值送入早已訓練好的SVR模型,得到此時刻的補償值;最后,將BP網絡輸出的預測值與SVR輸出的補償值求和得到此時刻最終的預測輸出值。 此外,本文方法還存在一定的提升空間。第一是神經網絡預測模型的改進,通過研究可知污水處理是一個具有時序性質的過程,但簡單的BP神經網絡無法做到對時序性的描述,而以RNN、LSTM為首的循環神經網絡就可以做到,因此,之后的神經網絡改進工作可以參考這個方向進行[28]。第二是對上報數據的清洗,本文清洗的重點是圍繞數據層面,著重以數學邏輯進行清洗;但在工藝層面涉及不多,因此,之后數據清洗工作可以多從工藝邏輯方面著手研究。2.5 試驗結果




3 結論與展望