教師あり学習と教師なし学習の違い | 機械学習の種類と特徴 | 機械学習の基礎概念 | 機械学習入門

現在作成中です。今後加筆修正してまいります。
スポンサーリンク
スポンサーリンク

教師あり学習と教師なし学習の違い

教師あり学習とは?

教師あり学習(Supervised Learning)は、入力データに対してその正解ラベル(出力)が与えられた状態でモデルを学習させる手法です。目的は、データから関係を学び、新しいデータに対しても正確な予測を行うことです。入力と出力のペアが訓練データとして提供され、モデルはこの関係性を学習します。

例えば、次のようなモデルの目的関数は教師あり学習の典型的な例です。

Y = f(X) + ε

ここで、X は入力データ、Y は対応する出力(ラベル)、f(X) は未知の関数で、ε は誤差項です。教師あり学習の目的は、データに基づいて f(X) を最適に近似することです。

教師あり学習の具体例

教師あり学習の代表的なアルゴリズムには、次のようなものがあります。

  • 線形回帰: 連続値の出力(例えば、家の価格)を予測するモデル。
  • ロジスティック回帰: 2クラス分類問題に用いられるモデル。例えば、スパムメールかどうかを判定する。
  • サポートベクターマシン(SVM): 高次元空間で分類問題を解くモデル。

教師なし学習とは?

教師なし学習(Unsupervised Learning)は、正解ラベルが存在しないデータに対して、データの構造やパターンを見つける手法です。目的は、データの背後に潜む構造を理解し、クラスタや特徴を自動的に発見することです。ラベルがなくとも、データ間の類似性を活用して、自然なグループ分けを行います。

教師なし学習では、入力データ X のみが与えられ、出力 Y はありません。よって、モデルはデータ間の関係性やパターンを自動的に見つけ出す必要があります。

教師なし学習の具体例

教師なし学習の代表的なアルゴリズムには、次のようなものがあります。

  • k-meansクラスタリング: データを複数のクラスタに分割し、各データ点がどのクラスタに属するかを決定する。
  • 主成分分析(PCA): 高次元データを少ない次元に圧縮し、データの重要な特徴を見つける。
  • 自己組織化マップ(SOM): データを可視化しやすい2次元マップに変換する。

教師あり学習と教師なし学習の数学的違い

教師あり学習では、次のような関数を推定します。

Y = f(X) + ε

ここで、目的は XY の関係をモデル化することです。一方で、教師なし学習では、データのクラスタリングや特徴量抽出のために次のような最適化問題を解きます。

minimize ∑||xi – μk||2

ここで、xi はデータ点、μk は各クラスタの中心です。この式は、データ点がクラスタ中心からどれだけ離れているかを測定し、その距離を最小化することでクラスタを形成します。

教師あり学習と教師なし学習の可視化

次のグラフは、教師あり学習(分類)と教師なし学習(クラスタリング)におけるデータの分布です。

教師あり学習の分類問題のグラフで、データ点は2つのクラスに分類されています。

教師なし学習のクラスタリング結果を示すグラフで、データ点は3つのクラスターに分割されています。

参考:グラフのpythonコード


import matplotlib.pyplot as plt
from sklearn.datasets import make_classification, make_blobs
from sklearn.cluster import KMeans

# 教師あり学習のデータ生成(分類)
X_class, y_class = make_classification(n_samples=100, n_features=2, n_informative=2, n_clusters_per_class=1)
plt.scatter(X_class[:, 0], X_class[:, 1], c=y_class, cmap='viridis')
plt.title("Supervised Learning: Classification")
plt.show()

# 教師なし学習のデータ生成(クラスタリング)
X_unsupervised, _ = make_blobs(n_samples=100, centers=3, n_features=2)
kmeans = KMeans(n_clusters=3)
y_kmeans = kmeans.fit_predict(X_unsupervised)
plt.scatter(X_unsupervised[:, 0], X_unsupervised[:, 1], c=y_kmeans, cmap='viridis')
plt.title("Unsupervised Learning: Clustering")
plt.show()

まとめ

教師あり学習は、入力と正解ラベルのペアを使って学習を行い、将来の予測や分類に役立ちます。一方、教師なし学習は、ラベルのないデータからパターンを見つけ出し、クラスタリングや特徴抽出に使用されます。どちらの手法も機械学習において重要であり、タスクに応じて適切に使い分ける必要があります。

注意点

  • 教師あり学習は正解データが必要なため、データのラベル付けに多大な労力がかかることがあります。
  • 教師なし学習では、結果の解釈が難しいことがあり、結果が必ずしも直感的でない場合があります。
  • アルゴリズムの選択は、データの性質やタスクに依存し、適切なモデル選びが成功の鍵となります。