版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
16.4算法總結16.1算法概述16.2算法原理16.3算法案例目錄第十六章LSTM神經網絡人工智能算法與實踐—1
—
01算法概述PartONE—2
—
16.1
算法概述算法概述—3
—
股票預測中,如果知道一年中前半年的股票上漲或下跌的走向趨勢,便可根據(jù)這些數(shù)據(jù)預測出后半年的股票走向趨勢。傳統(tǒng)的RNN算法只能實現(xiàn)根據(jù)當前時間步的數(shù)據(jù)預測下一個時間步的數(shù)據(jù),當時間步很長時,最后一個時間步通常獲取不到第一個時間步的信息,這就是所謂的梯度消失問題,因此便有人提出了長短時記憶網絡(LongShortTermMemory,LSTM)算法。LSTM算法是一種循環(huán)神經網絡,由JürgenSchmidhuber提出。這一算法通過隨時間反向傳播(BackpropagationThroughTime,BPTT)進行訓練,解決了梯度消失問題,通過引入遺忘門、輸入門、更新門,對前一時間步和當前時間步的數(shù)據(jù)信息進行有選擇性的保存,便于產生符合要求的預測結果。該算法以RNN為基礎,主要用于處理和預測時間序列中間隔和延遲相對較長的重要事件,目前的應用領域主要包括自然語言處理、股票預測、天氣預報、內容推薦、自動駕駛、翻譯語言、控制機器人、圖像分析、文檔摘要、手寫識別、預測疾病等。如果已知某城市過去10年間每個月份某一日期的天氣情況,包括溫度值、潮濕度、風力、風向、降水量等,那么利用LSTM神經網絡就可以根據(jù)這10年的天氣數(shù)據(jù)對今后1年或3年的天氣情況進行預測。假定已知國際航空公司1949年1月至1960年12月所有月份的乘客人數(shù),見下表,要求預測未來幾年該航空公司的乘客人數(shù)。16.1
算法概述算法概述—4
—
利用LSTM算法思想,可能此過程描述為,已知某城市12年內的數(shù)據(jù)集,其中包含年份和月份,以及當月的乘客人數(shù),要求估測明年的乘客人數(shù)。根據(jù)上述過程,要做這個預測,首先要獲取12年的乘客數(shù)據(jù)集,然后根據(jù)該數(shù)據(jù)波動情況建模,數(shù)據(jù)走勢情況如下圖1所示,構建出一個較為理想的模型,然后對未來一年的乘客人數(shù)進行預測,預測結果如下圖2所示,藍色曲線為樣本的真實值,橙色線為訓練集,綠色線條為測試集,可以看到測試集與樣本的真實值擬合得比較好。16.1算法概述算法概述—5
—
國際航班乘客人數(shù)走勢圖LSTM預測結果圖16.1算法概述算法概述—6
—
LSTM算法引入3個門控結構,分別是遺忘門、輸入門和輸出門。其中遺忘門決定對于上一時間步的數(shù)據(jù)是否進行遺忘,輸入門決定對于當前時間步的輸入的接受程度,輸出門是對當前細胞狀態(tài)的輸出。算法的整個過程包含四個步驟。(1)初始化模型參數(shù);(2)定義模型;(3)訓練模型;(4)使用訓練好的模型進行預測。LSTM算法的步驟如下圖所示。02算法原理PartTWO—7
—
16.2LSTM
結構圖LSTM結構圖—8
—
16.2.1細胞狀態(tài)細胞狀態(tài)—9
—
除了細胞狀態(tài),LSTM中還有很多其他的結構,這些結構一般稱為門控結構。門是一個全連接層,該層的輸入是一個向量,輸出是一個0到1之間的實數(shù)向量。假設W是門的權重向量,b是偏置項,則門可表示為g(x)=s(Wx+b)。LSTM在每個序列時刻t一般包含3個門:遺忘門、輸入門、輸出門。16.2.2遺忘門遺忘門—10
—
16.2.3輸入門輸入門—11
—
16.2.4更新門更新門—12
—
16.2.5輸出門輸出門—13
—
16.2.6BPTTBPTT—14
—
LSTM保留了與RNN相同的BPTT的方式,RNN以BPTT的方式進行前向和反向傳播,其中前向傳播及反向傳播示意圖分別下圖所示,首先看一下RNN的基本模型。
16.2.6BPTTBPTT—15
—
我們的目標是計算誤差對于U、V、W參數(shù)的梯度,然后用隨機梯度下降法學習更好的參數(shù),此過程需要將每個訓練實例中每個時間步的梯度相加。
16.2.6BPTTBPTT—16
—
將每個時間步的梯度進行相加求和。換句話說,因為W在每一步中都被使用,一直到最后的輸出,因此我們需要從t=3一直反向傳播到t=0。
可以觀察到,這一步驟與深度前饋神經網絡中適用的標準反向傳播算法完全相同。關鍵的區(qū)別是需要把每個時間步長的梯度加起來。在傳統(tǒng)的神經網絡中,不跨層共享參數(shù),因此不需要對任何東西求和。16.2.7梯度消失梯度消失—17
—
tanh函數(shù)和Sigmoid函數(shù)在兩端的導數(shù)都是0,此時神經元是飽和的。有零梯度并且驅動其他的梯度在前面的層接近0。因此,對于較小的矩陣值和多重矩陣的乘法,梯度值以指數(shù)速度縮小,最終在幾個時間步后完全消失,最終沒有學習到長期依賴關系。如果雅可比矩陣的值很大,我們可以得到爆炸的梯度。梯度消失比梯度爆炸受到更多關注主要是因為爆炸式漸變是顯而易見的,此時梯度將變成NaN,程序將崩潰。幸運的是,有一些方法可以解決梯度消失的問題。適當?shù)某跏蓟仃嚳梢詼p小消失梯度的影響。所以能正規(guī)化。更可取的解決方案是使用ReLU而不是Sigmoid激活函數(shù)。ReLU的導數(shù)是一個常數(shù),要么為0,要么為1,所以它不太可能受到梯度消失的影響。tanh函數(shù)及其導數(shù)示意圖Sigmoid函數(shù)及其導數(shù)示意圖03算法案例PartTHREE股票價格預測—18
—
預測訓練模型定義模型初始化參數(shù)在該步驟中需要對使用到的參數(shù)進行定義和初始化,其中包含輸入值的數(shù)目、隱藏單元的個數(shù)、輸出值的數(shù)目,還包括輸入門參數(shù)、遺忘門參數(shù)、輸出門參數(shù)、候選記憶細胞參數(shù)、輸出層參數(shù)。初始化模型參數(shù)后,該步使用這些參數(shù)進行遺忘門、輸入門、輸出門的計算,同時計算出輸出參數(shù)。LSTM的訓練算法仍是反向傳播算法。第一,前向計算每個神經元的輸出值。第二,反向計算每個神經元的誤差項,與RNN相同的是,LSTM誤差項的反向傳播也包括兩個方向:一個是沿時間的反向傳播,即從當前時刻開始,計算每個時刻的誤差項;一個是將誤差項向上一層傳播。第三,根據(jù)誤差項,計算每個權重的梯度。通常情況下TensorFlow或Keras框架是進行預測的較好選擇。將測試集作為參數(shù),直接調用對應的預測函數(shù)即可。16.3.1LSTM算法構建LSTM算法構建—19
—
LSTM算法首先對每個數(shù)據(jù)集進行讀取操作,得到數(shù)據(jù)集列表,然后定義并初始化將要用到的模型參數(shù),然后定義LSTM模型,最終構建模型并進行數(shù)據(jù)預測。LSTM算法偽代碼:16.3.2LSTM算法描述LSTM算法實現(xiàn)—20
—
LSTM的優(yōu)點在于模型預測準確率較高,高于RNN,但是其缺點也很明顯,當LSTM的層數(shù)很多時,訓練模型的參數(shù)會超級多,因此會花費很多時間,為了解決這一問題,有學者提出了將LSTM的遺忘門與輸入門進行合并的方法,即GRU(GatedRecurrentUnit,門控循環(huán)單元),其模型預測準確率與LSTM不相上下,但訓練時參數(shù)相較于LSTM大大減少,訓練速度顯著快于LSTM。16.3.3LSTM算法實現(xiàn)LSTM算法實現(xiàn)—21
—
1前向計算LSTM的前向計算是通過式(16-1)~式(16-6)實現(xiàn)的,最終得到該時間序列的輸出值。2隨時間反向傳播算法LSTM的反向傳播算法與RNN相同,都使用BPTT算法。該算法是常用的訓練RNN的方法,其本質還是BP算法,只不過RNN處理時間序列數(shù)據(jù),因此要基于時間反向傳播,所以被稱為隨時間反向傳播。BPTT的中心思想與BP算法相同,即沿著需要優(yōu)化的參數(shù)的負梯度方向不斷尋找最優(yōu)的點直至收斂。因此BPTT的核心為求各個參數(shù)的梯度。反向傳播算法主要包含以下3步。(1)前向計算每個神經元的輸出值,計算的方法就是前向傳播計算。。(2)反向計算每個神經元的誤差項。與RNN一樣,LSTM誤差項的反向傳播也包含兩個方向:一個是沿時間的反向傳播,即從當前t時刻開始,計算每個時刻的誤差項;一個是將誤差項傳播給上一層。(3)根據(jù)相應的誤差項,計算每個權重的梯度。16.3.3LSTM算法實現(xiàn)LSTM算法實現(xiàn)—22
—
前向計算下面代碼中的calc_gate()方法實現(xiàn)了門的運算操作,即用上一時間序列的輸入乘以權重,加上當前時間序列的輸入乘以權重,再加上當前門對應的偏置。16.3.3LSTM算法實現(xiàn)LSTM算法實現(xiàn)—23
—
隨時間反向傳播算法下面代碼中的calc_gate()方法實現(xiàn)了門的運算操作,即用上一時間序列的輸入乘以權重,加上當前時間序列的輸入乘以權重,再加上當前門對應的偏置。16.3.4LSTM基于Keras-TensorFlow
框架實現(xiàn)股票價格的預測基于Keras-TensorFlow框架實現(xiàn)股票價格的預測—24
—
實驗說明(1)數(shù)據(jù)集來源于。該數(shù)據(jù)集包含7個屬性,分別是日期、開盤價、最高價、最低價、收盤價、調整后的收盤價,成交量,部分數(shù)據(jù)見表16-2。(2)網絡中使用的是最近的5列數(shù)據(jù)。(3)數(shù)據(jù)被標準化為0~1之間。(4)數(shù)據(jù)集被劃分為訓練集和測試集,二者比例為1:1。(5)LSTM網絡包含85個隱藏層、一個輸出層和一個輸入層,優(yōu)化器使用的是Adam,噪聲為0.1,時間步為240,迭代次數(shù)為100。(6)將訓練集用來擬合數(shù)據(jù),用于預測測試集部分的股票價格,并和真實值進行對比。16.3.4LSTM基于Keras-TensorFlow框架實現(xiàn)股票價格的預測基于Keras-TensorFlow框架實現(xiàn)股票價格的預測—25
—
實驗結果實驗結果如圖16-12所示,在圖16-12的后半段中,綠色曲線代表真實值,藍色曲線代表預測值??梢钥闯?,經過訓練后的數(shù)據(jù)值與真實值大部分數(shù)據(jù)擬合得比較好,充分證明LSTM處理時序性問題的優(yōu)越性。04算法總結PartFOUR—26
—
通過本章的學習,我們了解了LSTM是針對RNN容易產生梯度消失和梯度爆炸而提出來的,目前常用于基于時間序列處理的場景,尤其是在自然語言處理中用得較多。目前有現(xiàn)成的框架可以方便地進行調用,如Keras、TensorFlow等,使用戶不必了解算法底層的處理細節(jié),快速并且高效地構建出神經網絡模型。LSTM算法改善了RNN中存在的長期依賴問題,并且其表現(xiàn)通常比隱馬爾科夫模型(HMM)較好,其作為非線性模型,可作為復雜的非線性單元構造更大型的深度神經網絡;但其缺點也很明顯,雖然RNN的梯度問題得到了一定程度的解決,但程度還是不夠。對于超長序列的處理依然很棘手,若LSTM的時間跨度
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年重型機械焊接安裝服務協(xié)議3篇
- 2025年度二手房交易首付分期及風險控制協(xié)議4篇
- 2025年度防火門檢測維修服務合同4篇
- 2025版協(xié)議離婚實操教程與全程輔導合同3篇
- 2025年個人房產測繪與房地產市場調研合同4篇
- 2025版臨時演出場地租賃協(xié)議書3篇
- 2025年度綠色環(huán)保項目臨時工勞動合同范本8篇
- 個人家政服務合同2024年度專用3篇
- 2025年度智慧城市基礎設施場外工程承包合同4篇
- 2025年度物業(yè)設施設備智能化升級合同3篇
- 三清三關消防知識
- 2025年生產主管年度工作計劃
- 2024-2025學年山東省聊城市高一上學期期末數(shù)學教學質量檢測試題(附解析)
- 西方史學史課件3教學
- 2024年中國醫(yī)藥研發(fā)藍皮書
- 廣東省佛山市 2023-2024學年五年級(上)期末數(shù)學試卷
- 臺兒莊介紹課件
- 17個崗位安全操作規(guī)程手冊
- 2025年山東省濟南市第一中學高三下學期期末統(tǒng)一考試物理試題含解析
- 中學安全辦2024-2025學年工作計劃
- 網絡安全保障服務方案(網絡安全運維、重保服務)
評論
0/150
提交評論