【论文阅读】Sequence to Sequence Learning with Neural Network

Sequence to Sequence Learning with NN

《基于神经网络的序列到序列学习》原文google scholar下载。

@author: Ilya Sutskever (Google)and so on

一、总览

DNNs在许多棘手的问题处理上取得了瞩目的成绩。文中提到用一个包含2层隐藏层神经网络给n个n位数字排序的问题。如果有好的学习策略,DNN能够在监督和反向传播算法下训练出很好的参数,解决许多计算上复杂的问题。通常,DNN解决的问题是,算法上容易的而计算上困难的。DNN就是解决这个问题,将计算上看似不易解的问题通过一个设计好的多层神经网络,并按照一定的策略轻松解决。

但是,DNN有一个明显的缺陷:DNN只能处理输入、输出向量维度是定长的情形。对于输入、输出可变长的情况,使用RNN-Recurrent Neural Network更易求解。

对于一个RNN,每一个cell通常是使用LSTM。也有GRU替代,GRU精度上可能不如LSTM,但计算上更加简便,因为他是对LSTM的简化。

这篇论文的模型类似于Encoder-Decoder的模型,Encoder和Decoder的部分采用两个不同的RNN,之所以采用不同的RNN是因为可以以很少的计算代价训练更多的参数。

具体的说,这个Sequence to Sequence的学习中,首先将可变长的Sequence用一个RNN提取出特征向量—定长的,这个特征向量取自飞一个RNN的最后一个LSTM单元。

之后,把这个向量输入另一个RNN(语言模型),如条件语言模型,使用beam search计算出概率最大的句子,得到输出。

本文的创新之处在于,源串作为第一个RNN的输入,其中的每一个单词是逆向输入的。这样做得到了更高的BLEU分数。

虽然本文的模型没有超过当下最好的模型的得分,但其逆向输入的方法提供了新的思路。

二、模型

本文的模型如下:这是一个英语 –> 法语的翻译模型:

源串是CBA,得到输出WXYZ。

数据集:WMT’14 English to French dataset

使用的词典是英文16万词,法语8万词。词向量已经训练好。未知单词采用UNK。句子结尾为EOS。

三、训练细节

  • 使用的是4层LSTM单元,深层的LSTM表现的更好
  • 每一层1000个LSTM,也就是说,循环1000次(因为大多数句子30词左右,其实这有点浪费)
  • 初始化参数使用服从均匀分布U(-0.8,0.8)随机初始化
  • 解码阶段输出层概率采用的是一个很大的softmax,这个占用了绝大多数的计算资源
  • 词向量维度是1000维度的
  • 学习过程中,使用随机梯度下降,学习率初始0.7,迭代7.5次,前5次固定学习率是0.7,之后每半次迭代学习率减半一次
  • 使用mini-batch,每个batch是128个句子
  • 为了避免梯度消失和梯度爆炸,限制梯度大小。如果梯度g的二范数||g||大于5,就进行g = 5*g/||g|| 的转换。
  • 为了解决上面提到的,LSTM横向1000次是浪费的,但我们可以尽可能让同一mini-batch里的句子长度几乎相同。这样是2倍加速效果的。
  • 本文的实验采用8个GPU,其中4个用来处理LSTM的每一层,其余的处理softmax层。

四、实验结果

一方面实验直接对本文的模型以及其他经典模型求BLUE比较,并且对本模型也对不同的超参数做了对比。

另一方面,与统计的机器翻译模型一起使用,通常会比直接使用RNN得分更高。这样做的结果如下:

此外,实验发现,LSTM对长句子表现的更好。

实验还对针对不同句子长度的BLUE得分做了分析:

对不同句子的平均词频下的BLEU得到做了分析:

五、结论

本文得出的结论如下:

  1. 使用LSTM的RNN MT可以战胜传统的基于统计的MT—>STM。
  2. 源句子反转输入对于模型提升的帮助很大。这个没有数学解释,但一个通俗的理解是:目标句子与源句子开头的短时联系更加紧密了,在一个就翻译的初期,目标句子开头翻译质量的提升,提高了整体翻译的质量。

六、其他

还有一些人研究其他的机制。

  1. 编码并不采用RNN,而是使用CNN,这样编码的向量/矩阵改变了语序的问题。
  2. 有些人致力于将RNN结合到传统的STM中去。
  3. 有一种注意力机制。这种机制考虑到Encoder可能并不能完全提取源句子的所有信息,所以使用编码成向量+生成注意力向量 -> 在解码的每一步都线性组合出新的条件(源句子信息)。这样做的好处是在解码生成每一个单词的过程中,网络对源句子中不同的单词更加感兴趣,这可以提高翻译质量。

原文地址:https://www.cnblogs.com/duye/p/9433013.html

时间: 2024-10-12 09:31:01

【论文阅读】Sequence to Sequence Learning with Neural Network的相关文章

【论文阅读】A mixed-scale dense convolutional neural network for image analysis

A mixed-scale dense convolutional neural network for image analysis  Published in PNAS on December 26, 2017 Available at PNAS Online: https://doi.org/10.1073/pnas.1715832114 Danie ?l M. Pelt and James A. Sethian 写在前面:本文方法无法使用TensorFlow或Caffe等现有框架实现.

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1

3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 Spark MLlib Deep Learning工具箱,是根据现有深度学习教程<UFLDL教程>中的算法,在SparkMLlib中的实现.具体Spark MLlib Deep Learning(深度学习)目录结构: 第一章Neural Net(NN) 1.源码 2.源码解析 3.实例 第二章D

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2

3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 第三章Convolution Neural Network (卷积神经网络) 2基础及源码解析 2.1 Convolution Neural Network卷积神经网络基础知识 1)基础知识: 自行google,百度,基础方面的非常多,随便看看就可以,只是很多没有把细节说得清楚和明白: 能把细节说清

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.3

3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.3 http://blog.csdn.net/sunbow0 第三章Convolution Neural Network (卷积神经网络) 3实例 3.1 测试数据 按照上例数据,或者新建图片识别数据. 3.2 CNN实例 //2 测试数据 Logger.getRootLogger.setLevel(Level.WARN) valdata_path="/use

Python -- machine learning, neural network -- PyBrain 机器学习 神经网络

I am using pybrain on my Linuxmint 13 x86_64 PC. As what it is described: PyBrain is a modular Machine Learning Library for Python. Its goal is to offer flexible, easy-to-use yet still powerful algorithms for Machine Learning Tasks and a variety of p

论文阅读--Scalable Object Detection using Deep Neural Networks

Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander Toshev, and Dragomir Anguelov 引用: Erhan, Dumitru, et al. "Scalable object detection using deep neural networks." Proceedings of the IEEE Confere

论文《Chinese Poetry Generation with Recurrent Neural Network》阅读笔记

这篇文章是论文'Chinese Poetry Generation with Recurrent Neural Network'的阅读笔记,这篇论文2014年发表在EMNLP. ABSTRACT 这篇论文提出了一个基于RNN的中国古诗生成模型. PROPOSED METHOD 第一句的生成 第一句的生成是规则式的. 先自定义几个keywords,然后通过<诗学含英>(这是清朝人编写的)扩展出更多的相关短语.然后生成所有满足格式约束(主要是音调方面的)的句子,接下来用一个语言模型排个序,找到最好

Deep learning与Neural Network

该文章转自深度学习微信公众号 深度学习是机器学习研究中的一个新的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本.深度学习是无监督学习的一种. 深度学习的概念源于人工神经网络的研究.含多隐层的多层感知器就是一种深度学习结构.深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示. Deep learning本身算是machine learning的一个分支,简单可以理解为neural network的发展.大

machine learning 之 Neural Network 1

整理自Andrew Ng的machine learning课程week 4. 目录: 为什么要用神经网络 神经网络的模型表示 1 神经网络的模型表示 2 实例1 实例2 多分类问题 1.为什么要用神经网络 当我们有大量的features时:如$x_1, x_2,x_3.......x_{100}$ 假设我们现在使用一个非线性的模型,多项式最高次为2次,那么对于非线性分类问题而言,如果使用逻辑回归的话: $g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1