第五章 深度学习
一、基本理论
4. 神经网络的改进
4.3 循环神经网络
4.3.1 标准 CNN 模型的不足
假设数据之间是独立的。标准 CNN 假设数据之间是独立的,所以在处理前后依赖、序列问题(如语音、文本、视频)时就显得力不从心。这一类数据(如文本)和图像数据差别非常大,最明显的差别莫过于,文本数据对文字的前后次序非常敏感。所以,需要发展新的理论模型。
标准 CNN 络还存在一个短板,输入都是标准的等长向量,而序列数据长度是可变的。
4.3.2 RNN 模型
循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络,适合用于处理视频、语音、文本等与时序相关的问题。
连接不仅存在于相邻的层与层之间(比如输入层-隐藏层),还存在于时间维度上的隐藏层与隐藏层之间(反馈连接,h1 到 ht)。某个时刻 t,网络的输入不仅和当前时刻的输入相关,也和上一个时刻的隐状态相关。
循环神经网络内部结构
RNN 模型输入输出关系对应模式
RNN 善于处理跟序列相关的信息,如:语音识别,语言建模,翻译,图像字幕。它能根据近期的一些信息来执行/判别当前任务。例如:
- 白色的云朵漂浮在蓝色的____
- 我和他中午一起吃了个___
- 天空中飞过来一只___
RNN 不善于处理远期依赖性任务。例如:
- 我生长在中国,家有三亩一分地。我是家里老三,我大哥叫大狗子,二哥叫二狗子,我叫三狗子,我弟弟叫狗剩子。我的母语是____。
4.3.3 LSTM 模型
由于 RNN 具有梯度消失问题,因此很难处理长序列的数据。于是对 RNN 进行了改进,得到了长短期记忆网络模型(Long Short-Term Memory,简称 LSTM)
- 输入门:决定什么信息输入进来
- 遗忘门:决定从细胞状态中丢弃什么信息
- 输出门:决定输出什么
LSTMs 的核心是细胞状态,用贯穿细胞的水平线表示。细胞状态像传送带一样。它贯穿整个细胞却只有很少的分支,这样能保证信息不变的流过整个 RNNs。
遗忘门
- 该门会读取 h t − 1 h_{t-1} ht−1和 x t x_t xt,输出一个在 0 ~ 1 之间的数值给每个在细胞状态 C t − 1 C_{t-1} Ct−1中的数字。1 表示“完全保留”,0 表示“完全舍弃”。
输入门
- 输入门可以分成两部分,一部分是找到那些需要更新的细胞状态,另一部分是把需要更新的信息更新到细胞状态里。其中,tanh 层就是要创建一个新的细胞状态值向量—— C t C_t Ct,会被加入到状态中。
状态更新
- 遗忘门找到了需要忘掉的信息 f t f_t ft后,再将它与旧状态相乘,丢弃掉确定需要丢弃的信息。再将结果加上 i t i_t it× C t C_t Ct使细胞状态获得新的信息,这样就完成了细胞状态的更新。
输出门
- 在输出门中,通过一个 Sigmoid 层来确定哪部分的信息将输出,接着把细胞状态通过 tanh 进行处理(得到一个在-1 ~ 1 之间的值)并将它和 Sigmoid 门的输出相乘,得出最终想要输出的那部分。
4.3.4 CNN 和 RNN 的关系
CNN 和 RNN 同属于深度学习基本模型,CNN 主要用于图像问题,RNN 主要用于语音、NLP。深度学习还有一种基本模型 Transformer,发源于 NLP,后来也引入到图像识别中。
4.4 小结
卷积神经网络(CNN)
- 卷积层。执行卷积运算
- 激活层。对卷积结果执行激活函数运算
- 池化层。降低数据规模,防止过拟合
- 全连接层。执行输出计算
循环神经网络(RNN)
- RNN:处理序列数据
- LSTM:RNN 变种,解决了 RNN 梯度消失问题