zoukankan      html  css  js  c++  java
  • 动手学pytorch-循环神经网络进阶

    循环神经网络进阶

    1.GRU
    2.LSTM
    3.Deep RNN
    4.Bidirection NN

    1.GRU

    RNN存在的问题:梯度较容易出现衰减或爆炸(BPTT)
    ⻔控循环神经⽹络:捕捉时间序列中时间步距离较⼤的依赖关系

    1.1数学表达式

    [R_{t} = σ(X_tW_{xr} + H_{t−1}W_{hr} + b_r)\ Z_{t} = σ(X_tW_{xz} + H_{t−1}W_{hz} + b_z)\ widetilde{H}_t = tanh(X_tW_{xh} + (R_t ⊙H_{t−1})W_{hh} + b_h)\ H_t = Z_t⊙H_{t−1} + (1−Z_t)⊙widetilde{H}_t ]

    1.2结构

    • 重置⻔(reset gate):有助于捕捉时间序列⾥短期的依赖关系;
    • 更新⻔(update gate):有助于捕捉时间序列⾥⻓期的依赖关系。

    Image Name

    1.3实现

    2.LSTM

    2.1数学表达式

    [egin{split}egin{aligned} oldsymbol{I}_t &= sigma(oldsymbol{X}_t oldsymbol{W}_{xi} + oldsymbol{H}_{t-1} oldsymbol{W}_{hi} + oldsymbol{b}_i),\ oldsymbol{F}_t &= sigma(oldsymbol{X}_t oldsymbol{W}_{xf} + oldsymbol{H}_{t-1} oldsymbol{W}_{hf} + oldsymbol{b}_f),\ oldsymbol{O}_t &= sigma(oldsymbol{X}_t oldsymbol{W}_{xo} + oldsymbol{H}_{t-1} oldsymbol{W}_{ho} + oldsymbol{b}_o), end{aligned}end{split} ]

    [ ilde{oldsymbol{C}}_t = ext{tanh}(oldsymbol{X}_t oldsymbol{W}_{xc} + oldsymbol{H}_{t-1} oldsymbol{W}_{hc} + oldsymbol{b}_c), \ oldsymbol{C}_t = oldsymbol{F}_t odot oldsymbol{C}_{t-1} + oldsymbol{I}_t odot ilde{oldsymbol{C}}_t, \ oldsymbol{H}_t = oldsymbol{O}_t odot ext{tanh}(oldsymbol{C}_t). ]

    2.2结构

    • 遗忘门((oldsymbol{F}_t)):控制上一时间步的记忆细胞
    • 输入门((oldsymbol{I}_t)):控制当前时间步的输入
    • 输出门((oldsymbol{O}_t)):控制从记忆细胞到隐藏状态
    • 记忆细胞(候选记忆细胞——( ilde{oldsymbol{C}}_t),记忆细胞——(oldsymbol{C}_t)):⼀种特殊的隐藏状态的信息的流动

    Image Name

    2.3实现

    3.Deep RNN

    3.1数学表达式

    [oldsymbol{H}_t^{(1)} = phi(oldsymbol{X}_t oldsymbol{W}_{xh}^{(1)} + oldsymbol{H}_{t-1}^{(1)} oldsymbol{W}_{hh}^{(1)} + oldsymbol{b}_h^{(1)})\ oldsymbol{H}_t^{(ell)} = phi(oldsymbol{H}_t^{(ell-1)} oldsymbol{W}_{xh}^{(ell)} + oldsymbol{H}_{t-1}^{(ell)} oldsymbol{W}_{hh}^{(ell)} + oldsymbol{b}_h^{(ell)})\ oldsymbol{O}_t = oldsymbol{H}_t^{(L)} oldsymbol{W}_{hq} + oldsymbol{b}_q ]

    3.2结构

    Image Name

    3.3使用

    4.Bidirection RNN

    4.1数学表达式

    [egin{aligned} overrightarrow{oldsymbol{H}}_t &= phi(oldsymbol{X}_t oldsymbol{W}_{xh}^{(f)} + overrightarrow{oldsymbol{H}}_{t-1} oldsymbol{W}_{hh}^{(f)} + oldsymbol{b}_h^{(f)})\ overleftarrow{oldsymbol{H}}_t &= phi(oldsymbol{X}_t oldsymbol{W}_{xh}^{(b)} + overleftarrow{oldsymbol{H}}_{t+1} oldsymbol{W}_{hh}^{(b)} + oldsymbol{b}_h^{(b)}) end{aligned} ]

    [oldsymbol{H}_t=(overrightarrow{oldsymbol{H}}_{t}, overleftarrow{oldsymbol{H}}_t) ]

    [oldsymbol{O}_t = oldsymbol{H}_t oldsymbol{W}_{hq} + oldsymbol{b}_q ]

    4.2结构

    Image Name

    4.3使用

  • 相关阅读:
    sql左外连接、右外连接、group by、distinct(区别)、intersect(交叉)、通配符、having
    nvarchar,varchar 区别
    链家笔试链家——找寻最小消费获取最大平均分java
    利用SpringAOP 实现 日志输出
    AOP 学习笔记
    Spring AOP中pointcut expression表达式解析
    基于@Aspect的AOP配置
    URI 中特殊字符处理
    给电脑设置视力保护色
    Spring不支持依赖注入static静态变量
  • 原文地址:https://www.cnblogs.com/54hys/p/12311202.html
Copyright © 2011-2022 走看看