# 使用编解码器模型的用于字幕生成的注入和合并架构

> 原文： [https://machinelearningmastery.com/caption-generation-inject-merge-architectures-encoder-decoder-model/](https://machinelearningmastery.com/caption-generation-inject-merge-architectures-encoder-decoder-model/)

字幕生成是一个具有挑战性的人工智能问题，它利用计算机视觉和自然语言处理。

编解码器循环神经网络架构已被证明在这个问题上是有效的。这种架构的实现可以被提炼为基于注入和合并的模型，并且两者都对循环神经网络在解决问题中的作用做出了不同的假设。

在这篇文章中，您将发现针对字幕生成的编解码器循环神经网络模型的注入和合并架构。

阅读这篇文章后，你会知道：

*   字幕生成的挑战和编解码器架构的使用。
*   注入模型将编码图像与每个单词组合以生成标题中的下一个单词。
*   合并模型，分别对图像和描述进行编码，这些图像和描述被解码以生成标题中的下一个单词。

让我们开始吧。

![Caption Generation with the Inject and Merge Architectures for the Encoder-Decoder Model](img/3f82dd3abbb7a26c92386577fe91f3cb.jpg)

使用编解码器模型的注入和合并架构生成标题
照片由 [Bernard Spragg 撰写。 NZ](https://www.flickr.com/photos/volvob12b/24450140624/) ，保留一些权利。

## 图像标题生成

图像标题生成的问题涉及输出对照片内容的可读和简明的描述。

这是一个具有挑战性的人工智能问题，因为它需要来自计算机视觉的两种技术来解释照片的内容和来自自然语言处理的技术以生成文本描述。

最近，深度学习方法已经在这个具有挑战性的问题上取得了最新成果。结果令人印象深刻，这个问题已经成为深度学习能力的标准示范问题。

## 编解码器架构

标准编解码器循环神经网络架构用于解决图像标题生成问题。

这涉及两个要素：

1.  **编码器**：一种网络模型，它使用内部表示读取照片输入并将内容编码为固定长度的向量。
2.  **解码器**：读取编码照片并生成文本描述输出的网络模型。

有关编解码器循环神经网络架构的更多信息，请参阅帖子：

*   [编解码器长短期记忆网络](https://machinelearningmastery.com/encoder-decoder-long-short-term-memory-networks/)

通常，卷积神经网络用于编码图像，并且循环神经网络（例如长短期记忆网络）用于编码到目前为止生成的文本序列，和/或生成序列中的下一个单词。 。

对于字幕生成问题，有很多方法可以实现这种架构。

通常使用在具有挑战性的照片分类问题上训练的预先训练的卷积神经网络模型来对照片进行编码。可以加载预训练的模型，移除模型的输出，以及用作输入图像的编码或内部表示的照片的内部表示。

对于问题的框架也是常见的，使得模型生成输出文本描述中的一个单词，给定照片和输入生成的描述。在此框架中，模型被递归调用，直到生成整个输出序列。

![Recursive Framing of the Caption Generation Model](img/7ca4c56d22539853c5068e00643b2707.jpg)

字幕生成模型
的递归成帧取自“将图像放在图像标题生成器中的位置”。

这种框架可以使用两种架构中的一种来实现，由 [Marc Tanti](https://geekyisawesome.blogspot.com.au/) 等人调用。作为注入和合并模型。

## 注入模型

注入模型将图像的编码形式与迄今为止生成的文本描述中的每个单词组合在一起。

该方法使用循环神经网络作为文本生成模型，其使用图像和单词信息的序列作为输入，以便生成序列中的下一个单词。

> 在这些“注入”架构中，图像向量（通常从卷积神经网络中的隐藏层的激活值导出）被注入到 RNN 中，例如通过将图像向量与“单词”相提并论并且包括它作为标题前缀的一部分。

- [将图像放在图像标题生成器](https://arxiv.org/abs/1703.09137)中的位置，2017 年。

![Inject Architecture for Encoder-Decoder Model](img/f117849faccabf7b42e0f4bf81d0c172.jpg)

编解码器模型
的注入架构取自“图像标题生成器中的循环神经网络（RNN）的作用是什么？”。

该模型将图像的关注点与每个输入词组合在一起，要求编码器开发一种将视觉和语言信息结合在一起的编码。

> 在注入模型中，RNN 被训练以基于由语言和感知特征组成的历史来预测序列。因此，在该模型中，RNN 主要负责图像条件语言的生成。

- [循环神经网络（RNN）在图像标题生成器中的作用是什么？](https://arxiv.org/abs/1708.02043) ，2017。

## 合并模型

合并模型将图像输入的编码形式与到目前为止生成的文本描述的编码形式相结合。

然后，这两个编码输入的组合由非常简单的解码器模型使用，以生成序列中的下一个字。

该方法仅使用循环神经网络对目前生成的文本进行编码。

> 在“合并”架构的情况下，图像被排除在 RNN 子网之外，使得 RNN 仅处理字幕前缀，即仅处理纯语言信息。在对前缀进行向量化之后，然后将图像向量与前缀向量合并在一个单独的“多模式层”中，后者位于 RNN 子网之后

- [将图像放在图像标题生成器](https://arxiv.org/abs/1703.09137)中的位置，2017 年。

![Merge Architecture for the Encoder-Decoder Model](img/7d5ec7c10df6dfc3472ad4927a5d9f59.jpg)

编解码器模型的合并架构
取自“图像标题生成器中循环神经网络（RNN）的作用是什么？”。

这分离了对图像输入建模，文本输入以及编码输入的组合和解释的关注。

如上所述，通常使用预训练的模型来编码图像，但类似地，该架构还允许使用预训练的语言模型来编码字幕文本输入。

> ...在合并架构中，RNN 实际上编码语言表示，它们本身构成了在多模式层之后的后来预测阶段的输入。只有在这个晚期阶段才能使用图像特征来预测预测

- [循环神经网络（RNN）在图像标题生成器中的作用是什么？](https://arxiv.org/abs/1708.02043) ，2017。

尽管 Marc Tanti 等人进行了实验，但有多种方法可以将两种编码输入结合起来，例如连接，乘法和加法。已经显示出更好的工作。

一般来说，Marc Tanti，et al。发现与注入方法相比，合并架构更有效。

> 总的来说，有证据表明，延迟将图像特征与语言编码合并到架构的后期阶段可能是有利的[...]结果表明合并架构比注入架构具有更高的容量，并且可以生成更小质量的字幕层。

- [循环神经网络（RNN）在图像标题生成器中的作用是什么？](https://arxiv.org/abs/1708.02043) ，2017。

## 更多关于合并模型

编解码器架构的合并模型的成功表明，循环神经网络的作用是编码输入而不是生成输出。

这与共同理解背道而驰，认为循环神经网络的贡献是生成模型的贡献。

> 如果 RNN 具有生成字幕的主要作用，那么它将需要访问图像以便知道要生成什么。这似乎不是这种情况，因为将图像包括在 RNN 中通常不利于其作为字幕生成器的表现。

- [循环神经网络（RNN）在图像标题生成器中的作用是什么？](https://arxiv.org/abs/1708.02043) ，2017。

注入和合并模型的明确比较，以及用于字幕生成的合并注入成功，提出了这种方法是否转换为相关的序列到序列生成问题的问题。

可以使用预训练的语言模型来代替用于编码图像的预训练模型，以在诸如文本摘要，问题回答和机器翻译之类的问题中对源文本进行编码。

> 我们想研究架构中的类似变化是否适用于序列到序列的任务，例如机器翻译，而不是在图像上调节语言模型，而是调整源语言中句子的目标语言模型。

- [循环神经网络（RNN）在图像标题生成器中的作用是什么？](https://arxiv.org/abs/1708.02043) ，2017。

## 进一步阅读

如果您希望深入了解，本节将提供有关该主题的更多资源。

*   [Marc Tanti 的博客](https://geekyisawesome.blogspot.com.au/)
*   [编解码器长短期记忆网络](https://machinelearningmastery.com/encoder-decoder-long-short-term-memory-networks/)
*   [将图像放在图像标题生成器](https://arxiv.org/abs/1703.09137)中的位置，2017。
*   [循环神经网络（RNN）在图像标题生成器中的作用是什么？](https://arxiv.org/abs/1708.02043) ，2017。

## 摘要

在这篇文章中，您发现了字幕生成的编解码器循环神经网络模型的注入和合并架构。

具体来说，你学到了：

*   字幕生成的挑战和编解码器架构的使用。
*   注入模型将编码图像与每个单词组合以生成标题中的下一个单词。
*   合并模型，分别对图像和描述进行编码，这些图像和描述被解码以生成标题中的下一个单词。

你有任何问题吗？
在下面的评论中提出您的问题，我会尽力回答。