原文地址: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. 编译安装Python3.4, pip安装, pypi是pip的源,修改为国内的pypi源

    Linux 下编译安装 Python 3.4 更新于 2014-09-24 02:01:05 UEANER 系统环境: CentOS 6.5 x86_64 / Fedora 20 x86_64 安装相 ...

  2. SSH known_hosts / authorized_keys

    参考: http://blog.sina.com.cn/s/blog_148a693f10102vj8m.html 什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用 ...

  3. 创建线程方法&守护线程

    创建线程方法1. class mythread extends Thread{ 重写run方法 } mythread m=new mythread () 启动:m.start() 创建线程方法2. c ...

  4. JAVA学习之面向对象

    面向对象是相对面向过程而言面向过程:强调的是功能行为面向对象:将功能封装进对象,强调具备了功能的对象 不论面向对象还是面向过程都是一种开发思想而已.举一个例子来理解面向对象和面向过程把大象装进冰箱分三 ...

  5. table td 溢出隐藏

    需要给table加一个属性:table-layout:fixed;

  6. shell 读取配置文件的用法

    https://blog.csdn.net/qq_36684665/article/details/81134179 亲测有用!

  7. Opengl 之 窗口初体验 ------ By YDD的铁皮锅

    大二的时候开始想着做游戏,因为学校的课程实在是无聊就想着做些有意义的事情.毕竟学了编程这一行就得做些实事,于是就在网上搜了一下图形编程,偶然的了解到了Opengl (同时还有Windows上的Dire ...

  8. MUI对话框使用

    一.alert告警框 用法 .alert(message,title,btnvalue,callback[,type]); document.getElementById("noclick& ...

  9. Linux下Golang Socket编程原理分析与代码实现

    在POSIX标准推出后,socket在各大主流OS平台上都得到了很好的支持.而Golang是自带Runtime的跨平台编程语言,Go中提供给开发者的Socket API是建立在操作系统原生Socket ...

  10. 安装express 出现 错误

    w 在网上找了很多都解决不了问题,直到换了文件新建路径就可以了 成功: 学习就是不断发现问题解决问题的过程