Python人工智能深度學(xué)習(xí)RNN模型結(jié)構(gòu)流程
1.RNN基礎(chǔ)模型
RNN主要特點(diǎn)是,在DNN隱藏層的輸出內(nèi)容會被存儲,并且可以作為輸入給到下一個神經(jīng)元。
如下圖所示,當(dāng)“臺北”這個詞被輸入的時候,前面的詞有可能是“離開“,有可能是”到達(dá)“,如果把上一次輸入的”離開“,所得的隱藏層內(nèi)容,輸入給下一層,這樣就有可能區(qū)分開是”離開臺北“,還是”到達(dá)臺北“。
如果隱藏層存儲的內(nèi)容并給下次使用,叫做Elman Network
如果最終的輸出內(nèi)容給下次使用,叫做Jordan Network
雙向RNN:從正向輸入的內(nèi)容,得到的存儲內(nèi)容,以及反向輸入內(nèi)容得到的存儲內(nèi)容,同時輸入給模型。
2.LSTM
Long Short-term Memory,其實當(dāng)人們說到使用RNN的時候,通常都是使用的LSTM。對于LSTM的每一個單元,除了輸入的數(shù)據(jù)之外,還有另外三個“門”來控制輸入,輸出,存儲。如下圖所示,如此一來,每一個LSTM單元共有4個輸入,以及1個輸出。
這些控制的門都是向量,并且輸入之后都需要進(jìn)行一個sigmoid函數(shù)轉(zhuǎn)換,因此輸入和門進(jìn)行計算之后,得到的輸出是位于0-1之間的數(shù)據(jù),這樣就可以實現(xiàn)對輸入、輸出、存儲與否的把控。而門的參數(shù)都需要由RNN學(xué)習(xí)得到。
3.流程結(jié)構(gòu)
如下圖,假如輸入的是z,經(jīng)過函數(shù)轉(zhuǎn)換,得到g(z),輸入門的數(shù)據(jù)z(i),經(jīng)過一個sigmoid函數(shù)轉(zhuǎn)換,將其相乘,得到g(z) * f(z(i))
同樣的,當(dāng)控制存儲數(shù)的門得到的結(jié)果是1的時候,那么以前的數(shù)據(jù)就會和1相乘,并于前面算的結(jié)果相加,這樣就實現(xiàn)了對上次存儲數(shù)據(jù)的利用。是0的時候就會刪除上次的數(shù)據(jù),實現(xiàn)存儲數(shù)據(jù)的格式化。
最終得到的輸出是h(c),但如果輸出門輸入z0后計算的結(jié)果是0,則該輸出就無法輸出,是1的時候才可以輸出。
LSTM和DNN的區(qū)別,就是把神經(jīng)元換成了LSTM單元,輸入的數(shù)據(jù)乘上權(quán)重之后,來控制各個門。因此參數(shù)變成平常DNN參數(shù)的4倍。
將整個流程簡化來表示,如下。
實際中,LSTM不只是一個,它是多個組合,并且每一個的輸出,以及存儲的內(nèi)容也會添加到下一次的輸入當(dāng)中。如下圖所示:
以上便是LSTM的整體結(jié)構(gòu)。
Python人工智能深度學(xué)習(xí)RNN模型流程結(jié)構(gòu)的詳細(xì)內(nèi)容今天就為大家講解到這里了,更多關(guān)于RNN模型流程結(jié)構(gòu)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python關(guān)鍵字之global與nonlocal
這篇文章主要為大家詳細(xì)介紹了Python關(guān)鍵字之global與nonlocal,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03基于Python中單例模式的幾種實現(xiàn)方式及優(yōu)化詳解
下面小編就為大家分享一篇基于Python中單例模式的幾種實現(xiàn)方式及優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01