讀論文筆記-CoOp:對CLIP的handcrafted改進

讀論文筆記-Learning to Prompt for Vision-Language Models

Problems

現有基于prompt engineering的多模態模型在設計合適的prompt時有很大困難,從而設計了一種更簡單的方法來制作prompt。

Motivations

  1. prompt engineering雖然促進了視覺表示的學習,實現了zero-shot遷移到其他任務上,但設計合適的prompt耗時費力。
  2. NLP領域提供了用連續提示詞來改善離散prompt的方法,但也有無法解釋到底學到了什么詞的缺陷。

Methods

在這里插入圖片描述
Key:初始化連續向量建模上下文,并通過大量數據進行學習,實現prompt的自動學習。提出統一上下文unified context和特定類別上下文specific context兩種prompt。

  • unified context的形式
    t = [ v ] 1 [ v ] 2 [ v ] 3 . . . [ v ] M [ C L A S S ] t=[v]_1[v]_2[v]_3...[v]_M[CLASS] t=[v]1?[v]2?[v]3?...[v]M?[CLASS]
    [ v ] M [v]_M [v]M?是與詞嵌入相同維度的向量,個數M是一個超參數, [ C L A S S ] [CLASS] [CLASS]是類別標簽對應的詞嵌入向量,也可以放在中間。可學習向量和類別對應的詞向量是concatenate從而形成提示詞t的。
  • specified context的形式
    t = [ v ] 1 i [ v ] 2 i [ v ] 3 i . . . [ v ] M i [ C L A S S ] t=[v]_1^i[v]_2^i[v]_3^i...[v]_M^i[CLASS] t=[v]1i?[v]2i?[v]3i?...[v]Mi?[CLASS]

對于不同的類別所使用的可學習向量都是不同的。
網絡結構:和CLIP類似,利用text encoder處理每個類別的prompt t i t_i ti?,就是基于一個Transformer的結構,從[EOS]token中得到能表示視覺概念的分類權重 g ( t i ) g(t_i) g(ti?)。image encoder可以是ResNet或ViT,得到特征f。計算相似度、預測概率:
p ( y = i ∣ x ) = e x p ( c o s ( g ( t i ) , f ) / t ) ∑ j = 1 K e x p ( c o s ( g ( t j ) , f ) / t ) p(y=i|x)=\frac{exp(cos(g(t_i),f)/t)}{\sum_{j=1}^Kexp(cos(g(t_j),f)/t)} p(y=ix)=j=1K?exp(cos(g(tj?),f)/t)exp(cos(g(ti?),f)/t)?
訓練過程:encoders都是凍結參數的,使用的是交叉熵損失函數(是圖文對比學習方法,我理解的就是余弦相似度+交叉熵損失=對比學習損失),反向傳播更新context的參數。

Experiments

  1. 比較在少樣本學習設置下,模型的小樣本學習能力
    • 數據集:和CLIP一樣的1個圖像分類數據集,組成了一個綜合的benchmark;
    • 模型結構:vision encoder用的ResNet50,對上下文使用的是均值為0,標準差為0.02的高斯分布初始化,用SGD優化器,使用余弦退火和warmup的技巧。
    • 比較的基線模型:零樣本的CLIP和線性探針的CLIP
    • 對比角度:(1)與使用handcrafted prompt的模型相比(CLIP),在特定任務、細粒度數據集和場景、行為識別的數據集上有更好的效果,但在pest\food這兩個數據上提升不明顯且有過擬合傾向(作者認為這是因為有臟數據);(2)與線性探針CLIP專門對比:大部分都顯著好于,在2個細粒度和特定任務上相當,其中CSC方法能完全超越線性探針模型;(3)比較通用類別和特定類別上下文:通用類別更適合對通用物體、場景和行為上的檢測,特定類別上下文適合細粒度的數據集且需要更大的訓練數據。
      在這里插入圖片描述
  2. 在有Domain gap設定下,模型的泛化能力
    • 數據集:源域數據是ImageNet,目標域數據是4個風格不同的ImageNet變體;
    • 模型結構:vision encoder是ResNet50/101, ViT-B32/16;
    • 結果:CoOp能顯著提升模型的泛化能力,而線性探針模型不擅長有域遷移domain shift的場景
      在這里插入圖片描述
  3. 超參數選擇
    • 不同上下文長度(M的大小):更長有更好的效果,當M很大時,[CLASS]在中間位置有更好的效果。但性能好會面對魯棒性下降。
    • 不同vision encoders:更好的vision encoders,CoOp效果更好。
    • 與Prompt Ensembling對比:設計連續可學習prompt效果更好。
      在這里插入圖片描述
    • 與其他微調方法相比:與原始CLIP、使用線性探針(就是一個線性層,這里可以理解成提取CLIP的特征后輸入線性層,訓練線性層進行分類)、添加image encoder微調、在text encoder后添加變形層微調、在文本輸出添加偏置項的方法進行比較,CoOp的優化上下文方法是最好的色;
      在這里插入圖片描述
    • 上下文初始化方法:對CoOp上下文隨機初始化和使用CLIP的hand-crafted比較,發現效果差不多,都是很好的上下文,不過后續對CoOp上下文通過學習優化會有更好的效果。
    • 對上下文的解釋:暫時無法給出解釋,因為用距離度量向量的語義是不準確的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81083.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81083.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81083.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從零構建 MCP Server 與 Client:打造你的第一個 AI 工具集成應用

目錄 🚀 從零構建 MCP Server 與 Client:打造你的第一個 AI 工具集成應用 🧱 1. 準備工作 🛠? 2. 構建 MCP Server(服務端) 2.1 初始化服務器 🧩 3. 添加自定義工具(Tools&…

Django 自定義celery-beat調度器,查詢自定義表的Cron表達式進行任務調度

學習目標: 通過自定義的CronScheduler調度器在兼容標準的調度器的情況下,查詢自定義任務表去生成調度任務并分配給celery worker進行執行 不了解Celery框架的小伙伴可以先看一下我的上一篇文章:Celery框架組件分析及使用 學習內容&#xff…

藍橋杯 1. 確定字符串是否包含唯一字符

確定字符串是否包含唯一字符 原題目鏈接 題目描述 實現一個算法來識別一個字符串的字符是否是唯一的(忽略字母大小寫)。 若唯一,則輸出 YES,否則輸出 NO。 輸入描述 輸入一行字符串,長度不超過 100。 輸出描述 輸…

a-upload組件實現文件的上傳——.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.txt

實現下面的上傳/下載/刪除功能&#xff1a;要求支持&#xff1a;【.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.txt】 分析上面的效果圖&#xff0c;分為【上傳】按鈕和【文件列表】功能&#xff1a; 解決步驟1&#xff1a;上傳按鈕 直接上代碼&#xff1a; <a-uploadmultip…

.NET Core 數據庫ORM框架用法簡述

.NET Core ORM框架用法簡述 一、主流.NET Core ORM框架概述 在.NET Core生態系統中&#xff0c;主流的ORM(Object-Relational Mapping)框架包括&#xff1a; ??Entity Framework Core (EF Core)?? - 微軟官方推出的ORM框架??Dapper?? - 輕量級微ORM??Npgsql.Entit…

halcon打開圖形窗口

1、dev_open_window 參數如下&#xff1a; 1&#xff09;Row(輸入參數) y方向上&#xff0c;圖形窗口距離左上角頂端的像素個數 2&#xff09;Column(輸入參數) x方向上&#xff0c;距離左上角左邊的像素個數 3&#xff09;Width(輸入參數) 圖形窗口寬度 4&#xff09;He…

2025東三省D題深圳杯D題數學建模挑戰賽數模思路代碼文章教學

完整內容請看文章最下面的推廣群 一、問題一&#xff1a;混合STR圖譜中貢獻者人數判定 問題解析 給定混合STR圖譜&#xff0c;識別其中的真實貢獻者人數是后續基因型分離與個體識別的前提。圖譜中每個位點最多應出現2n個峰&#xff08;n為人數&#xff09;&#xff0c;但由…

iView Table 組件跨頁選擇功能實現文檔

iView Table 組件跨頁選擇功能實現文檔 功能概述 實現基于 iView Table 組件的多選功能&#xff0c;支持以下特性&#xff1a; ? 跨頁數據持久化選擇? 當前頁全選/取消全選? 自動同步選中狀態顯示? 分頁切換狀態保持? 高性能大數據量支持 實現方案 技術棧 iView UI 4…

家庭服務器IPV6搭建無限郵箱系統指南

qq郵箱操作 // 郵箱配置信息 // 注意&#xff1a;使用QQ郵箱需要先開啟IMAP服務并獲取授權碼 // 設置方法&#xff1a;登錄QQ郵箱 -> 設置 -> 賬戶 -> 開啟IMAP/SMTP服務 -> 生成授權碼 服務器操作 fetchmail 同步QQ郵箱 nginx搭建web顯示本地同步過來的郵箱 ssh…

Tauri v1 與 v2 配置對比

本文檔對比 Tauri v1 和 v2 版本的配置結構和內容差異&#xff0c;幫助開發者了解版本變更并進行遷移。 配置結構變化 v1 配置結構 {"package": { ... },"tauri": { "allowlist": { ... },"bundle": { ... },"security":…

對js的Date二次封裝,繼承了原Date的所有方法,增加了自己擴展的方法,可以實現任意時間往前往后推算多少小時、多少天、多少周、多少月;

封裝js時間工具 概述 該方法繼承了 js 中 Date的所有方法&#xff1b;同時擴展了一部分自用方法&#xff1a; 1、任意時間 往前推多少小時&#xff0c;天&#xff0c;月&#xff0c;周&#xff1b;參數1、2必填&#xff0c;參數3可選beforeDate(num,formatter,dateVal); befo…

TimeDistill:通過跨架構蒸餾的MLP高效長期時間序列預測

原文地址&#xff1a;https://arxiv.org/abs/2502.15016 發表會議&#xff1a;暫定&#xff08;但是Star很高&#xff09; 代碼地址&#xff1a;無 作者&#xff1a;Juntong Ni &#xff08;倪浚桐&#xff09;, Zewen Liu &#xff08;劉澤文&#xff09;, Shiyu Wang&…

DeepSeek最新大模型發布-DeepSeek-Prover-V2-671B

2025 年 4 月 30 日&#xff0c;DeepSeek 開源了新模型 DeepSeek-Prover-V2-671B&#xff0c;該模型聚焦數學定理證明任務&#xff0c;基于混合專家架構&#xff0c;使用 Lean 4 框架進行形式化推理訓練&#xff0c;參數規模達 6710 億&#xff0c;結合強化學習與大規模合成數據…

如何用AI生成假期旅行照?

以下是2025年最新AI生成假期旅行照片的實用工具推薦及使用指南&#xff0c;結合工具特點、研發背景和適用場景進行綜合解析&#xff1a; 一、主流AI旅行照片生成工具推薦與對比 1. 搜狐簡單AI&#xff08;國內工具&#xff09; ? 特點&#xff1a; ? 一鍵優化與背景替換&…

ElaticSearch

ElaticSearch: 全文搜索 超級強&#xff0c;比如模糊查詢、關鍵詞高亮等 海量數據 高效查詢&#xff0c;比傳統關系數據庫快得多&#xff08;尤其是搜索&#xff09; 靈活的數據結構&#xff08;Schema靈活&#xff0c;可以動態字段&#xff09; 分布式高可用&#xff0c;天…

Android開發,實現一個簡約又好看的登錄頁

文章目錄 1. 編寫布局文件2.設計要點說明3. 效果圖4. 關于作者其它項目視頻教程介紹 1. 編寫布局文件 編寫activity.login.xml 布局文件 <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android…

機器學習:【拋擲硬幣的貝葉斯后驗概率】

首先,拋硬幣的問題通常涉及先驗概率、似然函數和后驗概率。假設用戶可能想通過觀察一系列的正面(H)和反面(T)來更新硬幣的偏差概率。例如,先驗可能假設硬幣是均勻的,但隨著觀察到更多數據,用貝葉斯定理計算后驗分布。 通常,硬幣的偏差可以用Beta分布作為先驗,因為它…

Echarts 問題:自定義的 legend 點擊后消失,格式化 legend 的隱藏文本樣式

文章目錄 問題分析實現步驟代碼解釋問題 如下圖所示,在自定義的 legend 點擊后會消失 分析 我把隱藏的圖例字體顏色設為灰色,可以借助 legend.formatter 和 legend.textStyle 結合 option.series 的 show 屬性來達成。以下是具體的實現步驟和示例代碼: <!DOCTYPE ht…

光譜相機如何提升目標檢測與識別精度

光譜相機&#xff08;多光譜/高光譜&#xff09;通過捕捉目標在多個波段的光譜特征&#xff0c;能夠揭示傳統RGB相機無法感知的材質、化學成分及物理特性差異。以下是提升其目標檢測與識別精度的核心方法&#xff1a; ?1. 硬件優化&#xff1a;提升數據質量? ?(1) 光譜分辨…

springboot項目配置nacos,指定使用環境

遇到這樣一個問題&#xff0c;在開發、測試、生成環境之間切換的問題。 大多數的操作是通過修改spring.profiles.active來確定指向使用的環境配置文件&#xff0c;對應項目中需要增加對應的配置文件。 但是現在幾乎所有公司都會有代碼管理不管是SVN、git&#xff0c;這樣就會涉…