深度学习(Deep Learning)读书思考六:循环神经网络一(RNN)

本文介绍了循环神经网络(RNN)的基础知识,包括其提出动机、模型结构和优化问题。RNN适用于序列化问题,如语言模型、语音识别等。文章详细阐述了RNN的前向传播过程、BPTT优化算法以及梯度弥散和爆炸问题,提出了LSTM、GRU等解决方案,并探讨了双向RNN和深度RNN的概念。
摘要由CSDN通过智能技术生成

概述

循环神经网络(RNN-Recurrent Neural Network)是神经网络家族中的一员,擅长于解决序列化相关问题。包括不限于序列化标注问题、NER、POS、语音识别等。RNN内容比较多,分成三个小节进行介绍,内容包括RNN基础以及求解算法、LSTM以及变种GRU、RNN相关应用。本节主要介绍

1.RNN基础知识介绍
2.RNN模型优化以及存在的问题
3.RNN模型变种

RNN知识点

RNN提出动机

RNN的提出可以有效解决以下问题:

  1. 长期依赖问题:在语言模型、语音识别中需要根据上下文进行推断和预测,上下文的获取可以根据马尔科夫假设获取固定上下文。RNN可以通过中间状态保存上下文信息,作为输入影响下一时序的预测。
  2. 编码:可以将可变输入编码成固定长度的向量。和CNN相比,能够保留全局最优特征。

    计算图展开

    RNN常用以下公式获取历史状态

    ht=f(ht1,xt;θ)

    其中h为隐藏层,用于保存上下文信息,f是激活函数。
    用图模型可以表达为:
    这里写图片描述

RNN潜在可能的展开方式如下:
1)通过隐藏层传递信息
这里写图片描述

1.该展开形式非常常用,主要包括三层输入-隐藏层、隐藏层-隐藏层、隐藏层到输入层。依赖信息通过隐藏层进行传递。
2.参数U、V、W为共享参数

2)输出节点连接到下一时序序列
这里写图片描述

应用比较局限,上一时序的输出作为下一时间点的输入,理论上上一时间点的输出比较固定,能够携带的信息比较少。

3)只有一个输出节点
这里写图片描述

只在最后时间点t产生输出,往往能够将变成的输入转换为固定长度的向量表示。

RNN使用形式

在使用RNN时,主要形式有4中,如下图所示。
这里写图片描述

1.一对一形式(左一:Many to Many)每一个输入都有对应的输出。
2.多对一形式(左二:Many to one)整个序列只有一个输出,例如文本分类、情感分析等。
3. 一对多形式(左三:One to Many)一个输入产出一个时序序列,常用于seq2seq的解码阶段
4.多对多形式(左四:Many to Many)不是每一个输入对应一个输出,对应到变成的输出。

RNN数学表达以及优化

RNN前向传播

对于离散时间的RNN问题可以描述为,输入序列

(x1,y1),(x2,y2),(x3,y3)......(xT,yT)

其中时间参数t表示离散序列,不一定是真实时间点。
对于多分类问题,目标是最小化释然函数
mint=1TL(y^(xt),yt)=mintlog p(yt|x1,x2...xt)

根据上面经典的RNN网络结构,前向传播过程如下:
如上图U、V、W分别表示输入到隐藏层、隐藏层到输出以及隐藏到隐藏层的连接参数。
1. 隐藏层节点权值: at=b+Wht1+Uxt
2. 隐藏层非线性变换: ht=tanh(at)
3. 输出层: ot=c+Vht
4. softmax层: y^t=softmax(ot)

RNN优化算法-BPTT

BPTT 是求解RNN问题的一种优化算法,也是基于BP算法改进得到和BP算法比较类似。为直观上理解通过多分类问题进行简单推导。
1. 优化目标,对于多分类问题,BPTT优化目标转换最小化交叉熵:

mintLtLt=kytklogy^tk
这里假设有k个类
2. 由于总的损失L为各个时序点的损失和,因此有
LLt=1

3. 对于输出层中的第i节点有
(otL)i=Loti=LLtLtoti=y^
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值