Big Self-Supervised Models are Strong Semi-Supervised Learners (NeurIPS2020)

Balin
6 min readAug 29, 2021

--

Introduction

此篇為 SimCLR 的第二版,兩者概念都相同,跟 NLP 任務一樣會先從 Self-Supervised 的方式得到 General 的 Pretrained presentation 之後再用少量的 Labeled data 做 Supervised fine-tuning,藉此完成 Semi-Supervised learning。

此外也可以透過 distillation 的方式再次利用 unlabeled 的資料,提升最後在 Fine-tuning 任務上的結果。

主要有以下三個步驟:

  1. 使用 ResNet 和 SimCLRv2 做 Unsupervised 的 pretraining
  2. 用部分 Labeled data 做 Supervised fine-tuning
  3. 運用 Unlabeled data 進行在特定任務使用 distillation
灰色虛線為 100% label 的 supervised

然後有幾個透過實驗得出來的結論:

  • 用越大的網路 (deep and wide) 做 self-supervised pretraining 或 fine-tuning 會大幅增加準確度,且越少的 label 效果越明顯。
  • 透過 distillation 的方式做 fine-tuning 可以讓模型適應指定的任務並減少模型大小(或是說減少多餘的參數),同時做第二次的 self-supervised。
  • projection head 的深度也可以改善 representation quality,並提高從 projection head 的 middle layer 做 fine-tuning 的 performance。

Method

與 v1 不同的地方

  • 用了更大的模型進行實驗 (ResNet-50 to ResNet-152 (3+SK))
  • 使用更深的 projection head (2-layer to 3-layer)
  • 使用移動平均 weight 的 memory network 並將其輸出當成 negative examples

Self-supervised pretraining with SimCLRv2

  • 與 v1 一樣的架構對兩個不同 augmentation 的結果透過 ResNet encode 之後再接上 MLP projection head 計算如下的 contrastive loss。

Fine-tuning

  • task-agnostically 到 task-specific 常見的作法,v1 pretrain 完之後是直接把 projection head 丟掉然後在 encode 完的地方 fine-tuning,v2 則是在 projection head 的 middle layer 進行 fine-tuning,就可以直接把他當成特定任務上的 head 來使用。

Self-training / knowledge distillation via unlabeled examples

  • 使用 psudo label(P_T) 計算 cross entropy 達成 distillation,只訓練 student。
  • 下面是 P 的式子,表示 output 的機率比重。
  • 另外前面也可加上 label data 的 loss 進行計算,只是此篇論文並沒有使用
  • 不管用一樣的架構或是更小的架構都可以增加精準度。

Experiment

Bigger Models Are More Label-Efficient

  • 不同 size、label數量的比較表格,可以看到152(3x)和152(2x)參數量差了兩倍但沒有明顯提升,已經接近飽和了。
  • 下圖驗證了不管哪種方式,越大的 model 越能從 label 中提取更好的資訊,實驗中還有用一些不同架構的 model,例如是否使用 selective kernel(SK),證實架構也會直接影響到這些效能。

Bigger/Deeper Projection Heads Improve Representation Learning

  • 比較深的 projection head 效果比較好(下圖a),而 fine-tuning 選用第一層的 projection head 效果比較好(下圖b)。

Distillation Using Unlabeled Data Improves Semi-Supervised Learning

  • Distillation loss 在 Unlabel data 的影響很大。
  • 不管是 Self-distillation 還是用用比較小的 student model 都可以提升準確率。
  • 最後是跟其他方法比較的結果

Reference

[arxiv]

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response