教師なし学習とは?意味・仕組みとラベルなしで学ぶ論文5本(2026年11月時点)
教師なし学習(きょうしなしがくしゅう)
Unsupervised Learning / 教師なし機械学習
教師なし学習とは、正解のラベルが付いていないデータから、似た例のまとまりやデータの中のパターンを見つけるようにモデルを学ばせる機械学習の方式のこと。
要するに
- 代表は似た例をグループに分けるクラスタリングで、次元削減や異常検知にも使う
- 正解がないので、分けたグループの意味を付け、結果を確かめるのは人の役目になる
- 生成AIのモデルはまず教師なしの方法で、学習に使ったデータをまねるように学ぶ
最終確認

ラベルなしで学ぶ論文5本
- DCGAN 論文の解説:画像生成で得た特徴の分類への転用Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
- InfoGAN 論文の解説:潜在変数に意味を持たせる表現学習InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets
- 初代GPT 論文の解説:生成的事前学習から用途別調整への転移Improving Language Understanding by Generative Pre-Training
- MoCo 論文の解説:画像ラベルなしで表現を学ぶキューとモメンタム更新Momentum Contrast for Unsupervised Visual Representation Learning
- Contrieverの原論文を読む 正解付きデータなしで文書を探すTowards Unsupervised Dense Information Retrieval with Contrastive Learning
目次8
ひとことで言うと
教師なし学習(Unsupervised Learning)は、正解のラベルが付いていないデータから、意味のあるまとまりやパターンを見つけるようにモデルを学ばせる機械学習の方式だ。正解を付けたデータで学ぶ教師あり学習と違い、正解を人が用意しない。代表的な手法のクラスタリングでは、グループの種類も人が先に決めない。
Google の用語集は曲をさまざまな性質に基づいてグループに分ける例を挙げている。分けた結果は音楽のおすすめのサービスのような別の機械学習の入力に使える。
仕組み
教師なし学習のいちばん一般的な使い方は、似た例をグループ(クラスタ)に分けるクラスタリングだと Google の用語集は説明している。Google のクラスタリングの講座は、その手順を次の4つにまとめている。
- データを準備する。特徴量(モデルが使う値)を正規化、スケーリング、変換し、準備したデータで例どうしの似ている度合いを正しく計算できるかを確かめる。
- 類似性の指標をつくる。2つの例がどれだけ似ているかを数値にする。そのためにはデータをよく理解する必要がある。
- クラスタリングのアルゴリズムを実行する。講座が扱う k 平均法(k-means)では、まずクラスタの数 k を決め、k 個の中心点(セントロイド)をランダムに選ぶ。各点をいちばん近い中心点に割り当て、クラスタごとに点の平均の位置を新しい中心点にする。点がクラスタを移らなくなるまで、割り当てと計算をくり返す。
- 結果を解釈して調整する。クラスタリングには答え合わせに使える正解がないので、結果が期待と合っているかをクラスタ単位と例の単位で確かめる。結果がおかしければ、前の3つの手順に戻る。
分けたあと、各グループにはクラスタ ID という一意のラベルが付く。Google の用語集によると、すべての例を分けたあとで、各クラスタに意味を付けられる。用語集は、木のデータを分けた結果を人の研究者が見て、クラスタ1に「矮性樹木」、クラスタ2に「大型樹木」とラベルを付ける例を載せている。
クラスタリングのほかにも、教師なし学習にはいくつかの使い方がある。Python の機械学習ライブラリ scikit-learn のユーザーガイド(1.9.1)は、教師なし学習の章に、クラスタリング、主成分分析(PCA)などの行列の分解、多様体学習、外れ値と新規性の検出、密度推定などを並べている。
次元削減はデータを表す次元(特徴の数)を減らすことだ。Google の用語集によると、ふつうはエンベディングのベクトルに変えて減らす。同じ用語集は PCA の例として、数百万件の買い物かごの中身に PCA を当てはめると、レモンが入っているかごには制酸剤も入っていることが多いと分かる、という例を挙げている。
異常検知は外れ値を見つける処理だ。scikit-learn のガイドは、学習データに外れ値がまざっている前提で探す「外れ値の検出」を、教師なしの異常検知とも呼ぶと書いている。学習データに外れ値がなく、新しいデータが外れているかを判定する「新規性の検出」は、半教師ありの異常検知と呼ぶ。
表で見る最新の状況
上の「ラベルなしで学ぶ論文5本」は、TRAIL の研究記事から、教師なし学習をはっきり扱った論文を5本選び、古い順に並べたものだ。論文の中身は2026年11月6日に arXiv の論文のページと OpenAI の発表で確かめた。
DCGAN(2015年11月)の題名は「深い畳み込みの敵対的生成ネットワークによる教師なしの表現学習」だ。論文は、画像の分野で畳み込みネットワーク(CNN)を使った教師あり学習が広く使われるようになったのに比べて、CNN を使った教師なし学習はあまり注目されていなかったと書く。いくつかの画像のデータで学ばせ、物の部分から場面までの表現の階層を学んだと報告した。
InfoGAN(2016年6月)は、完全に教師なしで、分けて扱える表現を学ぶとした。手書き数字のデータ MNIST では、数字の形と書き方を分けた。顔のデータ CelebA では、髪型、眼鏡のあるなし、感情といった見た目の要素を見つけたと報告している。
初代 GPT(2018年6月)の発表の題名は「教師なし学習で言語の理解を高める」だ。OpenAI はまず大量のデータで、言語モデリングを学習の信号にして教師なしの方法で学ばせた。そのあと、ずっと小さい教師ありのデータで用途に合わせて調整した。
MoCo(2019年11月)は、画像の教師なしの表現学習の方法だ。PASCAL VOC や COCO などのデータを使った物体の検出や領域の切り分けの7つの課題で、教師ありの事前学習を上回ることができたと報告している。論文は、この結果から、多くの画像の課題で教師なしと教師ありの表現学習の差がかなり縮まったことがうかがえると書いている。
Contriever(2021年12月)は、文書の検索のモデルを教師なしで学ばせた。論文は、学習用のデータがない新しい分野では、ニューラルネットワークを使う密な検索が、教師なしの BM25 という語の頻度を使う方法に負けることが多いと書く。そのうえで、評価用のデータ群 BEIR の15のデータのうち11で BM25 を上回ったと報告した。
DCGAN、GPT、MoCo、Contriever の4本は、ラベルなしで学んだものを別の課題に移して確かめている。DCGAN は学んだ特徴を新しい課題に使い、GPT はあとから教師ありのデータで調整した。MoCo は物体の検出などの課題に移し、Contriever は数千件の例で追加の学習をすると BM25 と比べて大きくよくなったと報告している。
教師なし学習とほかの学び方の違い
教師あり学習、自己教師あり学習、半教師あり学習の細かい比較は、教師あり学習のページにある。ここでは、教師なし学習から見た違いを表にまとめた。
| 教師なし学習 | 教師あり学習 | 自己教師あり学習 | 強化学習 | |
|---|---|---|---|---|
| 学ぶ材料 | ふつうはラベルのない例 | 正解を含むデータ | ラベルのない例から作った代わりのラベル | 行動に応じた報酬か罰 |
| 何をするか | データの中の意味のあるパターンを見つける | 新しいデータの答えを予測する | 教師なしの問題を教師ありの問題に変えて学ぶ | 報酬を最も多く得るための方策をつくる |
| 例 | クラスタリング、PCA、異常検知 | 迷惑メールの判定、降水量の予測 | BERT などの Transformer ベースのモデルの一部 | ロボットの移動、囲碁の AlphaGo |
自己教師あり学習について、Google の用語集はラベルのない例から代わりのラベルを作り、教師なしの問題を教師ありの問題に変える手法の集まりと説明している。強化学習は、環境の中での行動に応じて報酬か罰を受け取ることで学ぶと Google の入門講座は書いている。
生成モデルとの関係も深い。Google の用語集は「教師なし学習モデルは生成モデルです」と書いている。入門講座も、生成AIのモデルはまず教師なしの方法で、学習に使ったデータをまねるように学ばせると説明する。そのあと、要約や写真の編集のような作業のデータで、教師あり学習や強化学習を使って追加で学ばせることもある。
仕事でどう関係するか
顧客や商品をグループに分けるとき
Google の講座は、クラスタリングがよく使われる場面に市場セグメンテーション、検索結果のグループ化、異常検出などを挙げている。k 平均法では、クラスタの数 k を人が決める必要がある。講座は、k を増やしながら各点から中心点までの距離の合計を損失として記録し、グラフの傾きが最初に急に変わるところの k を選ぶ「エルボー法」を紹介している。分けた結果の意味は人が付けるので、分析を頼むときは、何を手がかりに分けたかと各グループの特徴を説明させる。
添付の顧客データ(購入回数、平均購入額、最後に購入した日からの日数)を、似た顧客どうしのグループに分ける方法を提案してください。
グループの数をいくつにするかの決め方と、各グループの特徴を確かめるときに見るべき数字も書いてください。不正や異常な値を探すとき
Google の用語集は、不正使用や不正行為のように役立つラベルが少ない分野で、クラスタリングがデータの理解に役立つと書いている。異常検知の例として、ある特徴の平均が100で標準偏差が10なら、200という値を疑わしいと判断する例を挙げている。
データを圧縮し、個人を見えにくくするとき
Google の講座によると、クラスタ ID を、そのクラスタの例が持つ多くの特徴の代わりに使えば、保存、処理、学習に必要な資源を減らせる。ユーザー ID の代わりにクラスタ ID だけをモデルに渡すと、一人ひとりの視聴履歴がその人と結び付かなくなり、プライバシーをある程度守れる。そのためには、1つのクラスタに十分な数のユーザーが入っている必要がある。
注意点と限界
正解がないので、結果の良し悪しを決める基準が自動では決まらない。Google の講座は、クラスタリングは教師なしなので結果を確かめるための正解(グラウンドトゥルース)が使えず、品質の評価が複雑になると書いている。ふつう、実際のデータには、はっきり分かれたクラスタはない。
k 平均法には弱点もある。Google の講座は、k を手で選ぶ必要があること、結果が最初の中心点の選び方で変わること、大きさや密度の違うデータを、手法を一般化しないままでは分けにくいことを挙げる。外れ値が中心点を引っぱったり、外れ値だけのクラスタができたりすることもある。
特徴の数が増えると、距離で似ている度合いを測る方法がうまく働かなくなる。Google の講座は、次元が増えるとどの例どうしの距離も同じような値に近づき、k 平均法が例を見分けにくくなると説明している。これを「次元の呪い」と呼び、PCA で次元を減らしてから分ける方法を紹介している。
論文の数字はそれぞれの論文のデータと条件での結果だ。
よくある質問
教師なし学習とは簡単に言うと何か
正解のラベルがないデータから、似たもののグループや、データの中のパターンを見つける機械学習の方式だ。曲を性質に基づいてグループに分ける例や、買い物かごのデータから、レモンが入ったかごには制酸剤も入っていることが多いと分かる例がある。
教師あり学習との違いは何か
教師あり学習は正解のラベルが付いたデータで学び、新しいデータのラベルを予測する。教師なし学習はふつうラベルのないデータでパターンを見つけ、グループの種類も人が先に決めない。Google の講座は、例にラベルが付いていればこの種のグループ分けは分類と呼ぶと書いている。
クラスタリングと分類の違いは何か
分類はあらかじめ決めたカテゴリに当てはめ、クラスタリングはカテゴリを人が決めずにグループを作る。クラスタリングで作ったグループの意味は、人があとから見て名前を付ける。
教師なし学習の結果はどう確かめるのか
正解がないので、人が結果を見て期待と合うかを確かめる。Google の講座は、似ていると考えた例が同じクラスタに入っているかを見ることや、クラスタごとの例の数と中心点からの距離の合計を比べて外れたクラスタを調べることを勧めている。クラスタの結果を別のモデルに使うなら、そのモデルの性能が上がるかも確かめる。
自己教師あり学習は教師なし学習の一種か
Google の用語集は、教師なし学習の一種とは書いていない。ラベルのない例から代わりのラベルを作り、教師なしの問題を教師ありの問題に変える手法の集まりと説明し、自己教師ありトレーニングを半教師あり学習のアプローチの1つとも書いている。BERT などの Transformer ベースのモデルの一部で使われている。
関連する用語
- 機械学習:データからモデルを学ばせて予測や生成に使う方法の全体
- 教師あり学習:正解のラベルを組にした例から学ぶ方式
- 強化学習:行動の結果に返る報酬で学ぶ方式
- エンベディング:文章や画像の意味を数字の並び(ベクトル)で表したもの
- ベクトルデータベース:ベクトルを保存し、意味の近いものを速く探せるようにしたデータベース
- ディープラーニング:層を何段も重ねたニューラルネットワークで学ぶ機械学習の方法
- 研究記事:DCGAN、MoCo、Contriever
出典
- 機械学習の概要Google for Developers
- 機械学習の用語集Google for Developers
- クラスタリングとは(クラスタリングのコース)Google for Developers
- クラスタリング アルゴリズム(クラスタリングのコース)Google for Developers
- クラスタリング ワークフロー(クラスタリングのコース)Google for Developers
- K 平均法クラスタリングとは(クラスタリングのコース)Google for Developers
- 結果の評価(クラスタリングのコース)Google for Developers
- K 平均法のメリットとデメリット(クラスタリングのコース)Google for Developers
- 2. Unsupervised learning(scikit-learn 1.9.1 User Guide)scikit-learn
- 2.3. Clustering(scikit-learn 1.9.1 User Guide)scikit-learn
- 2.5. Decomposing signals in components(scikit-learn 1.9.1 User Guide)scikit-learn
- 2.7. Novelty and Outlier Detection(scikit-learn 1.9.1 User Guide)scikit-learn
- Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks(arXiv:1511.06434)arXiv
- InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets(arXiv:1606.03657)arXiv
- Improving language understanding with unsupervised learningOpenAI
- Momentum Contrast for Unsupervised Visual Representation Learning(arXiv:1911.05722v1)arXiv
- Towards Unsupervised Dense Information Retrieval with Contrastive Learning(arXiv:2112.09118v1)arXiv
- 公開
- 執筆
- TRAIL編集部(編集方針)