第四周:卷积神经网络 part3 2

  • 循环神经网络往往应用于具有前后文关系的任务,比如语音识别,机器翻译,文本填空,股票预测,图像理解等等

  • RNN引入了时序的概念,有些类似于时序数字电路,由此具有记忆的能力

  • RNN的基本结构为

    第四周:卷积神经网络 part3 2_第1张图片

    可以看到,最大的不同就是添加了记忆单元

  • 整体结构为

    第四周:卷积神经网络 part3 2_第2张图片

    不断地对 \(h_t\) 进行更新,使其具有记忆功能,其中 \(U,V,W\) 为模型参数,\(f\) 可以用双曲正切函数 \(tanh\) ,模型输出由以下式子决定

    \[h_t=tanh(Wh_{t-1}+Ux_i) \\ y_t=softmax(Vh_t) \]

    \(y_t\) 为时刻 \(t\) 的模型输出

  • 横向排列,可以得到RNN的基本模型

    第四周:卷积神经网络 part3 2_第3张图片

  • 可以在深度上拓展,构成深度结构

    第四周:卷积神经网络 part3 2_第4张图片

  • 或者反向连接,构成双向RNN

    第四周:卷积神经网络 part3 2_第5张图片

  • 神经网络的基本模型为

    \[z=Wx+b \\ a=\sigma(z) \\ loss = \mathcal L(a,y) \\ namely, \\ L=loss=\sum_{k=1}^c(a_k-y_k)^2 \\ \sigma(z)=\frac{1}{1+e^{-z}} \]

    \(\sigma(z)\) ,我们有

    \[\frac{\partial\sigma}{\partial z}=\sigma(z)(1-\sigma(z)) \]

    所以

    \[\frac{\partial L}{\partial W}=\frac{\partial L}{\partial a}·\frac{\partial a}{\partial z}·\frac{\partial z}{\partial W}=2(a-y)a(1-a)x \]

  • BPTT算法采用同样的思路,只不过输出依赖于前一时刻的输入,所以求导需要进行复合函数偏导求导法则

  • LSTM即Long Short-term Memory(长短期记忆模型),他模拟了人类记忆的规律,对信息进行特定遗忘和摄取便于处理信息,主要结构如下

    第四周:卷积神经网络 part3 2_第6张图片

    主要由三个门组成,分别是遗忘门,输入门和输出门,遗忘门主要是为了决定丢弃多少信息,输入门用来确定需要更新的信息(从不更新到完全更新),输出门则用于输出数据,LSTM的模型如下所示

    \[f_t=\sigma(W_f[h_{t-1},x_t]+b_f) \\ i_t=\sigma(W_i[h_{t-1},x_t]+b_i) \\ \hat{C_t}=tanh(W_C[h_{t-1},x_t]+b_C) \\ C_t=f_t*C_{t-1}+i_t*\hat{C_t} \\ o_t=\sigma(W_o[h_{t-1,x_t}]+b_o) \\ h_t=o_t*tanh(C_t) \]

  • 在训练时,LSTM的学习率应该尽量小以避免梯度消失

  • GRU结构为

    第四周:卷积神经网络 part3 2_第7张图片

    GRU相较LSTM,只有两个门,分别是重置门和更新门,重置门主要是用来控制上一时刻状态信息保留的多少,而更新门则控制上一时刻用以计算当前时刻数据的影响的大小,更新门值越大则表示前一时刻的状态信息带入的越多,其基本模型为

    \[z_t=\sigma(W_z[h_{t-1},x_t]) \\ r_t=\sigma(W_r[h_{t-1},x_t]) \\ \hat{h_t}=tanh(W[r_t*h_{t-1},x_t]) \\ h_t=(1-z_t)*h_{t-1}+z_t*h_t \]

你可能感兴趣的:(第四周:卷积神经网络 part3 2)