38 深度学习 用于处理序列的RNN

什么是RNN

Recurrent Neural Network,循环神经网络

还有一个东西叫RecNN,Recursive Neural Network,递归神经网络,感兴趣的童鞋自行搜索

 

输入长什么样?

  • 一个序列(例如一句话)
  • 每个元素都是一个向量(例如每个词的WordEmbedding)

 

循环是指,网络只有一层(全连接层),且其隐态h(t)取决于:

  • 当前时刻的输入x(t)
  • 上一时刻的隐态h(t-1)
  • h(t)=sigmoid(Wx(t)+Uh(t-1))

38 深度学习 用于处理序列的RNN_第1张图片

LSTM

Long Short-Term Memory,长短时记忆

解决梯度爆炸和梯度消失问题,学习长程依赖

模型更复杂、参数更多、学习能力更强

 

38 深度学习 用于处理序列的RNN_第2张图片

 

RNN通用套路

  • 整理输入数据,每句文本处理成固定长度,做Embedding
  • 将一句话的每个词逐一输入到RNN中,得到每一步的输出
  • 最后一步的输出可以视为整句话的一个融合
  • 接上分类器,输出
  • 可以和CNN结合,应用:看图说话、VQA等

 

Keras中的实现

SimpleRNN、GRU、LSTM

 

 

你可能感兴趣的:(38 深度学习 用于处理序列的RNN)