打字猴:1.70050869e+09
1700508690 数据科学家养成手册 [:1700503599]
1700508691 11.9.7 循环神经网络
1700508692
1700508693 下面介绍一种循环神经网络(Recurrent Neural Networks,RNN)。RNN与其他网络的不同之处在于,其中的“循环”部分能使网络具有“记忆”功能(如图11-54和图11-55所示)。
1700508694
1700508695
1700508696
1700508697   图11-54 RNN网络结构(1)     图11-55 RNN网络结构(2)   在观察一个向量序列xi的过程中,xt会通过这个这个网络产生一个输出,而这个输出会在xt+1进入网络的同时作为一个输入项和当前的xt+1一起输入到网络中。从时间上看,如图11-56所示。
1700508698
1700508699
1700508700
1700508701
1700508702 图11-56 RNN网络结构(3)
1700508703
1700508704 从RNN网络的设计中不难看出,它的思路是把从x1到xt的所有影响都叠加到xt+1的训练时刻,应该说还是很巧妙的。所以,这类设计非常适用于上下文相关的序列预测场景,例如自然语言处理、股票行情分析等领域。标准的隐马尔可夫模型也可以用来做序列前后转换概率统计与预测。但隐马尔可夫模型只认为当前状态和前一个状态有关,而不会关注再向前延伸的其他状态,这是两者最大的不同。
1700508705
1700508706 在RNN模型中会遇到一个很严重的问题,就是梯度消失。梯度消失问题当然不是RNN的专利,不过RNN会在时间这个梯度上发生梯度消失问题,这样序列中离现在较远的状态对当前输出的刺激实际上是极为不足的。为了克服这个问题,改进RNN的学习性能,产生了LSTM衍生算法(如图11-57所示)。
1700508707
1700508708
1700508709
1700508710
1700508711 图11-57 LSTM序列
1700508712
1700508713 基于LSTM(Long-Short Term Memory)算法实现的神经网络也叫作“长短期记忆人工神经网络”,它是RNN网络的一个重要变种(如图11-58所示)。LSTM算法训练的对象就是xi和hi的序列对,xi是输入向量,hi是输出向量。
1700508714
1700508715
1700508716
1700508717
1700508718 图11-58 LSTM网络结构
1700508719
1700508720 在一个LSTM网络中有这样几个结构,分别如图11-59、图11-60、图11-61和图11-62所示。σ就是Sigmoid函数,有
1700508721
1700508722
1700508723
1700508724
1700508725
1700508726
1700508727
1700508728
1700508729   图11-59 LSTM结构(1)     图11-60 LSTM结构(2)     图11-61 LSTM结构(3)     图11-62 LSTM结构(4)   ft的激励值来源于ht-1和xt两个元素,也就是当前的xt向量和前一个输出值ht-1。这个输出的ft取值范围为(0, 1),输出到上面一条横线后通过一个乘法器与上一次的输出值ht-1相乘。这个部分叫作“忘记门”。所谓“忘记”就是指ht-1输入的值在乘以一个取值为0到1之间的百分比之后还剩下多少。如果是0,那就是完全忘记;如果是1,那就是完全记住。
1700508730
1700508731 it这个值的产生方式与前面的ft是一样的,为了区别,下标用t来表示。
1700508732
1700508733
1700508734
1700508735
1700508736
1700508737 的含义是通过ht-1和xt向量的刺激产生一个取值范围为(-1, 1)的值。
1700508738
1700508739
[ 上一页 ]  [ :1.70050869e+09 ]  [ 下一页 ]