小标
2018-09-28
来源 :
阅读 1192
评论 0
摘要:本文主要向大家介绍了机器人之Hulu机器学习问题与解答系列 | 第九弹:循环神经网络,通过具体的内容向大家展现,希望对大家学习机器人有所帮助。
本文主要向大家介绍了机器人之Hulu机器学习问题与解答系列 | 第九弹:循环神经网络,通过具体的内容向大家展现,希望对大家学习机器人有所帮助。
大噶好,今天是有关RNN问题的解答。记得多多思考和转发,公式供应充足的Hulu机器学习系列,怎么能只自己知 (shou)道 (nue) ~
今天的内容是
【循环神经网络】
场景描述
循环神经网络(Recurrent Neural Network)是一种主流的深度学习模型,最早在20世纪80年代被提出 ,目的是建模序列化的数据。我们知道,传统的前馈神经网络一般的输入都是一个定长的向量,无法处理变长的序列信息,即使通过一些方法把序列处理成定长的向量,模型也很难捕捉序列中的长距离依赖关系。而RNN通过将神经元串行起来处理序列化的数据,比如文本的词序列、音频流和视频流序列等。由于每个神经元能用它的内部变量保存之前输入的序列信息,使得整个序列可以被浓缩成抽象的表示,并可以据此进行分类或生成新的序列。近年来,得益于计算能力的大幅提升和网络设计的改进(LSTM、GRU、Attention机制等),RNN在很多领域取得了突破性的进展。比如机器翻译、序列标注、图像描述、视频推荐、智能聊天机器人、自动作词作曲等,给我们的日常生活带来了不少便利和乐趣。
问题描述
什么是循环神经网络?如何用它产生文本表示?
RNN为什么会出现梯度的消失或爆炸?有什么样的改进方案?
解答与分析
1. 什么是循环神经网络?如何用它产生文本表示?
传统的前馈神经网络,包括卷积神经网络(Convolutional Neural Network, CNN)在内,一般都是接受一个定长的向量作为输入。比如在做文本分类时,我们可以将一篇文章所对应的TF-IDF(Term Frequency-Inverse Document Frequency)向量作为前馈神经网络的输入,其中TF-IDF向量的维度是词汇表的大小。显而易见,这样的表示实际上丢失了输入的文本序列中每个单词的顺序。在用卷积神经网络对文本进行建模时,我们可以输入变长的字符串或者单词串,然后通过滑动窗口+Pooling的方式将原先的输入转换成一个固定长度的向量表示;这样做可以捕捉到原文本中的一些局部特征,但是两个单词之间的长距离依赖关系还是很难被学习到。
RNN(Recurrent Neural Network,循环神经网络)的目的便是处理像文本这样变长并且有序的输入序列。它模拟了人阅读一篇文章的顺序,从前到后阅读文章中的每一个单词,并且将前面阅读到的有用信息编码到状态变量中去,从而拥有了一定的记忆能力,可以更好地理解之后的文本。下图展示了一个典型RNN的网络结构[1]:
其中f和g为激活函数,U为输入层到隐含层的权重矩阵,W为隐含层从上一时刻到下一时刻状态转移的权重矩阵,在文本分类任务中(如上图),f可以选取Tanh或者ReLU函数,g可以采用Softmax函数,更多关于激活函数的细节可以参见[2]。
2. RNN为什么会出现梯度的消失或爆炸?有什么样的改进方案?
RNN模型的求解可以采用BPTT(Back Propagation Through Time)算法实现 ,实际上是反向传播(Back Propagation)算法的简单变种;如果将RNN按时间展开成T层的前馈神经网络来理解,就和普通的反向传播算法没有什么区别了。RNN的设计初衷之一就是能够捕获长距离输入之间的依赖。从结构上来看,RNN也绝对能够做到这一点。然而实践发现,使用BPTT算法学习的RNN并不能成功捕捉到长距离的依赖关系,这一现象可以用梯度消失来解释。传统的RNN梯度可以表示成连乘的形式:
其中
由于预测的误差是沿着神经网络的每一层反向传播的,因此当Jacobian矩阵的最大特征值大于1时,随着离输出越来越远,每层的梯度大小会呈指数增长,导致梯度爆炸(gradient explosion);反之,若Jacobian矩阵的最大特征值小于1,梯度的大小会呈指数缩小,即产生了梯度消失(gradient vanishing)。对于普通的前馈网络来说,梯度消失导致无法通过加深网络层次来改善神经网络的预测效果,因为无论如何加深网络,只有靠近输出的若干层才真正起到的学习的作用。对于RNN来说,这导致模型很难学习到输入序列中的长距离依赖关系。
梯度爆炸的问题可以通过梯度裁剪(Gradient Clipping)来缓解,也就是当梯度的范式大于某个给定值时,对梯度进行等比收缩;而梯度消失问题相对比较棘手,需要对模型本身进行改进。 ResNet[3]是对前馈神经网络的改进,通过残差学习的方式缓解了梯度消失的现象,从而使得我们能够学习到更深层的网络表示;而对于RNN来说,LSTM(Long short-term memory)[4]及其变种GRU(Gated recurrent unit)[5]等模型通过加入门控机制(Gate),很大程度上改善了梯度消失所带来的损失。关于ResNet和LSTM的细节会在其他章节介绍,敬请期待。
参考文献:
[1] Liu, Pengfei, Xipeng Qiu, and Xuanjing Huang. "Recurrent neural network for text classification with multi-task learning." arXiv preprint arXiv:1605.05101 (2016).
[2] https://en.wikipedia.org/wiki/Activation_function
[3] He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.
[4] Hochreiter, Sepp, and Jürgen Schmidhuber. "Long short-term memory." Neural computation 9.8 (1997): 1735-1780.
[5] Chung, Junyoung, et al. "Empirical evaluation of gated recurrent neural networks on sequence modeling." arXiv preprint arXiv:1412.3555 (2014).
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能智能机器人频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号