当前位置:网站首页 > 技术博客 > 正文

编码器和解码器



我们已经在前两节中表征并变换了不定长的输入序列。但在自然语言处理的很多应用中,输入和输出都可以是不定长序列。以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如

英语输入:“They”、“are”、“watching”、“.”
法语输出:“Ils”、“regardent”、“.”

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

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

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

  • 上一篇: 工具类定义
  • 下一篇: Spring注解
  • 版权声明


    相关文章:

  • 工具类定义2025-01-02 19:01:00
  • python 离线安装第三方包2025-01-02 19:01:00
  • java中构造器有什么用2025-01-02 19:01:00
  • redis集群模式搭建2025-01-02 19:01:00
  • linux发行版大全2025-01-02 19:01:00
  • Spring注解2025-01-02 19:01:00
  • 电容耦合电路原理2025-01-02 19:01:00
  • 单片机c语言代码2025-01-02 19:01:00
  • java虚拟机规范官方文档2025-01-02 19:01:00
  • 移位指令怎么算2025-01-02 19:01:00