在人工智能领域,图像识别是一个重要的研究方向,它涉及到从图像中提取有意义的信息。自2012年卷积神经网络(CNN)被引入以来,从手工特征提取转向了使用深度神经网络的端到端方法。这些方法易于开发,即它们需要的领域专业知识最少,并且在大多数视觉相关任务中表现更好。但是,它们也带来了神经网络模型共有的一系列问题,即它们需要大量的标注数据进行训练。
以将图像分类为汽车或卡车的任务为例。需要展示大量两类图像,即汽车和卡车,然后希望模型能够学习区分它们的模式。但现在,许多未来派概念车的图像不断涌现。如果训练数据中没有大量标记为“概念车”的此类车辆图像,模型可能无法在推理期间将它们与普通汽车区分开来。在医学领域,这个问题更加严重,因为收集训练的黄金标准数据是具有挑战性的。而一个在ImageNet数据集上训练的通用模型在医学领域完全无用。
让看看人类可能会怎么做。假设一个人知道马是什么样子。然后给这个人提供信息,即“斑马是一匹有黑白条纹皮肤的马”。那么,即使这个人之前不知道斑马是什么,也有很高的几率能够识别出斑马。零样本学习是机器学习中的一种方法,它就是从这个例子中获得灵感的。
在零样本学习方法中,数据以以下方式存在:
已见类别:
可用于训练的有标签的类别。
未见类别:
仅在测试集或推理期间出现的类别。在训练期间不存在。
辅助信息:
在训练期间关于已见和未见类别标签的信息。
根据推理期间可用的数据,零样本学习可以分为两种类型:
传统零样本学习:
如果在测试期间只期望来自未见类别的图像。
泛化零样本学习:
如果在测试阶段,来自已见和未见类别的图像都可能出现。对于大多数实际用例,将使用这种模式的零样本学习。
方法1:这里的想法是将输入图像表示为与辅助信息相同的向量空间。为了学习隐藏表示,使用一个编码器,它试图将给定的图像映射到其辅助信息。辅助信息被用作金数据,编码器通过这些数据进行学习。
虽然理论上这种方法看起来很好,但它存在许多固有的问题。由于编码器是在已见类别图像上训练的,它可能无法弥合差距并泛化到未见类别。它可能偏向于已见类别。
另一个问题是语义损失。如果模型主要在四足动物上训练,那么腿的数量特征可能变得无用。但在测试期间,如果出现一个两足动物,由于模型选择使腿的数量特征变得无关紧要,它可能无法在测试阶段正确分类。
最后,还面临中心化问题。当通过编码器传递图像时,以某种方式降低了其维度。这个过程减少了数据的传播,并倾向于形成在更高维度中不存在的聚类。当尝试找到相似的向量时,这倾向于给出错误的结果。
方法2:这是另一种方法,它解决了前一种方法的一些问题。这种方法的一个主要问题是,在训练编码器时没有未见类别的图像。在这里,将使用一个生成网络,使用辅助信息在训练中生成未见类别的图像。
一旦管道初始化,可以传递文本序列和可能的候选标签进行分类。
如所见,‘gymnasium’的得分最高。