就是将循环图展开成展开图而已。
循环神经网络
就是如上网络,将某一层不断重复,输出重新作为输入的一部分。
双向RNN
应用于上下文环境都影响结果的场景,如语音识别,文章翻译等
基于编码-解码的序列到序列架构
可以将可变长度的输入转变为可变长度的输出。这里也提到了注意力模型。后面了解下自编码网络有没有用到循环神经网络的技术。自编码网络是将一个东西编码后解码再还原成原有事务。这里的编码解码不一样,是一个序列到另一个序列。
深度循环网络
将循环网络应用于深度学习中的部分层。
递归神经网络
主要用于推断学习,处理同样大小的序列,深度降低。主要问题是如何构建树。一种方式构建平衡二叉树,一种以先验知识为基础构建。
长期依赖挑战
循环网络涉及相同函数的多次组合,当次数过多时,导致极端非线性。比如梯度消失和梯度爆炸。
后面几节介绍采取的一些措施减少长期依赖。
回声状态网络
谱半径:特征值得最大绝对值。
添加了储层计算。用来存储之前学到的知识,用于后续处理。
ESN:回声状态网络
貌似很少遇到回声状态网络这个概念。
渗漏单元和其他多时间尺度的策略
时间维度的跳跃连接:构造t到t+n时刻的连接,减轻梯度消失和梯度爆炸。
渗漏单元和一系列不同时间尺度:,当接近1时,能记住之前很长一段时间信息。可手动设置或者通过学习。
删除连接:主动删除长度为1的连接并用更长的连接替换。
长短期记忆和其他门控RNN
这里主要介绍两种最常用的LSTM和GRU,可以有效克服长期依赖。
LSTM:长短期记忆
主要包括三个模块:
忘记们:
输出门:
输入门:
GRU:门控循环单元
优化长期依赖
主要针对梯度爆炸和梯度消失。
当梯度爆炸时,可以使用梯度截断,有两个思路,一个是当梯度大于一定阈值时,设置当前梯度为阈值;另一个是大于阈值时,随机往一个方向走一小步,看能否跳出这段不稳定区域。
梯度消失时使用信息流正则化,加入以下正则:
这段没理解。如何引导信息流。
外显记忆
就是通过使用专门的存储单元存储得到的记忆,可以保存较多的内容,而后通过寻址的方式查找记忆来进行学习。
可以基于内容寻址。寻址方式可以类似注意力机制。示意图如下:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深度学习(花书)学习笔记——第十章 序列建模:循环神经网络 - Python技术站