tensorflow学习,经典循环神经网络(RNN)的原理与结构(23)
发表于: 2018-07-19 22:53:12 | 已被阅读: 32 | 分类于: tensorflow
经过前面几节的学习,相信对经典神经网络已经非常熟悉了。从本节开始,将学习循环神经网络(recurrent neural networks, RNN),它适用于分析和解决具有前后关联性的数据问题。
问题引出
下图是经典的模拟神经网络模型,它认为每一个输入都是独立,没有关联的。
虽然经典的网络模型成功解决了一些问题,但是对于一些涉及前后关联的数据问题,它是无能为力的,例如
我非常向往北京,如果有机会,我一定会去( )。
对于这样的填空题,人脑能很快的填入符合前后逻辑的答案。但是对于上面的经典神经网络模型,它对这样的填空题真的是一头雾水。
经典循环神经网络
哲学认为万物皆有联系,所以实际生活中,我们接触到的数据也都是具有联系的。
如上图,一个序列的数据可以是
- x1-4 分别是一句话的第 1-4 个字。
- 在一段语音中,x1-4 表示每帧声音信号。
- 表示连续 4 天的股票。
等等。可以说,经典神经网络对于前后具有关联性的数据集几乎无能为力。
上图中的 x1-4 表示输入,h0 是第一个隐状态,之后的隐状态的计算需要根据前面一个隐状态的值。这样前后数据的关联性就被保留在网络里了。
在循环神经网络 CNN 中,图中公式中的
按照图中的公式计算完隐状态,还剩下
使用
N-1 循环神经网络
h4 是由前面 3 输入递推出来的,保留着输入数据的关联性特征,因此这么做是合理的。这种结构通常用来处理序列分类问题,例如输入一段文字,判断它所属的类别,输入一句话判断它的情感倾向,输入一段视频判断类别等等。
1-N 循环神经网络
顾名思义,即输入是一个值,而输出是一个序列。我们可以只在序列的开始进行计算。
也可以使单个输入值,作为每一个阶段的输入:
它可以解决 N-1 的反向问题,例如,根据情感生成一句话,根据类别生成语音或者音乐,等等。
经典循环神经网络就介绍到这,接下来计划学习生成古诗词的网络。