2023.12.17 机器学习周报

目录

引言

Abstract

一、文献阅读

1、题目

2、引言

3、方法

4、创新点

6、实验过程

7、实验结果

二、深度学习

 1、RNN流程

2、Simple RNN Model

3、RNN手推过程

总结 

引言

本周阅读了一篇一种名为RNN Encoder-Decoder的新型神经网络模型文献,用于统计机器翻译,一个用于将符号序列编码为固定长度的向量表示,另一个用于将表示解码为另一个符号序列。编码器和解码器一起训练,以最大化给定源序列的条件概率下目标序列的概率,并且回顾了RNN的深度学习的知识,加深了印象。

Abstract

This week, I read a novel neural network model called RNN Encoder Decoder, which is used for statistical machine translation. One is used to encode symbol sequences into fixed length vector representations, and the other is used to decode representations into another symbol sequence. The encoder and decoder are trained together to maximize the probability of the target sequence under the given conditional probability of the source sequence, and the knowledge of deep learning in RNN is reviewed to deepen the impression.

一、文献阅读

1、题目

Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation

2、引言

在本文中,我们提出了一种新的神经网络模型,称为RNN编码器-解码器,由两个递归神经网络(RNN)组成。一个RNN将一个符号序列编码为固定长度的矢量表示,另一个则将该表示解码为另一符号序列。所提出的模型的编码器和解码器被联合训练,以在给定源序列的情况下最大化目标序列的条件概率。通过使用RNN编码器-解码器计算的短语对的条件概率作为现有对数线性模型中的附加特征,实证发现统计机器翻译系统的性能有所提高。定性地,我们表明所提出的模型学习了语言短语的语义和句法意义的表示。

3、方法

RNN由隐藏状态h和可选输出y组成的神经网络,其对可变长度序列x=(x1,…,xT)进行运算。

 

RNN Encoder-Decoder是一种神经网络架构,它将可变长度的序列编码为固定长度的向量表示,并将向量解码回可变长度的序列。编码器RNN读取输入序列的每个符号,并相应地更新其隐藏状态。在读取序列的末尾后,隐藏状态成为整个输入序列的摘要。解码器RNN通过基于隐藏状态、前一个符号和输入序列的摘要来预测下一个符号,从而生成输出序列。编码器和解码器一起训练,以最大化给定源序列的条件对数似然下目标序列的概率。

整体架构图如下:

从这个结构图中我们可以看出来RNN-Encoder-Decoder 分为两部分,Encoder的作用是编码,也就是将输入序列{x1,x2…..xt}生成一个中间编码向量,然后再利用这个中间编码向量输入到Decoder中,生成输出序列,这就可以实现n-m的效果,因为对于SMT系统来说,输入序列长度和输出序列长度一般是不同的。

4、创新点

  1. 引入了RNN编码器-解码器框架,使得模型能够更好地处理序列数据和捕捉语义信息。
  2. 关注于学习短语表示,通过RNN学习有意义的短语嵌入,提高了对语义的理解。
  3. 引入了注意力机制,允许模型在解码的过程中集中关注源语言序列的相关部分,以提高长距离依赖的建模能力。

6、实验过程

在这项研究中,使用了RNN Encoder-Decoder模型进行实验,选择了WMT'14翻译任务中的英语/法语翻译任务作为评估任务。使用了大量的双语语料库进行训练,包括Europarl、新闻评论、联合国等。为了减少计算开销并确保模型能够学习语言的规律性,使用了数据选择方法来选择最相关的子集进行语言建模和训练RNN Encoder-Decoder模型。

在训练RNN Encoder-Decoder模型时,忽略了原始语料库中每个短语对的频率。使用了具有1000个隐藏单元和编码器和解码器中的门控单元的RNN Encoder-Decoder模型。模型的权重参数使用了高斯分布进行初始化,并使用了Adadelta和随机梯度下降算法进行训练。每次更新时,从短语表中随机选择64个短语对进行训练。整个模型的训练过程大约持续了三天。

此外,还尝试了使用传统的神经网络进行目标语言建模的方法,即CSLM模型。通过比较使用CSLM模型和使用RNN Encoder-Decoder模型进行短语评分的SMT系统,可以确定在SMT系统的不同部分使用多个神经网络的贡献是否累加或冗余。

7、实验结果

根据论文中的实验数据结果,使用了大量的资源来构建一个英法SMT系统,包括Europarl(6100万词)、新闻评论(550万词)、联合国(4.21亿词)以及两个爬取的语料库,分别包含9000万和7.8亿词。作者使用了Moore和Lewis提出的数据选择方法以及Axelrod等人对双语文本的扩展方法,从超过20亿词中选择了4180万词用于语言建模和3480万词用于训练RNN编码器-解码器。使用了newstest2012和2013作为数据选择和权重调整的测试集,newstest2014作为测试集。还限制了英语和法语的源语言和目标语言词汇表,只使用了最常见的1.5万个词,覆盖了约93%的数据集。还构建了基线的短语翻译SMT系统,并使用Moses进行了默认设置。该系统在开发集和测试集上的BLEU分数分别为30.64和33.3。还使用了RNN编码器-解码器和CSLM + RNN等不同方法进行了实验,并给出了相应的BLEU分数。实验结果表明,该方法在翻译任务中取得了较好的性能。 

二、深度学习

 1、RNN流程

由上图所示,RNN每次处理一个词,用状态向量h来积累阅读过的信息,把输入的一个词用Word embedding变成一个词向量x,每次把一个词向量输入RNN,然后RNN就会更新状态h,把新的输入就会积累到h里。例如,h0里面包含了第一个词the的信息,h1里面包含了前两个词the和cat的信息,以此类推,ht包含了之前整句话的信息,更新状态h的时候,需要用到状态矩阵A,整个RNN只有一个状态矩阵A,A随机初始化,然后通过训练数据来学习A。

2、Simple RNN Model

上一个状态记为h_{t-1},新输入的词向量记为x_{t},矩阵A是RNN的模型参数,这里计算矩阵A和向量的乘积,矩阵和向量的乘积是向量,激活函数是tanh(双曲正切函数),输入是任意实数,输出在-1和1之间,把激活函数的输出作为新的状态向量h_{t}。由上可以表示为h_{t}是旧状态h_{t-1}和向量x_{t}的函数表示,神经网络的模型参数是矩阵A,新的状态h_{t}依赖于状态h_{t-1},向量x_{t}以及矩阵A。

3、RNN手推过程

如下图所示,这是我们要手推RNN模型的内部结构示意图。图中的t下标指当前时间节点,St由Whh矩阵和Whx矩阵竖着拼接,乘上横着拼接的ht-1和Xt得到;ht由tanh作为激活函数,St作为参数得到,在这里每一轮产生的ht将会更新到下一轮使用;Ot由Wyh乘上ht得到;最后用softmax得到概率分布。

如下图所示,这是我们制定的任务,训练数据用one-hot vector表示。图中的最下面是RNN的展开,因为我们只需要最后一次的输出,所以就无需计算出第一次和第二次的输出。

如下图所示,初始化参数。

正向运算

  • 我们设定初始的h0为0,于是计算出t=1时的s1、h1,t=2时s2、h2。

  • 当t=3时,计算出s3、h3、O,最后把O放入softmax中得到概率分布。

反向运算
反向运算中比较复杂的是loss对Whh求导和loss对Whx求导,原因是Whh和Whx对Loss的影响有3种情况,一种是h3直接影响,另一种是h2、h3影响,最后一种是h1、h2与h3影响。

通过反向运算得到的gradient,更新参数。

总结 

本周复习了RNN的相关知识,加深了印象,之后会在该基础上进行更深入的学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值