zoukankan      html  css  js  c++  java
  • Naive RNN vs LSTM vs GRU、attention基础

    原文地址:https://www.jianshu.com/p/b8653f8b5b2b

    一、Recurrent Neural Network

    图1.1 Recurrent Neural Network1
    图1.2 Recurrent Neural Network2
    图1.3 Recurrent Neural Network3

    二、Naive RNN

    图2.1 Naive RNN1
    图2.2 Naive RNN2

    Naive RNN更新参数时易出现梯度消失/爆炸的问题。

    三、LSTM

    图3.1 LSTM1
    图3.2 LSTM2

    • peephole

    图3.3 LSTM3

    • Naive RNN vs LSTM
      记忆更新部分的操作,Naive RNN为乘法,LSTM为加法。因此LSTM能记得更久些。
      (delta_c^t=frac{partial L}{partial c^t}=frac{partial L}{partial c^{t+1}}frac{partial c^{t+1}}{partial c^t}=delta_c^{t+1}(z^f+cdots))。当(z^f=1)时,即使其他项很小,梯度也能够很好地传达到上一个时刻;当(z^f=0)时,上一个时刻的记忆不会影响当前时刻,梯度也不会回传回去。因此,(z^f)控制了梯度回传的衰减程度。
      能有效地缓解梯度消失/爆炸问题。

    图3.4 LSTM4

    • LSTM设计原因

    图3.5 LSTM5

    标准形式的LSTM能工作得很好;输入门与遗忘门联动(类似GRU)以及没有peephole也能工作得很好。
    输出激活函数、遗忘门对于LSTM的表现很重要。

    四、GRU

    图4.1 GRU1
    图4.2 GRU2

    与LSTM相比,GRU可以看做是输入门和遗忘门联动。由4个矩阵乘法变为了3个,参数量更少,降低了过拟合的可能性。

    五、attention基础

    • dot
      (S_{ab}=h_a^Th_b)
    • general
      (S_{ab}=h_a^T W h_b)
    • concat
      (S_{ab}=v^T tanh(W_a h_a+W_b h_b))
  • 相关阅读:
    angularjs加载html
    git 使用
    图片压缩原理讲解很通透
    angularjs 实现多个图片上传及预览
    HTML 空格转义符的用法
    docker-volumes
    docker-管理数据
    docker-代理服务器
    docker-none
    docker-macvlan
  • 原文地址:https://www.cnblogs.com/cherrychenlee/p/10804730.html
Copyright © 2011-2022 走看看