※画像は生成AIによるイメージです。
PAC学習(Probably Approximately Correct)は、Valiant (1984)が提唱した機械学習の数学的基盤。
入力空間: X
出力空間: Y = {0, 1}(二値分類)
仮説クラス: H(学習者が選べる関数の集合)
真の概念: c ∈ C(学習対象)
分布: D(Xの上の未知の分布)
概念クラスCがPAC学習可能 ⟺
任意の ε, δ > 0 に対して、
多項式時間アルゴリズムAが存在し、
m ≥ poly(1/ε, 1/δ, n, size(c)) 個のサンプルで
P[error(h) ≤ ε] ≥ 1 - δ
ここで error(h) = P_{x~D}[h(x) ≠ c(x)]
精度εと信頼度δを達成するために必要なサンプル数m。
| 仮説クラス | サンプル複雑度 |
|---|---|
| 有限クラス |H| | O((1/ε)(log|H| + log(1/δ))) |
| VC次元d | O((d/ε)log(1/ε) + (1/ε)log(1/δ)) |
真の概念c ∈ H(仮説クラス内)の場合:
定理:
m ≥ (1/ε)(ln|H| + ln(1/δ)) サンプルで
一致仮説(訓練誤差0)は
確率1-δ以上で汎化誤差ε以下
証明アイデア:
- 「悪い」仮説h: error(h) > ε
- P[hがm個すべてに一致] ≤ (1-ε)^m
- Union bound: P[∃悪いhが一致] ≤ |H|(1-ε)^m ≤ δ
c ∉ H の場合でも、H内の最良仮説に近づける:
目標: error(h) ≤ min_{h*∈H} error(h*) + ε
必要サンプル数: O((1/ε²)(log|H| + log(1/δ)))
統計的には学習可能でも計算的に困難な例: