自己教師あり学習 — ラベルなしデータが宝になった日
人がラベルを貼らなくても、データは自分で問題を作れる。マスク予測と対照学習という2つの流派を、比喩→InfoNCEの式→動く図→PyTorchコードの順に前提知識ゼロから解説し、LLMの事前学習がなぜ「最大の自己教師あり学習」なのかまでつなげます。
A Simple Framework for Contrastive Learning of Visual Representations
一次資料 — この記事の根拠
この解説の公開 2026-08-27
A Simple Framework for Contrastive Learning of Visual RepresentationsarXiv:2002.05709論文ページ·PDFBERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingarXiv:1810.04805論文ページ·PDF
Masked Autoencoders Are Scalable Vision LearnersarXiv:2111.06377論文ページ·PDF
Bootstrap Your Own Latent: A New Approach to Self-Supervised LearningarXiv:2006.07733論文ページ·PDF
ラベルを貼る人が足りない
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本のベクトルの近さを内積(正規化すればコサイン類似度)で測り、仲間なら大きく、他人なら小さくなるよう押し引きする。それだけです。
対照学習の骨格 — 4行のレシピ
SimCLR(Chen et al., 2020)の手順は4行です。
- 1枚の画像 にランダムな変形を2回かけ、 と の2つのビューを作る
- エンコーダ (例: ResNet)に通して特徴 を得る
- 小さなMLP(projection head)を通して にする
- バッチの中で と を近づけ、他の画像から来た を遠ざける
ここで教師の役目を果たしているのはデータ拡張(augmentation)です。「切り抜きも色味も違うが同じ物体だ」という人間の常識を、変形の種類という形で与えている。だから拡張の選び方が、そのまま「何を同じとみなすか」の定義になります。
コメント
コメントにはログインが必要です