zoukankan      html  css  js  c++  java
  • Deep Learning Tutorial (翻译) 之 LSTM

    英文原文请参考http://www.deeplearning.net/tutorial/lstm.html

    LSTM 网络用于情感分析

    本指南旨在提供一个使用长短记忆网络(LSTM)架构的RNN如何使用Theano实现的例子。本文中的模型用来对电影评论做语义分析,数据来自 Large Movie Review Dataset, 熟称为IMDB数据集。

    一旦模型训练好,你可以使用自己的语料库测试它,利用word-index词典 (imdb.dict.pkl.gz) ,数据预处理脚本 (preprocessing script) 。

    模型

    LSTM

    在传统的循环神经网络(RNN)中,在梯度反向传播阶段,梯度信号被weight matrix(循环隐藏层连接权重)乘了很多次(与timesteps一样多)。这意味着,在转移矩阵中权重的维度对学习过程有很大的影响。

    如果矩阵中权重太小(或者说,权重矩阵的主特征值小于1.0),可能导致vanishing gradients的情况,就是说梯度信号变得太小以致于学习太慢或者停止运行。也可能使得学习数据中的长短依赖任务变得更加困难。相反地,如果权重太大(或者说,主特征值大于1.0),可能导致学习分散(cause learning to diverge),通常叫做exploding gradients.

    这些问题是提出LSTM的主要动机,它引进了一个新的结构叫做记忆单元(memory cell)如下图所示。一个记忆单元由四部分组成:输入门,自我连接的神经元,忘记门和一个输出门。自我连接有一个权重为1,保证不受任何外界干扰,记忆单元的状态从一个时间步到另一个可以保持不变。门用来建立记忆单元本身和环境的交互。输入门可以允许到来的信号去改变记忆单元的状态或阻止它。另一方面,输出门可以允许记忆单元的状态去影响其他神经元或阻止它。最后,忘记门建立记忆单元的自我连接,允许单元根据需要记住或忘记它之前的状态。

    _images/lstm_memorycell.png

    下面这些公式描述了一层记忆单元在每个时间步t是如何更新的,其中:

    是t时间的输入

    首先,我们计算输入门的值it,和时间t 时记忆单元状态的候选值

    其次,我们计算忘记门在时间t时的激活(activation) ft

    给定输入门激活和忘记门激活以及候选状态值,我们可以计算记忆单元在时间t 的新状态

    给定新的状态,我们可以计算输出门的值:

    我们的模型

    这里我们使用的模型是标准LSTM模型的变体,在这个变体中,单元的输出门的激活不依赖于记忆单元的状态。这使得执行部分计算时更高效。这意味着,在我们实现的变体里,没有(5)中的Vo,被公式(7)代替:

    我们的模型由一个LSTM层,跟着一个平均池化和逻辑回归层组成,如下图所示。这样,从输入序列,LSTM层的记忆单元将产生一个表示序列,然后在所有时间步上平均表示序列。最后,这个表示输入到逻辑回归层,目标是得到输入序列的相关联的类标签。

  • 相关阅读:
    Manjaro配置攻略
    Manjaro蓝牙连接问题
    清除所有分区的根目录下的存在隐藏对系统不利的代码的文件
    取消默认磁盘共享
    高手必读 网络端口安全防护技巧放送
    批处理设置虚拟内存
    批处理方式修改IP地址和电脑名
    c++的基本知识
    Windows线程同步与互斥技术总结
    批处理方式设置XP系统的服务程序
  • 原文地址:https://www.cnblogs.com/liwei33/p/5781974.html
Copyright © 2011-2022 走看看