[机器学习]RNN网络处理长短时记忆问题

RNN网络处理长时间的记忆问题,比如我是男人…省略1000字…我的性别是__,在回答中间很长的时间序列间隔后的预测问题的时候,上面的RNN网络会出现瓶颈,即淡忘了,(很正常,人看一篇很长的文章后最后询问其中的某一个小点的时候,也会常常答不上来。其中一个重要的原因是梯度的消息和弥散作用的这种算法检查不了很长的回合数。这里通过改进RNN,在其基础上引入了LSTM:LongShort Term Memory:长短时间记忆方式来解决这个问题。和以前的角度类似,从真正的角度来解释原理可能目前还做不到,可以从数学公式的角度来讨论:

  • ①一个RNN只包含一个神经网络层,对输入进行激活,并输出数据,只不过这里的输入和以前相比,多出了一批数据就是上一次的输出(为了区分,也称为上一次的状态。)而LSTM,一个RNN循环中,则一共有4个神经网络层(可以看出由于加上了循环这个特质,循环体中的网络结构可以进行各种优化组合),这4个网络层,除了原来的一个处理层之外,多出了3个门,输入门、遗忘门和输出门,至于门是什么,其实各自就是一个神经网络层(和全连接一样的,里面有节点数,通过定义权重矩阵的shape的方式进行定义)。只不过各个门的“输入”不同,输出的连接方式不同,从而实现不同的功能,从原理上说,一个门就是一层神经网络的隐藏层。
  • ②对于遗忘门来说:其输入是两个:上一次的RNN输出ht-1和本次的输入值Xt,通过sigmode激活,其输出会连接到上一次的状态Ct-1,并与之进行矩阵的点乘运算,从而进行遗忘控制(称0相当于把数据抹掉了,1就是记住数据),不妨把其遗忘门的输出结果记为ft,其对于状态的作用就是Ct-1ft.
  • ③输入门:第一个部分是输入门,其输入和遗忘门一致,同样用sigmod激活,将其输出记为it但是其连接到本次tanh输出上面通过点乘与其结合,进行联合后再添加到状态Ct-1上,使得状态变成Ct,所以其实Ct=Ct-1ft+itCraw这个就是状态的变化公式。其中的ft、it,Craw分别
    都是一层神经网络的输出。
  • ④输出门:输出门用于对最新的状态Ct在输出前进行最后一次把关,变成真正的输出ht,所以其输入还是和遗忘门、输入门一样,输出连接到最新的Ct即cellstate,并对其进行tanh激活后,进行的一次点乘。
  • ⑤总结:可以看出来,3个门的输入都是一致的。但是输出会被连接到不同的地方:Ct-1、本层输出和Ct,通过点乘的方式实现控制的功能,从这个角度来说,控制门的确起到的是控制的作用。

LSTM着重还是运用,另外他对于神经网络的改造的思路确实可以借鉴一下的,通过在输入、输出等部分加上一些神经网络控制的方式来实现网络的功能的优化,这里的一个门其实可以理解成是一种FCN网络的特例,所以本质上,这个LSTM网络是通过RNN和多个小型的FCNN网络进行连接的方式来实现网络功能的优化的部分。这点和之前的观点是一致的,即可以尝试通过不同网络组合的方式实现不同的功能,这个组合包括老老实实的从头连接到尾部的一条线的组合,也可以包括两条线并行,然后中间进行全连接网络的连接的这种交替交换信息的组合,所以说实际上组成的形式是非常的多样化的,没有一个非常统一的标准形式,也进一步证明了,这种神经网络的结构实际上是确实蕴含了非常大的可能性,但是可能想出一些结构是相对来说比较容易的一件事情,但是如果要尝试训练这个结构,发挥出功能,似乎看起来是一个障碍,对于传统的神经网络我们有一些训练方式,但是对于一些比较独特的神经网格我们可能目前看起来除了用遗传算法进行优化的部分之外,似乎没有很好的训练手段,这个是一个需要突破的地方,如果这块能够有所突破的话,通常来说,会有更加好的一些效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值