编辑
2024-12-18
机器学习
0
请注意,本文编写于 122 天前,最后修改于 122 天前,其中某些信息可能已经过时。

目录

基本的RNN模型
基于时间的反向传播
堆叠循环神经网络(SRNN)
长短期记忆(LSTM)

基本的RNN模型

RNN模型的隐藏层是循环连接的,它的上一次输出会被重新输入

其中zz是隐藏层,xx是输入,yy是输出;隐藏层的输出是与时间相关的,可以记为

zt=gz(Wz,zzt1+Wx,zxt)z_t=g_z(W_{z,z}z_{t-1}+W_{x,z}x_t)

输出层倒是只与隐藏层输出有关

yt=gy(Wz,yzt)y_t=g_y(W_{z,y}z_t)

基于时间的反向传播

给定一系列的输入向量及其对应的输出

x1,,xT,y1,yTx_1,\cdots, x_T,y_1\cdots,y_T

可以将网络进行TT步展开,转换为前馈网络

image.png

其中的权重是同步更新的,称为基于时间的反向传播(BPTT)

堆叠循环神经网络(SRNN)

堆叠循环神经网络具有多个隐藏层,它们的输出都是与时间相关的。同样可以将它展开

image.png

长短期记忆(LSTM)

LSTM是一种特殊的RNN,它分为三个步骤:遗忘,记忆,输出,它分为四层,结构如下

image.png

其中hh是隐藏层的输出,xx是输入

首先由遗忘门ff决定要舍弃哪些信息,它接收上一次隐藏层的输出ht1h_{t-1}与本次的输入xtx_t,经由SigmoidSigmoid输出010-1之间的指数。输出11表示保留全部记忆,输出00表示忘记全部记忆

image.png

输出可以抽象地写为

ft=σ(Wf[ht1,xt]+bf)f_t=\sigma(W_f[h_{t-1},x_t]+b_f)

然后由输入门ii决定要保存的新信息,它接收上一次的隐藏层输出ht1h_{t-1}和输入xtx_t,经由SigmoidSigmoid输出010-1之间的指数;tanhtanh层接收ht1h_{t-1}xtx_t,输出一个新信息向量Ct~\tilde{C_t},它被上面输入门的指数作用后向下一层传递。当iti_t等于11时表示完整传递,iti_t00时表示不记忆新信息

image.png

可以抽象地将它们的输出表示为

it=σ(Wi[ht1,xt]+bi)i_t=\sigma(W_i[h_{t-1},x_t]+b_i)
Ct~=tanh(Wc[ht1,xt]+bc)\tilde{C_t}=\tanh(W_c[h_{t-1},x_t]+b_c)

然后根据遗忘门和输入门更新记忆单元

image.png

Ct=ftCt1+itCtC_t=f_t\cdot C_{t-1}+i_t\cdot C_t

最后由输出门oo决定记忆单元的输出。它接收ht1,xh_{t-1},x,经由SIgmoid输出一个010-1之间的指数,与记忆单元的值作用后输出

image.png

ot=σ(Wo[ht1,xt]+bo)o_t=\sigma(W_o[h_{t-1},x_t]+b_o)
ht=ottanh(Ct)h_t=o_t\cdot\tanh(C_t)

本文作者:GBwater

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!