您现在的位置是:首页 > 文章详情

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

日期:2018-04-28点击:449

目前深度学习和神经网络算法最典型的有两个应用实例,一个是图像识别,一个是语音识别。上一篇文章讲到图形识别的卷积神经网络(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基本结构

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

img_3239bceca13c5c4289893e0f485d9c96.png
image.png

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

img_39ed54c42e24875a5a827297c9477a66.png
image.png

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

img_8bb63cd4f0b9b6d5f797b4554fd4f1e7.png
image.png

2.RNN的应用实例

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

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

img_c1ae96585630f83319dc08e727d3a8f3.png
image.png

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

img_062a7b2c5d912aaf745a23a4bcf339e0.png
image.png

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

img_e480bf2158213e5649d0a4ddada6060f.png
image.png

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

img_6354af0688ca2ba63ee61e4044ffb171.png
image.png

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

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

————
相关文章
AI学习笔记——神经网络和深度学习
AI学习笔记——卷积神经网络1(CNN)
————
文章首发steemit.com 为了方便墙内阅读,搬运至此,欢迎留言或者访问我的Steemit主页

原文链接:https://yq.aliyun.com/articles/655967
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章