AI学习笔记——循环神经网络(RNN)的基本概念

目前深度学习和神经网络算法最典型的有两个应用实例,一个是图像识别,一个是语音识别。上一篇文章讲到图形识别的卷积神经网络(CNN)就广泛应用在了图像别方面,而这篇文章就来讲另一个广泛应用于语音识别的算法循环神经网络(RNN)。

如果说CNN通过滤波器识别出图片中空间像素的关系,那么RNN就能够在时间序列的数据中找到规律,从而预测未来。所以RNN与CNN最大的不同就是, RNN的神经元输入的不仅是要有当前时间点的数据,还需要之前时间点的输出结果。因为当前的输出是跟之前(甚至是之后)的输出是相关的。

举一个简单的例子,给你一组数据【1,2,3,4,5,6】,让你将时间窗口向未来移动一步,你很容易就可以得到结果【2,3,4,5,6,7】。你给出答案7,是因为你发现了7跟6的关系,6跟5的关系,一次类推,RNN的基本原理是这样,就是发现时间序列上输入与输出之间的 关系。

1. RNN基本结构

跟普通神经网路的神经元一样,输入和输出之间是一个线性函数和一个非线性的激活函数如图

image.png

只不过在神经元会将输出结果又返回给输入端,如果将这个过程在时间的维度上展开就是这个样子的

image.png

当然一层也可以拥有多个神经元

image.png

2.RNN的应用实例

RNN并不是每个神经元都要有输入跟输出,输入跟输出可以是多对多(输入输出一一对应)多对一一对多多对多(输入和输出并非一一对应的)

举一个多对多,输入输出一一对应的例子。比如给一段话" Tom is very happy to play with Bill" ,让你判断这句话中每一个单词是否是人名。那输出就应该是[1, 0, 0, 0, 0, 1],"1"代表是人名,"0"代表不是人名。这就是典型的多对多一一对应的例子

image.png

当然也有多对一的例子,比如,输入是一段话的影评,然后输出是一个评分的数字。

image.png

一对多的例子也有很多,比如给一个开头的基调让机器谱曲。

image.png

最后是多对多,但并非一一对应的RNN。这种情况典型应用就是翻译,因为每种语言的词汇都不是一一对应的。

image.png

RNN的基本概念就是这么简单,之后的文章会继续深入介绍一下RNN的具体模型以及在文字处理方面的应用。

本文和之前的文章中用到了twitter上TessFerrandez在吴恩达深度学习课程的笔记,在此对TessFerrandez的精美笔记表示感谢。

————
相关文章
AI学习笔记——神经网络和深度学习
AI学习笔记——卷积神经网络1(CNN)
————
首发steemit

欢迎扫描二维码关注我的微信公众号“tensorflow机器学习”,一起学习,共同进步


image

推荐阅读更多精彩内容