Dropout

Recurrent Neuro Network

循环神经网络可以更好地处理序列信息(如一句话),允许记忆信息(在时序上传递输入的有效信息),可以解决长期依赖的问题(Long-term Dependencies)

RNN结构

img

img

$$O_t = g(VS_t)$$ # 在时间点 t 的输出

$$S_t = f(UX_t + WS_{t-1})$$ # 在时间点 t 的状态

W,V,U: 权重

g,f: 激活函数

1562156211715

循环

1562068950392

输出值 $O_t$ 受前面历次输入值 $x_t, x_{t-1}, x_{t-2}…$ 的影响,相当于一定程度上记忆之前任意时间段的有效信息,从而在时序上累积输入 $X_t$,解决长期依赖问题。

疑问: S作为一个固定大小的矩阵如何记忆有效信息?

BPTT

损失函数对权重 $W$ 的梯度是各个时刻梯度之和:

$$\nabla_W L = \sum_{i=1}^{t} \nabla_{W_i} L$$

LSTM

lstm

$$f_t = \sigma(W_f[h_{t-1}, x_t] + b_f) $$ # forget 遗忘门

$$i_t = \sigma(W_i[h_{t-1}, x_t] + b_i)$$ # input 输入门

$$\widetilde{C}_t = tanh(W_c[h_{t-1}, x_t] + b_c)$$ # 特征输入

<<<<<<< HEAD

=======

66f037c2f6c4b40611583b218ec6441bb47385a7

$$C_t = f_t \odot C_{t-1} + i_t \odot \widetilde{C}_t$$ # 选择性遗忘,选择性更新

$$h_t = o \odot tanh(C_t)$$ # output 输出门

1562155957295

GRU

合并遗忘门和输入门,使用$z_t$

A gated recurrent unit neural network.

References:

  1. Understanding-LSTMs colah
  2. 理解LSTM(1的翻译)
  3. 零基础入门深度学习(5) - 循环神经网络