---
# System prepended metadata

title: '[CVPR2023 Tutorial Talk] Recent Advances in Vision Foundation Models 近期視覺基礎模型的進展'
tags: [GenAI, Generative AI, Multimodal, LLM, CV, Deeplearning]

---


### [AI / ML領域相關學習筆記入口頁面](https://hackmd.io/@YungHuiHsu/BySsb5dfp)

---
## [Multimodal] CVPR 2023。Multimodal Foundation Models : From Specialists to General-Purpose Assistants<br>多模態基礎模型研究回顧
本系列筆記筆記基於2023.07 CVPR研討會Recent Advances in Vision Foundation Models 視覺基礎模型回顧的論文，與研討會5場演講(附上投影片與影片連結)，更新近期視覺與多模態模型的發展趨勢與前沿技術


#### [2023。CVPR。Recent Advances in Vision Foundation Models](https://vlp-tutorial.github.io/)


| 主題                                                                                   | 資源                                                                                                                                                                                                                         | 演講者         |   個人筆記連節  |
| -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | --- |
| Opening Remarks & Visual and Vision-Language Pre-training<br>**CH2 Visual Understanding**                              | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Zhe_CVPR2023_Tutorial.pdf)， [YouTube](https://youtu.be/hE135guhTQo)                                                         | Zhe Gan        |  [筆記連結](https://hackmd.io/@YungHuiHsu/S1nPk2eET)   |
| From Representation to Interface: The Evolution of Foundation for Vision Understanding<br>**CH2 Visual Understanding** | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Jianwei_CVPR2023_Tutorial.pdf)， [YouTube](https://youtu.be/wIcTyutOlDs)                                                     | Jianwei Yang   |  [筆記連結](https://hackmd.io/@YungHuiHsu/HyjAklf4T)   |
| Alignments in Text-to-Image Generation<br>**CH3 Visual Generation**                                                        | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Zhengyuan_Tutorial_T2I2023.pdf)， [YouTube](https://youtu.be/iixMLxeuOqU)                                                    | Zhengyuan Yang | [筆記連結](https://hackmd.io/@YungHuiHsu/Bko4OHNNT)    | 
| Large Multimodal Models                                                                | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Chunyuan_cvpr2023_tutorial_lmm.pdf)， [Notes](https://arxiv.org/pdf/2306.14895.pdf)， [YouTube](https://youtu.be/mkI7EPD1vp8) | Chunyuan Li    |     |
| Multimodal Agents: Chaining Multimodal Experts with LLMs                               | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Linjie_Multimodal%20Agents.pptx)， [YouTube](https://youtu.be/Wb5ZkZUNYc4)                                                   | Linjie Li      |     |

#### 會議論文[2023.09。Multimodal Foundation Models: From Specialists to General-Purpose Assistants](https://arxiv.org/abs/2309.10020)
- [個人筆記](https://hackmd.io/@YungHuiHsu/HkOjXPg46)

各章詳細內容請見演講筆記
---
## Recent Advances in Vision Foundation Models<br>(Visual and Vision-Language Pre-training)
- 對應會議論文CH2 Visual Understanding
## 講稿摘要
 
**多模態基礎模型近況概述**

### **視覺語言質詢 (Visual and Visualization Questioning)**

-  **圖像編碼器訓練 (Image Encoder Training)**
    * 圖像編碼器是訓練強大多模態模型的基石。近年來，大規模弱監督學習成為訓練圖像編碼器的有效方法之一。例如，CLIP模型利用大量圖像-文本配對進行對比學習，在海量圖像數據上展現出強大的圖像理解能力。數據規模是成功的關鍵，隨著數據量的不斷增加，編碼器表現也在持續改進。除對比學習外，自監督學習與基於生成模型的方法也被廣泛應用。整體而言，利用大量弱標註數據訓練通用編碼器是現階段的重要發展方向。

-  **模型設計 (Model Design)**  
    *   圖像編碼器的模型設計也是影響表現的重要因素。例如，FLIP模型通過在輸入圖像中随机遮蓋區域來提升訓練效率;LAIR模型將外部知識如百科信息注入文本表徵中以學習更好的多模態聯合表示。目標函數的設計也很重要，引入生成分支可以增強編碼器的學習。整體而言，設計靈活的編碼器介面與模型架構，以支持多種下游任務是現階段的研究熱點。

-  **目標函數 (Objective Functions)**
    *   目標函數的選擇也影響編碼器訓練的效果。基於對比學習的目標函數是主流選擇，但也有研究嘗試其他形式的監督。例如CoCa模型同時使用了生成模型分支和對比學習目標函數。探索更有效的目標函數以獲得豐富的編碼器表徵仍有很大的研究空間。

-  **與其它方法的組合 (Combination with Other Methods)**
    *   將對比學習與其他訓練範式如自監督學習、基於標籤的監督學習等進行組合，也成為編碼器訓練的有效途徑之一。例如，SimCLR與CLIP的聯合訓練可以獲得在多種任務上都表現較好的圖像表徵。這種方法整合了不同範式的優勢，是未來發展的方向。

-  **基於語言的圖像生成 (Text-to-Image Generation)**

    *   基於文本描述生成對應圖像是多模態基礎模型的一項核心能力。通過將預訓練的圖像編碼器與語言模型連接，就可以實現從語言到圖像的生成。近年來，這個領域取得了長足的進步，可以生成更高質量、更符合語意的圖像。語言模型強大的語言理解能力，為實現與人類意圖一致的圖像生成提供了可能。這也為許多下游任務提供了基礎支撐。

### **與語言模型的對接 (Integration with Language Models)** 

-  **將視覺專家知識注入語言模型 (Injecting Visual Knowledge into Language Models)**
    *   大語言模型如GPT-3具有強大的語言理解生成能力，但缺乏視覺方面的外部知識。將預訓練的圖像編碼器作為語言模型的一個子網絡，可以為語言模型注入視覺知識。通過多任務學習，語言模型可以獲得視覺表徵空間的構建能力。這種跨模態知識迁移為語言模型提供了支持多模態任務的可能。

-  **支持更多多模態任務 (Enabling More Multimodal Capabilities)**
    *   將視覺與語言表徵空間聯合對接，是實現語言模型的多模態理解與生成的有效途徑。例如，將圖像特徵映射到語言特徵空間，就能支持像圖像描述這樣需要視覺與語言理解的下游任務。語言模型具有強大的遷移學習能力，視覺知識的注入為其提供了承載多模態專家知識的可能。這是當前的一個研究熱點。

-  **總結與未來方向 (Summary and Future Directions)**

    *   介紹了使用大規模圖像-文本數據進行視覺編碼器訓練的最新進展，包括基於對比學習的方法、與其他訓練範式的組合、圖像生成以及與語言模型的對接等內容。總體來看，通過數據規模的擴大、模型設計的改進以及與語言模型的結合，視覺語言基礎模型取得了長足的進步。如何實現更好的視覺與語言表徵的統一仍然是一個值得探索的方向。

---
![image](https://hackmd.io/_uploads/rk4JHsbNT.png)

## Brand new design for this year’s tutorial
 
* From the LLM perspective， now we have
    * ChatGPT， GPT-4 from OpenAI， PaLM， Bard from Google， LLaMA from Meta
    * Alpaca， Vicuna， etc. from the open-source community 
    * And other LLMs from many startups 
* From the computer vision perspective， now we have
    * SAM， DINOv2， Stable Diffusion， Midjourney， etc. 
    * LLaVA， MiniGPT-4， etc. 
    * Visual ChatGPT， MMReACT， etc.


## 2023年研究發展重點
![image](https://hackmd.io/_uploads/HJ3fYjbVT.png)
 
我們要回答的問題是:假設我們有一個圖像-文本形式的數據，其中圖像的描述是「狗正在草地上奔跑」 
- 首先我將討論圖像編碼器的訓練，它是基礎中的基礎。我們將探討以下兩個問題:
  - **如何只從圖像訊號或圖像-文本訊號中學習更好的圖像表示**
  - **如何設計更靈活廣泛的編碼器介面**
- **圖像生成**，以及如何讓生成的圖像符合人類意圖。
- 利用**大語言模型的強大語意理解與生成能力，將其作為通用介面，進行多模態語言模型的訓練**。
- 最後，我們將討論如何將**視覺專家知識注入大語言模型**中，以解鎖新的能力。
- 本教程的重點在於視覺編碼器的訓練以及與語言模型的結合，以構建跨模態的基礎模型

本篇演講著重在探討Ｑ１，對應[2023.09。Multimodal Foundation Models: From Specialists to General-Purpose Assistants](https://arxiv.org/abs/2309.10020) -  **CH2 Visual Understanding**

![image](https://hackmd.io/_uploads/r1JhiyGVp.png)


## To consume visual data， how to learn a strong image backbone

![image](https://hackmd.io/_uploads/B1NjjsW46.png)

 
![image](https://hackmd.io/_uploads/BkwY7FV4p.png =600x)
![image](https://hackmd.io/_uploads/Sy8xVtNEa.png =600x)

- Figure 2.3: An overview of the topics covered in this chapter and representative works in each topic.
    從監督學習和**CLIP**開始，然後進行僅限於圖像的自我監督學習，包括對比學習、非對比學習和遮蔽圖像建模(masked image modeling)。最後，討論賦予多模態融合(fusion)力量的預訓練方法，以及區域級(region-level)和像素級(pixel-level)圖像理解
    ![image](https://hackmd.io/_uploads/S1V_qEw4p.png =600x)


## Supervised learning
- Mapping an image to a discrete label which is associated to a visual concept
- Human annotation is expensive， and the labels can be limited 
- Private datasets created by industrial labs: 
- JFT-300M， JFT-3B[1]， IG-3.6B[2] (called weakly-supervised pre-training in this case)
- Noisy weak supervision， can be very powerful for learning universal image embeddings

![image](https://hackmd.io/_uploads/Sye6nj-Np.png =600x)

 總體來說，監督學習是一種標準的圖像編碼器訓練範式，產生了從AlexNet到Vision Transformer等多個經典模型，但需要大量人工標註數據。業界大規模弱標註數據集為訓練更強大編碼器提供了可能。
 
 **數據擴展的力量**
多模態人工智能的發展離不開數據，而數據的擴展也至關重要。大量的數據集能為模型增添動力。語言監督尤其是一種強大的指導形式，它超越了傳統的封閉系統標籤。利用大規模數據比以往任何時候都更為重要


- Powered architectures ranging from AlexNet， ResNet， ViT， to Swin， and allthe modern vision backbone

    ![image](https://hackmd.io/_uploads/BJWFTob4p.png)
## 2.3 Contrastive language-image pre-training(**CLIP**)
![image](https://hackmd.io/_uploads/BkOjCjWVp.png)
> CLIP是一種學習圖像表示的方法，它使用來自網絡規模數據的噪聲文本監督來訓練模型。該方法分為三個主要部分：
> - 對比預訓練（Contrastive pre-training）：
>    - 圖像和文字通過各自的編碼器轉換成特徵向量。
>    - 文字編碼器將文本描述轉換成一系列的文字向量（$T_1, T_2, ..., T_N$）。
>    - 圖像編碼器將圖像轉換成圖像向量（$I_1, I_2, ..., I_N$）。
>    通過對比學習，**模型被訓練以對齊相應的文字和圖像向量，這意味著正確配對的圖像和文本會被拉近，而不相關的配對會被推遠**。
> - 從標籤文本創建數據集分類器：
>     - 用文字編碼器將標籤文本（例如"plane"、"car"、"dog"、"bird"等）轉換成文字向量。
>     - 這些向量可以用來建立一個數據集分類器，它將能夠將新圖像分類到這些標籤中。
> - 用於零樣本預測（Use for zero-shot prediction）：
>     - 零樣本學習是指模型能夠識別在訓練過程中從未見過的類別
>     - 圖像編碼器將新圖像轉換為圖像向量。
>     - 通過比較圖像向量和標籤文字向量的相似性，模型可以對圖像進行分類，即使它在訓練數據中沒有對應的標籤。

-  CLIP是通過大規模嘈雜文本監督來學習圖像表示(Learning image representations from web-scale noisy text supervision)
-  訓練方法很簡單，**只使用了對比學習，但真正關鍵是大規模預訓練**(Training: simple contrastive learning， and the beauty lies in large-scale pre-training)
-  在下游任務上可以實現零樣本的圖像分類和圖像-文本檢索(Downstream: zero-shot image classification and image-text retrieval)
-  將圖像分類轉換為檢索任務，即考慮標籤背後的語義(Image classification can be reformatted as a retrieval task via considering the semantics behind label names)

 
CLIP展示了**大規模數據和簡單方法的威力，數據規模是成功的關鍵**，CLIP啟發了大量後續工作，徹底改變了視覺語言領域



###  Basics of CLIP Training
- The idea is simple, and can be dated back to a long while ago
    - In the large-scale pre-training era: CLIP[1] and ALIGN[2]
    - **數據規模很重要**：模型通常使用數十億個圖像-文本對進行訓練(Data scale matters: Models are frequently trained with billions of image-text pairs)
    - **批次大小很重要**：默認情況下為32k；**模型大小很重要**(Batch size matters: 32k by default; Model size matters)
    ![image](https://hackmd.io/_uploads/ryD_J2bEp.png)

- Quote from the FLIP paper
    > 語言是比傳統封閉集標籤更強大的監督形式。語言提供了豐富的監督資訊。因此，在語言監督訓練中，提高規模是獲得良好結果的關鍵，這可以透過增加容量（模型擴展）和增加信息（數據擴展）來實現。
    > Language is a stronger form of supervision than classical closed-set labels. Language provides rich information for supervision. Therefore, scaling, which can involve increasing capacity (model scaling) and increasing information (data scaling), is essential for attaining good results in language-supervised training. 
    > 
    >CLIP [52] 是「簡單算法良好擴展性」的優秀範例。CLIP 的簡單設計使得它能夠在更大的規模上輕鬆執行，相比之前的方法取得了巨大的飛躍。我們的方法在很大程度上保持了 CLIP 的簡潔性。
    > CLIP [52] is an outstanding example of “simple algorithms that scale well’. The simple design of CLIP allows it to be relatively easily executed at substantially larger scales and achieve big leaps compared to preceding methods. Our method largely maintains the simplicity of CLIP 
    > 

## How to improve CLIP
- Since the birth of CLIP, tons of follow-up works and applications
    - 1. 如何進一步擴大圖像和文本的規模。Data scaling up
    - 2. 如何從原始模型中設計出更好的模型。Model design
    - 3. 對比操作非常強大，但還有其他的目標函數可以獲得靈感。Objective functions
    
    ![image](https://hackmd.io/_uploads/SyT1f3bN6.png =400x)
 

## 數據規模拓展。Data scaling up 
利用開源大規模數據集重新訓練OpenCLIP模型，通過使用噪聲和更多噪聲的數據進行擴展
* Reproducible scaling laws for CLIP training 
    * Open large-scale LAION-2B dataset 
    * Pre-training OpenCLIP across various scales
* **DataComp**: We know scale matters, how to further scale it up 
    * 這篇論文提出了一種新的思路，即不再專注於設計不同的算法或固定數據集，而是著眼於修正 CLIP（Contrastive Language-Image Pre-training）的訓練方法，然後選擇數據集來進行訓練。同時，他們也在尋求下一代的圖像-文本數據集，以進一步提升模型的性能。
    * 根據這種方法，他們相信數據集的選擇和處理對於模型的表現有著重要的影響。
    * In search of the next-generation image-text datasets 
    * Instead of fixing the dataset, and designing different algorithms, the authors propose to fix the CLIP training method, but select the datasets instead
    ![image](https://hackmd.io/_uploads/Bki3DnZV6.png)
    > 圖中描繪了一種新的方法來擴展下一代圖像-文本數據集的構建，名為 DataComp。它的核心思想是改變傳統的數據集或算法設計方法，而是保持CLIP（Contrastive Language–Image Pre-training）訓練方法不變，並選擇不同的數據集來進行訓練。
    > 
    > 圖中的四個部分分別代表了這個過程的不同階段：
    > 
    > A. 選擇規模（Choose scale）：決定訓練模型時使用的數據集的規模，可以是小型（small）、中型（medium）、大型（large）或超大型（xlarge）。
    > 
    > B. 選擇數據（Select data）：從一個共通池（CommonPool）選擇子集（subset），或者從外部數據源（External data sources）引入數據，或者使用你自己的數據軌道（Bring your own data track）。這涉及到過濾軌道（Filtering track），用於挑選出候選數據集（Candidate dataset）。
    > 
    > C. 訓練（Train）：使用固定的架構和超參數訓練一個CLIP模型。
    > 
    > D. 評估（Evaluate）：在38個零樣本（zero-shot）下游任務上評估模型的效能。
    > 
    > 這個過程的目標是創建更加多樣化且具有擴展性的圖像-文本配對數據集，從而能夠提高模型的泛化能力並在多種任務上實現更好的性能

## 從模型設計與訓練方法改進CLIP
### 模型設計：從圖像方面。Model design: from the image side 
- FLIP: 通過遮罩進行 CLIP 訓練的擴展Scaling CLIP training via masking 
    - Training: 仍使用 CLIP 損失，不使用 MIM 損失。still use CLIP loss, without incorporating the MIM loss 
    - Trick: 隨機遮罩圖像的部分區域，只對可見區域進行編碼，進而提高訓練效率。randomly masking out image patches with a high masking ratio, and only encoding the visible patches 
        - 補充：類似MAE、BERT的概念
    - Results: 結果顯示，這不會損害性能，反而提高了訓練效率。turns out this does not hurt performance, but improves training efficiency 
    - Training is done in 256 TPU-v3 cores, with LAION-400M for 6.4, 12.8, or 32 epochs
    
    ![image](https://hackmd.io/_uploads/HyyHKnZNT.png)


### 模型設計：從語言方面。Model design: from the language side
- K-Lite: External knowledge
    通過維基百科定義實體來提高模型的性能和可解釋性
    - The Wiki definition of entities (or, the so-called knowledge) can be naturally used together with the original alt-text for contrastive pre-training
     K-Lite 是一種將外部知識與原始替代文本結合使用的方法。其中，外部知識指的是實體的維基百科定義，或者所謂的知識。這種方法可以與原始的交叉對比預訓練一起使用，以更自然地豐富模型的訓練數據。通過結合外部知識和原始的替代文本，模型可以獲得更全面、更準確的理解和表示能力。
    ![image](https://hackmd.io/_uploads/rk_rjnWVp.png) 
    > 這張圖展示了一種增強型語言-圖像學習方法的概念，名為 Knowledge-Augmented Language-Image Learning。它的目的是解釋較罕見的菜餚概念。 
    > * 在這個過程中，首先有一個原始數據集（Original Dataset），包含圖像（Image）和與之相關的語言描述（Language）。然後，進行查詢構造（Query Construction），基於數據集中的圖像和語言信息形成一個查詢（Query）。這個查詢被用於知識獲取（Knowledge Acquisition）階段，這裡會檢索外部知識源，如 WordNet 和 Wiktionary，來獲取有關圖像中物體的深入知識。
    > 
    > * 這個概念的動機例子包括解釋“Takoyaki”和“Sashimi”這兩個日本菜餚。例如，Takoyaki 被描述為一種球形的日式餃子，裡面填充了切碎的章魚、天婦羅碎片、醃製薑和青蔥。而 Sashimi 則是由生魚或肉的薄片組成的菜餚。這些描述幫助系統理解圖像內容，並能更準確地與圖像相關聯


### 模型設計：從促進解讀性方面 Model design: improved interpretability 
* STAIR: Learning Sparse Text and Image Representation in Grounded Tokens
    將圖像和文本映射到高維稀疏嵌入空間，每一維度代表字典中的一個詞，並通過相關權重增強可解釋性 
    * Mapping images and text to a high-dim sparse embedding space 
    * Each dimension in the sparse embedding is a (sub-)word in a large dictionary in which the predicted non-negative scalar corresponds to the weight associated with the token 
    * Better performance than CLIP with improved interpretability
    STAIR核心概念在於提高模型的可解釋性，同時學習稀疏的文本和圖像表示。STAIR 是對比於 CLIP 或 ALIGN 方法的一種改進，它利用高維稀疏嵌入空間將圖像和文本映射到一個可解釋的表示中
    > 
    :::info
    補充：概念上就是讓模型產出的embedding數值盡可能集中在少數維度且獨立，並盡可能讓特定維度與特徵或字詞有直接對映關係，從而俱備解釋性(通常也會帶來性能提升)，可見[ Variational Sparse Coding (VSC)論文筆記](https://hackmd.io/MXxa8zesRhym4ahu7OJEfQ)
    :::

    ![image](https://hackmd.io/_uploads/B1la-6W46.png)

    > 1. 映射到高維稀疏嵌入空間：STAIR將圖像和文本映射到一個包含許多維度的嵌入空間，其中每一維度都對應於一個大字典中的（子）詞。
    >     - 圖像的視覺編碼器生成的稀疏嵌(embeddings)會對應到文本描述中的關鍵詞，如“bird”和“tree”，並且每個詞都有一個與之相關的權重。這不僅提高了模型的預測準確性，同時也提供了對其做出這些預測的判斷依據
    > 2. 稀疏嵌入的每個維度：在這個高維空間中，每個維度代表一個特定的（子）詞，並且與之相關的是一個非負純量值，這個值對應於該（子）詞的權重。這使得嵌入的解釋性增強，因為我們可以清晰地看到哪些（子）詞對於圖像或文本描述的表達最為重要。
    > - 改進的表現：與CLIP相比，STAIR在零樣本文本/圖像檢索任務中表現更好，這一點通過在COCO和Flickr30K數據集上的實驗結果得到證明。表格中顯示了各種回溯指標（如 R@1, R@5, R@10）的比較，STAIR在大多數指標上超越了CLIP。


### 模型設計：更多模態。Model design: more modalities 
- ImageBind: One embedding space to bind them all 
    * Linking all modalities (7 in this paper) into a common space 
    * Apre-trained CLIP is used and kept frozen, i.e., learning other modality encoders to align the CLIP embedding space
    ImageBind旨在將多種資料形態（在這份文件中有七種）結合到一個共同的嵌入空間中。這種設計允許不同類型的資料，例如圖像、視頻、文本、音頻、深度、熱感和慣性測量單位（IMU）數據，能夠互相對齊和理解
    ![image](https://hackmd.io/_uploads/S1L11kfNT.png)
    > - 使用預訓練的CLIP模型：ImageBind 利用了預訓練的CLIP模型作為基礎，並保持它不變，意味著CLIP模型的參數在這個過程中是固定的，不會進行學習
    > - 學習其他資料形態的編碼器：目的是使這些不同形態的數據能夠與CLIP模型的嵌入空間對齊，即使這些數據來自於與CLIP訓練時不同的分布。
    > - 跨模態檢索（Cross-Modal Retrieval）：這部分展示了模型如何理解和檢索跨越不同資料形態的相關信息。例如，根據火聲的音頻，可以檢索到火焰的圖像或視頻。
    > - 嵌入空間算術（Embedding-Space Arithmetic）：顯示了嵌入空間的算術操作，例如將波浪的圖像與波浪的聲音相加，以進行相關檢索或生成。
    > - 音頻到圖像生成（Audio to Image Generation）：這部分示範了模型如何根據特定的音頻（例如狗吠、引擎聲、火聲、雨聲）生成相對應的圖像。
    > 整體來看，ImageBind的設計著重於強化不同資料形態之間的互操作性和對齊，這樣可以在理解和生成跨模態內容時提供更大的靈活性和準確性

## 從目標函數Objective function改進CLIP

- Figure 2.6: A high-level comparison of contrastive loss and captioning loss for image encoder pretraining
    ![image](https://hackmd.io/_uploads/rJOCJKN4p.png)

    > 圖2.6提供了CLIP、VirTex/SimVLM和CoCa三種模型訓練方法的高層次比較：
    >  
    > - **CLIP**（Contrastive Language-Image Pre-training）
    >     - 使用對比損失（Contrastive loss）進行預訓練，使模型能進行零樣本（zero-shot）圖像分類，並且表現出強大的擴展能力。
    > - **VirTex/SimVLM**：
    >      - 利用標題損失（Captioning loss）單獨進行預訓練。而SimVLM則採用前綴語言模型預訓練，規模更大。
    >     - 這些模型的架構類似於多模態語言模型，例如GIT，但VirTex和SimVLM的目標是從頭開始預訓練圖像編碼器。
    > - **CoCa**：
    >     - CoCa使用對比損失和標題損失進行預訓練。
    >     - CoCa的模型架構與ALBEF相似，但旨在從頭開始預訓練圖像編碼器，而不是使用已經預訓練的模型。
    >     
    > 這三種方法展示了圖像編碼器預訓練過程中不同策略的應用，從單一損失的應用到結合多種損失的複合策略，並強調了從頭開始預訓練的重要性，這可能對模型的泛化能力和多模態任務的性能有積極影響



### 目標函數：細尺度的的監督。Objective function: fine-grained supervision 

* FILIP (Fine-grained Image and Language Interpretation Profile): Rine-grained supervision 
    * Still dual encoder, not a fusion encoder 
    * But compute the loss by first computing the** token-wise similarity**, and then aggregating the matrix by **max pooling** 
    * Learns **word-patch alignment** that is good for visualization
    FILIP 與傳統的對比學習模型（如CLIP）不同，它專注於**學習詞(word)與圖像區塊（patch）之間的對齊** 
    ![image](https://hackmd.io/_uploads/B1z6fkfN6.png)

    > - **雙編碼器結構**：FILIP仍然使用雙編碼器（一個圖像編碼器和一個文本編碼器），而不是融合編碼器。
    > - **計算損失**：首先計算圖像和文本之間的**token-wise相似性**，然後通過最大池化（max pooling）來聚合這個矩陣。
    > - **學習詞-區塊對齊**：這種方法允許模型學習單詞和圖像中對應區塊之間的關聯。
    > 
    > 在右側的視覺比較中，展示了FILIP與CLIP在處理兩個不同圖像（氣球和白蝴蝶）時的區別。對於每個圖像，FILIP模型能夠更精確地定位到與文本描述相關的圖像區塊。例如，在氣球的圖像中，FILIP標示出與文本描述相對應的圖像區域，而CLIP則顯示了一個更分散、不那麼精確的關注模式。這說明FILIP在理解和解釋圖像內容方面提供了更細緻的途徑
    
### 目標函數：增加生成的分枝。Objective function: adding a generative branch
CoCa使用混合圖像-文本和圖像標籤（例如JFT-3B數據集）進行預訓練，並通過添加一個生成分支來增強模型性能並賦予新功能，如圖像標題生成和視覺問答（VQA）
- CoCa: Contrastive Captioner
    - Use mixed image-text and image-label (JFT-3B) data for pre-training
    - But adding an additional generative branch for enhanced performance and enabling new capabilities (image captioning and VQA)
    - Similar to many vision-language models such as ALBEF, with the key difference that  CoCa aims to learn a better image encoder from scratch

    ![image](https://hackmd.io/_uploads/ryO8NkM4a.png)
    > * **多模態文本解碼器**：用於生成任務，如圖像標題生成。
    > * **對比損失和標題生成損失**：結合了這兩種損失來同時進行對比預訓練和標題生成。
    > * **預訓練**：透過處理圖像和文本數據來訓練模型，以改進視覺識別能力。
    > * **零樣本、凍結特徵或微調**：顯示了模型在不同設定下的應用，包括零樣本學習、在固定特徵上應用（不進行進一步的學習）或對模型進行微調以改善性能。
    > 
    > 圖中的模型流程圖說明了從圖像和文本輸入到多模態文本解碼器的流程，以及如何通過**對比損失**和**標題生成損失**來聯合優化這兩種模式。這種方法與其他視覺語言模型（如ALBEF）類似，但CoCa的主要區別在於它從零開始學習更好的圖像編碼器

- How about using the captioning loss alone?
    - VirTex was proposed to learn image encoders via an image captioning loss, but the  scale is very small (COCO images)
    VirTex模型通過圖像標題生成來學習圖像編碼器，但其使用的COCO圖像數據集規模較小
    - In CLIP, it was also shown contrastive pre-training is a much better choice
    - In SimVLM, the authors also found that the learned image encoder was not     competitive than CLIP, that’s also why they later proposed CoCa
    - In Cap/CapPa, the authors argue that image captioners are scalable vision learners, too. Captioning exhibits the same or better scaling behavior.
    Cap和CapPa的作者主張圖像標題生成器是可擴展的視覺學習器，並且在擴展性方面表現出相同或更好的行為
    ![image](https://hackmd.io/_uploads/SkrU8JGVp.png)
    > 使用語言監督來訓練卷積神經網絡（ConvNet）和Transformer進行圖像標題生成，然後轉移這些特徵來改善下游視覺任務（如物體檢測）的性能
    > 
    ![image](https://hackmd.io/_uploads/ByVPLyf4T.png)

    CoCa與其他先進的表示學習方法相比在準確度方面的性能。這些比較表明，在某些情況下，結合了生成任務的模型能夠提供與純粹對比學習方法相比的競爭甚至更好的性能
    補充： 自監督訓練中搭配的任務是提升表徵學習的關鍵
## 2.4 Image-Only Self-Supervised Learning

- Figure 2.7: Overview of SimCLR (Chen et al., 2020a), SimSiam (Chen and He, 2021), and DINO (Caron et al., 2021) for self-supervised image representation learning
    ![image](https://hackmd.io/_uploads/HkjQxtVNT.png)
    > 圖2.7概述了三種自監督圖像表示學習方法：SimCLR、SimSiam和DINO。
    > 
    > 1. **SimCLR** (Simple Framework for Contrastive Learning of Representations)：
    >    - 使用**對比學習**來訓練模型。通過最大化正樣本之間的一致性（similarity），並使負樣本之間的表示不同。
    >    - 編碼器 $f(\cdot)$ 產生表示 $h_i, h_j$，之後通過投影頭 $g(\cdot)$ 轉換為 $z_i, z_j$。
    >    - 目標是使正樣本的 $z_i, z_j$ 靠近，而使負樣本遠離。
    > 
    > 2. **SimSiam** (Simple Siamese Networks)：
    >    - 採用**非對比學習**方法。透過兩個相同的編碼器 $f$ 生成的表示，使用一個預測頭 $h$ 來預測一個表示的未來狀態，而另一個表示則通過stop-gradient操作來固定。
    >    - 主要是**透過相似性來學習而不需要負樣本**。
    > 
    > 3. **DINO** (Self-Distillation with No Labels)：
    >    - 同樣是**非對比學習**方法，但與SimSiam不同，DINO使用**知識蒸餾**概念，其中一個「學生」模型的輸出被用來匹配一個「教師」模型的輸出。
    >    - 教師模型的表示是通過**指數移動平均（EMA）**更新的，而學生模型則直接從教師模型學習。
    > 
    > 這三種方法都在自監督學習領域取得了突破，它們通過不同的學習策略來學習強大的視覺表示，並在沒有標註數據的情況下提升了模型的泛化能力。
    > Image credit: Chen et al. (2020a), Chen and He (2021), Caron et al. (2021).

## Can CLIP be combined with other learning approaches?

討論CLIP這樣的對比學習方式結合a) 監督學習、b)只有影像的對比學習、c)遮掩影像(MIM)結合的表徵學習效果

![image](https://hackmd.io/_uploads/rJ-f2yfNa.png)


講者談到提高模型訓練效率時提出，透過隨機遮蔽的圖像塊，可以改進CLIP模型的訓練效率。然而，進一步探究顯示，如果僅僅是簡單地將不同訓練方法結合在一起，並不能形成更強的支撐結構（backbone）。儘管如此，演講者還是指出，結合CLIP與MIM（Masked Image Modeling）的訓練方法在某些情況下看似是正面的。這表明將這兩種方法結合起來可能是直觀的，並且有潛力發揮協同效應。演講者在結尾前提到，儘管CLIP與MIM結合的直接成效可能並非全然正面，但嘗試將這兩者融合的過程本身仍具有價值，因為它基於對這些模型能力的直覺理解

．．．略．．．

- Combining CLIP with MIM
    ![image](https://hackmd.io/_uploads/SyJMpd4VT.png =600x)
    > 圖2.12展示了BEiT-3模型，這是一個結合了CLIP（Contrastive Language-Image Pre-training）和MIM（Masked Image Modeling）的模型訓練方法 
    > 
    > BEiT-3利用多向變換器（multiway transformer）對圖像/文本和圖像-文本聯合數據進行遮蔽數據建模（masked data modeling）。這種建模方法可以同時理解圖像和文本信息，從而提高模型在各種視覺和視覺-語言任務上的性能。
    > 
    > 在結合CLIP和MIM的研究中，存在兩種不同的互動方式：
    > - 淺層互動：
    >    - 發現從CLIP提取的圖像特徵是MIM訓練的好目標，因為CLIP的圖像特徵可能捕捉到MIM訓練中缺失的語義。
    >     - 沿這條線，有的工作提議直接回歸CLIP特徵，而BEiT v2則先將CLIP特徵內的信息壓縮成離散的視覺代幣，然後進行常規的BEiT訓練。
    > 
    > - 深層整合：
    >     - 不是將CLIP作為MIM訓練的目標，如果目標是結合CLIP和MIM進行聯合模型訓練，目前的階段，MIM似乎不會在規模上改善CLIP模型。
    >  
    > 儘管目前階段CLIP和MIM的結合並沒有顯示出有希望的結果，但BERT和BEiT的結合非常有前景。在BEiT-3中，作者展示了可以通過設計一個多向變換器對圖像/文本和圖像-文本聯合數據進行遮蔽數據建模，並在廣泛的視覺和視覺-語言任務上達到最先進的性能

## Backbones other than ViT
列出目前重要的視覺編碼器發展史
![image](https://hackmd.io/_uploads/ry6Ph1G4T.png =800x)


## A high-level summary
- We center around CLIP, and discussed how to train a strong image backbone as the foundation
 我們的討論重心是CLIP，並探討如何訓練一個強大的圖像主幹作為基礎
- We focus on image-level pre-training, not further into region/pixel-level pretraining (e.g., GLIP, SAM, X-Decoder), as they typically will use a pre-trained image encoder at first hand
    我們專注於圖像層級的預訓練，而不是深入到區域/像素層級的預訓練（例如GLIP、SAM、X-Decoder），因為這些通常會首先使用一個預訓練的圖像編碼器
    - 區域：指偵測框(Bounding box)、像素層級: 指對每個像素均預測類別，即Segmentation
- We observe three high-level principles from the current literature
    我們從當前文獻中觀察到三個高層次原則
    - 擴展性：一個好的演算法應該簡單且能夠良好擴展Scaling: a good algorithm should be simple but also scale well
    - 對比性：從SimCLR到CLIP Contrasting: From SimCLR to CLIP
    - 遮蔽性：從BERT到BEiTMasking: From BERT to BEiT

## References and supplements

### References
### Supplements
#### [2023.01。李沐。多模态论文串讲·下【论文精读】](https://www.youtube.com/watch?v=S1le41J76lQ&t=7s) 
 ![image](https://hackmd.io/_uploads/HJ9hma9Sp.png)
