机器学习小白关于循环神经网络的5个问题

机器不学习-关注机器学习,深度学习,自然语言处理,大数据,个性化推荐,搜索算法,知识图谱

问题1:什么是循环神经网络RNN?

如下图,如何能让Alpha蚂蚁识别下图的句子(是让它识别句子理解句子而非文字),并且填入正确的答案呢?

如果用以往的方式,Alpha蚂蚁只能看到是这个字以及它后面的内容,关键是谁知道是后面该填写什么?Alpha蚂蚁去搜索了百度,百度上最高的统计结果是:“是”后面跟着“我”字,于是Alpha蚂蚁在这里填写了“我”,但是结合上下文我们知道,这里填“我”是不对的,所以,就需要Alpha蚂蚁能记住前面的内容,这个称之为记忆(和人类的类似,只不过我们不知道大脑是这么思考的而已,事实上大脑一瞬间干了很多事),那么记住前面内容之后,Alpha蚂蚁再拿着这一整句话去搜索,这个时候,搜索的最高的统计结果是:“我的朋友”,所以Alpha蚂蚁写对了。

简而言之,通过记忆之前的输入内容,将上下文彼此连接,这种方式,称之为循环神经网络RNN。

问题2:RNN的应用场景有哪些?

RNN可以用来描述图片,作曲,写程序脚本,写学术论文等。

问题3:什么是LSTM RNN?

LSTM(Long Short-Term Memory)——意思是长短期记忆,LSTM RNN即长短期记忆的循环神经网络。

问题4:传统RNN有什么弊端?

传统的循环神经网络(RNN)是有弊端的——无法进行长久记忆!

我们知道,循环神经网络是需要有记忆功能的。之前说到的都是短期记忆,为什么RNN无法进行长久记忆呢?看下图:

加入这句话中间省略了5000字,如果要理解X的输入,我们应该输出的是红烧排骨这道菜,但是红烧排骨这个关键信息是在这么长句子的最开头......

传统的RNN通过处理这么长的信息,很容易出现以下两个问题:

举个栗子,Alpha蚂蚁每次只能处理3个字,每次往前处理信息都要乘以1个大于或小于1的参数(统一的大于或小于),按照这个思路,就会出现以下两个问题——

比如最后三个字是“出锅了”,要追溯到“红烧排骨”,假如“出锅了”是19.9,结果就是19.9*0.8*0.7*0.67......*0.2当乘以很多次之后,结果到了“红烧排骨”参数就接近于0了,这种称为梯度消失现象!再比如,19.9*1.01*1.12*......*1.32当乘以很多次之后,结果到了“红烧排骨”参数就接近于无穷大了,这种称为梯度爆炸现象!

存在梯度消失现象(或者梯度弥散);

梯度爆炸现象;

而LSTM RNN为了解决这些弊端而生。

问题5:LSTM RNN如何解决传统RNN的弊端的?

长短期记忆的循环神经网络,有两条线,一条主线,一条分线,一个忘记控制,一个输入,一个输出;主要通过忘记进行相关不重要信息的更新,把重要的信息替换到主线不重要的信息上去,这样就能时刻更新主线的关键信息,最后,输出端读取的是主线的信息!

举个栗子:随着Alpha蚂蚁 不断读取文本信息,前面的信息都作为分线剧情给到主线,比如一道菜给到主线,美味给到主线......但是这些并非主要信息,直到出现红烧排骨,这个时候,忘记继续进行更新,将主线更新为红烧排骨即可,最后实现关键信息的长期记忆!

更多精彩内容,机器不学习官方网站

posted @ 2018-02-01 18:09  机器不学习  阅读(738)  评论(0编辑  收藏  举报