我是靠谱客的博主 优秀鼠标,最近开发中收集的这篇文章主要介绍【AI数学】LSTM(长短时记忆)-木盏笔记RNNRNN的缺点LSTM逐步理解LSTM  总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

LSTM是序列处理最常见的网络结构之一,被周志华老师称为“教科书级”的研究成果。近年来,LSTM已经从单纯的文本语音分析跨越到了视频处理、视频理解等诸多CV领域。这也是我开始涉足LSTM的原因。

LSTM的经典解释文章是2015年8月的《Understanding LSTM Networks》,这篇文章也是本文主要借鉴的文章。


RNN

LSTM是循环神经网络(RNN)的一种改进形式,我们可以看看RNN的基本形式:

X表示这一时刻的输入,h为hidden state的缩写,表示隐藏状态,同时也当作这一时刻的输出。

可以看到,输入X_t和输出h_t都有一个下角标t,这个t就代表时间戳。每输入一个x,这一时刻的模型将会有两个输出,一个作为直接输出,另一个作为状态输出。这一时刻的状态输出,将变成下一时刻的状态输入。 在简单RNN里,直接输出和状态输出是一样的,即直接拿这一时刻的直接输出当作下一时刻的状态。

RNN的工作原理与数字电路中的状态机十分相似,也与马尔科夫链如出一辙:任何一个时刻的输出除了与输入有关,还与这一时刻的状态有关

乍一看,RNN好像是一个黑盒,内部结构看不到。实际上,RNN内部就是一个简单的多层感知机,用的激活函数通常是tanh

我们剖开内部来看:

并线表示“张量的合并”,比如{1,2}和{3,4}变成{1,2,3,4}。黄色方框中的tanh表示:这是一个神经网络,其激活函数是tanh。而分流表示复制。所以,RNN的基本结构十分简单。


RNN的缺点

我们从上面RNN的结构中可以发现,RNN仅用上一时刻的输出作为这一时刻的状态。所以,RNN很难解决长期依赖问题。当然,理论上RNN是可以解决所有长期依赖问题,但一旦要求RNN具有长期依赖属性,这样的RNN将非常难以训练。为什么呢RNN在学习过程中,会从近期依赖扩展到长期依赖,在依赖线性变长的过程中,RNN要面对的最优解池将指数倍放大。所以,RNN很难解决长期依赖问题。


LSTM

前段时间图灵奖颁发给了Hinton、Bengio、LeCun等三个人,很多大佬就为LSTM之父Schmidhuber鸣不平。很多大佬如周志华、马少平等人都认为Sch叔的丰功伟绩是“图灵奖”级别的。LSTM当属Sch最闪耀的成果之一,其打破了RNN的应用局限。

LSTM有三个gate:输入门遗忘门输出门

首先,我们要明白几个字母所对应的意思:C_t表示t时刻的cell state,即细胞状态。h_t表示t时刻细胞隐藏状态hidden state,同时可以作为细胞的中间输出结果。X_t表示t时刻的输入x。

LSTM内部比RNN稍微复杂,sigma代表sigmoid函数,黄色框代表神经网络。LSTM单元的输入有这一时刻的x,即X_t,上一时刻的两个输出。上图所有的粉色形状都代表“点操作”,乘法代表点乘,加法达标点加,tanh代表tanh函数的输出值。如下面所示:

 唯一要说明的是合流箭头,表示concatenate,直接在维度上进行拼接,比如{1,2}和{3,4}变成{1,2,3,4}。

那么,LSTM的三个门在内部结构上的体现在哪里呢?LSTM的门结构由一个乘法单元和一个带sigmoid激活函数的神经网络构成,如下:

这就是LSTM中的门结构了。 


逐步理解LSTM 

1. 遗忘门

sigmoid作为激活函数的优点就是:可以让输出范围控制在(0,1)。这样一来就可以进行“门控”,你看看,多么神奇,还记得本科时候学习的MOS管栅极导通的物理结构,和这个门控简直是如出一辙。上式中的f_t表示的是forget的缩写,即遗忘门

f_t的取值范围是(0,1),那么f_t与上一时刻的细胞状态C_{t-1}的点乘就相当于给C_{t-1}打了个折这样就可以控制保留多少上一时刻的状态,这就是“遗忘”的体现所在

2. 输入门

 

上式中的i_t表示input的缩写,即输入门。上式中widetilde{C_t}表示为“candidate cell state”,即备选细胞状态,意思是这并不是这一时刻应该输出的细胞状态。这一时刻应该输出的细胞状态C_t=eta_1*C_{t-1}+eta_2*widetilde{C_t},其中eta_1eta_2分别表示遗忘门和输入门的门控系数,即C_t=f_t*C_{t-1}+i_t*widetilde{C_t}widetilde{C_t}也只与输入x_t、上一时刻的输出h_t有关,用一个简单的全连接网络就可以实现。

3. 输出门

上式中的o_t表示output的缩写,即输出门。tanh作为激活函数,输出的结果范围为(-1,1)。整个LSTM cell在这一时刻的输出h_t由这一时刻的细胞状态经过tanh之后的结果,再经由输出门控制输出。

 


总结

一个LSTM单元可以看成由4个独立的神经网络组成:遗忘门,输入门,输出门以及决定备选细胞状态widetilde{C_t}的神经网络。遗忘门决定LSTM对上一状态的遗忘程度,以点乘“打折系数”的方式进行;输入门决定这一时刻产生的备选细胞状态widetilde{C_t}有多少可以参与到最终的细胞状态C_t;输出门决定这一时刻的输出状态所映射的输出结果的输出强弱,也以点乘“打折系数”的方式进行,不过tanh的输出可以带负数,所以输出门可以直接导致输出结果反相。

最后

以上就是优秀鼠标为你收集整理的【AI数学】LSTM(长短时记忆)-木盏笔记RNNRNN的缺点LSTM逐步理解LSTM  总结的全部内容,希望文章能够帮你解决【AI数学】LSTM(长短时记忆)-木盏笔记RNNRNN的缺点LSTM逐步理解LSTM  总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部