当前位置:   article > 正文

使用解码器和注意力机制实现基于GRU和Transformer的机器翻译

使用解码器和注意力机制实现基于GRU和Transformer的机器翻译

目录

一. 编码器—解码器(seq2seq)

1.1 编码器

1.2 解码器

1.3训练模型

二. 束搜索

2.1 贪婪搜索

2.2 穷举搜索

2.3 束搜索

三. 注意力机制

3.1 注意力机制概述

3.2 具体操作步骤

四. 机器翻译

4.1 读取和预处理数据

 4.2 含注意力机制的编码器—解码器

4.2.1 编码器

4.2.2 注意力机制 

4.2.3 含注意力机制的解码器

4.3 训练模型 

4.4 预测不定长的序列 

4.5 评价翻译结果 

五. 基于Transformer实现机器翻译(日译中)

 5.1 导入所需包

5.2 获取平行语料库 

5.3 准备分词器

 5.4 构建TorchText Vocab对象并转换句子为Torch张量

5.5 创建DataLoader对象以便在训练期间迭代 

5.6 序列到序列Transformer模型 

5.7 训练模型 

5.8 尝试使用训练好的模型翻译日文句子 

5.9 保存Vocab对象和训练好的模型 

5.10 总结


SS

前言

  近年来,随着深度学习技术的蓬勃发展,GRU(门控循环单元)和 Transformer 架构在自然语言处理任务中展现出了巨大的潜力。其中,解码器和注意力机制的引入更是为机器翻译的性能提升带来了新的契机。

  解码器作为机器翻译模型的重要组成部分,负责将输入的源语言编码转化为目标语言的输出。而注意力机制则能够动态地关注输入序列中的不同部分,从而更好地捕捉上下文信息,提高翻译的准确性和流畅性。因此,本篇博客将使用解码器和注意力机制实现基于GRU和Transformer的机器翻译。首先我们要介绍实现本次实验的几个重要模块。

一. 编码器—解码器(seq2seq)

  当输入和输出都是不定长序列时,我们可以使用编码器—解码器(encoder-decoder)[1] 或者seq2seq模型 [2]。这两个模型本质上都用到了两个循环神经网络,分别叫做编码器和解码器。编码器用来分析输入序列,解码器用来生成输出序列。

  图10.8描述了使用编码器—解码器将上述英语句子翻译成法语句子的一种方法。在训练数据集中,我们可以在每个句子后附上特殊符号“<eos>”(end of sequence)以表示序列的终止。编码器每个时间步的输入依次为英语句子中的单词、标点和特殊符号“<eos>”。图10.8中使用了编码器在最终时间步的隐藏状态作为输入句子的表征或编码信息。解码器在各个时间步中使用输入句子的编码信息和上个时间步的输出以及隐藏状态作为输入。我们希望解码器在各个时间步能正确依次输出翻译后的法语单词、标点和特殊符号"<eos>"。需要注意的是,解码器在最初时间步的输入用到了一个表示序列开始的特殊符号"<bos>"(beginning of sequence)。

接下来,我们分别介绍编码器和解码器的定义。

1.1 编码器

  编码器的作用是把一个不定长的输入序列变换成一个定长的背景变量

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/772237
推荐阅读
相关标签