教師なし学習・半教師あり学習・強化学習

K-Means・階層的クラスタリング・PCA・半教師あり・強化学習の基礎
🔰 初心者

教師なし学習って、正解がないのにどうやって学習するんですか?

🎓 上級者

正解ラベルなしのデータから、隠れたパターンや構造を発見する手法だよ。正解を教えなくても、データの中の規則性やグループを自動で見つけてくれるんだ。

📋 教師なし学習の主なタスク
タスク説明
クラスタリング似たデータをグループ化顧客セグメンテーション、文書分類
次元削減データの特徴量を圧縮可視化、ノイズ除去
異常検知通常と異なるデータを検出不正検知、故障予測
アルゴリズムタスク特徴
k-meansクラスタリングk個のクラスタに分割、シンプル
階層的クラスタリングクラスタリング樹形図(デンドログラム)で可視化
主成分分析(PCA)次元削減分散が大きい方向に射影
t-SNE次元削減高次元データの可視化に強い
MDS(多次元尺度構成法)次元削減データ間の距離関係を保って低次元に配置
🎯 K-Means(K平均法)の詳細
🔰 初心者

K-Meansはどうやってデータをグループ分けするんですか?

🎓 上級者

データをK個のグループ(クラスタ)に自動で分けるアルゴリズムだよ。中心点を置いて、データを近い中心に割り当て、中心を更新する、を繰り返すんだ。

K-Meansの手順

1. K個の中心点をランダムに置く
2. 各データを一番近い中心点のグループに割り当てる
3. 各グループの平均位置を新しい中心点にする
4. 2→3を繰り返す(中心点が動かなくなったら終了)
Kの数は人間が決める(自動では決まらない)。最初の中心点がランダムなので、毎回結果が変わる可能性がある。Kの決め方にはエルボー法などがある。
K-Meansの反復プロセス(K=3の場合) Step 1: 初期化 ランダムに中心を配置 Step 2: 割当 最も近い中心に色分け Step 3: 更新 中心をクラスタ平均へ移動 Step 4: 収束 中心が安定して完了 ✓ 完了 💡 K-Meansのポイント ★ = 中心点(セントロイド) ● = データ点   クラスタ1  クラスタ2  クラスタ3 Step 2〜3 を中心が動かなくなるまで繰り返すことで、最適なクラスタが得られる
図1: K-Meansの反復プロセス ── 初期化→割当→更新→収束
🌳 階層的クラスタリング
🔰 初心者

K-Meansとは違うクラスタリングもあるんですか?

🎓 上級者

似たデータから順に統合していき、木構造(デンドログラム=樹形図)を作るクラスタリング手法だよ。K-Meansと違い、クラスタ数を事前に決めなくてよいのが特徴だね。

階層的クラスタリングの手順(凝集型)

1. 最初は全データが1つずつ独立したクラスタ
2. 最も似ている(距離が近い)2つのクラスタを統合
3. これを繰り返して、最終的に1つのクラスタになるまでまとめる
4. デンドログラムの好きな位置で切ると、その数のクラスタが得られる
切る位置を変えるだけでクラスタ数を調整できる柔軟な手法。
デンドログラム(樹形図)による階層的クラスタリング 距離 0 1 2 3 4 A B C D E カットライン (ここで切る) クラスタ1(A, B, C) クラスタ2(D, E) この高さで切ると 2つのクラスタに
図2: デンドログラム ── カットラインの位置でクラスタ数を調整できる
方法説明
最短距離法(単連結法)最も近い点同士の距離
最長距離法(完全連結法)最も遠い点同士の距離
群平均法全点間の平均距離
ウォード法統合時の分散増加が最小になるように統合。最もよく使われる
⚖️ K-Means vs 階層的クラスタリング 比較

K-Means(非階層的)

クラスタ数を事前に指定が必要
結果はクラスタ割り当てのみ
比較的速い
初期値の影響あり
Kを変えて再実行が必要

階層的クラスタリング

クラスタ数を後から決められる
デンドログラムで構造がわかる
計算コスト
初期値の影響なし
切る位置を変えるだけ

📊 主成分分析(PCA)の詳細
🔰 初心者

主成分分析(PCA)って何をするんですか?

🎓 上級者

たくさんの特徴量(変数)を、少ない数に圧縮(次元削減)する手法だよ。データのばらつき(分散)が一番大きい方向を見つけて、重要な情報をなるべく失わずに圧縮するんだ。

PCAの考え方

データのばらつき(分散)が一番大きい方向第1主成分
第1主成分と直交する方向で次にばらつきが大きい方向 → 第2主成分
重要な方向から順に取り出し、情報をなるべく失わずに次元を減らす。

寄与率

各主成分がデータ全体の何%を説明しているかの指標。データの可視化(高次元→2〜3次元にして図にする)にも使われる。

K-Means主成分分析(PCA)
分類クラスタリング次元削減
目的データをグループに分ける特徴量を少なく圧縮する
人が決めるものクラスタ数K残す主成分の数
出力各データのグループラベル圧縮された新しい特徴量
📍 MDS(多次元尺度構成法)
🔰 初心者

MDSって何ですか?PCAとはどう違うんですか?

🎓 上級者

MDS(Multidimensional Scaling)は、データ間の「距離」や「類似度」の関係をできるだけ保ったまま、低次元の空間に配置する手法だよ。PCAは「分散を最大化」するのに対して、MDSは「元の距離関係を再現する」ことが目的なんだ。

MDS(Multidimensional Scaling / 多次元尺度構成法)

高次元空間でのデータ間の距離(類似度)を計算し、その距離関係をできるだけ保つように低次元(2次元や3次元)に配置する
入力が「データそのもの」ではなく「距離行列」でもよいのが特徴。アンケートの類似度データなど、特徴量がなく距離だけ分かっている場合にも使える。
PCA vs t-SNE vs MDS

PCA:分散が大きい方向に射影。線形変換。全体の構造を保つ
t-SNE:近いデータの関係を重視。非線形。局所構造の可視化に強い
MDS:データ間の距離関係を再現。距離行列から直接使える

PCAt-SNEMDS
目的分散を最大化して次元削減高次元の可視化距離関係を保って次元削減
変換線形非線形非線形も可
入力データ(特徴量)データ(特徴量)距離行列でもOK
重視する情報全体の分散局所的な近さペア間の距離
用途前処理・次元圧縮クラスタの可視化類似度データの可視化
🔀 半教師あり学習(Semi-Supervised Learning)
🔰 初心者

教師あり学習と教師なし学習の中間みたいなものはあるんですか?

🎓 上級者

少量のラベル付きデータと、大量のラベルなしデータを組み合わせて学習する手法があるよ。ラベル付けは人手とコストがかかるから、少ないラベルで高精度を実現できるのが大きなメリットだね。

半教師あり学習の特徴

背景:ラベル付けは高コスト(人手・時間がかかる)
メリット:少ないラベルで高精度を実現
用途:医療画像診断、自然言語処理など

手法説明
自己学習(Self-Training)ラベルなしデータに予測ラベルを付けて再学習
共学習(Co-Training)異なる特徴量で学習した2つのモデルが互いにラベルを付与
グラフベース手法データ間の類似度グラフを利用
🤖 強化学習(Reinforcement Learning)
🔰 初心者

強化学習は教師あり学習とはどう違うんですか?

🎓 上級者

教師あり学習は「正解を教えてもらう」のに対して、強化学習はエージェントが環境と相互作用しながら、報酬を最大化する行動を試行錯誤で学習する手法だよ。ゲームAIやロボット制御で使われているんだ。

要素説明
エージェント(Agent)行動を決定する主体
環境(Environment)エージェントが相互作用する対象
状態(State)環境の現在の状況
行動(Action)エージェントが取る選択肢
報酬(Reward)行動の良し悪しを示すフィードバック
方策(Policy)状態から行動を決める戦略
強化学習のエージェント-環境ループ エージェント (Agent) 方策に基づき行動を決定 環境 (Environment) 状態遷移と報酬を生成 行動 (Action) 状態 (State) 報酬 (Reward) このサイクルを繰り返し、報酬の合計が最大になる方策を学習する
図3: 強化学習の基本ループ ── エージェントが行動し、環境から状態と報酬を受け取る
アルゴリズム特徴
Q学習行動価値関数を学習、オフポリシー型
SARSAオンポリシー型のQ学習
DQN(Deep Q-Network)Q学習にディープラーニングを組み合わせ
方策勾配法方策を直接最適化
強化学習の活用例

・ゲームAI(囲碁のAlphaGo、Atariゲーム)
・ロボット制御
・自動運転
・レコメンデーション

🎯 G検定ポイント