深度学习计算模型中"门函数"的作用

来源:互联网 发布:贵州广电网络客服电话9 编辑:程序博客网 时间:2024/04/28 18:14


上面是LSTM的计算公式,那三个Sigmoid作为非线性函数的就是三个门。LSTM是RNN模型,决定t时刻节点的除了当前x(t)外,还有t-1时刻的隐层节点输出h(t-1).这代表了历史信息对当前的影响,所以决定门开关程度的除了当前输入x(t)外,还有h(t-1)。


含义很清楚,输入门是用来控制输入i'(t)进出多少或者是否允许进出门的设备;输出门是用来控制t时刻状态值m(t)对外多少是可见的门设备。遗忘门是控制历史状态m(t-1)流动到t时刻后允许多少进入t时刻的门设备。


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


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


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


经过两个门控制历史信息的影响以及当前当前输入的影响,就形成了t时刻的隐层节点状态值m(t),其实可以看到它本质跟RNN一样,无非是体现历史影响和当前输入的影响,但是相对RNN,通过门控来自适应地根据历史和输入来控制信息的流动,当然更主要的是通过抽离出的m存储往后传递方式来解决梯度弥散问题的


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


这就是LSTM是如何用三个门控以及抽离出的m状态存储器来表达逻辑的思路

0 0
原创粉丝点击