RNN相关模型研究

RNN

RNN有很多种。
从输入输出的角度有:

  1. one to one

在这里插入图片描述

  1. one to n
    在这里插入图片描述

  2. n to n
    在这里插入图片描述

  3. n to one

在这里插入图片描述

  1. n to m

在这里插入图片描述

RNN经典算法

在这里插入图片描述

RNN最经典的版本是,N个输入,对N的输出。
中间的是隐藏层。

h 1 = f ( U x 1 + W h 0 + b ) h1 = f(Ux1 + Wh0 + b) h1=f(Ux1+Wh0+b)

  • 同一次迭代,需要记住的是,h0,h1,h2…这些迭代的时候用的U,W,b都是一样的。

对于输出部分:

y 1 = S o f t m a x ( V h 1 + c ) y1 = Softmax(Vh1 + c) y1=Softmax(Vh1+c)

  • 类似的,输出用的V还有c对于y1,y2…来说都是一样的。

序列等长, 这就是经典的RNN模型

  • 对于序列数据,RNN提出了一个隐藏数据H。H为提取出来的特征向量。
  • 对于每个序列节点x,都有一个对应的隐藏数据H。
  • 每个H都是有X和前一个节点的H生成的。

h i = f ( U x i + W h i − 1 + b ) h_i = f(Ux_i+Wh_{i-1}+b) hi=f(Uxi+Whi1+b)

  • U, W, b 为共享的参数
  • f 为激活函数,一般为tanh

目前还没有输出,输出是直接通过H来计算出来的。

y i = S o f t m a x ( V h i + c ) y_i = Softmax(Vh_{i}+c) yi=Softmax(Vhi+c)

N to M

N to M需要被单独拿出来讲。这个就是Encoder-Decoder模型。
在这里插入图片描述

在这里插入图片描述

  • 这个只是一个框架,中间的生成步骤,其实把RNN换成LSTM也是可以的。

  • 局限性:

    • 编码和解码的唯一联系就是固定的语义向量c。
    • 压缩过程必然带来的信息损失
    • RNN本身机制导致,先输入的信息被后输入的信息给稀释掉。

Attention机制

  1. Encoder的过程输入的c有多个,分别作为decoder过程中的输入。
  2. 同时对不同的c,不同的隐藏层的映射权重不一致。

在这里插入图片描述

在这里插入图片描述

A这个矩阵的生成:
在这里插入图片描述

RNN 改进版 LSTM

LSTM(long short term memory, 长短期记忆网络)

  • 经典的RNN,由于是复合函数带进去求导,导致反向传播求梯度时,会将所有的梯度连乘起来,引起梯度爆炸或者是梯度消失。

在这里插入图片描述

  • LSTM由于添加了常量C(15年之前都是C对于每个cell都是hi一个常数)
  • 在15年之后,认为它不是一个常数而是可以往后求导的。

在这里插入图片描述

除了经典RNN中的隐藏状态H之外,LSTM还提出了新的隐藏状态C。

每次输入的有两个隐藏状态,同时也有两个隐藏状态输出

  • 遗忘门

f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) f_t = \sigma(W_f·[h_{t-1}, x_t] + b_f) ft=σ(Wf[ht1,xt]+bf)

  • 记忆门

i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) i_t = \sigma(W_i·[h_{t-1}, x_t] + b_i) it=σ(Wi[ht1,xt]+bi)

C ~ t = t a n h ( W C ⋅ [ h t − 1 , x t ] + b C ) \widetilde C_t = tanh(W_C·[h_{t-1}, x_t] + b_C) C t=tanh(WC[ht1,xt]+bC)

  • 用于远程传播的C的更新

C t = f t ∗ C t − 1 + C ~ t ∗ i t C_t =f_t * C_{t-1} + \widetilde C_t * i_t Ct=ftCt1+C tit

  • 输出门(用于输出H,而H控制输出)

o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) o_t = \sigma(W_o·[h_{t-1}, x_t] + b_o) ot=σ(Wo[ht1,xt]+bo)

h t = o t ∗ t a n h ( C t ) h_t = o_t * tanh(C_t) ht=ottanh(Ct)

参考文献

  1. https://www.jiqizhixin.com/articles/2018-12-14-4
  2. https://easyai.tech/ai-definition/rnn/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥宅_Sean

公众号“肥宅Sean”欢迎关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值