在给定可变长度输入的情况下,某些机器学习模型如何能够产生可变长度输出?

人工智能 机器学习 自然语言处理 循环神经网络 变压器 自然语言生成
2021-11-02 06:20:53

大多数机器学习模型,例如多层感知器,需要固定长度的输入和输出,但生成(预训练)转换器可以生成可变长度的句子或完整文章。这怎么可能?

1个回答

简而言之,重复与反馈。

您是正确的,机器学习 (ML) 模型(例如神经网络)使用固定的输入和输出维度。当所需的输入和输出变化更大时,有几种不同的方法可以解决这个问题。最常见的方法是:

  • 填充:赋予 ML 模型处理最大预期维度的能力,然后根据需要填充输入和过滤输出以匹配逻辑要求。例如,这可能用于输入图像的大小和形状不同的图像分类器。

  • 循环模型:向 ML 模型添加一个内部状态,并使用它与每个输入一起传递数据,以便处理相同、相关的输入或输出序列这是自然语言处理 (NLP) 任务的首选架构,其中 LSTM、GRU 和转换器网络是常见的选择。

循环模型依赖于这样一个事实,即每个输入和输出都是同一种事物,在序列中的不同点。模型的内部状态用于组合序列中点之间的信息,例如,输入中位置 3 的单词会影响输出中位置 7 的单词的选择。

生成循环模型通常使用它们自己的输出(或基于输出中表示的概率的样本)作为下一步的输入。

这篇博客的介绍和一些示例非常值得阅读:Andrej Karpathy 的循环神经网络的不合理有效性