本文探讨了从研究论文中得出的各种方法,这些方法旨在通过以不同方式整合大型语言模型(LLM)来改进图像分类。这些方法并不是为了让 LLM 执行整个分类任务,而是为了 "提升 "现有方法。虽然本文讨论的方法并未涵盖大型语言模型在此类使用案例中的全部潜力,但它们能够突出三个新兴的分类 "系列"。
你可以在我的 GitHub 仓库 →这里 ← 找到本文讨论的最后一种方法的实现方案。
在深入讨论核心问题之前,让我们重温一下一些关键概念。
图像分类 机器学习中的图像分类是指从有限的标签集中为图像分配特定标签(或称 "类别 "或 "标签")。这可以在单个系列中进行(例如,在所有可能的品种中识别狗的品种),也可以为了区分不同的系列而进行(例如,确定图像显示的是汽车、房屋、船只还是动物)。
我们的目标是训练一个模型,利用图像特征(形状、颜色、纹理等)来预测其标签。由于处理图像的所有输入是不切实际的(例如,一幅 224x224 像素的彩色图像有 224 x 224 x 3 个输入,这意味着超过 15 万个特征),卷积神经网络(CNN)在不丢失关键信息的情况下提取并减少图像特征。虽然这种方法对预测非常有效,但却无法解释模型的系数,因为特征并不是可解释的信息。这正是 LLM 可以帮助解决的一个局限性。
零镜头图像分类 另一个关键概念是 "零镜头分类"(zero-shot classification),它允许将图像归入模型训练过程中从未明确出现过的类别。这要归功于 CLIP(对比语言-图像预训练)等模型,它是一种文本-图像嵌入模型,能够将图像和文本矢量化到同一个嵌入空间。CLIP 是在 4 亿张标注过的图像上训练出来的。例如,狗的图片和短语 "狗的图片 "的嵌入空间非常接近。
零镜头分类过程如下:
我们使用 CLIP 嵌入所有感兴趣的标签(例如 10 个标签)。 为此,我们使用类似"{label}的照片 "这样的提示来生成 10 个嵌入。 我们使用 CLIP 嵌入要标记的图像。 我们测量图像嵌入和每个标签嵌入之间的余弦相似度。 我们选择相似度最高的标签(如果相似度通过软最大值函数计算,则选择概率最高的标签)。 这种方法在数学上可以表示为
其中,x 是要分类的图像,C={c1,c2,...,cn} 是预定义的标签集,jI / jT 是图像和文本编码器(如 CLIP),f(c) 是提示语"{c} 的一张照片"。
这是基本的零镜头分类方法,通常被称为 "Vanilla CLIP"。
"增强型零镜头 "图像分类 首先,LLM 可以提供标签描述,从而轻松增强零镜头分类。事实上,我们不是嵌入"{标签}的照片",而是嵌入由 LLM 提供的标签描述,从而完善其在嵌入空间中的定位。
这种方法用等式表示:
其中,D(c) 是标签 c 的描述。 值得注意的是,这里计算的是类描述的余弦相似度的平均值。这种被称为 "提示集合 "的技术(通常包括平均嵌入)可以提高分类的准确性。 这种方法特别有效,因为不同的提示技术(DCLIP、WaffleCLIP、CuPL)会根据数据集的不同产生不同的结果。因此,它能在嵌入空间中实现更稳健的标签定位。
例如,在他们的研究" 利用多模态大型语言模型增强零镜头图像分类功能 中, 谷歌研究团队将重点放在通过结合三种不同的嵌入来优化输入图像的嵌入上:
图像本身的嵌入。 由多模态 LLM 生成的图像描述嵌入。 多模态 LLM 对预测标签的嵌入,它提供了所有可能的标签。 下面是这种方法的直观演示:
下面的例子突出显示了从待分类图像中获得的三个输入中的两个:来自 LLM 的图像描述和 LLM 预测的标签("铅笔")。
即使作为输入的预测是错误的,在所有测试数据集中,包含这一输入也能显著提高模型的性能(例如,对于 ImageNet,准确率从 70.7 提高到 73.4)。
我们刚刚介绍了 LLM 在图像分类中的核心作用:LLM 能够在共享嵌入空间中完善目标标签和输入图像的定位。
"低照 "图像分类 前面讨论的方法只有在标签的文本描述(由 LLM 生成)相关的情况下才能很好地发挥作用。然而,对于某些数据集,如著名的鸢尾花数据集,效果可能会很差。这主要有两个原因:
LLM 只接受过文本数据方面的培训,有时对视觉方面的理解不够细腻。 当尝试通过为任何分类任务设计的单一通用提示来生成标签描述时,结果有时会非常通用(例如,"{标签}可以有多种颜色")。
WaffleCLIP 方法(Roth et al.
视觉反馈迭代优化 "方法通过提出一种优化标签描述的方法,引入了 "低镜头 "图像分类的概念。它结合了现实生活中的两个关键方面:与环境的互动和迭代优化。人类对新物体的识别是一个动态的过程:我们根据物体所处的环境逐步更新我们的知识,只保留有用的信息,而摒弃无关的细节。
该方法包括三个主要步骤,请参见上图:
初始化: 初始标签描述 D0 由 LLM 生成(如前面的方法所述)。我们的目标是优化这些描述。视觉反馈: 我们的想法是为 LLM 提供来自 CLIP:some text 等模型的视觉知识。为每个标签选择一小组图像(例如,"训练 "集,但我们会对这一术语进行细化)。 使用初始描述 D0 对每个图像进行零镜头预测。 计算准确率和自定义混淆矩阵等指标(公式详情如下):某些文本在所有标签的余弦相似度超过地面实况类别描述余弦相似度 λ 倍时,将对所有标签进行 +1,而不是只对预测类别进行 +1(等式 3)。 矩阵建立后,计算每个标签的总和(公式 4),并保留前 m 个标签(公式 5)。这些标签对应于 CLIP 中描述最不清晰的前 m 个标签。 Instead of using argmax or softmax, this matrix highlights labels for which the prediction is incorrect. The parameter λ represents the level of strictness (or leniency if λ<1, penalizing label descriptions with cosine similarities slightly below the ground-truth description’s similarity). 然后使用 LLM 将视觉反馈 V(D) 转化为文本见解:某些文本"对于有......描述的......标签,最容易混淆的标签是......,其描述是......"。 迭代优化: 对于每个标签,要执行三个子步骤:一些文本突变: 利用视觉反馈 V(D),LLM 会生成 K 组新的描述(以确保优化的多样性)。无关的描述--那些与其他最模糊标签(top-m)中的描述非常接近的描述--会被删除,并用新的描述取代。交叉: 生成各组新描述的所有可能组合,对其视觉反馈进行评估,并在下一次迭代中保留最佳描述。这样可以确保下一次迭代从上一步的最佳描述开始。记忆库更新: 一些文字说明分为 "不变"、"删除 "或 "添加"。 "已添加 "的描述以 "正值 "存储,确保 D(i) 的准确性 > D(i-1)("已删除 "的描述也是如此)。 这些记忆库在每次迭代中都会与视觉反馈一起提供给 LLM,以生成新的描述集。这样可以确保始终生成新的描述,而不会重复使用已删除的描述。 其中,d′表示标签的描述,d 表示地面实况标签的描述。
下图是在 Flowers102 数据集上获得的结果,并与 CuPL 方法(采用特定提示技术的零拍方法之一)进行了比较。条形图突出显示了 "威尔士亲王羽毛 "标签的三个最佳和三个最差描述。
为什么称为 "低镜头 "图像分类?这种方法与 "零镜头 "分类法不同,因为它使用少量标记图像来优化目标标签描述。但是,最终目标仍然是改进零镜头预测。因此,这不是传统的机器学习训练,因为不存在过度拟合的风险。这就是使用 "low-shot "一词的原因。
"增强标准 "图像分类 LLM 是否也能改进传统的图像分类模型(导言中提到的模型)?研究论文"基于 LLM 的分层概念分解用于可解释的精细图像分类 " 介绍了一种解决这一问题的方法。基于 LLM 的分层概念分解用于可解释的细粒度图像分类 ." 这种方法的主要目标是克服前面提到的局限性--CNN 模型缺乏可解释性--使我们能够回答以下问题:
哪些视觉元素最能区分班级中的标签? 每个标签最重要/最不重要的特征是什么? 为什么我的模型会做出这样的预测? 为什么我的模型错误地分类了这个标签? 上述方法的示意图可描述如下(以 "狗 "类为例,其标签与不同品种相对应):
我们通过连续的提示来确定 "狗 "这一类别的所有视觉特征 建立一个可视化的类别树:一些文本我们识别 "视觉部分": 这些是该类别的主要视觉组成部分(如头部、眼睛、外衣、尾巴、腿)。如果可能,我们要求 LLM 将视觉部分细分为更细的组成部分(例如,在头部中,有嘴巴;在嘴巴中,有牙齿,等等)。我们定义了一个粒度阈值(或树的最大深度)。我们确定 "视觉属性": 这些属性描述了视觉部分的特征(如大小、形状、颜色、纹理)。在此,提示提供了示例,因为每个视觉部分都有特定的属性(例如,"不透明 "属性并不能描述视觉部分 "鼻子 "的特征)。We identify "attribute values": For each combination of visual part and visual attribute, we determine all possible values for the category. For instance, for the visual part "tail" and the visual attribute "length," possible values could be {"short," "medium," "long"} or {"<10 cm," "10-20 cm," ">20 cm"}. To identify these attribute values, the LLM considers all labels in the class (e.g., all dog breeds provided), and redundant values are removed to retain only unique ones (since some labels may have similar attribute values). These values form the leaves of the tree, and we name "visual clues" the branches, that’s to say all the combinations of visual parts, visual attributes, and attribute values.每一条 "视觉线索 "都会被转换成自然语言 (描述性短语),并使用 CLIP .NET 技术嵌入其中: 这样,我们就能利用 LLM 的知识为给定类别生成一组描述性短语("视觉线索")。 下面是 "法国斗牛犬 "标签树的一部分示例(使用 pydot Python 库可视化):
数据集中的每幅图像都 使用 CLIP 模型嵌入 同一空间。对每幅图像的每条视觉线索计算余弦相似度得分 。因此,树的叶子越多,相似度得分就越多。这些相似性分数被用作分类模型的特征 。因此,这些特征是可以解释的。每个主要 "视觉部分 "训练一个模型, 并选择模型中最常预测的标签作为最终预测的标签。
由于这种方法可能适用于 Fifty-five 的某些用例(尤其是与优化广告创意相关的用例),为了说明它与传统图像分类方法相比的优势,我们实现了这种方法的编码版本,可在我的 GitHub 存储库中 查看。在分享一些输出示例之前,先介绍一些初步的注意事项:
我们在著名的斯坦福犬类数据集上进行了测试,该数据集包含 120 多个犬种的 20,000 多张图像。该数据集的一个特点是包含了指定作物边界的 .xml 文件,可聚焦于每张图像的关键元素,从而提高模型性能。 在下面的结果中,为了简化输出分析,模型只在 10 个狗品种(1,715 张图片)上进行了训练。 与最初的方法不同,我们没有将模型分割成专门用于特定视觉部分的子模型。相反,我们的模型包含大量特征(194 个),通过对特征重要性阈值进行网格搜索(使用适用于树状模型的置换特征技术计算),我们将这些特征减少到 110 个。 这种方法在三个层面上实现了模型的可解释性:
班级级别: 我们可以分析哪些视觉线索对区分狗的品种最有效(或最无效)。特征重要性是通过应用于随机森林模型的特征排列技术计算得出的:
利用我们对 "视觉部分 "和 "视觉属性 "的区分,我们可以进一步研究哪些视觉部分对区分标签最有效:
标签级别: 对标签也可以进行类似的分析。例如,以下是每个标签中最重要和最不重要的三个特征(这次使用基尼系数计算,因此最不重要的特征值为正值):
混淆矩阵突出显示了模型最常错误分类的犬种:
最常见的混淆发生在 "拉萨 "和 "苏格兰梗 "这两个标签之间。通过研究每个标签中重要性最高的前 30 个特征,我们发现这两个标签共有 10 个特征,这就是混淆的原因:
预测水平: 为了进一步研究,我们可以检查模型错误分类这些标签的具体预测:
虽然很接近,但该图像中 "拉萨"(真实标签)的概率低于 "苏格兰梗"(预测标签)。为了更好地理解模型的预测,SHAP(SHapley Additive exPlanations)值可以让我们更深入地了解特定预测的概率,这主要有两个原因:
它们通过计算基于所有可能特征组合的模型来计算特征的内在价值。通过分析线性模型的系数权重或树状模型的 GINI 系数,我们无法评估特征的重要性是否与模型中使用的其他自变量无关。 它们为给定的预测值分配特定的权重。例如,如果某个特征在整个模型中的权重很高,但在特定输入中的变量值却很低,那么它在预测中的 SHAP 值就会很小。 在我们的示例中,由于苏格兰梗犬以黑色为主,尤其是在我们的数据集中,因此我们了解 "腹部颜色为黑色 "或 "背部毛色为黑色 "等视觉线索的重要性。因此,图像中拉萨犬身上的黑色外套很有可能解释了模型的误差。
这些例子展示了 LLM 在增强图像分类方面的潜力。这些改进与性能没有直接关系(CNN 模型通常具有更高的准确性),而是与模型的可解释性有关。
所有这些方法都有一个共同点:它们通过涉及少量图像和多模态嵌入模型("低镜头 "方法)的迭代过程,或通过分层树分解("增强标准 "方法),提供有关类别及其标签的描述性信息。因此,对 LLM 知识的依赖是一个值得注意的局限。
虽然我们将这些方法分为三个分类 "系列",但它们并不相互排斥。例如,我们可以考虑使用 "低镜头 "方法的描述作为 "增强标准 "模型的特征(即使我们必须确保有足够的图像用于这两种特定的训练过程)。