其他分享
首页 > 其他分享> > SIGAI深度学习第十二集 循环神经网络1

SIGAI深度学习第十二集 循环神经网络1

作者:互联网

讲授时间序列预测问题、神经网络的记忆功能、循环层的原理、输出层的原理、深层网络、BPTT算法等

大纲

序列数据建模
让神经网络具有记忆功能
循环层的原理
输出层的原理
完整的网络结构
深层网络
训练算法简介
训练算法的推导

本集内容简介

从今天开始用四节课讲述循环神经网络,这是除卷积神经网络CNN以外另一个被广为使用的深度神经网络结构。RNN它典型的应用有两块大的领域,一块是语音识别,一块是NLP,它们都有一个特点,就是它们要处理的数据都是序列数据,也就是随着时间线变化的数据,等会会细讲。今天这节课讲这些内容,首先简单介绍一下序列数据建模的基本概念,通过一些实际的例子展示,接下来会介绍怎么让人工神经网络具有记忆功能,因为我们之前学的神经网络他都不具有记忆功能,再接下来我们会讲述RNN的结构,整个RNN它主要的层除了输入层以外就是循环层、输出层以及整个网络的结构,再接下来我们会讲述深层网络的结构,也就是把RNN给做深,然后我们会重点介绍RNN它的训练算法即BPTT算法,该算法理解起来的难度比ANN、MLP、CNN要难一些的,因为它是一个递归的东西。

时间序列预测问题

首先我们简单介绍一下时间序列预测的问题,什么是时间序列预测问题呢?

他是这样一类问题,他要处理的数据是一个时间序列,可以认为就是一个数列,由x1,...,xt组成的,t就是时间下表time,这是其中的一个特点,它是数列,第二个特点是,它的各个xi及xj之间不是没有关系的,我们普通的神经网络也可以处理多个输入值,比如x1,...,xt多个向量,但是它每次只接受一个输入产生一个输出,各次输入之间它是没有关系的,但是这个时间序列他有一个特点就是各个时刻的值它们之间是有关联的,比如说以NLP为例,我们说的一句话它其中的每个词就是一个向量,可以采用one-hot编码(若词典中总共6763个词,然后若出现的是第i个词我们就把向量第i位弄成1其他位弄成0,这个向量是6763维的列向量,但程序里边用的是行向量),那我们把一句话拆成多个词以后对应一个序列x1,...,xt,每个词都是一个one-hot编码的向量xi,这样我们就把一个句子表示成这样一个序列了。

我们直到人说话的时候他显然是有上下文语境的,也就是说后边说的词和前边说的词肯定是有关系的,不是凭空乱造出来的,因此这个序列各个时刻的值是有上下文的关联关系的,而我们的时间序列预测问题它是要解决一个问题,依次把x1,...,xt输进来产生一个输出,一般来说各个时刻都可以有一个输出值,当然接收完输入最后产生一个输出值也是可以的。

比如说句子进行褒贬分类即二分类问题,那就把句子每个词依次输到我们的模型里边,完了以后我们最后预测出一个0或1这样的值出来,这就是时间序列的预测问题。

时间序列预测问题它典型的就是语音识别和NLP,语音识别是怎么做的呢,我们前边第一讲里讲过了,它接收的是一个时间序列的信号,每个时刻有一个振幅值声音在时域里边的信号,它最后产生的输出就是各个时刻对应的是一个怎么样的文字,就是根据这样一个时间线的波形信号产生这样一个句子的输出,这就是语音识别。

NLP也是这样的,还是刚才的例子,我们输入一句话,我们输出这句话它要完成的意图,比如说做自动对话客服机器人,你对它说了一句话,它要判断你这段文字你是想干嘛,比如说想维修你的电器还是想退货还是想咨询一个使用的问题等等,那这就是一个时间序列的预测问题,我们说的一句话把它抽象为一个向量的序列作为输入,对它进行分类。

我们想一下,这种序列预测问题我们可不可以用一般的神经网络来做呢?不能。为什么呢?普通的神经网络如ANN、MLP,它要求我们是一个固定长度的输入信号,也就是说输入向量X是固定长度的,它产生一个输出,这显然是不满足,因为它的长度是随时间线变化的,就是把各个时刻的向量拼接起来形成一个更大的向量也是不行的,而标准的CNN也是不行的,因为它接收的是一个图像数据,如果把时间序列向量按行或列摆开成像图一样的二维数据送到CNN里边去处理,但是直接这样送进去也是不行的,因为这个序列长度它是不固定的,因为句子有长有短、声音信号可能有长有短,那要么你用0补齐送到里边去预测,但显然不是一种合适的做法。

所以说我们的时间序列预测问题它会遇到两个问题,第一个就是序列长度他不是固定的,即x1,...,xt这个t是多少是不固定的,第二个问题是各个时刻的值即xt、xt+1它们之间是有关系的,句子里说的下一个词显然是由前边几个词共同决定的与其有关的,因此它各个时刻之间存在依赖关系,这样就需要我们的神经网络,如果依次输入每个词来处理的话,那他就要具有记忆功能,也就是它要能记住前边那些时刻从1时刻到t-1时刻它输入的是什么东西,把它记在脑子里边,然后再接收t时刻输入的时候他要和前边1到t-1时刻输入的信息共同的来决定一个输出值。一个实际的例子,让神经网络或其他的机器学习模型做句子填空题。

现在已经下午2点了,我们还没有吃饭,非常饿,赶快去餐馆__。

神经网络具有记忆功能

下面

标签:SIGAI,第十二,一个,神经网络,输入,序列,时刻,向量
来源: https://www.cnblogs.com/wisir/p/12336018.html