RNN、LSTM、Char-RNN 学习系列(一)

zoerywzhou@gmail.com

http://www.cnblogs.com/swje/

作者:Zhouw

 2016-3-15

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载请注明出处:http://www.cnblogs.com/swje/p/5279349.html

作者是深度学习的初学者,经由导师指导,稍微学习了解了一下RNN、LSTM的网络模型及求导,打算在这里分享一下,欢迎各种交流。


2016-03-15看到的博客、参考文档:

从NN到RNN再到LSTM(附模型描述及详细推导)——(一)NN

从NN到RNN再到LSTM(附模型描述及详细推导)——(二)RNN

从NN到RNN再到LSTM(附模型描述及详细推导)——(三)LSTM

Softmax回归:http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

反向传播算法的解释:Principles of training multi-layer neural network using backpropagation:http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html

近期的学习体会:

1、Softmax分类器:解决多分类问题。

当训练过程中,我们想要improve 某目标字符的置信度并降低其他字符的置信度时,通常的做法是使用一个交叉熵损失函数,这相当于在每个输出向量使用Softmax分类器,将下一个出现的字符的索引作为一个正确的分类。一旦损失进行了反向传播并且RNN权值得到更新,在输入相同的情况下,下一个正确的字符将会有更高的分数。

2、前向传播(Forward propagation):依次按照时间的顺序计算一次。

反向传播(Back propagation):从最后一个时间将累积的残差传递回来。

3、 符号 "" 的含义:  本身是一个向量,它的第  个元素  是  的第  个分量的偏导数。

4、激活函数(activation function):是用来加入非线性因素的,因为线性模型的表达能力不够。激活函数不是指它去激活什么,而是指如何把“激活的神经元的特征”通过函数把特征保留并映射出来。

常见的激活函数有:

  • sigmoid函数:S型函数。特征比较复杂或者相差不是很大,需要更细微的分类判断时,效果好。
  • tanh:是设置一个值,大于0.5的通过为1,不然为0。特征相差明显是效果好,在循环过程中不断扩大特征效果显示出来。
  • ReLU:简单粗暴,大于0的留下,否则一律为0。取max(0,x),不断试探如何用一个大多数为0的矩阵来尝试表达数据特征。

5、问答区域

  • 问:训练好的网络怎么使用?

    •   答: 用来给新数据分类。
  • 问:神经网络通过什么方法训练?
    •   答:可以用BP算法,前向传播:从第一层到最后一层(last layer)跑一遍。

6、Dropout参数(@char-rnn模型):指模型训练时随机让网络某些隐含层节点的权重不工作,不工作的节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来(只是暂时不更新而已)。

训练神经网络模型时,如果训练样本比较少,为了防止模型过拟合,Dropout可以作为一种trick供选择。

7、Boosting 方法:为了提高弱分类算法的准确度:构造预测函数序列,then combine 之。

   Adaboost 算法:将容易找到的识别率不高的弱分类算法提升为识别率很高的强分类算法。给定一个弱的学习算法和训练集,在训练集的不同子集上,多次调用弱学习算法,最终按加权方式联合多次弱学习算法的预测结果得到最终学习结果。

RNN、LSTM、Char-RNN 学习系列(一)的更多相关文章

  1. 深度学习中的序列模型演变及学习笔记(含RNN/LSTM/GRU/Seq2Seq/Attention机制)

    [说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![认真看图][认真看图] [补充说明]深度学习中的序列模型已经广泛应用于自然语言处理(例如机器翻 ...

  2. 学习Tensorflow的LSTM的RNN例子

    学习Tensorflow的LSTM的RNN例子 基于TensorFlow一次简单的RNN实现 极客学院-递归神经网络 如何使用TensorFlow构建.训练和改进循环神经网络

  3. [NL系列] RNN & LSTM 网络结构及应用

    http://www.jianshu.com/p/f3bde26febed/ 这篇是 The Unreasonable Effectiveness of Recurrent Neural Networ ...

  4. 实现Bidirectional LSTM Classifier----深度学习RNN

    双向循环神经网络(Bidirectional Recurrent Neural Networks,Bi-RNN),Schuster.Paliwal,1997年首次提出,和LSTM同年.Bi-RNN,增 ...

  5. 深度学习原理与框架-递归神经网络-RNN网络基本框架(代码?) 1.rnn.LSTMCell(生成单层LSTM) 2.rnn.DropoutWrapper(对rnn进行dropout操作) 3.tf.contrib.rnn.MultiRNNCell(堆叠多层LSTM) 4.mlstm_cell.zero_state(state初始化) 5.mlstm_cell(进行LSTM求解)

    问题:LSTM的输出值output和state是否是一样的 1. rnn.LSTMCell(num_hidden, reuse=tf.get_variable_scope().reuse)  # 构建 ...

  6. github上虽然已经有实现好的Char RNN

    前言 学习RNN的时候很多人应该都有看过Andrej Karpathy写的The Unreasonable Effectiveness of Recurrent Neural Networks,使用基 ...

  7. 这可能是国内最全面的char RNN注释

    char RNN代码来源于https://github.com/hzy46/Char-RNN-TensorFlow 前言 本人在学习char RNN的过程中,遇到了很多的问题,但是依然选择一行代码一行 ...

  8. 使用Keras进行深度学习:(五)RNN和双向RNN讲解及实践

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 笔者:Ray 介绍 通过对前面文章的学习,对深度神经网络(DNN) ...

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

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

随机推荐

  1. server.xml; lineNumber: 44; columnNumber: 95; 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾。

    url="jdbc:mysql://192.169.1.201:3306/raker?useUnicode=true&characterEncoding=UTF-8&zero ...

  2. 20170405-STO库存转储单

    1.工厂间转储: (1)MB1B 移动类型 301 工厂到工厂(一步)转账,->简单明了一步转储过账后会产生 GR,MITA增加了,MIZH减少了,MB03, **会产生 GR,如果俩工厂 标准 ...

  3. 【jenkins】jenkins实时显示python脚本输出

    jenkins在构建shell脚本时可以实时输出结果,但是在构建python脚本时,是等到python执行完成以后,才显示结果,这个对于我们判断脚本执行状态非常不利 这里介绍一种方法,能够实时显示py ...

  4. Shell Script Notes

    shell Script学习笔记 <鸟哥的Linux私房菜 3rd Edition>: @1:若变量内容中包含空格字符,则可使用双引号"或单引号'将变量内容结合起来,但不同的是: ...

  5. 20160422 --Switch…case 总结; 递归算法

    13 2016-04-22  11:01:00 Switch…case 总结(网摘) 例题: Console.WriteLine("1.汉堡包"); Console.WriteLi ...

  6. docker 命令添加容器数据卷

    实现宿主机和容器的数据共享 只要建立连接,即使容器exit,主机的修改仍能提现到容器

  7. 31 整数中1出现的次数(从1到n整数中1出现的次数)

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  8. 【LeetCode】【动态规划】表格移动问题

    前言 这里总结了两道表格移动的问题,分别是:Unique Paths 和 题一:Unique Paths 描述 A robot is located at the top-left corner of ...

  9. ag-grid

    使用: import { AgGridVue } from "ag-grid-vue"; <ag-grid-vue style="width:100%;height ...

  10. Linux基本命令 压缩命令

    1.压缩命令 ================================================================================== 命令名称:gzip ...