zoukankan      html  css  js  c++  java
  • RNN-2-前向传播、BPTT反向传播

    一、RNN的网络结构

    二、前向传播

      假定隐藏单元的激活函数是tanh,输出是离散的。表示离散变量的常规方式是把输出O作为每个离散变量可能值的非标准化对数概率。然后经softmax函数处理后,获得标准化后概率的输出向量(hat{y})。RNN从特定的初始状态(h^{left ( 0 ight )})开始传播。从t=1到(t= au)的每个时间步,更新方程如下:

      其中b和c是偏置向量权重矩阵U、V、W分别对应输入到隐层,隐层到输出,隐层到隐层的连接。这个神经网络将一个输入序列映射到相同长度的输出序列。与x序列配对的y的总损失为所有时间步的损失之和。
    例如:(L^{left ( t ight )})为给定的(x^{left ( 1 ight )},...,x^{left ( t ight )})(y^{left ( t ight )})的负对数似然(最大似然估计的反数,可用作损失函数,进一步通过梯度下降来确定各参数值)。

      其中(p_{model}left ( y^{left ( t ight )}mid left { x^{left ( 1 ight )},...,x^{left ( t ight )} ight } ight ))需要读取模型输出的向量
    (hat{y}^{left ( t ight )})中对应于(y^{left ( t ight )})的项。

    三、BPTT(back-propagation through time)反向传播

      使用BPTT计算RNN的公式中用红色框线框出来的公式。包括参数U、V、W、b、c以及以t为索引的节点序列(x^{left ( t ight )})(h^{left ( t ight )})(o^{left ( t ight )})(L^{left ( t ight )})。对于每一个节点N,我们需要基于N后面的节点的梯度,递归的计算梯度(igtriangledown_{N}L)。从离最终损失最近的节点开始递归:

      在这个导数中,假设输出(o^{left ( t ight )})作为softmax函数的参数,从softmax可以获得关于输出的概率向量(hat{y}),所有i、t,关于时间步t输出的梯度(igtriangledown_{o^{left ( t ight )}}L)如下:

    对化简公式的过程进行补充:

      从序列的尾端开始,反向计算。在最后的时间步$ au (,)h^{left ( au ight )}(只有)o^{left ( au ight )}$作为后续节点,因此该梯度很简单。

      从时刻(t= au -1)到t=1反向迭代,通过时间反向传播梯度,注意(h^{left ( t ight )}left ( t< au ight ))同时具有(o^{left ( t ight )})(h^{left ( t+1 ight )})两个后续节点。因此,它的梯度由下式计算:

    对化简公示的补充:

      其中(diag(1-left ( h^{t+1} ight )^{2}))表示包含元素(1-left ( h^{t+1} ight )^{2})的对角阵。这是关于时刻t+1与隐藏单元i关联的双曲正切的Jacobian。
      定义只在t时刻使用虚拟变量(W^{left ( t ight )})作为W的副本。然后使用(igtriangledown_{W^{left ( t ight )}})表示权重在时间步t对梯度的贡献。剩下参数的梯度如下:


    三、总结

      理论上循环神经网络可以支持任意长度的序列,然而在实际训练过程中,如果序列过长,一方面会导致优化时出现梯度消散和梯度爆炸的问题,另一方面,展开后的前馈神经网络会占用过大的内存,所以实际中会规定一个最大长度,当序列长度超过规定长度之后会对序列进行截断。

  • 相关阅读:
    002 下载文件
    001 okhttp3的POST使用
    000 okhttp3的Get使用
    008 webpack的其他使用方式
    007 webpack基本的用法
    three.js 3d三维网页代码加密的实现方法
    物联网开发技术栈
    9个顶级开发IoT项目的开源物联网平台
    hibernate缓存机制详细分析
    机器学习大牛最常用的5个回归损失函数,你知道几个?
  • 原文地址:https://www.cnblogs.com/wisteria68/p/13491170.html
Copyright © 2011-2022 走看看