張 鏑,呂言成1,,張 楠,魏景鋒
1(中國科學院大學,北京 100049)
2(中國科學院 沈陽計算技術研究所,沈陽 110168)
3(阜新市生態環境保護服務中心,阜新 123100)
4(遼寧省醫療器械檢驗檢測院,沈陽 110000)
隨著時代飛躍的發展和提高,人們的生活水平越來越好,城市的擴張,以及工業化的騰飛,對環境的影響是越來越大.人們慢慢將環境資源的可持續發展作為茶余飯后的話題[1],尤其是人類生存所必須的水資源,水資源中的污染物濃度值亦不可忽視,污染物個數多達數十種.因此,伴著社會的發展,水環境質量的分析,是完成環境與經濟的可持續發展的重要工作.相關部門對水資源的管理和監測也越來越重視,對各個流域的水質有著周期性的監測,但隨著環境質量的變化,水質也會跟隨著變化,主要體現在:(1)比如擴建,那原地點的水質就會發生改變.(2)比如某一處土地集中進行綠化,那么土壤的質量必然會隨著變化,這就必定導致水質量的變動.所以各個流域監測點位都是要隨著時間,伴著周圍環境質量和土壤的質量的變化而變化的.那么就必然涉及到點位優化的進行.這對實時監測水質最新的動向很有意義,也讓把控著水質的動向,對水資源更好的治理和監測[2].
水質監測過程中,點位越多,收集的信息就越多,越能詳細反映出水中污染物的真實狀況.然而,礙于監測所需要的人力、資金、設備等成本的限制,無法對區域水質進行全面,無死角的布點監測.因此,為了能得到具有代表性又具有經濟性的監測點位,就需要對大氣監測點進行優化處理.本文就是采用auto-encoder結合聚類進行水質監測的點位優化.遵循了監測點位優化的宗旨:以盡量少的數據,盡可能的代表全部的監測點位的數據.
根據要優化監測點位這一目的,選用了聚類方面的算法,由于是運用在水質監測方面,那么選取了適用于水質、地質、農業、天氣方面的聚類算法.由于樣本中高緯度的數據特征,存在各種噪聲,如果不先剔除掉多余的特征和噪聲,模型的效果會受到很大影響,但是如果只是單純的剔除某些特征,那么就會把特征之間的聯系給抹掉,聚類的結果不理想.為了解決此問題,本文采用了在聚類之前,先用神經網絡降維的方法進行特征降維,將樣本中原有的特征降維,重新生成一個更低維度的新樣本[3-6].但同時特征降維涉及到有效數據的完整性,對于高緯度的水質監測點位數據,需要將有效的數據保存到降維后的數據中,剔除無效的數據.由于數據樣本不需要進行標記,這里采用了無監督學習的auto-encoder 神經網絡[7-9].對于水質點位監測的數據,傳統的PCA 方法因為其線性降維,另外PCA 方法更依賴初始的數據,不能很好的保留有效信息的完整性,相對來講,自編碼器可以學習非線性關系,有效數據的保留更加充分,同時剔除無效的數據,泛化能力更強.圖1為研究方法的整體流程圖.

圖1 研究方法流程圖
Auto-encoder是神經網絡的一種,也是最常見的深度學習算法之一[10-13],其結構如圖2所示.Autoencoder 主要被用來降維和特征提取,另外該神經網絡屬于無監督學習,不需要標記訓練數據,這也是本文采用此種方法的原因[14].
自動編碼器包括三層神經網絡,第一部分是輸入層,第二部分是隱藏層,隱藏層可以為多層,第三部分是輸出層,輸入層n個神經元對應樣本中的特征,隱藏層k(k 圖2 Auto-encoder 神經網絡結構示意圖 輸入層和隱藏層之間計算: 在隱藏層和輸出層之間計算: 其中,f是激活函數,本文選擇Sigmoid 激活函數: 輸出層a3各個節點值和輸入層a1的各個節點值存在很大誤差.為了讓輸入層和輸出層盡量一致,利用反向傳播算法,通過輸入層和輸出層產生的誤差來更新各層之間的權重矩陣Wij、和隱藏層、輸出層的偏置b2、b3.此神經網絡用到的是BP算法,思想是采用的梯度下降的算法,即微積分的鏈式偏導的傳遞求值[15].本文所采用的梯度下降算法:每次只選n個樣本中的一個樣本進行梯度下降,每次更新需要的時間少,由于水質監測點位本身并不多,所以迭代至收斂的次數可以容忍,另外適當的學習速率可以平衡訓練的速度和收斂到最優點的穩定性.對于水質點位監測的數據,單隱層的自編碼器模型易理解,訓練成本不高,無論是在計算成本還是精度方面,自編碼器都是可行的.本文選用簡單的單隱層自編碼器,相對于堆疊式的自編碼器,不容易發生梯度彌散和梯度爆炸. 取誤差公式: 對權重進行鏈式求導并更新: 由于輸入層到隱藏層的權重參數矩陣和隱藏層到輸出層的權重參數矩陣互為轉置關系,因此,只需要把后者的權重轉置賦值到前者. 對偏置b3進行鏈式求導并更新: 對偏置b2進行鏈式求導并更新: 式中,η是學習速率. 整個auto-encoder 算法偽代碼如算法1. 算法1.Auto-encoder 1.初始化auto-encoder 中各層之間的連接權重、偏置和學習速率.2.for all 數據集中每一個樣本do 3.while (對于當前樣本)do 4.根據式(1),式(2)計算隱藏層的輸出值;5.根據式(3),式(4)計算輸出層的輸出值;6.根據式(5)計算輸入層和輸出層的誤差;7.if (達到停止條件) 8.break;9.else if 10.根據式(6)~式(8)更新權值和偏置;11.end if 12.end while 13.end for 14.得到更新所有樣本之后最新的權值和偏置;15.for all 數據集中每一個樣本 do 16.根據式(1),式(2)計算隱藏層的輸出值;(此步驟,特征提取并降維)17.將降維后的新樣本存入文件中保存;18.end for 本文采用聚類中的系統聚類方法對上述神經網絡降維的數據樣本進行分類.對于沒有預先處理的水質點位監測數據,模糊聚類算法是最適合的.但是由于數據及預先用神經網絡進行了降維處理,特征數量減少,原本監測點位有限,因此本文選用了適用于少量特征、少量點位的系統聚類法,并且運行速度有一定的提升.首先,將類別分為n類,即每個監測點位分為一類,計算各類之間的距離,找出所有類間距中的最短距離的兩個類,并合并他們為一個新類,重新計算n?1個類的類間距,找出最短距離并歸類,直到所有類都歸為一類[16]. 歐式距離公式為: 系統聚類算法偽代碼如算法2. 算法2.系統聚類算法1.將降維后的數據樣本分為類2.for all 類別do 3.計算類間距;4.找出類間距中的最短間隔距離;5.找到最短間隔的兩個類,合并他們;n=n?1 n 6.合并之后新的類別數目為;n=1 7.if ()8.break;9.end for 本文數據集來源為某市實時監測的各個斷面的水質污染物濃度值. 首先對數據進行預處理,將數據映射到(0,1)之間,即標準化處理,公式如下: 其中,xnorm表示標準、歸一化處理后的數據,x表示原數據,xmin表示的是所有監測點位中每個污染物的最小濃度值,xmax表示的是所有監測點位中每個污染物的最大濃度值. 實驗過程如圖1所示,將標準化、歸一化處理后的數據輸入自編碼器神經網絡,初始化各層之間的權重參數,初始化隱藏層和輸出層的偏置參數,開始訓練.將自編碼器神經網絡降維后的新數據樣本聚類分析,產生點位優化的結果. 本文首先檢驗原點位與優化后的點位之前的相關性,在給定 α=0.05顯著性程度,f=n?2=3,查表r表=0.878,r計>r表,相關性結果如表1. 表1 相關性檢驗 為進一步驗證,本文采用F檢驗法—方差齊性檢驗和t檢驗法驗證原點位與優化后的點位之間所監測的數據是否具有一致性.結果如表2.所采用的公式為: 表2 一致性檢驗 為了進一步驗證優化后的點位選擇更加精準,本文通過姚式指數公式同時計算優化后與優化前的水質量指數和原點位的水質量指數進行比較.結果如表3,公式如下: 表3 質量指數對比 根據神經網絡降維結合聚類所產生的點位選擇結果如圖3. 圖3 實驗結果圖 如圖3所示,神經網絡降維結合聚類的算法選出了從9 個監測點位中選出了5 個監測點位.而原本單獨使用的模糊聚類算法選出的是6 個監測點位.根據表1所示的相關性檢驗,表明原點位與優化后的各污染物濃度密切相關,無明顯差異性.根據表2結果,進一步證實了原點位和優化后點位各污染物這兩組數據評價結果一致,表明優化后的點位可以替代原點位.根據表3結果,表明本文所選的點位優化算法所產生的5 個點位的質量指數,比模糊聚類算法產生的6 個點位更接近原本的9 個點位的質量指數.綜上所述,本文所選算法所產生的點位更能代表全部的9 個監測點位. 本文針對水質點位優化提出了一種神經網絡結合聚類的點位優化算法,通過神經網絡對數據進行降維處理,并通過系統聚類的方法選出合適的點位.本文所提出的方法相較于單一的聚類方法,減少了點位的選擇,并且提高了點位選擇的準確性,實現了以盡量少的點位,保證數據的代表性.










1.2 聚類分析


2 實驗分析
2.1 數據預處理

2.2 實驗過程
2.3 評價指標





2.4 結果分析

3 結論