stMind

about Tech, Computer vision and Machine learning

Chapter 3.2.3 of Efficient Deep Learning: Self-Supervised Learning

Self-Supervised Learning(SSL)は、pretext taskを解くことで、ラベル付きデータなしに汎用的な表現を獲得する手法。ターゲットタスクに適用するには、SSLでpre-trainingした後に、fine-tuningによりターゲットのラベル空間へのマッピングを学習する。

ラベルなしデータでpre-trainingして、ラベル付きデータでfine-tuningするtwo stepの方法は、NLPでよく使われている。ULMFitのpre-trainingでは与えられたセンテンスにおいて次の単語を予測するタスクを解く。WikiText-103のような大規模コーパス(100 million以上のトークンを含む)を使うことで、IMDbのニクラス分類タスク用にfine-tuningするのは100個のラベルデータだけで十分であった(SSLを使わない場合より、10xほど少ない)。 Pre-trainingの後にfine-tuningを行う方法は、BERTでも使われている。BERTでは、以下の、二つのpretext taskを解いている。

  1. 与えられたセンテンスの15%のトークンをマスクし、マスクしたトークンを予測させる
  2. 二つのセンテンスAとBが与えられ、Aの後にBが続くかどうかを予測する

BERTは、発表当時、9つのNLPタスクでSOTAを記録した。

ビジョン分野では、図に示すようなパッチの相対位置を推測する、また回転角度を予測するようなタスクを解くSSLが提案されている。

f:id:satojkovic:20210801141325p:plain

別の異なる方法として、Contrastive Learningがある。SimCLRでは、同じ画像を異なるように変換した入力の特徴表現の一致度を最大にすることと、異なる画像を変換した入力の特徴表現の一致度を最小にすることを同時に行うことで学習される。この論文では、1%のラベル付きデータで、ResNet50を10%のラベル付きデータで学習したベースラインモデルを超え、Top1-Accで73.9%を達成している。