JA EN
体系機械学習の基礎
·★ 会員·論文·14分で読めます

自己教師あり学習 — ラベルなしデータが宝になった日

人がラベルを貼らなくても、データは自分で問題を作れる。マスク予測と対照学習という2つの流派を、比喩→InfoNCEの式→動く図→PyTorchコードの順に前提知識ゼロから解説し、LLMの事前学習がなぜ「最大の自己教師あり学習」なのかまでつなげます。

対象textタスクpretraining

A Simple Framework for Contrastive Learning of Visual Representations


ラベルを貼る人が足りない

2010年代の画像認識の進歩は、ImageNetという「人の手で1400万枚規模の写真に名前を付けた」データセットの上に立っていました。猫の写真には「猫」、船には「船」。この地道な作業があって初めて、モデルは「入力 → 正解」の対応を学べます。

ところがこの方式には、はっきりした天井があります。正解ラベルを作れる速度が、そのまま学習に使えるデータ量の上限になるからです。世界中のサーバーには何十億という画像と何兆語というテキストが眠っているのに、そのほとんどには名前が付いていません。医療画像のように専門医しかラベルを付けられない領域では、壁はさらに高くなります。お金を積めば済む話でもありません。専門家の時間そのものが有限だからです。

自己教師あり学習(Self-Supervised Learning, SSL)は、この壁を正面から壊すのではなく回り込む考え方です。人にラベルを付けてもらう代わりに、データ自身の一部を隠して、それを当てる問題を機械が自分で作る。正解は元のデータの中に最初から入っているので、人手はゼロで済みます。

発想自体は昔からありました。しかし2020年前後、自己教師ありで作った表現がラベルを使って学習したものに肩を並べる例が次々に示され、「まず大量の生データで土台を作り、ラベルは最後に少しだけ使う」という順番がAIの標準になりました。倉庫の肥やしだった無印のデータが、そのまま資産に変わった瞬間です。

問題を自分で作る、とは

やっていることは、穴埋めドリルの自作です。

「今日は◯◯に行った」と一語隠せば、正解は隠した「学校」。写真の右半分を隠せば、正解はその右半分そのもの。1枚の写真から違う切り抜きを2枚作れば、「この2枚は元が同じか?」という問題ができます。どれも人間は一切関与していません。

こうして作った問題を口実タスク(pretext task)と呼びます。名前のとおり、これは口実であって目的ではありません。穴埋めが上手いモデルが欲しいのではなく、穴埋めを解こうとする過程で身につく表現(representation)——入力を「意味が近いものは近くに並ぶ」数値ベクトルに変換する能力——のほうが欲しいのです。

比喩を使うなら、筋トレと競技の関係です。スクワットそのものが上手くなりたい人はいませんが、スクワットで付いた脚力はサッカーにもバスケにも効きます。口実タスクがスクワットで、実際に解きたい分類や検索が試合です。この「事前学習で汎用の脚力を付け、後から少量のラベルで競技に合わせる(fine-tuning)」という2段構えが、いまのAIの標準的な作り方です。

裏返すと、口実タスクの設計がすべてを決めます。簡単すぎる問題を選ぶと、モデルは意味を理解せずに近所の色をコピーして満点を取り、何も学びません。適度に難しく、解くには中身の理解が要る問題をどう作るか——自己教師あり学習の歴史は、ほぼこの一点をめぐる試行錯誤です。

大きく2つの流派がある

問題の立て方によって、自己教師あり学習は2系統に分かれます。

予測型(生成型)は、入力の一部を隠して、隠した中身そのものを当てさせます。BERTのマスク単語予測、GPTの次トークン予測、画像のMAEがこれです。「復元できるなら理解しているはずだ」という発想です。

対照型は、中身を当てません。「どれとどれが仲間か」だけを当てさせます。同じ画像から作った2枚のベクトルは近く、別の画像から来たものは遠くなるように配置する。SimCLR、MoCo、CLIPがこの系統です。

どちらも「人が答えを用意しない」点は同じで、違うのは答え合わせの細かさです。予測型はピクセルや単語という細部まで当てさせ、対照型は「仲間かどうか」という粗い判定しか求めません。細かく当てさせるほど得られる情報は多い一方、意味と関係のない細部(背景のノイズ、紙の質感)まで律儀に学ぼうとする無駄も増えます。

対照型の心臓部は、まったく難しくありません。2本のベクトルの近さを内積(正規化すればコサイン類似度)で測り、仲間なら大きく、他人なら小さくなるよう押し引きする。それだけです。

FIG 12本のベクトルの角度と内積の関係。対照学習とは「同じ画像から作った2本」を角度0の側へ、「別画像から来た2本」を直角の側へ押しやり続ける訓練だと思ってよい

対照学習の骨格 — 4行のレシピ

SimCLR(Chen et al., 2020)の手順は4行です。

  1. 1枚の画像 xx にランダムな変形を2回かけ、x~i\tilde{x}_ix~j\tilde{x}_j の2つのビューを作る
  2. エンコーダ ff(例: ResNet)に通して特徴 hh を得る
  3. 小さなMLP(projection head)を通して zz にする
  4. バッチの中で ziz_izjz_j を近づけ、他の画像から来た zz を遠ざける

ここで教師の役目を果たしているのはデータ拡張(augmentation)です。「切り抜きも色味も違うが同じ物体だ」という人間の常識を、変形の種類という形で与えている。だから拡張の選び方が、そのまま「何を同じとみなすか」の定義になります

SimCLRが強調したのは、単独の拡張ではなく組み合わせが決定的だという点でした。とくに切り抜きと色の歪み(color distortion)を両方入れることが効きます。同じ画像から切り出した2枚は色ヒストグラムがほぼ一致するので、色を歪めないと、モデルは形を見ずに色を見比べるだけで正解できてしまう。近道があれば、モデルは必ずその近道を通ります。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. A Simple Framework for Contrastive Learning of Visual Representations. arXiv:2002.05709論文ページ·PDF
  2. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805論文ページ·PDF
  3. Masked Autoencoders Are Scalable Vision Learners. arXiv:2111.06377論文ページ·PDF
  4. Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning. arXiv:2006.07733論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です