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


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

所以含义很清楚,

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

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

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

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

遗忘门

输入门 

 输出门

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

  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LSTM(Long Short-Term Memory)是一种常用于处理序列数据的循环神经网络模型。LSTM通过引入结构,可以在长序列数据有效地捕捉长期依赖关系。 LSTM结构包括三个输入(input gate)、遗忘(forget gate)和输出(output gate)。这些控制着信息的流入和流出,从而可以控制细胞状态的更新。 输入控制着新信息的输入。它根据当前输入和上一个时间步的输出,计算出一个介于0和1之间的值,表示要多大程度上将新信息纳入细胞状态输入的计算公式如下: $$i_t = \sigma(W_{xi}x_t + W_{hi}h_{t-1} + b_i)$$ 其,$i_t$表示输入输出,$x_t$表示当前时间步的输入,$h_{t-1}$表示上一个时间步的输出,$W_{xi}$、$W_{hi}$和$b_i$分别表示输入和上一个时间步的输出的权重和偏置,$\sigma$表示sigmoid函数。 遗忘控制着前一时刻的细胞状态哪些信息需要被遗忘。它也是一个介于0和1之间的值,可以根据当前输入和上一个时间步的输出,计算出来。遗忘的计算公式如下: $$f_t = \sigma(W_{xf}x_t + W_{hf}h_{t-1} + b_f)$$ 其,$f_t$表示遗忘输出,$W_{xf}$、$W_{hf}$和$b_f$分别表示输入和上一个时间步的输出的权重和偏置。 输出控制着细胞状态哪些信息需要输出。它也是一个介于0和1之间的值,可以根据当前输入和上一个时间步的输出,计算出来。输出的计算公式如下: $$o_t = \sigma(W_{xo}x_t + W_{ho}h_{t-1} + b_o)$$ 其,$o_t$表示输出输出,$W_{xo}$、$W_{ho}$和$b_o$分别表示输入和上一个时间步的输出的权重和偏置。 细胞状态是LSTM的关键概念。它是一个向量,可以存储序列的信息。细胞状态的更新是通过输入遗忘和细胞状态之间的元素乘法来实现的。具体地,输入输出和当前时间步的输入进行元素乘法,得到一个向量,表示要将哪些信息加入到细胞状态遗忘输出和上一个时间步的细胞状态进行元素乘法,得到一个向量,表示要将哪些信息保留在细胞状态。这两个向量进行元素加法,就得到了新的细胞状态。细胞状态的计算公式如下: $$C_t = f_t * C_{t-1} + i_t * \tanh(W_{xc}x_t + W_{hc}h_{t-1} + b_c)$$ 其,$C_t$表示当前时间步的细胞状态,$*$表示元素乘法,$\tanh$表示双曲正切函数。 细胞状态的形态是一个向量,其维度取决于LSTM模型的超参数。在实际应用,通常需要根据数据的特点和任务需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值