我是靠谱客的博主 跳跃雨,最近开发中收集的这篇文章主要介绍数据分析与机器学习学习笔记--循环神经网络(通俗理解),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.引言

        接着上文的CNN来说,CNN通常用于计算机视觉领域那么这个循环神经网络(RNN)是什么的干活?相比于计算机视觉RNN通常作用于语言处理,目前最为常见的自然语言处理就是通过RNN的‘同胞’实现的。或许你会疑问既然CNN已经如此强大了为什么对语言的处理不延续使用CNN模型呢?由于语言的数据量十分庞大使用CNN进行训练需要的参数存在几何倍增加,同时我们没说一句话都是存在一定的时序的,时序的不同表达的意思也不同(这也是我认为自然语言处理最难的地方)。。。。接下来就对RNN网络进行一个解剖从根本上理解他是如何在语言处理方向上大放光彩的。

2.循环神经网络

        首先我们解释一下处理语言问题为何不能使用人工神经网络和卷积神经网络,首先以上两种网络层与层之间的输入和输出都是独立的,处理非时序的问题时有强大的解决能力,但是当我们遇到一个句子时这种解决能力就派不上用场,比如说这个句子‘我喜欢勒布朗詹姆斯,我平常爱和朋友打____。’当我们把这个句子输入到以上两种网络可能会得到其他结果,比如和朋友打架、和朋友打年糕。。。。忽略了之前文字带来的影响,但是输入到RNN中就不一样了,RNN会‘记忆’之前的内容,他记下了‘勒布朗詹姆斯’发现他是一个篮球巨星,因此RNN会推断输出和朋友打篮球。

        那么RNN是如何保留这种‘记忆’呢,观察下部左侧图,RNN神经网络结构图,x为输入的数据,同时右侧的圆圈也是RNN的输入,这部分输入的就是之前的记忆,有两个输入共同决定最后的输出。对于左侧图不是特别容易理解,我们将其展开进行进一步解释。看右侧图片中间的‘神经元’,该神经元的输入源自两个方面,一个是下方的x,x代表的是当前时刻输入的外部数据也就是上文举例的句子中的汉字或者词语,另一个来自上一个‘神经元’传递的s,s代表的是内部数据也就是上一个神经元经过计算后保留的记忆。将两个输入共同作用在当前神经元上,经过计算后输出O。这就是使用RNN处理语言问题的第一个原因。

        第二,正如上文提到的句子的数据量很大,使用CNN计算需要大量的参数,又因为需要进过多层卷积每层的权重矩阵都不同可想而知一个CNN网络需要多少的参数,严重影响计算速度。再次观察右图,发现每个神经元的W、U、V三个参数都是一样的难道在RNN中每层的权重参数都是一样的?正是如此,在RNN中每层公用同一个权重矩阵,因此RNN避免CNN中每层都要生成权重的问题,这也是使用RNN处理此类问题的第二个原因。

           

        将‘神经元’解剖后内部的通道如下图所示,输入层使用的是tanh函数作为RNN的激活函数,计算后的结果分别输出到两条线路,一个传递到写一个‘神经元’(就是上文所说的‘记忆’),一个作为当前的输出(此输出为可选部分,RNN有多种形式)。简单说一下有几种RNN的类型,1.一对一:每个神经元都有一个输入同时每个‘神经元’都有一个输出。2.一对多:仅有第一层输入x,往后的每个‘神经元’都将上一层计算结果O当作本层的输入x。3.多对一:每个‘神经元’都有一个输入,但是每层不输出仅在最后输出层输出一个结果,例子中预测填的单词就属于多对一类型。

3.RNN应用举例

3.1 模仿写作新闻和文章等

        通过输入大量的新闻作品和作家文章,经过训练后的RNN网络随机输入一个开头的文字RNN网络会自动生成一篇新闻稿件(当然不能保证文章的含义,但是经过多次训练后可以保证大致通顺)。接下来就是通过输入大量的唐诗训练得来的RNN网络输出的一首诗词,读起来还是有一定的意境但是没看出来具体含义。

此事无时事,谁知有旧人。
自怜山上处,谁得一相逢。
一日无相访,无人在此身。
无言有人事,何处见春风。
一夜无时尽,何年到故人。
相思不可见,一醉不能知。
日暮无心尽,山中不有时。
不知归梦去,不得是归人。
何事无相识,无人有此年。
何言不相问,无事在山山。
日日青松下,山寒雨色深。
春光生玉帐,秋草入秋云。
不得无时去,相逢不得行。
秋光不自起,春水一年春。
日月山边路,秋风落月流。
春光不可见,不有一山春。
山下春光急,风寒水水清。
不知何处去,不是一年年。
一日无人处,相思不得游。
山风生月雨,山水入山城。
不得人无日,无人自自闻。
一时无事在,何日见春风。
山上云初落,风波日暮寒。

3.2 看图说话

        此部分属于进来兴起的领域,通过RNN与CNN的结合完成看图说话的任务。如下图所示,此部分我没有看过相关的论文和介绍,但是大致方法应该是通过CNN网络进行目标检测,将CNN提取出的数据和特征作为新的数据输入到后面的RNN网络,由RNN计算后得到的结果生成图片的描述。

3.3 音乐盒声音方面的作用

        RNN在自动生成音乐方面以及微信中常见的语音转换到文字方面起着至关重要的作用,因为语音和音乐类似于句子都是包含一定的时序关系,因此通过RNN模型处理此类问题也是相当very good的。

4.总结

        回顾从第一篇博客的发表到今天循环神经网络的完成两个多月的时间过去了,自己抱着写着玩的心态开始写这个系列,中间也会抱怨和不想写但总算坚持写完了(请忽略几次没有按时发布)。估计这是我从小到大第一次主动写的这么多的字。。。。由于第一次写博客而且自己学艺不精,其中难免会有错误,希望看过的读者批评指正好让我及时更正避免误导之后的读者—————总之我的数据分析与机器学习系列的更新到这里就要暂停一段落了,各位byebye。

再提一句,书写过程使用了一些网上的图片和例子感谢各位博主和大佬

最后

以上就是跳跃雨为你收集整理的数据分析与机器学习学习笔记--循环神经网络(通俗理解)的全部内容,希望文章能够帮你解决数据分析与机器学习学习笔记--循环神经网络(通俗理解)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部