繼續進行預估的工作,在嘗試了GM(1,1),ARIMA之後,想要嘗試LSTM循環神經網絡做預估,希望能得到一個令人滿意的結果,提取了《基於LSTM循環神經網絡的交通流量預測》文章中部分內容,這篇文章把模型原理寫的非常清晰,這裏記錄下來,便於後續理解參考。
神經網絡介紹
- 人工神經網絡的操作兩類:訓練操作、召回操作;
- 人工神經元的結構可描述如下:
- 神經元的輸入向量 :
- 連接權值向量
-
閾值及連接權值
假設神經元j的閾值爲θj,若閾值節點的偏置固定表示爲=1,連接權值表示爲=-
ps:對於閾值的理解如下圖:
-
神經元j的加權輸入和爲
-
激勵函數f()
f()稱爲激勵函數,神經元j的輸出狀態爲:
常用激勵函數的形式有:-
線性函數:
-
閾值型函數:
-
非線性函數:
Sigmoid函數
在s處的斜率決定了增益的大小:
雙曲正切函數
Sigmoid函數和雙曲正切函數形狀相同s型曲線,輸入信號大小[-1,1],選用雙曲正切函數。 -
概率型函數
輸出0,1的概率:
-
-
綜上神經元j的輸出爲:
與包含與時,
BP神經網絡
BP神經網絡全稱是誤差反向傳播神經網絡,BP神經網絡的輸入層神經元收到輸入模式對後,得到激活值通過隱藏層傳輸至輸出層,輸出層個神經元得到實際相應輸出後,計算實際的相應輸出與期望輸出的差值得到兩者之間的誤差後,順着誤差梯度減少的方向由輸出層到隱含層再到輸入層修正各層神經元的連接權值,反覆執行,直到誤差降低到預先設定的範圍或則和執行步數到達預先設定的上限。
- 算法描述如下
以3層BP神經網絡爲例分佈算法如下
- 變量定義:
- 輸入模式向量,m爲學習模式對個數,n爲輸入層單元個數:
- 與輸入模式向量對應的期望輸出向量,q爲輸出層單元的個數;
- 中間隱藏層的獲取的淨輸入向量,p爲隱藏層單元個數
- 隱藏層的輸出向量
- 輸出層的淨輸入向量,q爲輸出層單元的個數
- 實際輸出向量
- 輸入層到隱含層的連接權值
- 輸入層到隱含層的閾值
- 隱含層到輸出層的連接權值
- 隱含層到輸出層的閾值
- 算法流程:
- 1)初始化,給連接權值W,V,閾值θ,β賦予初始值;
- 2)提供學習模式對( Xk, Yk )給輸入層;
- 3)計算輸入層的輸出,輸入層對於輸入模式不做任何運算,僅將其傳遞至隱含層;
- 4)計算中間隱含層各個神經元的淨輸入和輸出
- 5)計算輸出層各個神經元的淨輸入和輸出
- 6)根據期望輸出,計算輸出層各個神經元的實際誤差dtk
- 7)計算隱含層的校正誤差
- 8)調整隱含層與輸出層之間的連接權值V以及輸出層中各個神經元的閾值β,其中α爲學習速率α∈[0,1]
- 9)調整輸入層與隱含層之間的連接權值W以及隱含層中各個神經元的閾值θ,γ爲學習速率,γ∈[0,1]
- 10)提供新的學習模式對,跳轉至步驟3,如此往復循環只到所有的學習模式對完成訓練。
- 11)若網絡的全局誤差E滿足誤差精度E≤ε,則終止,跳至步驟13結束訓練;
- 12)更新網絡訓練步數,如訓練步數未達到預先設定步數的上限,則返回步驟2);
- 13)結束
LSTM循環神經網絡
LSTM是指一個在時間序列上重複發生的結構,從結構上來看,常規循環神經網絡可以解決現實中碰到的長期依賴問題。網絡結構圖如下,其中xt表示t時刻輸入層的輸入,ht是t時刻輸出層的輸出,A爲模型的隱層,前一時刻經過隱層處理的信息不僅可以傳遞至輸出層,還可傳遞到後一時刻作爲隱層的輸入之一:
- 算法描述
LSTM循環神經網絡具有記憶功能的關鍵在於隱層中的各個隱層單元可以相互連接,如下圖:
結合上圖, LSTM算法學習過程分爲三步 - 1)決定從單元舊狀態中丟棄哪些信息,通過“遺忘門限”記爲S層處理,S層輸出[0,1]區間的數字,其中輸出1表示完全保留,輸出0表示完全遺忘,爲舊狀態信息保留量,當前輸入爲,前一刻的輸入爲,σ爲S層函數,爲“遺忘門限”記爲S層的權值向量,爲S層閾值
保留信息量爲:
- 2)決定在單元狀態中存儲哪些新信息,更新單元狀態;
a. 通過S層進行異常運算率決定更新哪些值;
當前單元狀態中儲存的新信息爲:
b. 通過tanh層進行一次運算創建新的處於可添加狀態的候選值向量;
候選變量爲:
c. 更新當前舊單元狀態,進入新的單元狀態
則,當前新單元狀態爲:
- 3)決定要輸出哪些單元狀態於輸出部分。通過“輸出門限”的S層決定要輸出的單元狀態;
設爲要輸出單元狀態的權值向量,爲要輸出單元狀態的閾值,則輸出的單元狀態爲:
爲輸出部分,則:
- BP神經網絡與LSTM循環神經網絡的區別
(1).BP神經網絡是一種無反饋、層內無互連結構的前向型網絡;
(2).BP神經網絡相鄰兩層之間的神經元彼此全部相連,但是各個神經元之間互不連接,即前一時刻的學習和後一時刻的學習不存在關係,隨着學習步數增大,網絡會有學習新樣本遺忘舊樣本的趨勢;
對比LSTM孫環神經網絡:
(1).LSTM循環神經網絡中隱含層各個節點點是相互連接的,前一時刻學習到的特徵與規律傳遞至後一時刻的學習中,使得網絡具備記憶功能;
(2).同時,LSTM循環神經網絡帶有遺忘機制,更好的模擬了人腦的遺忘工作機制。
預估模型優缺點
模型 | 優點 | 缺點 |
---|---|---|
卡爾曼濾波 | 能夠消除隨機干擾,狀態變量的估計可以分解 | 不適合非線性系統的求解 |
時間序列 | 考慮觀測序列在時間序列上的關聯依賴性的同時也加入了對跳點的判斷分析來排除隨機因素干擾 | 1.對於長時間的預測需要考慮更多的隨機因素,由於模型只能利用單因素變量,模型更適用於短時交通流量預測;2.模型參數一旦確定難以更改和調整;3.在原始數據較多的情況下平穩性不足,確定模型參數過程複雜 |
線性迴歸 | 可進行一元、多元分析,可以進行線性於非線性分析;可對迴歸方程的擬合程度進行顯著性檢驗,對於確定好的函數關係,一個自變量至鞥你對應一個因變量,保證了結果的唯一性;能夠提供改預測結果的置信度和置信區間,是的預測結果的完整性和可靠性有很好的保障 | 在自變量和因變量的選取上只是一種猜測,增加了人爲因素的干擾;多次加入新數據的情況下模型的參數粗腰重新計算與預估 |
支持向量機 | 能夠解決非線性、高維識別、過度擬合等問題 | 1.對大規模尋來你樣本求解時會設計到高階矩陣的計算,此時矩陣存儲和求解會佔用計算機的大量內存,對硬件要求比較高;2.傳統的支持向量機只能做二分類法,無法處理實際應用中遇到的多分類問題 |
BP神經網絡 | 擁有一般模型沒有的並行處理模式,使得網絡在多輸入變量和多神經元個數的情況下也能在較短的時間內進行各層權值的調整;且具有很好的容錯性和魯棒性,以及非線性映射能力,集成性 | 容易陷入局部最優解且網絡的隱含層數目上缺少有效的指導理論;若網絡訓練步數過少則預測能力不夠,若過多容易出現過擬合 |
灰色系統 | 不要求樣本具有規律分佈,可用於樣本量較少的情況,能夠對大量的樣本特徵進行提取分析 | 數據預處理過程中,灰色系統通過累加合成來處理隨機性數據,而這種隨機性原本就反應了事物發展規律,累計合成會失去這些有用的規律,數據可信度降低;建模過程中用指數擬合的形式建立模型,沒有結合數據背後真正反應的特徵與規律 |
寫在最後
最近似乎越來越懈怠了,工作上預估的進展並不是太好,預估的結果常被否掉,因爲業務主觀還是佔主導,他們還是採用excel在做預估,自己的模型預估結果經常性是偏高的,很多細節性業務影響無法考慮到,模型調整不夠靈活,需要在預估基礎上根據業務主觀預期的基礎上比例縮減或調整,唉,真的沒有成就感呢,不知有沒有那種靈活可調,因素影響權重可控的預估模型。