**循环神经网络**(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个**状态**(state),其中包含与已查看内容相关的信息.
> 当你在阅读这个句子时,你是一个词一个词地阅读(或者说,眼睛一次扫视一次扫视地阅读),同时会记住之前的内容。这让你能够动态理解这个句子所传达的含义。生物智能以渐进的方式处理信息,同时保存一个关于所处理内容的内部模型,这个模型是根据过去的信息构建的,并随着新信息的进入而不断更新。
![](https://img.kancloud.cn/d3/cb/d3cbd41f580b6acd3e74bf2ccb43d862_408x344.png)
*****
### Keras 中的循环层
~~~
from keras.layers import SimpleRNN
~~~
> 与 Keras 中的所有循环层一样,`SimpleRNN`可以在两种不同的模式下运行
* 返回每个时间步连续输出的完整序列,即形状为`(batch_size, timesteps, output_features)`的三维张量
* 只返回每个输入序列的最终输出,即形状为`(batch_size, output_features)`的二维张量
* 这两种模式由`return_sequences`这个构造函数参数来控制
* `SimpleRNN`的最大问题是,在时刻`t`,理论上来说,它应该能够记住许多时间步之前见过的信息,但实际上它是不可能学到这种长期依赖的。其原因在于**梯度消失问题**(vanishing gradient problem),这一效应类似于在层数较多的非循环网络(即前馈网络)中观察到的效应:随着层数的增加,网络最终变得无法训练。
> `SimpleRNN`并不是 Keras 中唯一可用的循环层,还有另外两个:`LSTM`和`GRU`
**`LSTM`层:**
* 其背后的长短期记忆(LSTM,long short-term memory)
* `LSTM`层是`SimpleRNN`层的一种变体,它增加了一种携带信息跨越多个时间步的方法
* 保存信息以便后面使用,从而防止较早期的信号在处理过程中逐渐消失
* **只需要记住 LSTM 单元的作用:允许过去的信息稍后重新进入,从而解决梯度消失问题**
- 基础
- 张量tensor
- 整数序列(列表)=>张量
- 张量运算
- 张量运算的几何解释
- 层:深度学习的基础组件
- 模型:层构成的网络
- 训练循环 (training loop)
- 数据类型与层类型、keras
- Keras
- Keras 开发
- Keras使用本地数据
- fit、predict、evaluate
- K 折 交叉验证
- 二分类问题-基于梯度的优化-训练
- relu运算
- Dens
- 损失函数与优化器:配置学习过程的关键
- 损失-二分类问题
- 优化器
- 过拟合 (overfit)
- 改进
- 小结
- 多分类问题
- 回归问题
- 章节小结
- 机械学习
- 训练集、验证集和测试集
- 三种经典的评估方法
- 模型评估
- 如何准备输入数据和目标?
- 过拟合与欠拟合
- 减小网络大小
- 添加权重正则化
- 添加 dropout 正则化
- 通用工作流程
- 计算机视觉
- 卷积神经网络
- 卷积运算
- 卷积的工作原理
- 训练一个卷积神经网络
- 使用预训练的卷积神经网络
- VGG16
- VGG16详细结构
- 为什么不微调整个卷积基?
- 卷积神经网络的可视化
- 中间输出(中间激活)
- 过滤器
- 热力图
- 文本和序列
- 处理文本数据
- n-gram
- one-hot 编码 (one-hot encoding)
- 标记嵌入 (token embedding)
- 利用 Embedding 层学习词嵌入
- 使用预训练的词嵌入
- 循环神经网络
- 循环神经网络的高级用法
- 温度预测问题
- code
- 用卷积神经网络处理序列
- GRU 层
- LSTM层
- 多输入模型
- 回调函数
- ModelCheckpoint 与 EarlyStopping
- ReduceLROnPlateau
- 自定义回调函数
- TensorBoard_TensorFlow 的可视化框架
- 高级架构模式
- 残差连接
- 批标准化
- 批再标准化
- 深度可分离卷积
- 超参数优化
- 模型集成
- LSTM
- DeepDream
- 神经风格迁移
- 变分自编码器
- 生成式对抗网络
- 术语表