LSTM中遗忘门,输入门和输出门的实际意义是什么


上面是LSTM的计算公式,首先找那几个门,其实好找,那三个Sigmod作为非线性函数的就是三个门,很明显其取值范围在0到1和门打开关闭的物理意义是很好对应起来的。

所以含义很清楚,

输入门是用来控制输入i’(t)进出多少或者是否允许进出的门控设备;

输出门是用来控制t时刻状态值m(t)对外多少是可见的门控设备;

遗忘门是控制RNN中历史状态m(t-1)流动到t时刻后允许多少进入t时刻的门控设备;

结合常见的LSTM示意图,以下就是三个门的控制,上面罗列的公式中mt就是Ct

遗忘门

输入门 

扫描二维码关注公众号,回复: 12996126 查看本文章

 输出门

LSTM是RNN模型,决定t时刻节点的除了当前输入值x(t)外,还有t-1时刻的隐层节点输出h(t-1),这代表了历史信息对当前的影响,所以决定门开关程度的除了当前输入 x(t)外,还有h(t-1),仅此区别而已。

所以关键在LSTM的状态值更新函数和隐层节点输出值函数上。对于状态更新函数来说:

f(t)是遗忘门门控,m(t-1)是历史状态信息,两者相乘代表t时刻允许多少历史信息进入来决定m(t)当前状态,如果遗忘门全关取值0,则历史对当前状态无影响,如果遗忘门全开取值1,则历史信息原封不动的传到t时刻,没有任何信息损失,当然更大可能是取值0到1之间,代表历史信息的部分流入;

i(t)是输入门门控,i’(t)是当前t时刻输入值, 两者相乘代表t时刻允许多少当前输入信息进入来决定m(t)当前状态,如果输入门全关取值0,则LSTM忽略当前输入的影响,等于没看到这个输入直接跳过去了,如果输入门全开取值1,则当前输入最大化地决定当前状态m(t),没有任何信息损失,当然更大可能是取值0到1之间,代表输入信息的部分流入;

经过上面两个门控控制历史信息的影响以及当前输入的影响,就形成了t时刻的隐层节点状态值m(t)。

隐层节点输出值h(t)好理解,就是说通过输出门控制当前状态m(t)对外有多少是可见的,因为m(t)是内部隐藏的状态信息,除了往t+1时刻隐层传输外,外部其它地方是看不到的,但是它们可以看到h(t)。

这就是LSTM是如何用三个门控以及抽离出的m状态存储器来表达运算逻辑的思路,其实可以看到它本质跟RNN一样,无非是体现历史影响及当前输入的影响,但是相对RNN来说,通过门控来自适应地根据历史和输入来控制信息的流动,当然其实更主要的是通过抽离出的m存储往后传递方式来解决梯度弥散问题的,因为今天主讲门控,所以这块不展开讲。

很多其它深度学习的工作也引入了门函数,其思路和上面介绍的猪家的门控系统思路本质上是一样的,无非是用门函数来控制信息流动程度的。在计算模型上怎么理解“有门”和“没门”的模型呢?其实你可以缺省地认为所有的模型都是“有门”的,而“没门”只是有门的一种特例情况。为什么呢?因为“没门”等价于什么,等价于:“有门”但是那个门是永远全开的,永远不会关上或者半遮半掩。所以引入门其实在干什么呢,就是加入控制,在有些情况下让你进入,有些情况下不让你进入,比如看见x不让进,看见y则自由出入。

|其它的类比

上面为了方便理解门函数的作用,我们用现实生活中的门作为类比例子。其实生活中还有很多起到类似类比作用的设备,比如水龙头,打开水龙头那么水就可以流进来,如果关上水龙头,那么就切断了水源,水龙头打开的大点,那么水流量就大些,水龙头打开的小点,那么水流量就小些。DL中的门函数其实跟这个水龙头调节的作用是一样的,区别无非是控制的不是水流量,而是流入的信息流量。

再比如,也可以把门函数类比为灯的光调节器,我们常见到带有光调节器的灯控设备,把设备调大,则照明强度增加,把设备调小,则照明强度减少。这个类比也能很形象地说明门函数的作用。

其实归纳起来,所有这些生活中的门起的是什么作用呢?其实起的作用是个“调节阀”的作用,通过开关调节阀来控制物体的流入;通过开关调节阀大小来控制流入程度;所以,所有起到调节阀作用的生活设施都可以用来做门函数的类比。

原文连接:https://blog.csdn.net/malefactor/article/details/51183989?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-3-51183989.nonecase&utm_term=%E9%97%A8%E4%B8%BB%E8%A6%81%E6%98%AF%E8%B5%B7%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8

猜你喜欢

转载自blog.csdn.net/ch206265/article/details/108376099