下载此文档

LSTM实现详解.doc


文档分类:研究生考试 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
LSTM实现详解
前言在很长一段时间里,我一直忙于寻找一个实现LSTM网络的好教程。它们似乎很复杂,而且在此之前我从来没有使用它们做过任何东西。在互联网上快速搜索并没有什么帮助,因为我找到的都是一些幻灯片。幸运地是,我参加了Kaggle EEG 竞赛,而且我认为使用LSTM很有意思,最后还理解了它的工作原理。这篇文章基于我的解决方案,使用的是Andrej
Karpathy的char-rnn代码,这也是我强烈推荐给大家的。RNN误区我感觉有一件很重要的事情一直未被大家充分强调过(而且这也是我为什么不能使用RNN做我想做的事情的主要原因)。RNN和前馈神经网络并没有很大不同。最容易实现RNN的一种方法就是像前馈神经网络使用部分输入到隐含层,以及一些来自隐含层的输出。在网络中没有任何神奇的内部状态。它作为输入的一部分。
RNN的整体结构与前馈网络的结构非常相似LSTM回顾本节内容将仅覆盖LSTM的正式定义。有很多其它的好博文,都详细地描述了你该如何设想并思考这些等式。LSTM有多种变换形式,但我们只讲解一个简单的。一个Cell由三个Gate(input、forget、output)和一个cell单元组成。Gate使用一个sigmoid激活函数,而input和cell state通常会使用tanh来转换。LSTM 的cell可以使用下列的等式来定义:Gates:
输入变换:
状态更新:
使用图片描述类似下图:由于门控机制,Cell可以在工作时保持一段时间的信息,并在训练时保持内部梯度不受不利变化的干扰。Vanilla LSTM 没有forget gate,并在更新期间添加无变化的cell状态(它可以看作是一个恒定的权值为1的递归链接),通常被称为一个Constant Error Carousel(CEC)。这样命名是因为它解决了在RNN训练时一个严重的梯度消失和梯度爆炸问题,从而使得学习长期关系成为可能。建立你自己的LSTM层这篇教程的代码使用的是Torch7。如果你不了解它也不必担心。我会详细解释的,所以你可以使用你喜欢的框架来实现相同的算法。,基本上表示我们定义的一个由标准nn模块组成的神经网络计算图。我们需要以下几层:() - 传递输入(用来存放输入数据)(p) - 标准的dropout模块(以1-p的概率丢弃一部分隐层单元)(in, out) - (dim, start, len) - 在第dim方向上选择一个子向量,下标从start开始,() - () - () - 输出张量(tensor)() - 输出张量的总和输入首先,让我们来定义输入形式。在lua中类似数组的对象称为表,这个网络将接受一个类似下面的这个张量表。local inputs = {}
(inputs, ()()) -- network input
(inputs,

LSTM实现详解 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人学习的一点
  • 文件大小29 KB
  • 时间2021-07-25