什么是RNN
Recurrent Neural Network,循环神经网络
还有一个东西叫RecNN,Recursive Neural Network,递归神经网络,感兴趣的童鞋自行搜索
输入长什么样?
- 一个序列(例如一句话)
- 每个元素都是一个向量(例如每个词的WordEmbedding)
循环是指,网络只有一层(全连接层),且其隐态h(t)取决于:
- 当前时刻的输入x(t)
- 上一时刻的隐态h(t-1)
- h(t)=sigmoid(Wx(t)+Uh(t-1))
LSTM
Long Short-Term Memory,长短时记忆
解决梯度爆炸和梯度消失问题,学习长程依赖
模型更复杂、参数更多、学习能力更强
RNN通用套路
- 整理输入数据,每句文本处理成固定长度,做Embedding
- 将一句话的每个词逐一输入到RNN中,得到每一步的输出
- 最后一步的输出可以视为整句话的一个融合
- 接上分类器,输出
- 可以和CNN结合,应用:看图说话、VQA等
Keras中的实现
SimpleRNN、GRU、LSTM