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