【论文笔记】Recurrent Neural Network Regularization
2016-12-11 23:45
549 查看
本文模型:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb
这篇文章引用量也是超高,总体来说因为他有一个大亮点,那就是Dropout on RNN!
Overfit一直是困扰RNN的大问题,曾经有过不少实验对RNN加以dropout,但是效果都不好,因为循环放大了输入的噪声。
这篇文章的方法其实也已经有人提出过了,本文对此方法在很多任务(image caption/translation/language modeling/speech recognition)上进行了进一步的验证。
只有每个cell的input的output进行dropout,即L层dropout L+1 次(还有输出层),效果甚好,如图所示:
后面的文章中作者在几个任务上做了验证,文中说的也不多,这里不详细解释。
如果我们自己写模型,要怎么使用这个方法呢?我们下面在前面讲过的char-RNN with TensorFlow的基础上进行一下改进,其实很简单,就只有几行代码:
在train.py的55行左右加上如下代码,为命令行输入参数,dropout的比例。
打开train.py,在cell = cell_fn(args.rnn_size, state_is_tuple=True)下面添加
这里实际上就是在每一个LSTM cell外面包了一层dropout,对他的输出dropout。
这样就完成本文的功能,是不是很简单?
这篇文章引用量也是超高,总体来说因为他有一个大亮点,那就是Dropout on RNN!
Overfit一直是困扰RNN的大问题,曾经有过不少实验对RNN加以dropout,但是效果都不好,因为循环放大了输入的噪声。
这篇文章的方法其实也已经有人提出过了,本文对此方法在很多任务(image caption/translation/language modeling/speech recognition)上进行了进一步的验证。
只有每个cell的input的output进行dropout,即L层dropout L+1 次(还有输出层),效果甚好,如图所示:
后面的文章中作者在几个任务上做了验证,文中说的也不多,这里不详细解释。
如果我们自己写模型,要怎么使用这个方法呢?我们下面在前面讲过的char-RNN with TensorFlow的基础上进行一下改进,其实很简单,就只有几行代码:
在train.py的55行左右加上如下代码,为命令行输入参数,dropout的比例。
#新增 #dropout比例 parser.add_argument('--keep_prob', type=float, default=0.5, help='dropout ratio')
打开train.py,在cell = cell_fn(args.rnn_size, state_is_tuple=True)下面添加
#新增 if not infer: # 在训练时 # 这里这个dropoutwrapper其实是为每一个lstm cell的输入以及输出加入了dropout机制 cell = tf.nn.rnn_cell.DropoutWrapper(cell, output_keep_prob=args.keep_prob)
这里实际上就是在每一个LSTM cell外面包了一层dropout,对他的输出dropout。
在look_up = tf.nn.embedding_lookup(embedding, self.input_data)后面添加 #新增#对输入dropout if not infer: # 在训练时 look_up = tf.nn.dropout(look_up, args.keep_prob)这里就是对第一次输入dropout。
这样就完成本文的功能,是不是很简单?
相关文章推荐
- 论文笔记(2)-Dropout-Regularization of Neural Networks using DropConnect
- 深度学习论文笔记--Recover Canonical-View Faces in the Wild with Deep Neural Network
- RNN资源博客 Recurrent Neural Network的经典论文、代码、课件、博士论文和应用汇总
- 论文《A Convolutional Neural Network Cascade for Face Detection》笔记
- 人脸识别方向论文笔记(3)-- Sparsifying Neural Network Connections for Face Recognition
- 论文笔记之:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking
- 论文《A Convolutional Neural Network Cascade for Face Detection》笔记
- 论文《A Convolutional Neural Network Cascade for Face Detection》笔记
- RNN资源博客 Recurrent Neural Network的经典论文、代码、课件、博士论文和应用汇总
- 论文笔记——A Deep Neural Network Compression Pipeline: Pruning, Quantization, Huffman Encoding
- 论文笔记 MSCNN:A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection
- 论文笔记之:Hybrid computing using a neural network with dynamic external memory
- 论文笔记 UberNet : Training a ‘Universal’ Convolutional Neural Network
- 论文笔记:Depth-Gated Recurrent Neural Networks
- 论文笔记之:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation
- 读论文《Attention and Augmented Recurrent Neural Network》
- 【论文笔记】Recover Canonical-View Faces in the Wild with Deep Neural Network
- 论文笔记:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application
- 多尺度R-CNN论文笔记(5): A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection
- LightRNN 论文笔记:LightRNN: Memory and Computation-Efficient Recurrent Neural Networks