zoukankan      html  css  js  c++  java
  • Recurrent Neural Network(1):Architecture

    Recurrent Neural Network是在单个神经元上,除了输入与输出外,添加了一条Recurrent回路。也就是说,节点当前的状态将会影响其未来的状态。下式可以表征此关系:

    st= f(st-1, xt, θ)

     

    如下图左侧,将前一时刻神经元的输出状态s,作为下一时刻的一个输入值,加权并入输入U中。这一操作使得,某一时刻神经元的输出状态s,依赖于之前各个时刻的状态st-1,st-2,...,st-n.从而,我们可以说该Recurrent path为神经网络引入了一个新的维度: time dimension.

    在上图右侧,我们看到将该neuron在time dimension上展开后的形式,xt是时间序列各个时间点的输入,st是各个时间点上产生的输出状态,而ot则是各个时间点上该神经元的输出。而在该结构中,参数共有3个:U,W,V,分别是input weight, state weight, and output weight。和CNN一样,RNN同样有parameter sharing的思想,即在时间维度上,共享这三个parameters.

    输出状态st的计算公式为:

    其中f是activation function,可以使sigmoid, tanh, relu等等。而在输出端,如果我们使用Softmax去预测各个输出值的概率,则:

    RNN有很多种变体,所有包含循环回路的神经网络都可以归为RNN。概括地说,某一时刻的状态st,是之前所有时刻输入xt,...,x1的一种有损压缩(Lossy Summary)。

    下面是三种不同类型的RNN patterns:

    Pattern 1: Hidden unit存在recurrent connections,每一个时间t上都有输出,每个时刻都有输出o,期望值y和Loss function

    Pattern 2: Hidden Unit存在recurrent connections,读取完整个序列后,最后产生一个输出o,根据期望值y计算Loss function

    Pattern 3: Output Unit对Hidden Unit有Recurrent Connection,每个时刻都有输出o,期望值y和Loss function

  • 相关阅读:
    Linq-分页查询
    思维导图软件xmind和mindmanager哪个更好
    Enterprise Architect使用教程
    敏捷开发之Scrum
    总结---4
    判断单链表是否存在环
    设计模式分类
    实用手册:130+ 提高开发效率的 vim 常用命令
    Reverse Linked List II
    Single Number and Single Number II
  • 原文地址:https://www.cnblogs.com/rhyswang/p/9091534.html
Copyright © 2011-2022 走看看