【深度学习与Theano】LSTM网络-情感分析

来源:互联网 发布:云盘 网站维护源码 编辑:程序博客网 时间:2024/06/01 08:39

概述


本文提供一个如何使用Theano实现使用LSTM结构的RNN例子。模型被用来通过电影综述来进行情感分析,综述数据来源于Large Movie Review Dataset,即IMDB。
在这个任务中,给定一个电影,这个模型能够预测电影是positive还是 negative。这是一个二进制分类任务。


数据


如前所述,提供的scripts被用来在LMDB数据上训练一个LSTM RNN网络。由于此数据库是公开的,可以运行scripts来下载数据到本地目录,


模型


在传统的RNN中,在梯度反向传播阶段,
这也就是,在转移矩阵中权重的大小将会对学习过程产生较大的影响。
如果矩阵中的权重较小,这将导致 vanishing gradients 这种情况,也就是梯度信号变得太小以致于学习非常慢甚至停止。这也会使得学习数据中的long-term dependencies任务变得更加困难。相反地,如果矩阵中的权重较大,将导致梯度信号过大使得学习偏离,这也就是所谓的 exploding gradients
上述问题是引进memory cell新型结构的主要动机,
一个memory cell由4部分组成:

  • An input gate
  • A neuron with self-recurrent connection
  • A forget gate
  • An output gate
这个self-recurrent connection的权重为1.0,这也保证了不管任何外界干扰,这个memory cell的状态从一个时刻到下一时刻总能保持不变。这个门能够调整memory cell自身和其环境之间的交互作用。input gate可以允许输入信号去改变memory cell的状态或者block it。另一方面,这个output gate允许memory cell的状态去对另一个神经元产生作用或者prevent it。Finally,这个forget gate能根据需要来调整memory cell的自回归连接点,允许这个cell去记住或忘记之前的状态。
这里写图片描述
在下面的方程中描述了memory cell的一个layer在每个时刻点t是如何被更新的。这其中:
xt是memory cell layer在时刻t的输入
Wi,Wf,Wc,Wo,Ui,Uf,Uc,UoVo是权重矩阵
bi,bf,bc,bo是偏置向量
首先,我们计算input gate,it,和Ct,memory cell的状态值:
it=σ(Wtxt+Uiht1+bi)
Ct=tanh(Wcxt+Ucht1+bc)

例:

α A β B γ Γ δ Δ ϵ Eε  ζ Z η H θ Θ ϑι I κ K λ Λ μ M ν Nξ Ξ o O π Π ϖ  ρ Pϱ  σ Σ ς  τ T υ Υϕ Φ φ  χ X ψ Ψ ω Ω


这里写图片描述


0 2