赞
踩
循环神经网络(RNN)
概述:分别描述了RNN(引入的原因)(定义)(模型原理)(优势)(主要用途)
引入原因
全连接神经网络和卷积神经网络的缺点
全连接神经网络和卷积神经网络,以及它们的训练和使用。他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。
这时,就需要用到深度学习领域中另一类非常重要神经网络:循环神经网络(Recurrent Neural Network)。
RNN定义:是一类用于处理序列数据的神经网络
序列数据定义 首先我们要明确什么是序列数据, 时间序列数据 :: 是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。这是时间序列数据的定义,当然这里也可以不是时间,比如文字序列,
但总归序列数据有一个特点::——后面的数据跟前面的数据有关系RNN的 模型原理(使用有限参数处理任意时间的数据)
下图展示了一个典型的循环神经网络,在每一时刻t,循环神经网络会针对该时刻的输入结合当前模型的状态给出一个输出,并更新模型状态。循环神经网络的主体结构A的输入来自输入层x_t,还有一个循环的边提供上一时刻的隐藏状态h_{t-1}。在每个时刻,循环神经网络的模块A在读取了x_1和h_{t-1}之后会生成新的隐藏状态h_t,状态h_{t-1}浓缩了前面序列x_0,x_1,
x_{t-1}的信息,用于作为输出o_t的参考,并产生本时刻的输出o_t。由于序列长度可以无限延长,维度有限的h状态不可能将序列的全部信息保存下来,因此模型必须学习只保留与后面任务ht,h{t+1},
现在看上去就比较清楚了,这个网络在t时刻接收到输入xt之后,隐藏层的值是st,输出值是ot。关键一点是,st的值不仅仅取决于xt,还取决于st−1
由于模块A中运算和变量在不同时刻是相同的,因此循环神经网络理论上可以被看作是在同一神经网络结构被无限复制的结果,循环神经网络在不同时间位置共享参数,从而能够使用有限的参数处理任意时间长度的序列
RNN神经网络优势
我们从基础的神经网络中知道,神经网络包含输入层、隐层、输出层,通过激活函数控制输出,层与层之间通过权值连接。激活函数是事先确定好的,那么神经网络模型通过训练“学“到的东西就蕴含在“权值“中。基础的神经网络只在层与层之间建立了权连接,RNN最大的不同之处就是在层之间的神经元之间也建立的权连接
传统的机器学习算法非常依赖于人工提取的特征,使得基于传统机器学习的图像识别、语言识别以及自然语言处理等问题存在特征提取的瓶颈。而基于全连接神经网络的方法也存在参数太多、无法利用数据中时间序列信息等问题。随着更加有效的循环神经网络结构被不断提出,循环神经网络挖掘数据中的时序信息以及语义信息的深度表达能力被充分利用,并在机器学习、语言识别、语言模型、机器翻译以及时序分析等方面实现了突破。循环神经网络的主要用途
处理和预测序列数据。
全连接神经网络或卷积神经网络模型中,网络结构都是从输入层到隐含层再到输出层,层与层之间是全连接或部分连接的,但每层之间的节点是无连接的。考虑这样一个问题,如果要预测句子下一个单词是什么,一般需要用到当前单词以及前面的单词,因为句子中前后单词并不是独立的。比如,当前单词是“很”,前一个单词是“天空”,那么下一个单词很大概率是“蓝”、循环神经网络的来源就是刻画一个序列当前的输出与之前信息的关系。从网络结构来看,循环神经网络的隐藏层之间的结点是有连接的,隐藏层的输入不仅包括输入层,还包括上一时刻隐藏层的输出。语言模型
语言模型定义
RNN是在自然语言处理领域中最先被用起来的,比如,RNN可以为语言模型来建模。那么,什么是语言模型呢?语言模型就是这样的东西:给定一个一句话前面的部分,预测接下来最有可能的一个词是什么。
让电脑帮我们写下接下来的一个词
我昨天上学迟到了,老师批评了____。 接下来的这个词最有可能是『我』,而不太可能是『小明』,甚至是『吃饭』。
语言模型的用处(识别文本)。 比如在语音转文本(STT)的应用中,声学模型输出的结果,往往是若干个可能的候选词,这时候就需要语言模型来从这些候选词中选择一个最可能的。当然,它同样也可以用在图像到文本的识别中
。
RNN的不足 基本的循环神经网络存在梯度爆炸和梯度消失问题,并不能真正的处理好长距离的依赖,事实上,真正得到广泛的应用的是循环神经网络的一个变体:长短时记忆网络。它内部有一些特殊的结构,可以很好的处理长距离的依赖。
循环神经网络可以更好地利用传统神经网络结构所不能建模的信息,但同时,这也带来了更大的技术挑战——长期依赖问题。在有些问题中,模型仅仅需要短期内的信息来执行当前的任务。比如,预测短语“大海的颜色是蓝色”中的最后一句话包含了足够的信息来预测最后一个词。在这样的场景中,相关的信息和待预测的词的位置之间的间隔很小,循环神经网络可以比较容易地利用先前的信息。
但是当前的预测位置和相关信息之间的文本间隔有可能非常大,或者在复杂的语言场景中,有用信息间隔有大有小,长短不一,循环神经网络的性能也会受到影响。
长短时记忆网络的设计就是为了解决这个问题,梯度消失 定义::在神经网络中,当前面隐藏层的学习速率低于 后面隐藏层的学习速率,即随着 隐藏层数目的增加,分类准确率反而下降了。这种现象叫做消失的梯度问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。