【NLP】毕设学习笔记(八)“前馈 + 反馈” = 循环神经网络RNN

  • 前馈神经网络和循环神经网络分别适合处理什么样的任务?
    如果分类任务仅仅是进行判断和识别,例如判断照片上的人的性别,识别图片上是否有小狗图案,那么对输入的数据仅仅需要做特征寻找的工作即可,找到满足该任务的特征,或判断局部特征的强弱,就可以实现目的。但是如果对于稍微复杂一点的任务。例如判断两句话是否存在因果关系,或在一篇文章中找到某个问题的答案,抛开输入数据的位置关系仅仅关注特征就变得不可取了。这个时候还需要考虑输入数据之间的位置关系。因为位置关系影响了词语之间的语义和理解。而让前馈神经网络代表之一的例如CNN网络来学习到上下文位置信息是一件很麻烦的事情,需要用到海量的参数,因此,提出了反馈神经网络与前馈神经网络相结合的概念,即循环神经网络。反馈在前馈的基础上,利用前馈过程中,将当前位置输出的数据,反馈给网络,即反馈单元在当前位置做的决策,都是基于之前的全部信息,所以可以更好的帮助网络在下一个位置做出决策判断。而前馈神经网络只是单纯的将上一层的输出作为下一层的输入,如此迭代下次,不能基于之前的全部信息,没有反馈的过程。因为有了反馈的操作,所以反馈神经网络往往需要工作上一段时间之后才能变的稳定。
    前馈神经网络图在这里插入图片描述
    前馈 + 反馈 = 循环神经网络图
    (无隐藏层的循环神经网络)
    在这里插入图片描述
  • 前馈和反馈的表达式修改
    前馈神经网络的表达式是:> O = f ( X * W + b )
    X 表示输入,W 和 b 是模型参数。输入 X 和参数 W,经矩阵乘法之后加上参数 b,再经激活函数 f 激活之后,输出结果。
    循环神经网络是在前馈的基础上添加了反馈的操作,有了一个将当前时间 t 输出反馈至网络的过程,因此,在下一个时间,即 t+1 时,公式在原有的基础上添加了第 t 时刻的输出。
    即:> O(t+1) = f ( X * W + b + O(t) * V)
    其中 V 作为一个新的参数和第 t 时刻的输出进行矩阵乘法,又作为第 t+1 时刻输入的一部分, 即实现了反馈的概念。
    循环神经网络RNN,是LSTM,GRU等门限循环网络的模型基础。
  • RNN的梯度消失和梯度爆炸问题
    单看RNN的前向计算过程,可以认为输入数据在经过每一层网络时,都需要进行和参数矩阵 W 相乘以及和参数 b 相加的过程。相加过程并不会造成数据的陡增或陡降,而矩阵相乘的过程可能会导致。
    在线性代数中,一个矩阵可以近似成其特征矩阵 diag(λ) 和特征向量 V 的相乘,即 W = V·diag(λ)·V - 1,所以当输入数据经过一个 t 层的神经网络后,它的输出就要与 t 个 W 进行相乘。
    那么,当特征值 V 大于1时,则经过t 个 W 相乘之后,其值会发生爆炸,变得巨大无比,而当小于1时,其值会发生衰减,迅速衰减为0
    而前向过程的输出又是网络的反馈,就会导致整个网络产生较大的波动。当更新和输出层较远的那些网络层的参数时,会使得最后的输出结果要么过大要么过小,这种情况下训练出的网络显然是不靠谱的。
  • 梯度爆炸和梯度消失的解决方法
    采用梯度截断的方法,通过给梯度值设置上限,使得在更新RNN参数的过程中,不会发生梯度爆炸来摧毁之前的学习成果。但是与此同时也就意味着模型很难顾及到较远的历史信息。因为都被截断了。实际上,当网络层的输入序列长度超过10之后,网络对超过10的部分的记忆效果就已经显著变差了,而超过30的部分基本是记不住的。因此,虽然循环神经网络相较于前馈神经网络,可以记住较多的历史信息,但是却无法记住较长距离的历史信息。
    虽然使用梯度截断的方法可以缓解前馈过程,捎带着对反馈过程的影响,的梯度爆炸或梯度消失问题,但是,由于反馈过程的输入是前馈的输出经过激活函数的导数的运算结果,因此,鉴于sigmoid函数导数的特点(超大正值和超小负值经过其会变成 0),不建议在RNN中使用sigmoid作为激活函数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炖鹅小铁锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值