61 编码器-解码器架构【动手学深度学习v2】

编码器-解码器
回顾CNN

在 CNN 中,输入一张图片,经过多层的卷积层,最后到输出层判别图片中的物体的类别
- CNN 中使用卷积层做特征提取,使用 Softmax 回归做预测
- 从某种意义上来说,特征提取可以看成是编码, Softmax 回归可以看成是解码
- 编码器:将输入编程成中间表达形式(特征)
- 解码器:将中间表示解码成输出
回顾RNN

对于 RNN 来讲,输入一个句子,然后对其进行向量输出
- 如果将最终 RNN 的输出当成中间表示的话,这部分也可以当成是编码器
- 最后通过全连接层得到最终的输出的话,这部分可以看成是解码器
- 编码器:将文本表示成向量
- 解码器:将向量表示成输出
编码器-解码器架构

机器翻译是序列转换模型的一个核心问题,它的输入和输出都是长度可变的序列
一个模型被分为两块:
- 编码器(encoder)处理输入:接受一个长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。编码器在拿到输入之后,将其表示成为中间状态或者中间表示(如隐藏状态、特征图)
- 解码器(decoder)生成输出:解码器将固定形状的编码状态映射到长度可变的序列。最简单的解码器能够直接将中间状态或者中间表示翻译成输出;解码器也能够结合一些额外的输入得到输出
总结
- 使用编码器-解码器架构的模型,编码器负责表示输入,解码器负责输出
- “编码器-解码器”架构可以将长度可变的序列作为输入和输出,因此适用于机器翻译等序列转换问题。
- 编码器将长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。
- 解码器将具有固定形状的编码状态映射为长度可变的序列。
----end----
其他参考:
1、《动手学深度学习》,PPT,https://courses.d2l.ai/zh-v2/assets/pdfs/part-3_8.pdf
2、《动手学深度学习》,教程,https://zh-v2.d2l.ai/chapter_recurrent-modern/encoder-decoder.html