要先將字編碼成向量
要對之前的信息有記憶
相同的輸入,寫詩,可能有不同的輸出。
可以發現,輸入不止與當前輸入有關,還和之前的輸入有關。要有記憶!
將隱藏層的激活值利用
循環神經網絡
a0=0,初始值=0
上次輸入的不同,記憶值不同,使得現在相同的輸入可以得到不同的輸出。
缺點:梯度爆炸和梯度消失
記憶值不斷相乘累加。w^n
梯度爆炸和梯度消失:wn(w>1和w<1)。
w'=w-a*Δ
需要一個模型,能夠記憶久遠輸入和近期遺忘。
LSTM::long short-term memory長短期記憶網絡
加入輸入門、輸出門和遺忘門。使用sigmod函數。
sigmod函數:0-1之間。中點0.5
LSTM:
f:遺忘門,forget gate
循環神經網絡分類概述:
many to many:
- 有多少輸入,就多少輸出
- 輸入輸出數目不等
many to one
情感分析,差評還是好評。
one to many
看圖說話,寫詩就是這個模型。
雙向循環網絡:
不止和之前輸入有關,還和之后的輸入相關。
深度循環神經網絡:
很多隱藏層
作詩用的是lstm:只輸入第一個字,一個一個輸出接着作詩。
L1+L2+...+Ln
再求梯度。
代碼: