循环神经网络学习笔记
课程来源于“深度之眼”机构的网课https://ai.deepshare.net/
1.序列数据
- 什么是序列数据?区别于图像数据,序列数据前后有关联性,比如一句话的上下文、紧邻的两个词等。
- 常见序列数据:语句、音乐、翻译、时间序列信息等
2.语言模型
- 语言模型用于自然语言处理
- NLP将文本视为离散时间序列,按照时间步t分割,文本是t的输出或标签。
- 语言模型实际是求一句话中,所有词(字)联合概率。
- 每个时间步t受上一时间步影响,计算量指数级增长。
3.循环神经网络_RNN
- RNN能够循环使用网络层参数,即权重矩阵(u,v,w),避免参数激增,引入隐藏状态H记录历史信息,处理数据前后关联。
- RNN折叠状态,输入x,经权重u进入隐层,隐层接受x和上一时间步t-1的隐藏状态和权重v的信息,经权重w输出
- RNN展开状态,ht-1将历史信息经权重v传入当前时间步t的隐藏状态,同时,当前输入xt共同作用,输出当前时间步t的输出
- 隐藏状态
- 记录历史信息,处理数据关联性
- 激活函数用Tanh,输出限制在(-1,1)
- RNN特性
- 优势
- 隐藏状态H可捕捉截至当前时间步序列的历史信息
- 参数循环使用,数量不随时间步增长而增长
- 劣势
- 梯度随时间t指数变化,易面临梯度爆炸、消失。如,当权重Whh>1梯度爆炸、<1则梯度消失
- 优势
- RNN构建语言模型
- RNN反向传播
- 通过穿越时间反向传播
- 通过计算图,理解推导公式(略)
4.门控循环的单元_GRU
- 功能:RNN引入GRN,缓解梯度消失问题,门控单元控制信息流动,模型更好记住长远时期信息。
- 特征
-
重置门R:控制哪些信息需遗忘
-
更新门Z:控制哪些信息需注意
-
候选隐藏状态:由输入x与上一时间步t-1的隐藏状态H共同计算得来,用于隐藏状态计算,计算流程须通过重置门,对上一t隐藏状态进行选择性遗忘,对历史信息更好的选择。
-
隐藏状态:由候选隐藏状态与上一时间步t-1的隐藏状态组个得来。
1 -
激活函数:Sigmoid将值域控制在0-1,0为遗忘、1为保留
-
5.长短期记忆网路_LSTM
- RNN改进型,引入3个门和记忆细胞,控制信息传递。
- 遗忘门
- 输入门:控制信息流入记忆细胞
- 输出门:控制记忆信息流入隐藏状态
- 记忆细胞:特殊的隐藏状态,记忆历史信息。由候选记忆细胞及上一时间步记忆细胞组合得来
- 候选记忆细胞:由当前输入Xt乘权重+上一时间步隐藏状态乘权重+偏置,最后经tanh激活函数得来。
- LSTM运行机制需结合计算图理解。如下: