1. 序列式问题
普通神经网络(Vanilla Neural Networks):1个输入,经过网络结构,得到1个输出。全连接层神经网络、卷积神经网络都是这样的。适合解决数据输入输出格式都是固定的问题,如图像分类
如果是变长的数据呢?例如文本,它的长度不是固定的。这时候就需要循环神经网络。RNN可以解决1对多问题(1个输出,多个输出),例如给你一张图上,生成图片描述,描述是文本,是不定长的。
RNN还适合处理多对1问题,如文本分类(如文本情感分类)
RNN也可以解决多对多问题,如机器翻译

2. 循环神经网络
2.1. RNN的结构
RNN与普通神经网络类似,但是多了一个自我指向的路径
- 维护一个状态作为下一步的额外输入
- 每一步使用同样的激活函数和参数

3. LSTM 长短期记忆网络
因为普通RNN的信息不能长久传播,所以引入LSTM
LSTM引入了选择性机制
- 选择性输出
- 选择性输入
- 选择性遗忘
选择性机制是通过门来现实的