0
本文作者: 我在思考中 | 2021-09-14 10:33 |
AI科技評論報道
代碼鏈接:https://github.com/KaiyangZhou/CoOp
結合視覺和語言的預訓練方法(Vision-Language Pretraining)最近成為了視覺表征學習的一種有前景的方向。區(qū)別于使用圖像和離散標簽進行學習的傳統(tǒng)分類器,以CLIP為代表的視覺語言預訓練模型利用了兩個獨立的編碼器來對齊圖像和原始文本。在這種范式下,監(jiān)督來源變得更加靈活多樣且容易獲取(如圖片評論或網(wǎng)絡配圖文案都可以做圖片監(jiān)督)。更重要的是,模型變得十分容易零樣本(zero-shot)遷移到下游任務。這是因為下游任務的類別不必一定屬于訓練中離散標簽的一種。只要提供下游任務的標簽信息,通過適當提詞器(prompt)生成的文本向量可以直接代替固定的離散標簽。下圖展示了CLIP模型結構。
我們發(fā)現(xiàn)了在實踐中部署此類模型的主要挑戰(zhàn)是對提詞器的設計,這是因為設計合適的提詞器需要專業(yè)領域的知識,尤其是針對專業(yè)類別名要設計專門的語境(或稱作上下文,context)。同時,提詞器的設計也需要花費大量時間來調整,因為微小的措辭變化可能會對性能產(chǎn)生巨大影響(例如下圖a,在“a photo of [CLASS]”中的[CLASS]前加個“a”直接漲了將近6個點??。。4送?,不同的下游任務需要的不同設計(例如圖b-d中的“flower”,“texture”,和“satellite”)也進一步阻礙了部署的效率。
為了克服這一挑戰(zhàn),我們提出了一種名為上下文優(yōu)化 (Context Optimization,英文名:CoOp,中文名:琥珀) 的新方法。琥珀的主要思想是對提詞器中的上下文(context)用連續(xù)向量進行建模,而整個訓練過程將僅僅端到端優(yōu)化這幾個上下文詞向量,而保持預訓練參數(shù)不變。此舉完全自動化了提詞器的設計過程。下圖展示了琥珀的模型結構。
實驗里我們使用了11個視覺數(shù)據(jù)集來驗證琥珀的有效性:結果表明琥珀是一個十分高效的小樣本學習方法,平均每個類別只需要一到兩張圖片就可以擊敗基于手工提詞器的零樣本識別模型。當每個類別的圖片有16張時,琥珀比手工提詞器平均高出了大約17個百分點(最高可達50個百分點?)。不僅如此,琥珀還對領域泛化表現(xiàn)出了極強的魯棒性(見下圖,M指代琥珀的提詞器長度)。
此時,讀者一定與我們一樣對琥珀學到的提詞器充滿興趣??上У氖?,當我們在詞空間中尋找與優(yōu)化得到的詞向量距離最近的現(xiàn)實詞匯時,我們很難找到有實際含義的詞,因為我們發(fā)現(xiàn)即便是最臨近的現(xiàn)實詞匯,其距離與優(yōu)化得到的詞向量仍然相距甚遠,并且在詞空間中,臨近的詞向量不一定具有相似的含義。下圖展示了5個數(shù)據(jù)集對應的距離最優(yōu)解最近的16詞提詞器。這進一步展示了人工設計的提詞器可能始終無法達到琥珀的效果。
鑒于以上提詞器可視化的結果,我們大膽的推測,在一些數(shù)據(jù)集上,一些無厘頭的提詞器,例如“makka pakka akka yakka ikka akka [class]”甚至可能比“a photo of a [class]”在某些數(shù)據(jù)集上有更好的效果?。
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉載。詳情見轉載須知。