メインコンテンツへスキップ

自己教師あり学習:ラベルなしデータでモデルはどう学ぶか

自己教師あり学習は、コントラスト学習、マスク化モデリング、自己回帰予測などの手法で、ラベルなしのテキスト・画像・音声・動画から自前の監督信号を引き出し、今日の言語・ビジョン・マルチモーダルモデルを支える表現を築きます。
更新 2026年9月9日  · 14 分 読む

AIで探索

ChatGPTClaudePerplexity

どんな機械学習プロジェクトでも、最終的にはラベル付きデータが必要になります。しかし、そのラベリングにかかる時間と費用は、多くのチームが負担しきれません。

100万枚の画像にタグ付けしたり、100万本の音声を文字起こししたりするには、軽く6桁のコストがかかります。一方で、インターネットにはラベルのないテキスト、画像、音声、動画が溢れています。MLチームは使い切れないほどの生データを持っていますが、そのほとんどはモデルの学習に必要なラベルが付いていません。

自己教師あり学習は、ラベリング工程を必要としません。データそのものの構造を学習情報に変換します。人間に画像の内容や文の意味を説明してもらう代わりに、データ自身が解ける課題を用意します——たとえば、単語を隠して、その前後の単語からモデルに推測させる、といった具合です。

本記事では、自己教師あり学習の仕組み、主要な手法、そしてそれが教師あり教師なし半教師あり学習とどう異なるかを解説します。

自己教師あり学習とは?

自己教師あり学習は、誰かが事前に手作業でデータにラベル付けをしなくてもモデルを学習させる方法です。

人が各サンプルにタグを付けるのではなく、データ自体が答え合わせの鍵を持っています。モデルは入力の一部を見て、別の一部を隠し、その穴埋めを試みることで学習します。人間の介入は不要です。

たとえば、文の中の1語を隠し、前後の文脈からそれを推測させます。"The engineer pushed the ___ to the main branch" という文脈からは、誰かが正解を教えなくても、モデルは「code」や「changes」を推測できます。文自体がラベルの役割を果たします。

自己教師あり学習は、2つのカテゴリの間にある不思議な位置づけです。学習の目的は教師あり学習に似ています——明確な入力、明確なターゲット、そして予測の誤差を測る損失関数があります。しかし、そのターゲットは人間が作ったものではないため、一般には教師なし学習に分類されます。生のラベルなしデータを用いる点で共通しているからです。自己教師あり学習は、一方のメカニズム(教師あり)ともう一方のデータ源(教師なし)の両方からアイデアを借りています。

自己教師あり学習はどう機能するのか?

対象データの種類に関係なく、プロセスは繰り返し可能なパターンに従います。手順は以下のとおりです。

  1. ラベルなしデータから始める: テキスト、画像、音声、動画——種類は問いません。大量にあることが重要です。
  2. データ自体から学習課題を作る: これは前処理タスク(pretext task)と呼ばれます。実際に解きたい課題ではなく、モデルに有用なことを学ばせるために設計された作為的な問題です。単語を隠して予測させるのは一例です。
  3. その課題を解くようにモデルを学習させる: モデルは推測し、真の値と照合し、重みを調整します。
  4. 有用な表現を獲得する: 前処理タスクを解く過程で、モデルは文法や文脈、形状、パターンといったデータ構造の内部表現を形成します。
  5. その表現を下流タスクに適用する: 表現を十分に学習したら、実際に解きたい課題に向けます。これが下流タスク(downstream task)です。

前処理タスクはあくまで訓練用の練習問題です。隠された単語を予測するモデルをそのまま運用することはありません。価値は、その過程で得られる表現にあり、それが実際の課題に転移して役立つのです。

自己教師あり学習と他の学習手法の比較

自己教師あり学習を理解する最も簡単な方法は、他の学習パラダイムと重なる点・異なる点を見ることです。

自己教師あり vs. 教師あり学習

教師あり学習は、各入力に対してラベル付きの例が必要です。例えば「dog」とタグ付けされた画像や、「negative」とタグ付けされたレビューなどです。こうしたラベルは誰かが手作業で作らねばならず、コストや時間がかかるため、現実的に使えるデータ量には上限が生まれます。

自己教師あり学習でもモデルは予測すべきターゲットを与えられますが、そのターゲットはデータ自体から生まれます——隠された単語や、シーケンス中の次のトークンなど。学習信号を生成するのに人手によるアノテーションは不要です。

自己教師あり vs. 教師なし学習

どちらもラベルなしデータを扱うため、混同されがちです。違いは目的にあります。

教師なし学習は、特定の予測ターゲットを設定せずに構造を探ります。例えば、似た顧客をクラスタリングしたり、データセットの次元を削減したりします。自己教師あり学習は、データから明示的な予測課題を作り、それを解くようにモデルを訓練します。この予測目的が、ラベルは自己生成であるにもかかわらず、教師あり風の学習ループをもたらします。

自己教師あり vs. 半教師あり学習

半教師あり学習は、少量のラベル付きデータと大量のラベルなしデータを意図的に混ぜ、両方を同時に使ってモデルを改善します。

自己教師ありの事前学習は、開始時点でラベルをまったく必要としません。事前学習はラベルなしデータだけで完結でき、必要に応じて後段でラベル付きデータを使って微調整に移れます。ラベルは、登場するとしても事前学習の「後」に現れます。

  ラベルの要否 学習信号の源 典型的な用途
教師あり 各サンプルに必要 人手で作成したラベル 目的のタスクに直接モデルを学習
教師なし 不要 データ内の構造(クラスタ、パターン) グルーピング、次元削減
半教師あり 一部(ラベルなしと混在) ラベル付き例+ラベルなしデータのパターン ラベルが少ない状況での精度向上
自己教師あり 不要(事前学習) データ自体から作る前処理タスク 下流タスクの微調整前の事前学習

他手法と比べた自己教師あり学習

自己教師あり学習の種類

自己教師ありの手法はいくつかの大きな系統に分けられ、それぞれ異なる種類の前処理タスクを中心に構成されています。

コントラスト学習

コントラスト学習は、関連する例と無関係な例を区別できるようにモデルを訓練します。手作業のラベルで「類似」を定義することなく、類似例の表現を近づけ、非類似例の表現を引き離します。

同じ画像を別々に拡張した2つのバージョンは関連すると見なします。画像とそれに対応するキャプションも関連と見なします。 SimCLRはこの考えを単一モダリティ内で適用し、同一画像の異なるクロップや変換を比較します。 CLIPはモダリティをまたいで適用し、画像をそれを記述するテキストと整合させます。

マスク化モデリング

マスク化モデリングは、入力の一部を隠し、それを復元するようにモデルを訓練します。先ほどの穴埋めの例をより広く適用したものです。

言語では、文中のいくつかの単語を隠し、残りの文脈からそれらを予測するマスク化言語モデルとして現れます。ビジョンでは、画像のパッチを隠し、欠落したピクセルやその潜在表現を復元させるマスク化画像モデリングとして現れます。

自己回帰学習

自己回帰学習は、これまでの情報すべてを使ってシーケンスの次の要素を予測します。文の冒頭が与えられれば次の単語を予測し、その単語が与えられればさらに次を予測する、という具合です。

これは現代の言語モデルの事前学習の背後にある目的です。テキストは左から右へのシーケンスという性質があり、追加の設定なしに巨大なコーパスへスケールしやすいため、自然に適合します。

自己蒸留

自己蒸留は、データ内に隠れた固定の答えではなく、モデル自身の予測をターゲットとしてモデルを訓練します。

一般的な設定では、同じネットワークの2つのバージョン(「生徒」と「教師」)を、同じ入力の異なるビューで動かします。生徒は教師の出力に一致するよう学び、教師は生徒の移動平均としてゆっくり更新されます。 DINOBYOLが代表例です。負例やマスク入力は不要で、ビュー間の一貫性から自己監督をブートストラップします。

大規模言語モデルにおける自己教師あり学習

自己教師ありは大規模言語モデルの事前学習の全工程です。日常的に使っている主要なLLMはすべて、人手のラベルなしに、生のテキスト上の自己教師ありの前処理タスクを解くことで、言語構造、事実、推論パターンを学習しています。

次トークン予測

多くの現代的LLMは次トークン予測で事前学習します。与えられたトークン列に対して、次に来るトークンを予測します。ある位置より前のすべてを読み、続くものを推測し、実際の次トークンと照合して調整します。

これをウェブサイトやコードリポジトリ由来の数兆トークンにわたって行うと、モデルは文法、事実、さらには推論パターンの作業モデルを構築します。前述の自己回帰目的を、そのまま巨大スケールで適用したものです。

マスク化言語モデリング

自己回帰事前学習が主流になる前は、BERTのようなモデルが別の前処理タスクを用いていました。次に来るものを予測するのではなく、文中のランダムなトークンを隠し、両側の文脈からそれを予測します。

双方向の文脈を活用できるため、マスク化言語モデルは、テキスト生成こそしないものの、分類や質問応答といった理解系のタスクに強みを持ちます。

大規模テキストコーパスからの学習

これにはボリュームが不可欠です。事前学習は、ウェブページ、書籍、コードリポジトリ、フォーラムからデータを収集し、フィルタリング・重複排除して、数十億〜数兆トークンのコーパスを作ります。コーパスが大きく多様であるほど、得られる表現はより汎用的になります。

自己教師ありが力を発揮するのは事前学習ですが、そこで終わりではありません。微調整では人手による指示データで指示追従を学び、RLHFやDPOのような選好最適化では、人間の選好のランキングを用いて応答を整えます。これら後段はラベル付きデータを必要とします。自己教師ありの事前学習だけが、ラベルを必要としない段階です。

コンピュータビジョンにおける自己教師あり学習

コンピュータビジョンは、ラベル不足が特に深刻な領域です。バウンディングボックスやセグメンテーションマスクは、テキストに単一のタグを付けるよりはるかに時間がかかるため、自己教師あり手法の価値がとりわけ高くなりました。

コントラスト画像学習は、先述の「引き寄せ・引き離し」の考えをそのまま適用します。同一写真の2つの拡張(クロップやフリップ)を関連としてモデルに認識させつつ、バッチ内の他の画像は無関係として扱います。 SimCLRは画像に適用された有名な例です。

マスク化画像モデリングは、言語の穴埋めをピクセルに適用したものです。画像のパッチを隠し、欠落内容を生ピクセルや学習済み特徴表現として復元するよう訓練します。これはMAE(Masked Autoencoders)の目的です。

画像とテキストのアラインメントは、画像とそれを記述するキャプションを一致させ、共有埋め込み空間で一致ペアを近づけ、不一致ペアを離します。 CLIPが最もよく知られた例であり、ゼロショット分類を可能にする理由の一つです——明示的に学習していないカテゴリでも、画像とテキスト記述を比較するだけで認識できます。

テキストと画像以外での自己教師あり学習

前処理タスクは常にデータの形に従います。したがって、ラベルなしデータが大量にあるところなら、たいてい自己教師ありの課題を設計できます。

音声・オーディオでは、マスク化した音声区間を予測したり、ビジョンモデルが画像のクロップを対比するのと同様に異なるクリップを対比させたりして、文字起こしデータなしでも音声認識などに有用な表現を学びます。

動画では、将来フレームの予測や、同一ソース動画からのクリップのマッチングなどを課題にして、単一画像では得られない動きや時間的構造の理解を与えます。

マルチモーダルモデルは、これらのアイデアを同時に組み合わせ、テキスト、画像、音声、動画を共有表現空間で整合させます。CLIPが画像とテキストを整合させるのと同様の考えを、より多くのデータ型へ拡張します。

自己教師ありは科学・センサーデータでも見られます——ゲノム配列や時系列センサー測定のようなデータでは、信号の一部をマスク・予測することで、そもそも「ラベル付け」を想定していない計測から構造を学習できます。

自己教師ありモデルの下流での使い方

事前学習で得られるのは、前処理タスクを解くのが得意なモデルです。重要なのはそこから先、つまりそれをどう活用するかです。

微調整(ファインチューニング)

微調整は、事前学習済みモデルの全重みを、今度は実際に解きたいタスクのラベル付きデータで継続的に学習させます。モデルはすでにそのドメイン構造を理解しているため、ゼロから学習する場合より、必要なラベル付きデータは大幅に少なくて済むのが一般的です。

リニアプロービング

リニアプロービングは、事前学習済みモデルを完全に固定し、その出力の上に単一の線形層だけを学習します。単純な線形分類器が固定特徴でクラス分離できるなら、事前学習表現は実際の構造を捉えているといえます。そのため、リニアプロービングは、微調整性能とは切り離して表現品質自体を評価する一般的な方法です。

特徴抽出

特徴抽出は、リニアプロービングと同様ですが、線形層すら使いません。固定された表現を取り出し、任意の下流アルゴリズムに入力します。事前学習モデルの役割は良い埋め込みを生成することだけで、その先の処理は任意です。

ゼロショット/フューショットの利用

中には、下流の追加学習なしで使える表現もあります。CLIPは、画像と候補ラベルのテキストを同一空間に埋め込み、画像に最も近いラベルを選ぶことでこれを実現します。フューショット学習は同じ考えに少数のラベル付き例を足すだけで、多くの場合それで十分です。表現がすでに必要な構造の大半を担っているからです。

自己教師あり学習の強みは、再利用可能な表現が得られることです。事前学習は一度だけ行い、その同じコアを、必要なだけ多くの下流タスクに対して、微調整・プロービング・特徴抽出・クエリに使えます。高コストな作業の大半は、タスクごとではなく事前学習時の一度で済みます。

Pythonでの自己教師あり学習

ここでは、ゼロから自己教師ありシステムを構築するのではなく、事前学習済みモデルを使った軽量な例を示します——ワークフローの感触をつかむためです。

all-MiniLM-L6-v2は、sentence-transformersパッケージから利用でき、マスク化言語モデリング目的で事前学習され、その後、文ペアに対するコントラスト目的でさらに学習されています。自己教師ありの部分はすでに完了しており、その結果得られた表現を活用するだけです。

まずは依存関係をインストールしてください:

pip install sentence-transformers scikit-learn

ではコードに進みます:

from sentence_transformers import SentenceTransformer
from sklearn.linear_model import LogisticRegression

# Create unlabeled data
support_tickets = [
    "My order arrived damaged and I need a replacement.",
    "The app crashes every time I try to upload a photo.",
    "I love how fast the checkout process is now.",
    "Can you tell me when my refund will be processed?",
    "The new dashboard layout is so much easier to use.",
    "I can't log in, it keeps saying my password is wrong.",
]

# Load a model pretrained with a self-supervised objective
model = SentenceTransformer("all-MiniLM-L6-v2")

# Obtain learned representations
embeddings = model.encode(support_tickets)
print(embeddings.shape)

Embeddings shape

埋め込みベクトルの形状

この.encode()メソッドは、各チケットを事前学習済みモデルに通し、その意味を表す高密度ベクトルを返します。ここから先は、埋め込みがすでに構造の大半を持っているため、下流タスクに必要なラベル付き例はわずかで済みます。

# Use the representations for a downstream task, 1 = complaint, 0 = positive feedback
labels = [1, 1, 0, 1, 0, 1]

clf = LogisticRegression()
clf.fit(embeddings, labels)

new_ticket = ["The delivery was late and no one responded to my email."]
new_embedding = model.encode(new_ticket)
print(clf.predict(new_embedding))

Logistic regression prediction

ロジスティック回帰の予測

ここでは、6件のラベル付きチケットとLogisticRegression分類器で十分です。主な仕事をしているのは分類器ではなく表現のほうだからです。

自己教師あり学習の利点と限界

ここで、自己教師あり学習の長所と短所を見ていきます。

利点

  1. 手作業ラベルへの依存を減らす: 前処理タスクが自前でターゲットを生成するため、学習可能なデータ量はラベリング予算で頭打ちになりません
  2. 超大規模データセットを活用できる: ウェブ規模のテキストや音声コレクションを、注釈可能なごく小さな部分集合に限らず、学習に使えます
  3. 転移可能な表現を生成する: 1つの事前学習モデルで、微調整、リニアプロービング、特徴抽出、ゼロショット利用など、複数の下流タスクを支援できます
  4. 大規模事前学習を可能にする: これこそが、今日のファウンデーションモデルを実現した原動力です。

限界

  1. 大きな計算資源が必要: インターネット規模のデータでの事前学習には強力なハードウェアと時間が必要で、多くの個別チームの手には負えません
  2. 前処理タスクの設計が重要: 課題の設計が悪いと、どれだけデータを投入しても転移性の低い表現しか得られません
  3. 学習表現がバイアスを継承しうる: 学習データに存在する偏りや欠落、歪みは、事前学習で濾過されないため、そのまま表現に反映されます
  4. 前処理タスクでの好成績が下流成功を保証しない: 前処理タスクをうまく解けても、直接最適化していない特定の下流タスクでは力不足のことがあります

自己教師あり学習が現代AIにとって重要な理由

自己教師あり学習こそが、ファウンデーションモデルを可能にした最大の理由です。

現代モデルが必要とするスケールでの事前学習は、人手ラベルに依存していたら実現不可能でした。誰も、1兆トークンのテキストや10億枚の画像に手作業でラベルを付けたりはしません。自己教師ありは、インターネット規模のコレクションでの事前学習を現実的にし、その単一モデルを幅広い下流タスクに再利用できるようにしました。タスクごとに個別のモデルを学習する必要がなくなったのです。

多数のタスク専用モデルから、汎用の事前学習モデルを多用途に適応させる流れへ——これが現代AIの大きな潮流です。その変化を可能にした仕組みが自己教師あり学習です。

結論

自己教師あり学習は、人間が書いたラベルではなく、ラベルなしデータの構造から監督(教師信号)を生み出します。典型的なパターンは、単語を隠すか、次のトークンを予測することです。データが自問自答し、モデルはその答え合わせを通じて学びます。

主要なアプローチは、この同じ発想をそれぞれ異なる形で発展させています。コントラスト学習は関連例を近づけ、無関連例を遠ざけます。マスク化モデリングは入力の一部を隠し、復元を学習します。自己回帰学習は、それまでの要素から次の要素を予測します。メカニズムは異なっても、「データの構造自体に学習信号を担わせる」という基本原理は同じです。

この原理こそが、皆さんが使っている多くの言語・ビジョン・マルチモーダルモデルの基盤です。LLMは次トークン予測で事前学習され、ビジョンモデルはコントラストやマスクの目的で事前学習され、両者を結びつけるマルチモーダルモデルは画像・テキストのアラインメントで事前学習されます。

LLMをゼロから構築する方法を学びたい場合は、Developing Large Language Models トラックに登録し、PyTorch、Hugging Face、最新のNLPテクニックを実践で確認してください。

FAQs

自己教師あり学習とは何ですか?

自己教師あり学習は、人手で作成したラベルなしにモデルを訓練する方法です。モデルは入力の一部を見て別の一部を隠し、欠けた部分を予測しようとすることで学習します。データ自体が学習信号を供給するため、「自己教師あり(self-supervised)」と呼ばれます。

教師なし学習とどう違いますか?

どちらもラベルなしデータを扱いますが、アプローチが異なります。教師なし学習は、似た顧客をグループ化するように、特定の予測ターゲットなしで構造を探ります。自己教師あり学習は、データから明示的な予測課題を作り、それを解くようにモデルを訓練します。

自己教師あり学習は、なぜ現代AIにとって重要なのですか?

ファウンデーションモデルが可能になった最大の理由です。今日のスケールでの事前学習は、人手ラベルに依存していたら実現不可能です。誰も1兆トークンのテキストに手作業でラベルを付けません。自己教師ありにより、1つの事前学習モデルを、タスクごとに別モデルを学習する代わりに、複数の下流タスクで再利用できます。

前処理タスクと下流タスクの違いは?

前処理タスク(pretext task)は、事前学習中にモデルが解く作為的な問題で、例えば隠した単語の予測です。実際に関心がある課題ではなく、有用な表現を学ばせるのが目的です。下流タスク(downstream task)は、後でその表現を適用する実際の問題で、分類や検索などです。

自己教師あり学習は、ラベルがゼロでも機能しますか?

はい。事前学習自体にはラベルは一切不要です。モデルが表現を学んだ後は、CLIPのゼロショット分類のように、実行時にもラベルを必要としない用途があります。一方で、微調整やフューショット学習のように、後段で少量のラベル付きデータを導入する場合もあります。

トピック
機械学習

DataCampで学ぶ

Courses

scikit-learn による教師あり学習

4時間
300.7K
Pythonでscikit-learnを使って機械学習スキルを伸ばしましょう。 このインタラクティブなコースで実世界のデータセットを使い、強力な予測の作り方を学びましょう!
詳細を見るRight Arrow
コースを開始
もっと見るRight Arrow