循环神经网路RNN学习笔记 通俗易懂!
循环神经网路 RNN
小数据集 低算力
S=f(winXt+b)S=f(w_{in}X_t+b)S=f(winXt+b)
St=f(WinXt+WSSt−1+b)S_t=f(W_{in}X_t+W_{S}S_{t-1}+b)St=f(WinXt+WSSt−1+b)
变种
输入序列,单输出

单输入,输出序列

输入不随序列变化

原始的N to N的RNN要求序列等长,然而我们遇到的大部分问题序列都是不等长的,如机器翻译中,源语言和目标语言的句子往往并没有相同的长度。
下面介绍RNN最重要的一个变种:N to M。这种结构又叫Encoder-Decoder模型,也可以称之为Seq2Seq模型。

从名字就能看出,这个结构的原理是先编码后解码。左侧的RNN用来编码得到c,拿到c后再用右侧的RNN进行解码。得到c有多种方式:
(1)把Encoder的最后一个隐状态赋值给c。: c=h4c=h_4c=h4
(2)对最后的隐状态做一个变换得到c。: c=q(h4)c=q(h_4)c=q(h4)
(3)对所有的隐状态做变换。c=q(h1,h2,h3,h4)c=q(h_1,h_2,h_3,h_4)c=q(h1,h2,h3,h4)

长短期记忆网络 LSTM
在这里插入图片描述
forget gate 遗忘门
f1=sigmoid(w1[St−1xt]+b1)f_1=sigmoid(w_1\begin{bmatrix}S_t-1 \\ x_t\end{bmatrix}+b_1)f1=sigmoid(w1[St−1xt]+b1)
input gate 输入门
f2=sigmoid(w2[St−1xt]+b2)∗tanh(w2′[St−1xt]+b2′)f_2=sigmoid(w_2\begin{bmatrix}S_t-1 \\ x_t\end{bmatrix}+b_2)*tanh(w_2'\begin{bmatrix}S_t-1 \\ x_t\end{bmatrix}+b_2')f2=sigmoid(w2[St−1xt]+b2)∗tanh(w2′[St−1xt]+b2′)
ct=f1∗ct−1+f2c_t = f_1*c_{t-1}+f_2ct=f1∗ct−1+f2
更多推荐



所有评论(0)