趋近智
构建一个简单的多模态 (multimodal)AI模型,需要理解其必要组成部分。这些组成部分包括:如何从文本和图像等不同类型的数据中提取重要信息(特征),使用的简单处理单元(神经网络 (neural network)层)的类型,模型如何通过损失函数 (loss function)和训练进行学习,以及如何利用评估指标来衡量它们的表现。
现在,是时候进行动手实践了。别担心,你不需要编写任何代码。相反,你将扮演AI系统设计师的角色,勾勒出一个简单多模态模型的方案。这关乎理解我们所学到的各个部分如何组合起来解决问题。
让我们选择一个经典的多模态 (multimodal)任务:图像描述。目标很明确:给定一张图像,AI系统应生成一个简短的文本句子,描述图像中的内容。例如,如果你给它一张猫坐在垫子上的图片,它可能会生成描述“一只猫坐在垫子上。”
这是一个很好的练习任务,因为它清楚地涉及两种不同类型的数据(模态):
我们的任务是概述一个系统如何使用我们讨论过的组件来实现这一点。
首先,我们的系统需要“感知”并理解输入图像。如你所知,图像对于计算机而言只是一系列像素值。原始像素本身对于直接理解内容而言信息量不足。我们需要提取更有意义的特征。
设想一个图像特征提取器组件。它的任务是接收原始图像,并将其转换为一组数值特征,以表示重要的视觉信息。这可以包括关于物体、颜色、纹理及其关系的信息。在更先进的系统中,通常使用一种名为卷积神经网络 (neural network)(CNN)的神经网络来完成此任务,但对于我们的勾勒,只需想象一个盒子,它接收图像并输出一组丰富的图像特征。这些特征通常是数字列表或向量 (vector),用于总结图像的内容。
一旦我们有了图像特征,下一步就是生成文本描述。描述是一系列词语。这意味着我们的模型需要一个组件,能够一个接一个地生成词语,形成一个连贯的句子来描述图像特征。
我们称之为文本生成模块。此模块将把图像特征(在步骤1中生成)作为其输入。根据这些特征,它需要决定用哪个词开始句子,然后哪个词应该跟在后面,依此类推,直到形成一个完整的描述。这有点像你描述一张图片的方式,从最显著的部分开始添加细节。像循环神经网络 (neural network)(RNN)这样的组件常用于此类序列生成任务,因为它们可以记住已生成的内容,从而指导后续生成。
现在,让我们设想这些部分如何连接。图像输入进来,经过图像特征提取器,然后这些特征进入文本生成模块,从而产生描述。
此图显示了这一流程的简单示意:
图像描述模型的基本概述。图像经过处理以提取特征,然后这些特征由文本生成模块用于创建描述性文本。
此图显示了一个常见模式:“编码器”部分(图像特征提取器)将输入图像处理成有用的表示,而“解码器”部分(文本生成模块)则接收此表示并生成输出序列(描述)。
那么,我们有了一个结构。但是这个系统如何学习生成优质描述呢?它通过实例学习!在训练阶段,我们会向模型展示数千甚至数百万张图像,每张图像都配有一个或多个由人类编写的描述(这些被称为“真实”描述)。
对于每张图像,模型会尝试生成一个描述。然后,我们会使用损失函数 (loss function)。此函数将模型生成的描述与该图像的真实描述进行比较。如果生成的描述与人类编写的描述差异很大,损失函数会给出高“错误”分数。如果非常相似,分数则较低。
训练的目标是调整图像特征提取器和文本生成模块的内部设置(参数 (parameter)),使得损失函数产生的错误分数在所有训练样本上尽可能小。模型有效地学习关联图像中的模式与语言中的模式。
训练完成后,我们需要检查我们的图像描述系统在它之前从未见过的新图像上的表现如何。这就是评估。
有几种方法可以做到这一点:
一个好的模型不仅能生成准确的描述,而且听起来也很自然。
现在轮到你来思考一个略有不同任务的组件了。
任务设想:简单的视觉是/否问题
设想你希望构建一个系统,它接收两个输入:
系统应输出简单的“是”或“否”。这是视觉问答(VQA)的一个简化版本。
思考并写下你对以下各项的想法:
勾勒出你的想法。如果有所帮助,你可以画一个类似于上面所示的简单框图。这里的目标不是找到“完美”的架构,而是练习思考如何组合不同的AI组件来处理多模态 (multimodal)问题。这项练习有助于巩固你对我们所学基本构造的理解。祝你好运!
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造