【CVPR2024-工业异常检测】PromptAD方法(CLIP和提示学习)

  1. Preliminaries

3.1. CLIP and Prompt Learning(CLIP和提示学习)

CLIP核心机制

输入:未知图像 + 多组文本提示(如 “a photo of [class]”)
操作

  1. 图像编码:视觉编码器 f(·) 提取图像特征 f(i)
  2. 文本编码:文本编码器 g(·) 提取每个文本提示 s_k 的特征 g(s_k)
  3. 相似度计算:计算图像特征与所有文本特征的余弦相似度
  4. 概率分布:通过softmax生成图像属于各文本提示的概率分布

输出:图像属于每个文本提示的概率分布,实现零样本分类。


举个栗子🌰
• 输入文字提示:“狗”、“猫”、“汽车”
• 计算相似度得分:8(狗)、5(猫)、1(汽车)
• Softmax处理后:
• 狗:95%
• 猫:4.7%
• 汽车:0.3%
👉 结论:这张图大概率是狗!


Prompt Learning(提示学习)步骤

目标:自动学习更有效的文本提示,提升CLIP在下游任务的表现。

输入:少量正常样本(小样本设置)
操作

  1. 设计可训练提示模板
    • 模板形式:[P1][P2]...[PE_P][class_k]
    [P1]...[PE_P] 为可训练的token,[class_k] 为固定的类别名称
  2. 对比学习优化
    • 通过对比损失(如交叉熵)调整提示参数,使正常样本特征与正常提示特征对齐
  3. 生成最终提示
    • 学习后的提示模板直接用于推理

输出:优化后的文本提示,提升分类或检测性能(如异常检测)。


例子背景

任务:训练模型区分图片是“猫”还是“狗”
传统方法:需要大量标注数据训练模型
Prompt Learning方法:只改提示模板,不修改CLIP模型本身,用少量数据优化提示。


Prompt Learning步骤

输入

• 少量标注图片(如5张猫、5张狗)
• 初始模板:“a photo of [class]”([class]替换为“猫”或“狗”)

操作
  1. 定义可训练模板
    • 原始模板:[P1][P2] a photo of [class]
    [P1][P2]可训练的token(模型自动学习的“魔法词语”)
    [class]固定类别名称(直接替换为“猫”或“狗”)
    • 例如训练后的模板可能是:"清晰特写 毛茸茸的 a photo of 猫"

  2. 训练过程
    • 输入一张狗图片,计算它与优化后提示的相似度:
    ◦ 狗的提示:[P1][P2] a photo of 狗
    ◦ 猫的提示:[P1][P2] a photo of 猫
    目标:让狗图片与狗的提示相似度 远高于 猫的提示
    • 通过对比损失(如交叉熵)更新[P1][P2]的向量值

  3. 生成最终提示
    • 训练完成后,固定[P1][P2]的参数
    • 推理时直接使用模板:
    ◦ 输入狗图片 ➔ 计算与[P1][P2] a photo of 狗的匹配概率

输出

• 优化后的提示模板,例如:
• 狗:“特写镜头 草地上的 a photo of 狗”
• 猫:“室内环境 窗边的 a photo of 猫”
效果:使用优化后的提示,分类准确率从70%提升到90%!


关键点

  1. 可训练token([P1][P2])
    • 相当于“自动学习的神奇修饰词”,比如“特写镜头”、“毛茸茸的”
    • 模型通过少量数据调整这些词的含义,让提示更匹配任务需求

  2. 固定类别([class])
    • 直接使用“猫”、“狗”等真实类别名,不修改
    • 保证语义明确,避免模型混淆


类比理解

传统方法:让模型从头学习“猫狗是啥”(费时费力)
Prompt Learning
• 相当于给模型一个填空题模板:
[学来的修饰词] 一张照片的 [猫/狗]”
• 模型只需要填对修饰词,就能更准确定义类别!

关键点
  1. CLIP优势:无需训练数据,直接通过文本提示实现零样本分类。
  2. Prompt Learning作用
    • 自动优化提示模板,减少人工设计成本
    • 在少样本场景下提升模型对特定任务(如异常检测)的适应能力
  3. 对比学习核心:通过正负样本对比(如正常 vs 异常提示),增强语义区分性。

示例应用
在异常检测中,通过学习正常提示 [P1][P2][obj] 和生成异常提示 [P1][P2][obj][flaw],使模型区分正常与异常特征。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38881.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Uthana,AI 3D角色动画生成平台

Uthana是什么 Uthana 是专注于3D角色动画生成的AI平台。平台基于简单的文字描述、参考视频或动作库搜索,快速为用户生成逼真的动画,支持适配任何骨骼结构的模型。Uthana 提供风格迁移、API集成和定制模型训练等功能,满足不同用户需求。平台提…

Python:多线程创建的语法及步骤

线程模块:import threading 线程类Thread参数:group(线程组) target:执行的目标的任务名 args:以元组的方式给执行任务进行传参 *args可以传任意多个参数 kwargs以字典方式给执行任务传参 name:线程名 步骤&…

Jupyter Notebook 常用命令(自用)

最近有点忘记了一些常见命令,这里就记录一下,懒得找了。 文章目录 一、文件操作命令1. %cd 工作目录2. %pwd 显示路径3. !ls 列出文件4. !cp 复制文件5. !mv 移动或重命名6. !rm 删除 二、代码调试1. %time 时间2. %timeit 平均时长3. %debug 调试4. %ru…

快速入手-基于Django的Form和ModelForm操作(七)

1、Form组件 2、ModelForm操作 3、给前端表单里在django里添加class相关属性值 4、前端 5、后端form 新增数据处理 6、更新数据处理

【Linux系统】Linux权限讲解!!!超详细!!!

目录 Linux文件类型 区分方法 文件类型 Linux用户 用户创建与删除 用户之间的转换 su指令 普通用户->超级用户(root) 超级用户(root) ->普通用户 普通账户->普通账户 普通用户的权限提高 sudo指令 注: Linux权限 定义 权限操作 1、修改文…

剑指小米特斯拉:秦L EV上市11.98万起

3月23日,比亚迪王朝网推出全新中级纯电轿车秦L EV,价格区间为11.98万-13.98万元,瞬间火爆市场。 依托e平台3.0 Evo技术赋能,秦L EV以“国潮设计、智能座舱、越级空间、高效安全、高阶智驾”五大核心优势,直击年轻用户痛…

嵌入式学习(31)-Lora模块A39C-T400A30D1a

一、概述 A39C-T400A30D1a是一款410~490MHz,1W,具有高稳定性,工业级的无线串口模块。LORA扩频调制,实测传输距离最远可达10K米。该模块具备数据广播、数据监听、定点传输、主从模式、自动中继、定点唤醒等传输方式,支…

使用__attribute__((at(addr))) 固定变量到指定 Flash 地址

文章目录 一、代码示例:将变量固定到 Flash 0x08001000二、__attribute__((at(addr))) 的作用三、__attribute__((at(addr))) 可能导致的问题四、运行时修改 Flash 存储的变量五、在 GCC(STM32CubeIDE)中实现同样功能 在嵌入式开发中&#xf…

vmware虚拟机快照、克隆、迁移区别说明

一、快照 1.1 快照概念 记录了虚拟机在某个特定时间点的状态(软件部署、网络配置、照片备份、游戏存档等) 1.2快照用途 可以在需要时轻松地恢复虚拟机到快照创建时的状态。 备份和恢复:快速备份虚拟机状态的方法可以在数据丢失或损坏时快速恢复虚拟机到先前的状态。测试和…

面试常问系列(一)-神经网络参数初始化

一、背景 说到参数初始化,先提一下大家常见的两个概念梯度消失和梯度爆炸。 (一)、梯度消失:深层网络的“静默杀手” 定义: 在反向传播过程中,梯度值随着网络层数增加呈指数级衰减,最终趋近…

使用CSS3实现炫酷的3D翻转卡片效果

使用CSS3实现炫酷的3D翻转卡片效果 这里写目录标题 使用CSS3实现炫酷的3D翻转卡片效果项目介绍技术要点分析1. 3D空间设置2. 核心CSS属性3. 布局和定位 实现难点和解决方案1. 3D效果的流畅性2. 卡片内容布局3. 响应式设计 性能优化建议浏览器兼容性总结 项目介绍 在这个项目中…

AI Agent开发大全第七课-个人如何申请到靠谱的AI

前言 前面几个课程我们做了一些AI基础知识的铺垫,不要小看基础知识,这些基础知识往往是一些正在从事AI开发的工作者们都没有深入去了解的。 其实这就好比简历上写熟练使用mySql,而实际mySql里那些精妙的参数和设置以及一些底层真的都知道吗? 所以我特别强调基础得打造,…

什么是网络准入?十种常见的网络准入解决方案分享!

在数字化转型的浪潮中,企业网络的边界日益模糊,数据安全与访问控制成为了企业IT管理的核心挑战之一。OneNAC网络准入系统,作为新一代网络安全解决方案的佼佼者,凭借其强大的功能特性和灵活性,在众多网络准入控制&#…

Jetpack Compose 选项卡控件实现

这里写目录标题 介绍主体解释 介绍 实现选项卡控件 主体 import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.…

Java 大视界 -- Java 大数据在智慧文旅旅游目的地营销与品牌传播中的应用(150)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

使用密码连接Redis服务的两种方式

说明:本文介绍连接需要密码的Redis服务的两种方式 方式一 连接时,携带密码,如下: redis-cli -a [密码]如下: 有两个问题: 密码直接放在命令里,可通过 history 找到,不安全&#x…

搭建React简单项目

一、项目构建 目录结构: 安装脚手架 npm install -g create-react-app // or yarn add -g create-react-app 一、项目版本 1、react:"^18.3.1"; 2、react-router-dom:"^6.23.1"; 3、项目创…

知识库已上线

目录 知识库上线了加入知识库注册账号切换租户加入租户找到知识库点击申请等待管理员审核通过后,点击去后台可以开始创作了创建我们的第一个知识库点击详情进入创作页面,创建我们的第一篇知识 发布知识将我们的知识库变更为公开状态发布知识等待管理员审…

对象克隆以及BigInteger()方法,与BigDecima()方法的学习

BigInteger()方法: ①获取一个随机的大整数: public class Test3 {public static void main(String[] args) {Random rnew Random();BigInteger bigIntegernew BigInteger(4,r);System.out.println(bigInteger);} } ②&#xf…