由NN到LSTM

NNLSTM

一、概述

NN(神经网络)模仿人的神经单元建立学习模型,通过调整模型中不同边的权重来得到更接近目标的输出结果。NN可以采用BP(后向传播)算法来确定每一次迭代中不同权重的学习速率。RNN是包含循环的网络,神经网络的隐层部分不只接收输入信息,还受前一时刻隐层网络的状态的影响,这样可以使得当前的输出与之前的隐层网络的状态有关,可以用于处理序列信息。然而当影响当前输出的之前时刻的隐层状态与当前时刻间隔较远时,RNN很难学习到之前的信息,LSTM可以解决这个问题,它使用BPTT算法来对权重进行更新。

二、NN介绍

神经网络就是将多个神经元连接在一起,如上图。其中每条边都有各自的权重,+1节点叫做偏置节点,最左侧是输出层,中间是隐层,最右侧是输出层。

上图中,我们用来表示网络的层数,本例中,我们将第层记为,于是是输入层,输出层是。本例神经网络有参数,其中(下面的式子中用到)是第层第单元与第层第单元之间的联接参数(其实就是连接线上的权重,注意标号顺序),是第层第单元的偏置项。因此在本例中,,。注意,没有其他单元连向偏置单元(即偏置单元没有输入),因为它们总是输出。同时,我们用表示第层的节点数(偏置单元不计在内)。用表示第层第单元的激活值(输出值)。当时,,也就是第个输入值(输入值的第个特征)。对于给定参数集合,我们的神经网络就可以按照函数来计算输出结果。本例神经网络的计算步骤如下:

三、BP算法

神经网络中,可以使用BP算法来确定每一次迭代中权重的更新幅度。

假设有一个固定样本集,,首先定义一个损失函数,表示对每个单个样例,实际输出与期望的标准输出之间的差异。则总的均方误差为。然后计算总的均方误差对每一个权重的偏导数

原来的加上这个偏导数作为新的。

四、RNN介绍

相对于普通NNRNN中的隐层不但可以接受来自输入层的信息,还可以接受来自前一时刻隐层的信息。这样做的好处是使得网络可以应用于序列输出,并且前边的输出会影响后边的输出。例如,应用到语句识别中,首先输出的主语的单复数会影响其后动词的单复数,RNN的网络结构如图:

 

五、LSTM介绍

普通的RNN网络虽然可以记住先前的输出信息,但是如果前后相距太远时处理起来很麻烦,可以用LSTM单元代替RNN中的隐层来解决长期依赖问题。

大体上来说,LSTM主要靠三个门层来决定忘记先前的哪些信息,记住哪些信息以及输出哪些信息,分别称为忘记门层,输入门层,输出门层。

LSTM的概览图如下,隐藏层接收之前隐藏层的状态和输出,搭配上现在的输入来产生现在的输出与隐藏层状态。

 

 

(a)忘记层

 

接收上一时刻的输出与这一时刻的输入,产生来影响从上一时刻的隐藏层状态中遗忘什么信息。的计算方法为

 


(b)输入层

 

 

同样是从上一时刻的输出与这一时刻的输入来影响更新之前细胞状态的哪些信息,图中和的计算方法为

 

(c)更新层

 

 

前两层的值计算出来之后,更新细胞状态,的计算方法为

 


(d)输出层

 

由当前细胞状态决定输出哪些部分。

 

六、BPTT算法

当考虑到接收之前的信息的时候,BP算法就变成了BPTT算法,在求梯度的时候,要根据链式法则将梯度传递到之前时刻的权重。

参考文献:

http://www.cnblogs.com/zhbzz2007/p/6339346.html

http://www.jianshu.com/p/9dc9f41f0b29


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值