长短期记忆网络(LSTM)简述

本文是学习LSTMs入门知识的总结。

LSTM(Long-Short Term Memory)是递归神经网络(RNN:Recurrent Neutral Network)的一种。
RNNs也叫递归神经网络序列,它是一种根据时间序列或字符序列(具体看应用场景)自我调用的特殊神经网络。将它按序列展开后,就成为常见的三层神经网络。常应用于语音识别。

虽然前馈神经网络取得很大成功,但它无法明确模拟时间关系,并且所有数据点都是固定长度的向量。所以就诞生了递归神经网络,递归即自我调用,递归神经网络与其他网络的不同之处在于它的隐含层是能够跨越时间点的自连接隐含层,隐含层的输出不仅进入输出端,还进入了下一个时间步骤的隐含层,所以它能够持续保留信息,能够根据之前状态推出后面的状态。


按时间序列展开RNN

RNN每个时间状态的网络拓扑结构相同,在任意t时间下,包含输入层、隐含层、输出层。RNN的隐含层的输出一分为二,一份传给输出层,一份与下一时刻输入层的输出一起作为隐含层的输入。RNN的激活函数仍为sigmoid函数或tanh函数。


RNN与BPNN对比图
RNN展开图
RNN局部放大

举一个应用RNN预测单词的案例:

假设我们只有四种字母的词汇“helo”,然后我们想要用训练序列“hello”训练一个RNN。这个训练序列实际上是来自于4个独立的训练案例:

  1. 字母e应该在字母h出现的情况下才可能出现,
  2. 字母l应该出现在he出现的情况下,
  3. 字母l同样可以出现在hel出现的情况下,
  4. 字母o应该出现在hell出现的情况下。
用“hello”训练RNN

采用1-of-k编码(按字符索引顺序,1表示输入字符在该索引位置,0表示不在)将每个字符编码成一个向量,然后用每次向RNN中输入一个字符。然后我们会看到一个4维序列的输出向量(每个字符代表一个维度),我们将此作为RNN分配给序列下一个字符的置信度。选用三层RNN网络,输入输出层为4维(即4个单元),隐含层为3维。可以看出,在第一次执行时,RNN读取到字符“h”然后将它之后可能出现字符“h”的置信度设置为1.0,可能出现字符“e”的置信度设置为2.2,可能出现字符“l”的置信度设置为-3.0,可能出现字符“o”的置信度设置为4.1。因为在我们的训练数据中,下一个出现的字符是“e”,我们将要提高这个字符的置信度(绿色数字)并且降低其他字符的置信度(红色数字)。通常的做法是使用一个交叉熵损失函数,这相当于在每个输出向量上使用Softmax分类器,将下一个出现的字符的索引作为一个正确的分类。本案例中采用小批量随机梯度下降训练。

RNN也有缺点,跨时间步的反向传播扩展会有梯度消失问题,即后面时间步的错误信号不能回到足够早的时间步,这样RNN就不能学习长时间度的问题。于是1997年,Sepp Hochreiter和Jurgen Schmidhuber提出了长短期记忆(LSTM)模型,这个模型中,常规的神经元被存储单元替代,每个存储单元由输入门、输出门、自有状态组成。


LSTM神经元

标准RNN的重复模块只包含一个tanh函数:


RNN

LSTM中的重复模块包含四个相互作用的激活函数(三个sigmoid,一个tanh):
(图中每条线表示一个完整向量,从一个节点的输出到其他节点的输入。粉红色圆圈代表逐点操作,比如向量加法,而黄色框表示门限激活函数。线条合并表示串联,线条分差表示复制内容并输出到不同地方。)
LSTM

下面分析LSTM工作原理:
存储单元中管理向单元移除或添加的结构叫门限,有三种:遗忘门、输入门、输出门。门限由sigmoid激活函数和逐点乘法运算组成。前一个时间步骤的隐藏状态,一个送到遗忘门(输入节点),一个送到输入门,一个送到输出门。就前传递而言,输入门学习决定何时让激活传入存储单元,而输出门学习合适让激活传出存储单元。相应的,对于后传递,输出门学习何时让错误流入存储单元,输入门学习何时让它流出存储单元。


LSTM存储单元

LSTM核心是单元状态,即传过图中的水平线,下图所示为t-1状态到t状态。
单元状态

正向传递第一步:遗忘门限层,决定哪些信息从单元状态中抛弃。公式中,括号左边的$\sigma$是sigmoid函,W是连接权重矩阵,其下标对应那条连接,W_f是遗忘门(forget)连接的权重矩阵,h_t-1是隐含层上一个时间节点的输出,x_t是t时刻输入层的输出,b_f是遗忘门的偏移值。下面的公司依此类推。



第二步:决定单元状态中保存哪些新信息。分为两步:生成临时新状态、更新旧状态。
i为输入门的输出,决定哪些值需要更新; C't 是临时状态,包含新候选值。


旧状态Ct-1 乘以ft,忘记决定要忘记的,再加上新的候选值it*C't ,就得到新的状态。



第三步决定要输出什么:
首先通过sigmoid函数决定哪些需要输出,再将单元状态输入到tanh函数(将值转化为-1到1之间),再乘以sigmoid门限值,得到输出。



上面讨论的是最标准的LSTM,但实际应用中会稍加改动,常见的LSTM变体如下:
  1. 2000年Gers和Schmidhuber提出加入窥视孔连接,即将单元状态也作为门限层的输入。


  2. 藕合遗忘和输入门限,不单独决定遗忘哪些、添加哪些,而是一起做决定,在输入时才遗忘:


  3. 2014年,Cho等提出门限递归单元GRU。将以往和输入门限结合输入到单个“更新门限”中,还将单元状态和隐藏状态合并。


  4. 其他的还有深度门限RNN、关注点RNN(即让RNN中每一步都从更大的信息集中挑选信息作为输入)等。

参考文献:

  1. 深入浅出LSTM神经网络:http://www.csdn.net/article/2015-06-05/2824880
  2. 递归神经网络不可思议的有效性:http://yuedu.163.com/news_reader/#/~/source?id=426f1ed9-b19b-44f5-bcad-9f58930fc65e_1&cid=e26730167cd644e1a11f156aec324823_1
  3. 理解长短期记忆网络:http://www.csdn.net/article/2015-11-25/2826323
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容