新趋势IT studyPython语言与信息数据获取和机器学习

什么是LSTM

2017-01-07  本文已影响270人  云时之间

哈喽,大家好,上一次我们了解了什么是卷积神经网络RNN,然后我又加上了我翻译的那一篇文章来简述了一下RNN和LSTM,今天,让我们来详细的了解下什么是LSTM。

首先提到RNN呢,我们自然会想到RNN所带来的弊端,因此人们为了解决这个弊端,因此人们引入了我们今天所要了解的对象LSTM。

LSTM是long short term memory的一种简称,中文名字呢又叫做长短期记忆,这是现在最流行的RNN的计算方式的其中的一种,在上一篇文章中,我介绍过RNN是在有序的数据中进行学习的,为了记住这些数据,RNN会对先前产生的数据进行一些记忆,就跟我们人类一样,但是一般形式的RNN一般来说还是会想我们人类中那些上了年龄的老爷爷,还是比较健忘的,为什么会这个样子呢?现在想象有这样的一种RNN:

X-RNN-Y

他的输入值X现在假设是一句话:“我今天要做酱猪蹄,首先要准备猪蹄,然后(此处省略一万字),最后一道美味的酱猪蹄就诞生了“,写着写着居然饿了。。。

回到正题,现在请RNN来进行分析,我们今天做了个什么菜呢?RNN可能会给了我们一个结果,我们今天做了个红烧排骨这个答案,因为这个答案很显然是错误的,现在RNN就开始进行学习,这个输入值X中和酱猪蹄的关系,而RNN所需要的数据酱猪蹄却出现在句子开头,那么RNN是应该怎么样学习的呢?酱猪蹄这个记忆点要经过长途跋涉才能够到达这个句子的句尾这个时间点,这样呢,我们就可以得到误差,然而当反向传递的时候得到的这个误差,他在每个句子的一个时间段都会乘以一个额外的参数,如果这个额外的参数小于1,现在假设是0.9,这个误差会一直一直的相乘,等到这个误差传到出发点的时候这个误差也会到一个接近0的数,所以对于初始时刻,误差就相等于消失了,我们把这个现象叫做梯度消失或者梯度弥散,反正如果W是一个大于1的数,比如1.1,不断垒乘,这样就可能会变成一个无穷大的数,rnn就会被这样的大误差给撑死了,我们就叫做这样的现象叫做梯度爆炸,这就是普通RNN没有办法回忆起久远记忆点的原因,这时候,LSTM就是为了解决这个问题产生的。

LSTM与普通RNN相比,多出来几个控制器,输入控制,输出控制,忘记控制,我们现在的结构如图中所示,左边的那个Hidden可以看做为我们进行操作时候的主线剧情,旁边的那些RNN体系可以看为分线剧情,这三个控制器都是在RNN的这个体系上,我们先看输入方面,如果现在的这个输入控制输入的数据足够的重要,RNN这个体系就会把这个数据汇集进入主线剧情,在进行分析,在看忘记方面,如果现在的分线剧情会改变了主线剧情的这个线索观点,那么忘记控制就会把一些主线剧情忘记,按比例替换成现在的新剧情,所以主线剧情的更新就会注意取决于输入和忘记这两个控制器,最后的输出方面,输出控制会基于现在的主线剧情和分线剧情判断要输出的什么,基于这些控制机制,LSTM就像是一种延缓记忆衰退的良药,带来更好的结果

好了,这就是LSTM的一个简短的介绍,如果想了解更多的只是,欢迎和我进行交流,也欢迎大家给出更好的建议,谢谢大家。

上一篇下一篇

猜你喜欢

热点阅读