?

嵌入式粒子群-遺傳算法的水質COD檢測特征波長優化算法

2021-01-06 03:03于婷婷劉鵬勇
光譜學與光譜分析 2021年1期
關鍵詞:波長光譜粒子

漆 偉,馮 鵬,魏 彪,鄭 冬,于婷婷,劉鵬勇

重慶大學光電技術及系統教育部重點實驗室, 重慶 400044

引 言

化學需氧量(chemical oxygen demand,COD)是衡量水環境污染水平高低的最重要指標之一。利用紫外-可見光譜法構建模型對水質COD進行分析,已廣泛應用于在線水質檢測領域,具有實時、在線、原位測量、無二次污染等優點[1]。但在實際應用中,水質檢測系統會受到多方面的影響,其中檢測的光譜數據含有大量的噪聲對水質COD的分析造成嚴重干擾[2],因此,對光譜數據進行去噪是水質COD檢測的必要前提。在光譜噪聲處理方面,小波變換可以有效去除光譜噪聲,但是小波去噪后依然存在懸浮物散射、光譜信息冗余和微弱噪聲等問題。故在小波閾值去噪的基礎上,采用特征波長選取操作,特征波長選取是利用智能優化算法在原始光譜的整個波段選出最佳的幾個特征波長,用于表征原始光譜信息。

常用的智能優化算法有粒子群算法、遺傳算法、蟻群算法等。賓俊等[3]在近紅外光譜波長選擇的研究中,提出了以蟻群優化(ACO)、遺傳優化(GA)、粒子群優化(PSO)、隨機青蛙(RF)和模擬退火(SA)等智能優化算法對特征波長進行選擇的思想,找出了總氮和煙堿對應最佳光譜波長組合,結果表明利用智能優化算法選擇特征波長可以排除噪聲干擾,建立的模型可以快速準確的分析出總氮和煙堿的含量。Tang等[4]采用了基于遺傳算法和粒子群算法優化的遺傳算法-粒子群優化(GA-PSO)算法,成功實現了在消光光譜測量中選擇最佳波長,該方法具有抗噪聲的優點。Ying等[5]將連續投影算法(SPA)與四種群智能優化算法相結合,包括GA算法,PSO算法,群搜索優化器(GSO)和螢火蟲算法(FA),以用于提取有效波長變量,可以快速有效地區分蘋果汁的摻假。Li等[6]利用差分進化(DE)的波長選擇方法,消除了太赫茲時域光譜的散射和噪聲干擾問題。Zhang等[7]提出了使用等距組合多元線性回歸(ECMLR)方法進行波長選擇,在時間相關的驗證方面,ECMLR方法的預測效果比使用全光譜構建預測模型的預測效果稍好??偨Y現有的波長選取方法,大多只是利用單一的智能優化算法進行波長選擇,但單一的智能算法卻存在一定的缺陷,很少有人將多種智能算法融合成新型的智能算法進行波長選擇。

鑒于此,提出了嵌入式粒子群-遺傳(EPSO_GA)新型算法用于選取最佳特征波長,結合偏最小二乘法(PLS)[8]對紫外-可見光譜下的COD進行了定量分析。

1 嵌入式粒子群-遺傳(EPSO_GA)算法原理

粒子群(PSO)算法是一種進化計算技術,源于對鳥群捕食行為的研究,其基本思想是通過群體中粒子之間的協作和信息共享來尋找最優解[9]。遺傳(GA)算法是模擬達爾文進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種模擬自然進化過程搜索最優解的方法[10],利用選擇、交叉和突變等進化因子使得種群的適應度不斷增強,從而達到優勝劣汰的目的。PSO算法具有自組織和進化性以及記憶功能,所有粒子都保存優解的相關知識,PSO算法注重整體,側重于整體上的尋優能力,優化速度較快,局部搜索能力較差,精度不高易陷入局部極小值振蕩或在尋優過程中全部收斂于全局極值,而忽略局部最優。GA算法中變異算子是對群體中的部分個體實施隨機變異,與歷史狀態和當前狀態無關,在局部信息交流上具有良好的特性,但是效率比其他優化算法低,計算量大、運行時間長。兩者算法都容易陷入“早熟”的現象,因此在PSO算法中單個粒子更新時嵌入GA算法的選擇操作、整個種群更新時嵌入交叉操作和變異操作,形成嵌入式粒子群-遺傳(EPSO_GA)優化算法。EPSO_GA算法將已經產生的優秀個體與隨機產生的微粒個體進行交叉變異操作,使產生的微粒跳出局部極值點,并且又保留了優秀個體的特性,可以加強算法在局部和整體上的尋優能力,加快搜索的速度,在解決優化問題中更占優勢。EPSO_GA算法的主要步驟如下:

①對PSO算法與GA算法都采用實數編碼,實現編碼上的統一;

②定義n個粒子組成一個群體對D維問題空間進行搜索,根據鄰近粒子和自身的經驗不斷調整其位置x和速度v;

第i個粒子在t時刻的位置表示為

(1)

第i個粒子在t時刻的速度表示為

(2)

③PSO算法與GA算法都采用同一種目標函數,實現評價上的統一,根據求解問題定義的目標函數如式(3)所示

f(x)=min(RMSE)

(3)

RMSE是選取特征波長COD真實值與模型解算出測量值之間的均方根誤差。

④根據初始化種群參數和個體的位置、速度信息,更新PSO粒子,同時根據目標函數計算當前個體最優極值和全局最優極值。粒子i的速度由當前最優粒子的位置Pbest和所有粒子中的最優位置Gbest來更新迭代,從而更新粒子i的位置,更新公式如式(4)和式(5)

(4)

(5)

⑤嵌入GA算法的選擇算子和交叉算子,根據計算出的個體極值選擇出優良的個體,再根據交叉概率交換粒子之間的基因,將有益的基因組合,提高個體的目標函數值, 此時產生的新個體的位置表示為

(6)

⑥根據自然變異的思想,嵌入GA算法的變異算子,對粒子群按照一定的變異概率進行變異操作,保證粒子群的多樣性,產生子代粒子種群;

⑦將粒子群父代精英個體染色體與子代個體染色體合并,孕育出適應度更強的粒子種群;

⑧更新當前目標函數值,更新最優粒子的位置Pbest和所有粒子中的最優位置Gbest;

⑨重復步驟④—⑧,直到滿足結束條件,結束算法,并記錄當前粒子的目標函數值和位置。

圖1 嵌入式粒子群-遺傳優化算法流程圖Fig.1 Flow chart of embedded particle swarm optimization-genetic algorithm

在式(4)中ω是慣性權重,決定先前速度對當前速度的影響,取值一般在[0, 1]范圍。c1和c2為學習因子,經驗設置c1=c2=2,r1和r2為隨機因子,在[0, 1]區間隨機取值,Pbest是單個粒子在搜索過程中的歷史最優值,Gbest是粒子群在搜索過程中的歷史最優值。在式(6)中,α為交叉概率,一般設置α=0.7。EPSO_GA算法的流程圖如圖1所示。

2 實驗部分

2.1 光譜數據采集

利用化學方法,使用重鉻酸鉀溶液對某高校的池塘水樣、生活污水和排水溝水樣分別進行滴定,溫度為15 ℃,溶液20 mL, 測得池塘水樣COD濃度為10.4 mg·L-1、生活污水水樣COD濃度為40 mg·L-1、排水溝水樣COD濃度為12.6 mg·L-1,接著對每種水樣進行稀釋,每次加蒸餾水5 mL, 共得到46組COD標準溶液。在水體環境中,有機物對紫外-可見光的吸收遵循 Lambert Beer定律[11],因此,根據紫外-可見光的吸收度確定特定條件下的水質COD濃度值。紫外-可見吸收光譜法是基于測量水體中有機物對紫外-可見光的吸收強度來確定COD值的方法[12],使用海洋光學生產的USB2000+工業級光譜儀和長壽命、無需預熱的脈沖氙燈光源對46組COD標準溶液進行光譜采集,可得到溶液在紫外-可見光波段的吸收光譜數據。部分數據如表1所示。從中隨機選擇32組數據用作模型訓練數據集,剩余14組數據用作測試集。

表1 紫外-可見吸收光譜數據集Table 1 UV-Visible absorption spectrum data set

2.2 光譜數據預處理

由光譜儀采集到的水質吸收光譜存在大量噪聲,既有低頻的基線干擾,又有高頻噪聲的影響[13]。因此在使用吸收光譜數據構建預測模型之前需對光譜數據進行預處理。針對噪聲干擾,預處理可以濾除部分噪聲,消除相關因素對模型預測結果的影響。采取小波閾值去噪方法對現有的光譜數據進去降噪,選取“sym4”小波,將光譜信號經“sym4”小波分解得到相應的小波系數,運用極值閾值估計方法設定閾值,定義大于閾值的小波系數為有用信號產生的,將其保留,小于閾值的小波系數認定為噪聲信號,將其濾除。最后將分解之后保留的小波進行重構,即可得到降噪之后的光譜數據。原始光譜圖和預處理之后的光譜圖分別如圖2所示。在處理之后的光譜圖中可以明顯觀察到吸收峰主要分布在230~550和620~960 nm這兩個波段。但是實際上,去噪后的吸收光譜仍存在水中懸浮物的散射干擾[14],因此,需要對吸收光譜進行散射校正處理,便于后續建模的精度提升。早期研究多采用254 nm波長的吸光度為模型輸入量,但在實時在線測量時,由于水中懸浮物散射對254 nm吸光度產生干擾,導致測量結果偏差較大。為了補償水中懸浮物對吸光度造成的散射影響,本工作采用多波長的吸光度進行建模,即利用智能優化算法選擇N個特征波長作為模型輸入量。

圖2 原始光譜與去噪之后的對比圖Fig.2 Comparison between the original and denoising spectra

2.3 特征波長選擇

觀察去噪之后的光譜,發現吸收光譜中存在多個吸收峰。受益于主成分分析(principal component analysis,PCA)方法的思想,對所有數據吸收光譜的吸收峰進行篩選,結果表明每條數據的6個主吸收峰可以貢獻所有吸收峰98%的信息,故使用智能優化算法選擇6個特征波長作為模型輸入。利用PSO算法選擇特征波長,選擇均方根誤差(root mean square error,RMSE)作為目標函數,迭代200次,不斷更新粒子的位置與速度,選取的特征波長為: 289.76,386.67,445.23,542.68,777.37和787.80 nm,此時的目標函數值為0.1653。利用GA算法選擇特征波長時,同樣以均方根誤差(root mean square error,RMSE)作為目標函數,設置迭代次數為200,選取的特征波長為: 289.76,372.56,486.36,507.24,539.61和883.87 nm,此時的目標函數值為0.154 7。PSO算法和GA算法雖都具有深刻的智能背景,但在某些方面依然存在一定缺陷。在GA算法中,染色體之間相互共享信息,整個種群是比較均勻地向最優區域移動[15]。而PSO 算法的性能依賴于全局搜索和局部搜索之間(exploration and exploitation) 的平衡能力,即搜索空間的全局搜索能力和快速收斂于有希望的區域的能力,分別對應Gbest變量和Pbest變量[16], 雖然搜索速度較快,但是收斂性較差。PSO算法具有記憶,能將歷史優解都保存,但GA算法沒有記憶,以前的知識隨著種群的改變容易被破壞。為了彌補PSO算法與GA算法的缺陷,采用EPSO_GA算法選擇特征波長,EPSO_GA算法將GA算法的選擇算子、交叉算子、變異算子嵌入到PSO算法中,不僅具備了PSO算法的搜索速度和全局尋優能力,還有著GA算法的局部尋優能力。通過不斷更新以均方根誤差(root mean square error,RMSE)作為目標函數的函數值,實現粒子群的整體優化。實驗設置迭代次數為200次,尋得粒子群中的最優個體,得到最佳的6個吸收波長,6個波長分別為: 285.80,372.56,496.42,544.99,638.19和945.96 nm,此時的目標函數值為0.106 9。對比EPSO_GA算法、PSO算法、GA算法選擇特征波長的迭代流程和實驗結果,迭代流程比較圖如圖3所示,實驗測試結果如表2所示,可以明顯發現EPSO_GA既有PSO算法的收斂速度,又有GA算法的精度,EPSO_GA算法在迭代81次之后就接近收斂,而且精度得到了大大的提升,達到了0.106 9。分析選取的特征波長,基于PSO算法和基于GA算法篩選出的波長組合表征的光譜的信息不完善,不是最優組合,基于EPSO_GA算法選取的特征波長目標函數值最小, 在吸收光譜上分配的更加均勻,更具合理性, 故認為基于EPSO_GA算法篩選出的波長組合對光譜散射問題更敏感,幾乎可以表征完整的光譜信息,跳出了局部最優解,找到了近似于全局最優解的波長組合。

圖3 EPSO_GA,PSO,GA算法迭代流程比較Fig.3 Comparison of iterative processes of EPSO_GA, PSO and GA algorithms

表2 EPSO_GA,PSO,GA算法實驗結果Table 2 Experimental results of EPSO_GA, PSO and GA algorithms

3 結果與討論

將全部特征波長和根據PSO算法、GA算法、以及EPSO_GA算法選出的特征波長采用PLS方法根據訓練集的32組數據分別建立PLS,PSO_PLS,GA_PLS,EPSO_GA_PLS的水質COD預測模型,再利用構建的模型對14組測試數據進行預測,得到各個模型下水質COD預測值,表3為各個模型下的COD預測值以及與COD真實值的誤差數據。圖4是各個模型下水質COD預測值與真實值比較的曲線圖。

表3 各個模型下COD預測值與COD真實值的誤差Table 3 Errors between COD predicted values and true COD values for each model

圖4 模型效果展示圖 (a): 全光譜PLS; (b): PSO_PLS; (c): GA_PLS; (d): EPSO_GA_PLSFig.4 Performance of each model for COD prediction (a): Full-spectrum PLS; (b): PSO_PLS; (c): GA_PLS; (d): EPSO_GA_PLS

表4 各個模型的指標性能Table 4 Indicator performance of each model

根據所得數據再計算出各個模型的均方根誤差(RMSE)、平均絕對誤差(MAE)、中值絕對誤差(MedAE)、確定系數(R2)、作為模型的評估標準,RMSE指標是用來衡量預測值同真實值之間的偏差,MAE指標用于評估預測結果和真實數據的接近程度,MedAE反映模型的對異類預測的情況,值越小說明擬合效果越好,R2用來度量測試樣本是否可能通過模型被很好地預測,其值越大說明模型的效果越強,值最大為1,表4反映了各個模型指標性能。觀測各個模型下水質COD預測值與真實值相比較的曲線圖,對比各個模型的性能指標,可直觀發現在測試數據集中由全光譜建立的PLS模型效果不理想,均方根誤差太大,若將模型應用到實際場景中將會存在一定的問題。而利用特征波長選擇方法構建的PSO_PLS,GA_PLS,EPSO_GA_PLS模型較全光譜建立的模型而言,選用的特征波長大幅度減少,降低了光譜數據的冗余度,弱化了光譜散射影響,使建模更簡單,穩定性更強,效果更優。對比利用特征波長選擇方法構建的3個模型,則以EPSO_GA_PLS模型效果最優,它的均方根誤差達到了0.212 3,水質COD的預測準確率突破到了99.93%,同時異類預測的情況更少。

4 結 論

將GA算法嵌入到PSO算法,得到新型EPSO_GA算法,將EPSO_GA應用到水質COD檢測特征波長優化算法研究中,EPSO_GA算法在選取特征波長的過程中具有高收斂性、高精度解的優點。結合目前光譜法測水質COD最常用的PLS定量分析模型,建立了EPSO_GA_PLS的水質COD預測模型,比較了其與全光譜,PSO算法選擇特征波長和GA算法選擇特征波長構建的PLS水質COD預測模型的不同,分析了EPSO_GA算法選擇的特征波長組合優于PSO算法和GA算法選擇的波長組合的原因。結果表明,利用EPSO_GA算法選擇的特征波長組合表征原始光譜的信息更加完善,比PSO算法和GA算法選擇的特征波長組合的適應性更強,是紫外-可見光譜法水質COD檢測特征波長的最佳選擇,其選取的波長組合建立的PLS水質COD預測模型的復雜度較全光譜構建的模型而言大大減小,減少了特征變量的個數,解決了光譜噪聲干擾和濁度散射問題,提高了模型的預測精度。綜上所述: 基于EPSO_GA算法建立的EPSO_GA_PLS的水質COD預測模型,優化了單一智能算法的早熟和收斂速度慢的問題,弱化了噪聲干擾、光譜散射干擾,數據冗余的問題,實現了紫外-可見光譜法下COD的精準檢測。故本文提出的用EPSO_GA算法選擇特征波長建立的PLS水質COD預測模型可以為實際場景快速精準定量檢測水質COD提供有效方案,為水環境保護事業做出貢獻。

猜你喜歡
波長光譜粒子
HPLC-PDA雙波長法同時測定四季草片中沒食子酸和槲皮苷的含量
基于三維Saab變換的高光譜圖像壓縮方法
基于粒子群優化的橋式起重機模糊PID控制
基于粒子群優化極點配置的空燃比輸出反饋控制
雙波長激光治療慢性牙周炎的療效觀察
日本研發出可完全覆蓋可見光波長的LED光源
星載近紅外高光譜CO2遙感進展
便攜式多用途光波波長測量儀
苦味酸與牛血清蛋白相互作用的光譜研究
鋱(Ⅲ)與PvdA作用的光譜研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合