one to one:图像分类 image classification
one to many:看图说话 image captioning
many to one:情感分析 sentiment classification/音乐分类
many to many:机器翻译 senquence to sequence
many to many:语言模型/NER tagging
RNN
结构:只有输入x和隐藏状态h
递归,RNN是一个链式结构,每个时间片使用的是相同的参数。
以序列(sequence)为输入,在序列的演进方向递归
在时间维度上是深度学习模型,如一句话有100个词,那么RNN深度为100,可以处理不同尺寸的语句
优点
- 能处理任意长度的输入
- 模型大小不随输入长度影响
- 计算过往的历史数据
- 权重共享
缺点
- 计算速度慢
- 对短期信息敏感,缺乏长期依赖
在深度学习领域中(尤其是RNN),“长期依赖“问题是普遍存在的。长期依赖产生的原因是当神经网络的节点经过许多阶段的计算后,之前比较长的时间片的特征已经被覆盖
梯度消失和梯度爆炸是困扰RNN模型训练的关键原因之一,产生梯度消失和梯度爆炸是由于RNN的权值矩阵循环相乘导致的,相同函数的多次组合会导致极端的非线性行为。
梯度爆炸/梯度消失
BPTT(back propagation through time)
问题
范数小于1会梯度消失
范数大于1会梯度爆炸
如何解决?
梯度爆炸
Gradient Clipping for Gradient Exploding
如果梯度大于某个阈值,手动减小(设定临界值)
梯度消失,不好解决
LSTM
Long short Term memory 长短期记忆——处理与时序数据相关的任务
结构:记忆信息c+隐藏状态h
1、cell state 单元状态
传送带上的信息由遗忘门和输入门控制
2、Forget Gate 遗忘门 f(t)
判断传送带上的信息是否需要遗忘
3、Input Gate 输入门 i(t)
考虑前后信息选择遗忘与不考虑前后关系的点乘
4、Output Gate 输出门 o(t)
一个输出,分两个方向(一个作为下一个单元的输入,一个作为LSTM的输出值)
目的:选择性的保留、抽取信息
优势:
防止梯度消失爆炸,但也不能百分之百保证
相比RNN可以捕获更长时序的数据
LSTM衍生:
- Stacked LSTM:多个LSTM进行堆叠
- CNN LSTM:CNN 图片处理、LSTM 文字生成
- Encoder-Decoder LSTM:seq2seq模型中Encoder-LSTM、Decoder-LSTM
- Bidirectional LSTM:双向LSTM,解决长期依赖的问题
Bidirectional LSTM
双向:不仅可以依据上文信息,还依据下文信息
一般比单向LSTM准确度高,可以用于语音模型
RNN/LSTM/Bi-LSTM
RNN有梯度消失现象:不能捕捉到很久以前的信息
LSTM只能捕捉到过去的信息
Bi-LSTM可以捕捉过去以及未来的