Task 05(RNN循环神经网络

本文介绍了循环神经网络(RNN)的基本原理,包括其在处理序列数据的优势,以及前向和后向传播的过程。RNN的变体如LSTM和GRU解决了梯度消失问题,增强了模型的记忆能力。RNN广泛应用于语音识别、情感分析、机器翻译等领域。
摘要由CSDN通过智能技术生成

1、有向图,主要是引入了复合函数链式求导的知识,分别引入了单变量的链式求导和多变量的链式求导。

引入这个,主要是为了后面神经网络后向传播时,更新参数使用的

为什么引入

为什么要引入RNN?
因为之前介绍多层感知机、CNN都只能够处理结构化的数据,在某个时刻的数据,输入到一个模型中去,我们能够利用这些数据对因变量的状态进行预测(分类和回归),但是现实生活中往往存在跟时间相关的、且长短不一(非固定长度)数据,所以我们引入了RNN循环神经网络来处理序列类型的数据。通过循环神经网络,不仅能够利用当前的数据进行预测,而且也能够利用到之前的数据。从对数据利用率的角度来讲,对数据的利用率增大。

RNN原理

首先介绍RNN循环神经网络的原理。
所谓的网络,依旧是多层的,从前面的层往后面层进行矩阵相乘,并且加上激活函数,输出预测值,并且估计出预测值和实际值之间的损失,利用损失计算出梯度,使用一些参数更新方法(Adam, RMSprop)更优化器来反向传播更新参数。最后得到一个理想的输出。

所谓的“循环”,在于权值不停地在不同的时间点(t-1, t, t+1)上进行乘积,每个事件序列使用到的对输入数据的处理U,对向向下一个神经元的传播W、以及对每个时刻输出的权重矩阵V, 其中U, W, V都是一致的。不同权重之间有差异,但是这些权重不会随着时间的推移发生改变,并且,上一个神经元的信息,可以通过中间的传递矩阵W传递到下一个时刻的神经元中去。

5.24 5.24

其中每一个RNN的层是第一个图片这里所示,多个层,如第二个图片这里所示。

关于一层神经元传递的方式,如下所示:
h t = ϕ ( Y x t + W h t − 1 + b ) o t = V h t + c y t = σ ( o t ) \begin{aligned} h_t &= \phi(Y x_t + W h_{t-1} + b) \\ o_t &= V h_t + c \\ y_t &= \sigma (o_t) \end{aligned} htotyt=ϕ(Yxt+Wht1+b)=Vht+c=σ(ot)
其中 h t h_t ht是隐藏层单元的取值, o t o_t ot是当前的加权和, y t y_t yt是被激活后的输出值,j激活函数 σ \sigma σ一般是softmax,

TODO:介绍前向和后向传播的原理(主要是公式推导)

RNN 的变体

因为RNN有两个问题,一个是梯度爆炸,一个是梯度消失。

关于梯度爆炸,解决的方式比较粗暴,使用简单的剪切法,当变量超出某个边界时,可以将这个变量的取值设置为边界;

关于梯度消失,解决的方法一般有两个,一个是改变激活函数,一个是改变网络的结构。
关于改变激活函数,因为sigmoid激活函数大部分的激活函数的导数取值都在(0, 0.25]之间,当网络层数变深时,乘积的基数都小于0,这会导致后向传播更新参数时会使得参数趋于0,进而导致参数不再变化,这不利于找到最优的参数。
激活函数,可以使用导数不小于0的,比如使用ReLU激活函数,当变量取值大于0时,导数等于1。
注意:因为当取值小于0时,ReLU激活函数取值为0,这回造成某些单元永远都不会被激活。所以,之后在选择学习率时,尽可能选择小的学习率,让参数减小的速度尽可能缓慢。

另一个可以改变网络结构,这就是之后介绍的LSTM网络,LSTM网络引入了两个门,并且引入了带有前面神经元信息的神经元输出。它能够记忆的信息会变多,缓解了梯度消失的问题。

再接着介绍peephole LSM, GRU等基于LSTM的循环神经网络。前者主要是允许查看们曾单元状态,后者将隐藏状态和单元状态合并为一个信息通道。

RNN的应用

语音识别、情感分析、机器翻译、机器创作等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值