原文地址:https://www.jianshu.com/p/b8653f8b5b2b

一、Recurrent Neural Network



二、Naive RNN


Naive RNN更新参数时易出现梯度消失/爆炸的问题。

三、LSTM


  • peephole

  • Naive RNN vs LSTM
    记忆更新部分的操作,Naive RNN为乘法,LSTM为加法。因此LSTM能记得更久些。
    记\(\delta_c^t=\frac{\partial L}{\partial c^t}=\frac{\partial L}{\partial c^{t+1}}\frac{\partial c^{t+1}}{\partial c^t}=\delta_c^{t+1}(z^f+\cdots)\)。当\(z^f=1\)时,即使其他项很小,梯度也能够很好地传达到上一个时刻;当\(z^f=0\)时,上一个时刻的记忆不会影响当前时刻,梯度也不会回传回去。因此,\(z^f\)控制了梯度回传的衰减程度。
    能有效地缓解梯度消失/爆炸问题。

  • LSTM设计原因

标准形式的LSTM能工作得很好;输入门与遗忘门联动(类似GRU)以及没有peephole也能工作得很好。
输出激活函数、遗忘门对于LSTM的表现很重要。

四、GRU


与LSTM相比,GRU可以看做是输入门和遗忘门联动。由4个矩阵乘法变为了3个,参数量更少,降低了过拟合的可能性。

五、attention基础

  • dot
    \(S_{ab}=h_a^Th_b\)
  • general
    \(S_{ab}=h_a^T W h_b\)
  • concat
    \(S_{ab}=v^T tanh(W_a h_a+W_b h_b)\)

Naive RNN vs LSTM vs GRU、attention基础的更多相关文章

  1. Naive RNN vs LSTM vs GRU

    0 Recurrent Neural Network 1 Naive RNN 2 LSTM peephole Naive RNN vs LSTM 记忆更新部分的操作,Naive RNN为乘法,LSTM ...

  2. TensorFlow之RNN:堆叠RNN、LSTM、GRU及双向LSTM

    RNN(Recurrent Neural Networks,循环神经网络)是一种具有短期记忆能力的神经网络模型,可以处理任意长度的序列,在自然语言处理中的应用非常广泛,比如机器翻译.文本生成.问答系统 ...

  3. 几句话总结一个算法之RNN、LSTM和GRU

    RNN 一般神经网络隐层的计算是h=g(w * x),其中g是激活函数,相比于一般神经网络,RNN需要考虑之前序列的信息,因此它的隐藏h的计算除了当前输入还要考虑上一个状态的隐藏,h=g(w*x+w' ...

  4. RNN,LSTM,GRU简单图解:

    一篇经典的讲解RNN的,大部分网络图都来源于此:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 每一层每一时刻的输入输出:https ...

  5. 写给程序员的机器学习入门 (五) - 递归模型 RNN,LSTM 与 GRU

    递归模型的应用场景 在前面的文章中我们看到的多层线性模型能处理的输入数量是固定的,如果一个模型能接收两个输入那么你就不能给它传一个或者三个.而有时候我们需要根据数量不一定的输入来预测输出,例如文本就是 ...

  6. RNN、LSTM、Seq2Seq、Attention、Teacher forcing、Skip thought模型总结

    RNN RNN的发源: 单层的神经网络(只有一个细胞,f(wx+b),只有输入,没有输出和hidden state) 多个神经细胞(增加细胞个数和hidden state,hidden是f(wx+b) ...

  7. 十 | 门控循环神经网络LSTM与GRU(附python演练)

    欢迎大家关注我们的网站和系列教程:http://panchuang.net/ ,学习更多的机器学习.深度学习的知识! 目录: 门控循环神经网络简介 长短期记忆网络(LSTM) 门控制循环单元(GRU) ...

  8. RNN and LSTM saliency Predection Scene Label

    http://handong1587.github.io/deep_learning/2015/10/09/rnn-and-lstm.html  //RNN and LSTM http://hando ...

  9. 第二十一节,使用TensorFlow实现LSTM和GRU网络

    本节主要介绍在TensorFlow中实现LSTM以及GRU网络. 一 LSTM网络 Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息 ...

随机推荐

  1. os模块方法

    OS 对象方法: 提供了处理文件及目录的一系列方法 os.rename(current_file_name, new_file_name) 重命名 os.remove(file_name) 删除文件 ...

  2. python 使用yaml模块

    python:yaml模块一.yaml文件介绍YAML是一种简洁的非标记语言.其以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁.1. yaml文件规则基本规则:    大小写敏感   ...

  3. C. Ancient Berland Circus(三点确定最小多边形)

    题目链接:https://codeforces.com/problemset/problem/1/C 题意:对于一个正多边形,只给出了其中三点的坐标,求这个多边形可能的最小面积,给出的三个点一定能够组 ...

  4. 类的私有private构造函数 ,为什么要这样做

    通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?没错,我也知道这将会使构造函数成为私有的,这意味着什么? 我们知道,当我们在程序中声明一个对象时 ...

  5. JeeSite使用(一)大步跑起来

    背景:近期准备换个工作,想对之前自己写的代码进行重构,选择了JeeSite 需求:跑起来才是硬道理 方法:1.官方文档有坑,别信他    2.官方文档有坑,别信他     3.官方文档有坑,别信他 一 ...

  6. JsonSchema 启蒙

    jsonSchema 的应用场景有很多,毕竟现在各个接口传输数据基本都是json,比如你做测试想对部分json字段进行校验或者统计你该如何写?解析json获取字段然后if else?不是说不可以但是也 ...

  7. DPS首战鞍山

    10月17日就即将飞机去鞍山了,不知不觉进入ACM的世界已经有一年了.虽然这一年我不够勤奋, 还是经常打LOL ,但是感觉自己真的学到了很多 . 在SCAU无数次选拔赛, 淘汰赛,个人排位赛 ,组队训 ...

  8. bootstrap学习(四)表格

    基础样式: 自适应沾满浏览器 <table class="table"> <tr> <th>序号</th> <th>姓名 ...

  9. JAVA求解质因数

    /** * 求质因数 * @param n * @return */ public static List<Integer> generatePrimeFactors(int n){ Li ...

  10. ES5新增方法(数组,字符串,对象)

    一.数组方法 迭代(遍历)方法:forEach().map().filter().some().every(): 1. array. forEach(function(value,index,arr) ...