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

  • 相关阅读:
    python 基础1-变量名
    Jmeter分布式测试踩过的坑
    Jmeter接口测试踩过的坑
    搭建数据库环境
    char与char的区别
    jmeter性能测试的小小实践
    自动化测试badboy脚本开发(一)
    sql多表查询(单表查询略过)
    认识jmeter
    http与https的区别
  • 原文地址:https://www.cnblogs.com/rhyswang/p/9091534.html
Copyright © 2011-2022 走看看