《(18)循环神经网络与lstm》由会员分享,可在线阅读,更多相关《(18)循环神经网络与lstm(33页珍藏版)》请在金锄头文库上搜索。
1、循环神经网络与LSTM 七月算法 七月算法 寒老师 寒老师 20162016年年7 7月月3 3日 日 4月机器学习算法班 1 主要内容 n 神经网络与循环神经网络 神经网络与循环神经网络 1.1.强大的功能 强大的功能 2.2.层级结构 层级结构 3.3.多种多种RNN RNN n LSTM LSTM 1 1. .长时依赖问题 长时依赖问题 2.2.“记忆细胞“记忆细胞”与状态与状态 n LSTM变体LSTM变体 1 1.GRU.GRU等等 4月机器学习算法班 循环神经网络与应用 o 模仿论文(连公式都格式很正确) 4月机器学习算法班 循环神经网络与应用 o 模仿莎士比亚的作品 4月机器
2、学习算法班 循环神经网络与应用 o 模仿小四的作品 4月机器学习算法班 循环神经网络与应用 o 看图说话 4月机器学习算法班 神经网络到循环神经网络 o 我们知道神经网络结构如下 o 那循环神经网络和它是什么关系呢? 4月机器学习算法班 o 为什么有BP神经网络,CNN,还要RNN? n 传统神经网络(包括CNN),输入和输出都是互相 独立的。 图像上的猫和狗是分隔开的,但有些任务, 后续的输出和之前的内容是相关的。 “我是中国人,我的母语是_” n RNN引入“记忆”的概念 循环2字来源于其每个元素都执行相同的任务。 但是输出依赖于 输入 和 “记忆” 循环神经网络 4月机器学习算法
3、班 o 简单来看,把序列按时间展开 循环神经网络之 结构 4月机器学习算法班 o Xt是时间t处的输入 o St是时间t处的“记忆”,St=f(UXt+WSt1),f可以是tanh等 o Ot是时间t出的输出,比如是预测下个词的话,可能是 softmax输出的属于每个候选词的概率 循环神经网络之 结构 4月机器学习算法班 o 可以把隐状态St视作“记忆体”,捕捉了之前时间点上 的信息。 o 输出Ot由当前时间及之前所有的“记忆”共同计算得到。 o 很可惜,实际应用中,St并不能捕捉和保留之前所有信 息(记忆有限?) o 不同于CNN,这里的RNN其实整个神经网络都共享一组参 数(U,V,
4、W),极大减小了需要训练和预估的参数量 o 图中的Ot在有些任务下是不存在的,比如文本情感分析, 其实只需要最后的output结果就行 循环神经网络之 结构细节 4月机器学习算法班 RNN模仿 贴吧留言 例子 4月机器学习算法班 o 详见ipython notebook RNN模仿贴吧留言例子 4月机器学习算法班 o 详见ipython notebook RNN模仿贴吧留言例子 4月机器学习算法班 o 双向RNN o 有些情况下,当前的输出不只依赖于之前的序列元素, 还可能依赖之后的序列元素 o 比如从一段话踢掉部分词,让你补全 o 直观理解:2个RNN叠加 不同类型的RNN 4月机器
5、学习算法班 o 深层双向RNN o 和双向RNN的区别是每一步/每个时间点我们设定多层 结构 不同类型的RNN 4月机器学习算法班 o 前面提到的RNN解决了,对之前的信息保存的问题 o 但是!从在长期依赖的问题。 n 看电影的时候,某些情节的推断需要依赖很久以前的 一些细节。 n 很多其他的任务也一样。 n 很可惜随着时间间隔不断增大时,RNN 会丧失学习到 连接如此远的信息的能力。 n 也就是说,记忆容量有限,一本书从头到尾一字不漏 的去记,肯定离得越远的东西忘得越多。 n 怎么办:LSTM 循环神经网络之 LSTM 4月机器学习算法班 o LSTM是RNN一种,大体结构几乎一样。区
6、别是? o 它的“记忆细胞”改造过。 o 该记的信息会一直传递,不该记的会被“门”截断。 循环神经网络之 LSTM 4月机器学习算法班 o 之前提到的RNN结构如下 循环神经网络之 LSTM 4月机器学习算法班 o 咱们把“记忆细胞”表示得炫酷一点 循环神经网络之 LSTM 4月机器学习算法班 o LSTM呢? o “记忆细胞”变得稍微复杂了一点点 循环神经网络之 LSTM 4月机器学习算法班 o 图太复杂,细节看不懂?别着急,我们解释解释。 循环神经网络之 LSTM 4月机器学习算法班 o LSTM关键:“细胞状态” o 细胞状态类似于传送带。直接在整个链上运行,只有一些 少量的线
7、性交互。信息在上面流传保持不变会很容易。 循环神经网络之 LSTM 4月机器学习算法班 o LSTM怎么控制“细胞状态”? o 通过“门”让信息选择性通过,来去除或者增加信息到细胞状态 o 包含一个sigmoid神经网络层 和 一个pointwise乘法操作 o Sigmoid 层输出0到1之间的概率值,描述每个部分有多少量可以通过。 0代表“不许任何量通过”,1就指“允许任意量通过” 循环神经网络之 LSTM 4月机器学习算法班 o 第1步:决定从“细胞状态”中丢弃什么信息 = “忘记门” o 比如完形填空中填“他”或者“她”的问题,细胞状态可能包 含当前主语的类别,当我们看到新的代词,
8、我们希望忘记旧的 代词。 LSTM的几个关键“门”与操作 4月机器学习算法班 o 第2步:决定放什么新信息到“细胞状态”中 Sigmoid层决定什么值需要更新 Tanh层创建一个新的候选值向量 上述2步是为状态更新做准备 LSTM的几个关键“门”与操作 4月机器学习算法班 o 第3步:更新“细胞状态” 更新Ct-1为Ct 把旧状态与ft相乘,丢弃掉我们确定需要丢弃的信息 加上it* 。这就是新的候选值,根据我们决定更新每个状态 的程度进行变化。 LSTM的几个关键“门”与操作 4月机器学习算法班 o 第4步:基于“细胞状态”得到输出 首先运行一个sigmoid 层来确定细胞状态的哪个部分
9、将输出 接着用tanh处理细胞状态(得到一个在-1到1之间的值),再将它和 sigmoid门的输出相乘,输出我们确定输出的那部分。 比如我们可能需要单复数信息来确定输出“他”还是“他们” LSTM的几个关键“门”与操作 4月机器学习算法班 o 变种1 增加“peephole connection” 让 门层 也会接受细胞状态的输入。 LSTM的变体 4月机器学习算法班 o 变种2 通过使用 coupled 忘记和输入门 之前是分开确定需要忘记和添加的信息,这里是一同做出决定。 LSTM的变体 4月机器学习算法班 o 变种3:Gated Recurrent Unit (GRU),2014年
10、提出 将忘记门和输入门合成了一个单一的 更新门 同样还混合了细胞状态和隐藏状态,和其他一些改动。 比标准LSTM简单。 LSTM的变体 4月机器学习算法班 o 2015的paperLSTM: A Search Space Odyssey中,对各种变体做 了对比,发现其实本质上它们大同小异。? o 2015的论文An Empirical Exploration of Recurrent Network Architectures中,google和facebook的大神尝试了1w+种RNN架 构,发现并非所有任务上LSTM都表现最好。? o 现在有更多的RNN研究方向,比如attention model和Grid LSTM等 等? LSTM比较? 4月机器学习算法班 感谢大家! 恳请大家批评指正! 4月机器学习算法班