版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
16.4算法總結(jié)16.1算法概述16.2算法原理16.3算法案例目錄第十六章LSTM神經(jīng)網(wǎng)絡(luò)人工智能算法與實(shí)踐—1
—
01算法概述PartONE—2
—
16.1
算法概述算法概述—3
—
股票預(yù)測中,如果知道一年中前半年的股票上漲或下跌的走向趨勢,便可根據(jù)這些數(shù)據(jù)預(yù)測出后半年的股票走向趨勢。傳統(tǒng)的RNN算法只能實(shí)現(xiàn)根據(jù)當(dāng)前時(shí)間步的數(shù)據(jù)預(yù)測下一個時(shí)間步的數(shù)據(jù),當(dāng)時(shí)間步很長時(shí),最后一個時(shí)間步通常獲取不到第一個時(shí)間步的信息,這就是所謂的梯度消失問題,因此便有人提出了長短時(shí)記憶網(wǎng)絡(luò)(LongShortTermMemory,LSTM)算法。LSTM算法是一種循環(huán)神經(jīng)網(wǎng)絡(luò),由JürgenSchmidhuber提出。這一算法通過隨時(shí)間反向傳播(BackpropagationThroughTime,BPTT)進(jìn)行訓(xùn)練,解決了梯度消失問題,通過引入遺忘門、輸入門、更新門,對前一時(shí)間步和當(dāng)前時(shí)間步的數(shù)據(jù)信息進(jìn)行有選擇性的保存,便于產(chǎn)生符合要求的預(yù)測結(jié)果。該算法以RNN為基礎(chǔ),主要用于處理和預(yù)測時(shí)間序列中間隔和延遲相對較長的重要事件,目前的應(yīng)用領(lǐng)域主要包括自然語言處理、股票預(yù)測、天氣預(yù)報(bào)、內(nèi)容推薦、自動駕駛、翻譯語言、控制機(jī)器人、圖像分析、文檔摘要、手寫識別、預(yù)測疾病等。如果已知某城市過去10年間每個月份某一日期的天氣情況,包括溫度值、潮濕度、風(fēng)力、風(fēng)向、降水量等,那么利用LSTM神經(jīng)網(wǎng)絡(luò)就可以根據(jù)這10年的天氣數(shù)據(jù)對今后1年或3年的天氣情況進(jìn)行預(yù)測。假定已知國際航空公司1949年1月至1960年12月所有月份的乘客人數(shù),見下表,要求預(yù)測未來幾年該航空公司的乘客人數(shù)。16.1
算法概述算法概述—4
—
利用LSTM算法思想,可能此過程描述為,已知某城市12年內(nèi)的數(shù)據(jù)集,其中包含年份和月份,以及當(dāng)月的乘客人數(shù),要求估測明年的乘客人數(shù)。根據(jù)上述過程,要做這個預(yù)測,首先要獲取12年的乘客數(shù)據(jù)集,然后根據(jù)該數(shù)據(jù)波動情況建模,數(shù)據(jù)走勢情況如下圖1所示,構(gòu)建出一個較為理想的模型,然后對未來一年的乘客人數(shù)進(jìn)行預(yù)測,預(yù)測結(jié)果如下圖2所示,藍(lán)色曲線為樣本的真實(shí)值,橙色線為訓(xùn)練集,綠色線條為測試集,可以看到測試集與樣本的真實(shí)值擬合得比較好。16.1算法概述算法概述—5
—
國際航班乘客人數(shù)走勢圖LSTM預(yù)測結(jié)果圖16.1算法概述算法概述—6
—
LSTM算法引入3個門控結(jié)構(gòu),分別是遺忘門、輸入門和輸出門。其中遺忘門決定對于上一時(shí)間步的數(shù)據(jù)是否進(jìn)行遺忘,輸入門決定對于當(dāng)前時(shí)間步的輸入的接受程度,輸出門是對當(dāng)前細(xì)胞狀態(tài)的輸出。算法的整個過程包含四個步驟。(1)初始化模型參數(shù);(2)定義模型;(3)訓(xùn)練模型;(4)使用訓(xùn)練好的模型進(jìn)行預(yù)測。LSTM算法的步驟如下圖所示。02算法原理PartTWO—7
—
16.2LSTM
結(jié)構(gòu)圖LSTM結(jié)構(gòu)圖—8
—
16.2.1細(xì)胞狀態(tài)細(xì)胞狀態(tài)—9
—
除了細(xì)胞狀態(tài),LSTM中還有很多其他的結(jié)構(gòu),這些結(jié)構(gòu)一般稱為門控結(jié)構(gòu)。門是一個全連接層,該層的輸入是一個向量,輸出是一個0到1之間的實(shí)數(shù)向量。假設(shè)W是門的權(quán)重向量,b是偏置項(xiàng),則門可表示為g(x)=s(Wx+b)。LSTM在每個序列時(shí)刻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的方式進(jìn)行前向和反向傳播,其中前向傳播及反向傳播示意圖分別下圖所示,首先看一下RNN的基本模型。
16.2.6BPTTBPTT—15
—
我們的目標(biāo)是計(jì)算誤差對于U、V、W參數(shù)的梯度,然后用隨機(jī)梯度下降法學(xué)習(xí)更好的參數(shù),此過程需要將每個訓(xùn)練實(shí)例中每個時(shí)間步的梯度相加。
16.2.6BPTTBPTT—16
—
將每個時(shí)間步的梯度進(jìn)行相加求和。換句話說,因?yàn)閃在每一步中都被使用,一直到最后的輸出,因此我們需要從t=3一直反向傳播到t=0。
可以觀察到,這一步驟與深度前饋神經(jīng)網(wǎng)絡(luò)中適用的標(biāo)準(zhǔn)反向傳播算法完全相同。關(guān)鍵的區(qū)別是需要把每個時(shí)間步長的梯度加起來。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,不跨層共享參數(shù),因此不需要對任何東西求和。16.2.7梯度消失梯度消失—17
—
tanh函數(shù)和Sigmoid函數(shù)在兩端的導(dǎo)數(shù)都是0,此時(shí)神經(jīng)元是飽和的。有零梯度并且驅(qū)動其他的梯度在前面的層接近0。因此,對于較小的矩陣值和多重矩陣的乘法,梯度值以指數(shù)速度縮小,最終在幾個時(shí)間步后完全消失,最終沒有學(xué)習(xí)到長期依賴關(guān)系。如果雅可比矩陣的值很大,我們可以得到爆炸的梯度。梯度消失比梯度爆炸受到更多關(guān)注主要是因?yàn)楸ㄊ綕u變是顯而易見的,此時(shí)梯度將變成NaN,程序?qū)⒈罎ⅰP疫\(yùn)的是,有一些方法可以解決梯度消失的問題。適當(dāng)?shù)某跏蓟仃嚳梢詼p小消失梯度的影響。所以能正規(guī)化。更可取的解決方案是使用ReLU而不是Sigmoid激活函數(shù)。ReLU的導(dǎo)數(shù)是一個常數(shù),要么為0,要么為1,所以它不太可能受到梯度消失的影響。tanh函數(shù)及其導(dǎo)數(shù)示意圖Sigmoid函數(shù)及其導(dǎo)數(shù)示意圖03算法案例PartTHREE股票價(jià)格預(yù)測—18
—
預(yù)測訓(xùn)練模型定義模型初始化參數(shù)在該步驟中需要對使用到的參數(shù)進(jìn)行定義和初始化,其中包含輸入值的數(shù)目、隱藏單元的個數(shù)、輸出值的數(shù)目,還包括輸入門參數(shù)、遺忘門參數(shù)、輸出門參數(shù)、候選記憶細(xì)胞參數(shù)、輸出層參數(shù)。初始化模型參數(shù)后,該步使用這些參數(shù)進(jìn)行遺忘門、輸入門、輸出門的計(jì)算,同時(shí)計(jì)算出輸出參數(shù)。LSTM的訓(xùn)練算法仍是反向傳播算法。第一,前向計(jì)算每個神經(jīng)元的輸出值。第二,反向計(jì)算每個神經(jīng)元的誤差項(xiàng),與RNN相同的是,LSTM誤差項(xiàng)的反向傳播也包括兩個方向:一個是沿時(shí)間的反向傳播,即從當(dāng)前時(shí)刻開始,計(jì)算每個時(shí)刻的誤差項(xiàng);一個是將誤差項(xiàng)向上一層傳播。第三,根據(jù)誤差項(xiàng),計(jì)算每個權(quán)重的梯度。通常情況下TensorFlow或Keras框架是進(jìn)行預(yù)測的較好選擇。將測試集作為參數(shù),直接調(diào)用對應(yīng)的預(yù)測函數(shù)即可。16.3.1LSTM算法構(gòu)建LSTM算法構(gòu)建—19
—
LSTM算法首先對每個數(shù)據(jù)集進(jìn)行讀取操作,得到數(shù)據(jù)集列表,然后定義并初始化將要用到的模型參數(shù),然后定義LSTM模型,最終構(gòu)建模型并進(jìn)行數(shù)據(jù)預(yù)測。LSTM算法偽代碼:16.3.2LSTM算法描述LSTM算法實(shí)現(xiàn)—20
—
LSTM的優(yōu)點(diǎn)在于模型預(yù)測準(zhǔn)確率較高,高于RNN,但是其缺點(diǎn)也很明顯,當(dāng)LSTM的層數(shù)很多時(shí),訓(xùn)練模型的參數(shù)會超級多,因此會花費(fèi)很多時(shí)間,為了解決這一問題,有學(xué)者提出了將LSTM的遺忘門與輸入門進(jìn)行合并的方法,即GRU(GatedRecurrentUnit,門控循環(huán)單元),其模型預(yù)測準(zhǔn)確率與LSTM不相上下,但訓(xùn)練時(shí)參數(shù)相較于LSTM大大減少,訓(xùn)練速度顯著快于LSTM。16.3.3LSTM算法實(shí)現(xiàn)LSTM算法實(shí)現(xiàn)—21
—
1前向計(jì)算LSTM的前向計(jì)算是通過式(16-1)~式(16-6)實(shí)現(xiàn)的,最終得到該時(shí)間序列的輸出值。2隨時(shí)間反向傳播算法LSTM的反向傳播算法與RNN相同,都使用BPTT算法。該算法是常用的訓(xùn)練RNN的方法,其本質(zhì)還是BP算法,只不過RNN處理時(shí)間序列數(shù)據(jù),因此要基于時(shí)間反向傳播,所以被稱為隨時(shí)間反向傳播。BPTT的中心思想與BP算法相同,即沿著需要優(yōu)化的參數(shù)的負(fù)梯度方向不斷尋找最優(yōu)的點(diǎn)直至收斂。因此BPTT的核心為求各個參數(shù)的梯度。反向傳播算法主要包含以下3步。(1)前向計(jì)算每個神經(jīng)元的輸出值,計(jì)算的方法就是前向傳播計(jì)算。。(2)反向計(jì)算每個神經(jīng)元的誤差項(xiàng)。與RNN一樣,LSTM誤差項(xiàng)的反向傳播也包含兩個方向:一個是沿時(shí)間的反向傳播,即從當(dāng)前t時(shí)刻開始,計(jì)算每個時(shí)刻的誤差項(xiàng);一個是將誤差項(xiàng)傳播給上一層。(3)根據(jù)相應(yīng)的誤差項(xiàng),計(jì)算每個權(quán)重的梯度。16.3.3LSTM算法實(shí)現(xiàn)LSTM算法實(shí)現(xiàn)—22
—
前向計(jì)算下面代碼中的calc_gate()方法實(shí)現(xiàn)了門的運(yùn)算操作,即用上一時(shí)間序列的輸入乘以權(quán)重,加上當(dāng)前時(shí)間序列的輸入乘以權(quán)重,再加上當(dāng)前門對應(yīng)的偏置。16.3.3LSTM算法實(shí)現(xiàn)LSTM算法實(shí)現(xiàn)—23
—
隨時(shí)間反向傳播算法下面代碼中的calc_gate()方法實(shí)現(xiàn)了門的運(yùn)算操作,即用上一時(shí)間序列的輸入乘以權(quán)重,加上當(dāng)前時(shí)間序列的輸入乘以權(quán)重,再加上當(dāng)前門對應(yīng)的偏置。16.3.4LSTM基于Keras-TensorFlow
框架實(shí)現(xiàn)股票價(jià)格的預(yù)測基于Keras-TensorFlow框架實(shí)現(xiàn)股票價(jià)格的預(yù)測—24
—
實(shí)驗(yàn)說明(1)數(shù)據(jù)集來源于。該數(shù)據(jù)集包含7個屬性,分別是日期、開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)、調(diào)整后的收盤價(jià),成交量,部分?jǐn)?shù)據(jù)見表16-2。(2)網(wǎng)絡(luò)中使用的是最近的5列數(shù)據(jù)。(3)數(shù)據(jù)被標(biāo)準(zhǔn)化為0~1之間。(4)數(shù)據(jù)集被劃分為訓(xùn)練集和測試集,二者比例為1:1。(5)LSTM網(wǎng)絡(luò)包含85個隱藏層、一個輸出層和一個輸入層,優(yōu)化器使用的是Adam,噪聲為0.1,時(shí)間步為240,迭代次數(shù)為100。(6)將訓(xùn)練集用來擬合數(shù)據(jù),用于預(yù)測測試集部分的股票價(jià)格,并和真實(shí)值進(jìn)行對比。16.3.4LSTM基于Keras-TensorFlow框架實(shí)現(xiàn)股票價(jià)格的預(yù)測基于Keras-TensorFlow框架實(shí)現(xiàn)股票價(jià)格的預(yù)測—25
—
實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果如圖16-12所示,在圖16-12的后半段中,綠色曲線代表真實(shí)值,藍(lán)色曲線代表預(yù)測值??梢钥闯觯?jīng)過訓(xùn)練后的數(shù)據(jù)值與真實(shí)值大部分?jǐn)?shù)據(jù)擬合得比較好,充分證明LSTM處理時(shí)序性問題的優(yōu)越性。04算法總結(jié)PartFOUR—26
—
通過本章的學(xué)習(xí),我們了解了LSTM是針對RNN容易產(chǎn)生梯度消失和梯度爆炸而提出來的,目前常用于基于時(shí)間序列處理的場景,尤其是在自然語言處理中用得較多。目前有現(xiàn)成的框架可以方便地進(jìn)行調(diào)用,如Keras、TensorFlow等,使用戶不必了解算法底層的處理細(xì)節(jié),快速并且高效地構(gòu)建出神經(jīng)網(wǎng)絡(luò)模型。LSTM算法改善了RNN中存在的長期依賴問題,并且其表現(xiàn)通常比隱馬爾科夫模型(HMM)較好,其作為非線性模型,可作為復(fù)雜的非線性單元構(gòu)造更大型的深度神經(jīng)網(wǎng)絡(luò);但其缺點(diǎn)也很明顯,雖然RNN的梯度問題得到了一定程度的解決,但程度還是不夠。對于超長序列的處理依然很棘手,若LSTM的時(shí)間跨度
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寫字樓訪客管理規(guī)章
- 家電售后服務(wù)工程師聘用合同
- 教育培訓(xùn)機(jī)構(gòu)安全協(xié)議
- 城市供水管網(wǎng)改造圍擋施工合同
- 水利工程資料管理規(guī)范
- 風(fēng)力發(fā)電場護(hù)坡施工合同
- 長期貨車租賃合同范本
- 旅游景區(qū)安全員聘用合同模板
- 商標(biāo)標(biāo)識印刷承諾書
- 溫泉度假村物業(yè)聘用合同
- DB50T 1689-2024 綠茶型老鷹茶加工技術(shù)規(guī)范
- 初級消防設(shè)施操作員實(shí)操題庫 (一)
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 4-02-01-01 軌道列車司機(jī)(動車組司機(jī))人社廳發(fā)2019121號
- CURTIS1232-1234-1236-SE-SERIES交流控制器手冊
- 2024年國家開放大學(xué)(電大)-混凝土結(jié)構(gòu)設(shè)計(jì)(A)考試近5年真題集錦(頻考類試題)帶答案
- 2024年山東省臨沂蘭山法院招聘司法輔助人員56人歷年高頻500題難、易錯點(diǎn)模擬試題附帶答案詳解
- 期末綜合素質(zhì)達(dá)標(biāo)(試題)-2024-2025學(xué)年人教精通版英語五年級上冊
- 全國職業(yè)院校技能大賽高職組(商務(wù)數(shù)據(jù)分析賽項(xiàng))備賽試題庫(含答案)
- 印刷數(shù)字工作流程智慧樹知到答案2024年上海出版印刷高等??茖W(xué)校
- 江蘇園林綠化工作計(jì)劃
- GB/T 4706.117-2024家用和類似用途電器的安全第117部分:帶非柔性加熱部件的電暖床墊的特殊要求
評論
0/150
提交評論