首页 / 💻 技术交流 / 深度学习笔记之vanilla RNN
💻 技术交流 🧧 红包帖 📊 投票帖

深度学习笔记之vanilla RNN

🧧
楼主发了一个积分红包
总金额 20 积分 / 2 个
剩余 0 个 · 0 积分 · 过期:9天前
董昭霖 16
dYz00 4
📊 参与投票(共 1 票)
lightfl0w好帅 1 票 · 100%
dYz00好帅 0 票 · 0%
站长是给 0 票 · 0%

RNN

计算图展开

比如:

s(t)=f(s(t1);θ)

t=3 时展开(索引从 1 开始):

s(3)=f(f(s(1);θ);θ)

vanilla RNN

两种设计

xUhVoLy

其中:

  • x:输入
  • y:输出
  • h:hidden
  • o:output
  • L:loss

有两类:

  1. 包含隐藏到隐藏的循环 h(t1)Wh(t)
  2. 包含输出到隐藏的循环 o(t1)Wh(t)

第二类没第一类强大,因为输出层需要完成模型的监督学习任务,所以不能捕捉用于预测未来的关于过去的信息,除非输出本身包含了需要的信息。但第二类训练时可以通过导师驱动过程实现不同时刻的并行化。

具体的更新方程(第一类):

a(t)=b+Wh(t1)+Ux(t)h(t)=tanh(a(t))o(t)=c+Vh(t)y^(t)=softmax(o(t))

其中 bcWUV 是模型参数。

导师驱动过程

如果模型对于 t1 时刻的信息,只需要 o(t1) 输入到 t 时刻,那么可以将数据集中给出的 y(t1) 作为 t 时刻需要的 o(t1),这样实现了在训练时的并行化。

这样训练时并不是最大似然估计,因为往 pmodel 的预测过程里加了数据集里的真实值,会导致训练和预测时来自上一步的输入分布不一致,即曝光偏差(exposure bias)。

BPTT

RNN 中进行完整的反向传播(BP)速度和内存占用都是 O(τ),随时间反向传播(BPTT)方法通过限制反向传播的时间步数来控制成本。

待补充:花书 10.2.2 - 10.9

💬 全部评论 0

共 0 条 · 按楼层排序
登录 注册 后即可发表评论
💬
还没有评论,快来抢沙发吧