一 递归神经网络原理

1.工作过程

   (1)文本处理(训练)
   (2)一个神经元,不同时刻
   (3)每个时刻都有输出
Deep Learnig(递归神经网络)

2.正向传播

Deep Learnig(递归神经网络)
ot=g(Vst)st=f(Uxt+Wst1)\begin{array}{l} \mathrm{o}_{t}=g\left(V \mathrm{s}_{t}\right) \\ \mathrm{s}_{t}=f\left(U \mathrm{x}_{t}+W \mathrm{s}_{t-1}\right) \end{array}
       其中:g=softmax,f=tanh。
ot=g(Vst)=Vf(Uxt+Wst1)=Vf(Uxt+Wf(Uxt1+Wst2))=Vf(Uxt+Wf(Uxt1+Wf(Uxt2+Wst3)))=Vf(Uxt+Wf(Uxt1+Wf(Uxt2+Wf(Uxt3+))))\begin{aligned} \mathrm{o}_{t} &=g\left(V \mathrm{s}_{t}\right) \\ &=V f\left(U \mathrm{x}_{t}+W \mathrm{s}_{t-1}\right) \\ &=V f\left(U \mathrm{x}_{t}+W f\left(U \mathrm{x}_{t-1}+W \mathrm{s}_{t-2}\right)\right) \\ &=V f\left(U \mathrm{x}_{t}+W f\left(U \mathrm{x}_{t-1}+W f\left(U \mathrm{x}_{t-2}+W \mathrm{s}_{t-3}\right)\right)\right) \\ &=V f\left(U \mathrm{x}_{t}+W f\left(U \mathrm{x}_{t-1}+W f\left(U \mathrm{x}_{t-2}+W f\left(U \mathrm{x}_{t-3}+\ldots\right)\right)\right)\right) \end{aligned}

3.损失函数

Deep Learnig(递归神经网络)
Et(yt,y^t)=ytlogy^tE(y,y^)=tEt(yt,y^t)=tytlogy^t\begin{aligned} E_{t}\left(y_{t}, \hat{y}_{t}\right) &=-y_{t} \log \hat{y}_{t} \\ E(y, \hat{y}) &=\sum_{t} E_{t}\left(y_{t}, \hat{y}_{t}\right) \\ &=-\sum_{t} y_{t} \log \hat{y}_{t} \end{aligned}

4.反向传播

   (1) 参数优化方法:同传统神经网络一样,梯度下降;
   (2)计算损失函数对参数的导数;
   (3)每个输出都对参数有影响。
Deep Learnig(递归神经网络)
    (4)计算对w的导数:
EW=tEtW\frac{\partial E}{\partial W}=\sum_{t} \frac{\partial E_{t}}{\partial W}
        E3由t0−t3时刻x,W共同确定,Δs3=E3s3\Delta s_{3}=\frac{\partial E_{3}}{\partial s_{3}}
            t3时刻:
E3w=s3wΔs3\frac{\partial E_{3}}{\partial w}=\frac{\partial s_{3}}{\partial w} \Delta s_{3}
            t2时刻:
E3w=s3s2s2wΔs3\frac{\partial E_{3}}{\partial w}=\frac{\partial s_{3}}{\partial s_{2}} \frac{\partial s_{2}}{\partial w} \Delta s_{3}
            t1时刻:
E3w=s3s2s2s1s1wΔs3\frac{\partial E_{3}}{\partial w}=\frac{\partial s_{3}}{\partial s_{2}} \frac{\partial s_{2}}{\partial s_{1}}\frac{\partial s_{1}}{\partial w} \Delta s_{3}
            t0时刻:
E3w=s3s2s2s1s1s0s0wΔs3\frac{\partial E_{3}}{\partial w}=\frac{\partial s_{3}}{\partial s_{2}} \frac{\partial s_{2}}{\partial s_{1}} \frac{\partial s_{1}}{\partial s_{0}} \frac{\partial s_{0}}{\partial w} \Delta s_{3}
E3w=k=03s3skskwΔs3\frac{\partial E_{3}}{\partial w}=\sum_{k=0}^{3} \frac{\partial s_{3}}{\partial s_{k}} \frac{\partial s_{k}}{\partial w} \Delta s_{3}
   (5)计算对u的导数:同理有
E3U=k=03s3skskUΔs3\frac{\partial E_{3}}{\partial U}=\sum_{k=0}^{3} \frac{\partial s_{3}}{\partial s_{k}} \frac{\partial s_{k}}{\partial U} \Delta s_{3}
    (5)多层网络
      类比传统神经网络单层到多层的结构变化,额外添加上层前一状态。
Deep Learnig(递归神经网络)
    (6)双层网络
      输入信息正向、反向来输入RNN。这是由于信息的依赖关系顺序不是一定的。
Deep Learnig(递归神经网络)
    (7)Vanishing Gradient 问题
      注意到因为我们是用向量函数对向量求导数,结果是一个矩阵(称为Jacobian
    Matrix),矩阵元素是每个点的导数。
Deep Learnig(递归神经网络)
       影响:较长的记忆无法产生作用。
        解决方式:非线性激励更换;LSTM长短记忆单元。

二 升级版RNN:LSTM

1.RNN局限

Deep Learnig(递归神经网络)

2.解决方案:设计Gate,保存重要记忆

Deep Learnig(递归神经网络)

3.LSTM生成

   Ct是信息流控制的关键,参数决定了ht传递过程中,哪些被保存或者舍弃。该参数被Gate影响。
Deep Learnig(递归神经网络)
   LSTM 有通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作。
Deep Learnig(递归神经网络)

4.逐步理解LSTM

(1)对旧的信息进行去除:

   新输入xt\mathcal{x}_{t}的前一状态ht1\mathcal{h}_{t-1}决定C的哪些信息可以舍弃;
   ft\mathcal{f}_{t}Ct1\mathcal{C}_{t-1}运算,对部分信息进行去除。
Deep Learnig(递归神经网络)

(2)确定什么样的新信息被保存:

Deep Learnig(递归神经网络)

(3)更新旧状态信息:

Deep Learnig(递归神经网络)

(4)确定输出的信息:

Deep Learnig(递归神经网络)
      问题: Gate的作用在哪里?有用的信息如何保存?
      Gate 输出it,ft,ot,用来引导Ct 的生成;
      训练后,Ct 的相关参数为,这样便可以保存有用的信息。

5.LSTM变种

(1)Peephole connection

Deep Learnig(递归神经网络)

(2)Gate忘记/更新不再独立

Deep Learnig(递归神经网络)

(3)Gated Recurrent Unit (GRU)

   遗忘、更新Gate做结合(既不是独立,又不是互补)
   控制参数CtC_t与输出ht结合,直接产生带有长短记忆能力的输出。
      其中,ztz_t用于更新,rtr_t用于遗忘,h~t\tilde{h}_{t}为临时控制参数的变形。
Deep Learnig(递归神经网络)

三 自然语言处理特征提取:Word2Vect

1.建立字典

   每个词生成one-hot向量。
   如:Word个数为n,产生n维向量,第i个Word的向量为(0,0,…,1,0,0,0,…),1处于第i个位置。
Deep Learnig(递归神经网络)

2.训练数据集构建

   通过原文本,建立一些词与词之间的词对,这些词对作为后面要继续训练的样本。
Deep Learnig(递归神经网络)

3.简单神经网络

   简易三层神经网络,各层神经元个数:N-m-N;
   学习的是词语到临近词的映射。
Deep Learnig(递归神经网络)

4.最终生成vec

   训练model进行特征提取;
   每个one-hot对应一个300-d的向量;
   生成最终的look up word table。
Deep Learnig(递归神经网络)

四 LSTM用于语言处理

   word形式:Word2Vec;
   训练过程:words->word;
   LSTM网络只有最后输出有用。
Deep Learnig(递归神经网络)
   训练目标:生成单词间条件概率
Deep Learnig(递归神经网络)
Deep Learnig(递归神经网络)

相关文章: