【算法設計】如何利用人工神經網路對用水數據進行頻譜分析

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

題目:A Novel Approach for Predicting Monthly Water Demand by Combining Singular Spectrum Analysis with Neural Networks

作者:Salah L. Zubaidi, Jayne Dooley, Rafid M. Alkhaddar, Mawada Abdellatif, Hussein Al-Bugharbee, Sandra Ortega-Martorell

期刊:Journal of Hydrology

時間:Mar 2018

關鍵詞:Melbourne, Neural network model, Particle Swarm Optimization, Singular Spectrum Analysis, Urban water demand, Water sustainability

用水數據也是一種時間序列,數據中也包含了不同的變化趨勢和噪聲,因此同樣可以使用時間序列分析的相關手段對其進行分析。本文便以墨爾本市的一個供水區域為案例,將該區域2006-2015年各月的總用水曲線進行了匯總,並進行了頻譜分析。

在頻譜分析的方法中,本文使用了奇異譜分析的手段。奇異譜分析可以用於分析線性或非線性的時間序列,也可以用分析較短的時間序列;它不依賴於基於平穩性和線性性的任何統計假設,也不依賴於殘差的正態分布,是一種被應用於很多領域的分析手段。它的分析方法可以分為兩個步驟:第一步是將原有的時間序列進行分解,具體方法是將一段數據分別為y1,y2,…,yT的時間序列寫成形容圖1的L*K的漢克爾矩陣X:

【算法設計】如何利用人工神經網絡對用水數據進行頻譜分析

圖1 利用時間序列得到的漢克爾矩陣

該矩陣的列數K=T-L+1,行數L在本文中取12,表征不同月的諧波、趨勢與噪聲。對矩陣X進行奇異值分解,計算XX’的特徵值和相應的特徵向量,便做到了對原有時間序列的分解。

第二步則是利用分解後得到的特徵值與特徵向量進行重構。在分解後得到的奇異值中,認為奇異值較小的部分屬於噪聲,而奇異值較大的部分保留了原時間序列的主要信息。因此將原有奇異值較大的部分(除去最大的奇異值,認為其代表長期趨勢)進行重新組合,得到原矩陣的主成分,利用對角平均法便可將新矩陣重構為原有的時間序列,其計算公式見圖2。

【算法設計】如何利用人工神經網絡對用水數據進行頻譜分析

圖2 重構時間序列的計算

在圖2中,yp為重構的p時刻的數據,X為新矩陣。由此便可得到去噪後的周期性的新時間序列。

為了分析重構時間序列中各個氣候因素對供水曲線的影響,本文還使用了多層的人工神經網路進行分析。人工神經網路的計算原理見圖3。

【算法設計】如何利用人工神經網絡對用水數據進行頻譜分析

圖3 構建的人工神經網路

該網路以最大氣溫、降雨量與反射率為輸入變量,將其加權相加後得到第一隱藏層中的數據,再通過加權相加得到第二隱藏層中的數據,最後輸出得到用水數據。為了得到加權相加的參數,本文使用了粒子群算法(模擬鳥群捕食行為,通過搜尋距離「食物」最近的「鳥」的周圍區域進行尋優的算法)計算最優參數,並與常規的前饋神經網路獲取參數的方式進行了比較。利用所有數據中的70%進行率定、15%進行檢驗、15%進行驗證,計算模擬得到的用水數據與實際數據的相對平均偏差。結果表明常規的前饋神經網路模擬季節數據得到的相對平均偏差為0.02528,模擬隨機數據得到的均方根誤差為0.007879;而使用粒子群算法結合神經網路模擬季節數據得到的均方根誤差為0.02219,模擬隨即數據得到的均方根誤差為0.007689,相較常規的前饋神經網路減小了7%-12%不等。使用粒子群算法模擬得到的用水曲線與實際用水曲線見圖4。

【算法設計】如何利用人工神經網絡對用水數據進行頻譜分析

圖4 模擬用水曲線(虛線)與實際用水曲線(藍色實線),左為季節數據右為隨機數據

本文將奇異譜分析與人工神經網路相結合,對墨爾本市的一個供水區域從2006-2015年各月的總用水曲線進行了頻譜分析,以研究每個月的氣候變動對總用水量的影響。該文章將將奇異譜分析與人工神經網路進行結合,並利用了粒子群算法計算神經網路的最優參數,得到了均方根誤差小於2%(對隨機數據)的結果。該方法是一種可以用於參考的手段,如果需要對用水/排水的時間序列進行較為精確的原因分析,可以利用本文中的一些方法,發揮其作用。

https://doi.org/10.1016/j.jhydrol.2018.03.047