機械学習とその理論 (情報オリンピック2015春合宿講義資料)
- 2. 前置き
これは情報オリンピック2015春合宿講義の資料です
機械学習の概要と理論 (大体PAC学習) の話をします
アニメーションを分割したせいでページ数が多いように
見えますが実際は70枚程度です
画像は以下のサイトのクリエイティブ・コモンズ・ライセンスの
ものを使用しています
http://en.wikipedia.org/
https://www.flickr.com/
http://pictogram2.com/
http://www.publicdomainpictures.net/
- 75. 定式化
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
a1x1 + a2x2 = b
i 番目のナッツについて
大きさ,色 → (x1[i], x2[i])
美味しさ → y[i]
で表す
大きさ → x1
色 → x2 と表すことにする
美味しい → -1
美味しくない → +1 とする
直線の良さ := 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]𝑛
𝑖=1
- 76. 定式化
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
a1x1 + a2x2 = b
i 番目のナッツについて
大きさ,色 → (x1[i], x2[i])
美味しさ → y[i]
で表す
大きさ → x1
色 → x2 と表すことにする
美味しい → -1
美味しくない → +1 とする
直線の良さ := 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]𝑛
𝑖=1
これを最大にするような直線のパラメータ
a1, a2, b を求めたい
- 83. ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
- 84. ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
なるべく
その通りに
分離したい
- 85. ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
なるべく
その通りに
分離したい
一番良い分類器
- 86. ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
なるべく
その通りに
分離したい
一番良い分類器
この一連の
流れを学習とか
訓練と呼ぶ
- 87. ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
なるべく
その通りに
分離したい
一番良い分類器
?
この一連の
流れを学習とか
訓練と呼ぶ
- 117. 学習理論の設定
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
各データは組 (𝒙𝑖, 𝑦𝑖) で
表される
• 𝒙𝑖 は特徴のベクトル
(e.g., 「大きさ」「色」)
• 𝑦𝑖 はラベル
(e.g., 「美味しい or not」)
訓練データ全体を 𝑆,
訓練データの個数を𝑚
とする
𝑆 から
𝑚
- 118. 学習理論の設定
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
各データは組 (𝒙𝑖, 𝑦𝑖) で
表される
• 𝒙𝑖 は特徴のベクトル
(e.g., 「大きさ」「色」)
• 𝑦𝑖 はラベル
(e.g., 「美味しい or not」)
モデルでありうる関数
全体を 𝐻 で表す
(e.g., 線形関数全体)
訓練データ全体を 𝑆,
訓練データの個数を𝑚
とする
𝑆 から
ℎ ∈ 𝐻 を1つ
選ぶ作業
ℎ は分類器
(特徴をラベルに写す関数)
𝑚
- 120. 学習理論の設定
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標分類用の関数
ℎ ∈ 𝐻
分類器 ℎ のデータ (𝒙, 𝑦) に対する誤差を
• ℎ 𝒙 = 𝑦 なら 0 (誤差無し)
• ℎ 𝒙 ≠ 𝑦 なら 1 (誤差有り)
とする.これを 𝑙(ℎ, (𝒙, 𝑦)) と記す
分類器 ℎ の訓練データ 𝑆 に対する誤差を
1
𝑚
𝑙(ℎ, 𝒙𝑖, 𝑦𝒊 )
𝑚
𝑖=1
とする.これを 𝐿 𝑆 ℎ と記す.
- 122. 学習理論の設定
一番良い分類器
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
𝐿 𝑆 ℎ
ℎ ∈ 𝐻
単純に誤差 𝐿 ℎ, 𝑆 が最小な
分類器を選べばよい
(訓練誤差最小化)
argmin
ℎ∈𝐻
𝐿(ℎ, 𝑆)
これを ℎ 𝑆 と記す
- 127. 学習理論の設定
データがやってくる分布を 𝐷 と表す
訓練データの要素 (𝒙𝑖, 𝑦𝑖) は分布 𝐷 に沿って得られるとする
各要素は互いに独立とする
我々は分布 𝐷 を知らないものと
する
分布 𝐷
←これはかなり強い仮定である
がそうしないと解析できないので
ここではそういうもんだということ
にする
- 128. 学習理論の設定
得られた分類器 ℎ 𝑆 の汎化性能を知りたい
→ 新たにデータを分布 𝐷 から持ってきて判定
一番良い分類器
ℎS ∈ 𝐻
分布 𝐷
• データ (𝒙, 𝑦) を分布 𝐷 から新たに取る
• ただしく分類できるかどうか見る
𝐿 𝐷 ℎ 𝑆 = 𝐏(𝑥,𝒚)[ℎ 𝑆 𝒙 = 𝑦]
確率を
取ろう
- 130. まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 特徴とラベルの組
(𝒙, 𝑦) がデータ
• (𝒙, 𝑦) は分布 𝐷 から
得られる(ランダム)
• 分布 𝐷 自体は未知
- 131. まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 𝐻 は前もって定まって
いる
• 訓練誤差 𝐿 𝑆 ℎ を
最小化するような ℎ を
選ぶ
(訓練誤差最小化)
• 特徴とラベルの組
(𝒙, 𝑦) がデータ
• (𝒙, 𝑦) は分布 𝐷 から
得られる(ランダム)
• 分布 𝐷 自体は未知
- 132. まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 𝐻 は前もって定まって
いる
• 訓練誤差 𝐿 𝑆 ℎ を
最小化するような ℎ を
選ぶ
(訓練誤差最小化)
• 特徴とラベルの組
(𝒙, 𝑦) がデータ
• (𝒙, 𝑦) は分布 𝐷 から
得られる(ランダム)
• 分布 𝐷 自体は未知
得られた分類器の
汎化性能が
高ければ勝利
- 133. まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 𝐻 は前もって定まって
いる
• 訓練誤差 𝐿 𝑆 ℎ を
最小化するような ℎ を
選ぶ
(訓練誤差最小化)
• 特徴とラベルの組
(𝒙, 𝑦) がデータ
• (𝒙, 𝑦) は分布 𝐷 から
得られる(ランダム)
• 分布 𝐷 自体は未知
得られた分類器の
汎化性能が
高ければ勝利
モデルとデータ数によって
汎化性能がどの程度変わる
か調べたい
- 138. スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 0.01.
モデルが単純
誤差を0にできる可能性
訓練データはランダムに
得られると仮定していたので
ここに確率が入る
(もし大ハズレなデータが
来たら何もできないので…)
モデルの複雑さと訓練データ
数のバランスを定量的に解析
神の一手
- 139. スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 0.01.
モデルが単純
誤差を0にできる可能性
訓練データはランダムに
得られると仮定していたので
ここに確率が入る
(もし大ハズレなデータが
来たら何もできないので…)
モデルの複雑さと訓練データ
数のバランスを定量的に解析
COOL!!
神の一手
- 141. スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
これってまともなの?
直線全体の集合とかどう考えても無限
(|ℝ|=∞)
たとえば3つの実数で直線を表すときコンピュータ上では double を3つ使うことに
なるけど,それは全体で 64x3 = 192 バイト.つまりたった 2192 個しかない.
コンピュータで表す場合,実数の取りうる値は実質有限
- 142. スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 0.01.これってどれくらい?
→ 𝐻 = 2192 を実際に代入すると約 1万3000.
𝐻 の中身や分布 𝐷 に何も仮定を置いていない
ので最悪ケースの値が出る.
- 143. スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 0.01.
このへんの値は実は正ならなんでも良い
正確には…
- 144. スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が
1
𝜀
log
1
𝛿
𝐻 個
以上あれば確率 1-δ で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 𝜀.
任意のε,δ>0 に対し,
- 148. スタートラインの証明
仮定から 𝐿 𝑆 ℎ 𝑆 = 0 のはず.
汎化誤差を 0 にするような分類器は
訓練誤差も 0 にする.
条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような
分類器 が 𝐻 にある
☠ = 𝐏𝑆[ 𝐿 𝐷 ℎ 𝑆 > 𝜀 ]
☠ ≤ 𝐏𝑆[ ある ℎ ∈ 𝐻 があって,
𝐿 𝐷 ℎ > 𝜀 かつ 𝐿 𝑆 ℎ = 0]
= 𝑃𝑆[ 𝐿 𝑆 ℎ = 0ℎ:𝐿 𝐷 ℎ >𝜀 ]
≤ 𝑃𝑆[𝐿 𝑆 ℎ = 0]ℎ:𝐿 𝐷 ℎ >𝜀
高々 |𝐻| 個の項 これは一体?
↑の考察
言い換え
和集合上界
- 149. スタートラインの証明
ℎ ∈ 𝐻 (𝐿 𝐷 ℎ > 𝜀) を固定して考える
𝐏𝑆 𝐿 𝑆 ℎ = 0
= 𝐏𝑆[全部の 𝑖 で ℎ 𝑥𝑖 = 𝑦𝑖]
= 𝑃𝑥 𝑖,𝑦 𝑖
[ℎ 𝑥𝑖 = 𝑦𝑖]𝑚
𝑖=1
= (1 − 𝐿 𝐷(ℎ))𝑚
𝑖=1
≤ 1 − 𝜀 𝑚
≤ e−𝜀𝑚
一般的なテク
仮定
誤差0 = 全部正解
独立性
汎化誤差の定義
条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような
分類器 が 𝐻 にある
☠ = 𝐏𝑆[ 𝐿 𝐷 ℎ 𝑆 > 𝜀 ]
- 153. PAC学習
これを一般化した概念が PAC 学習である
定義.次のとき 𝐻 は PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
汎化誤差を 0 にするような分類器 が 𝐻 にある場合,
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
汎化誤差を 𝜀 以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 𝜀.
たとえば |𝐻| < ∞ なら 𝐻 はPAC学習可能.
- 154. PAC学習
これを一般化した概念が PAC 学習である
定義.次のとき 𝐻 は PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
汎化誤差を 0 にするような分類器 が 𝐻 にある場合,
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
汎化誤差を 𝜀 以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 𝜀.
たとえば |𝐻| < ∞ なら 𝐻 はPAC学習可能.
- 155. PAC学習
これを一般化した概念が PAC 学習である
定義.次のとき 𝐻 は PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
汎化誤差を 0 にするような分類器 が 𝐻 にある場合,
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
汎化誤差を 𝜀 以下で抑えられる.
𝐿 𝐷 ℎ 𝑆 ≤ 𝜀.
たとえば |𝐻| < ∞ なら 𝐻 はPAC学習可能.
これはかなり強い仮定である.
モデルと実データが完全一致というのは普通は
まず無い.この仮定を外すとどうなるか?
- 156. 不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀.
- 157. 不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀.
神の一手
- 158. 不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀.
神の一手 よりちょっと悪い
- 159. 不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀.
|𝐻| < ∞ のとき 𝐻 は不可知論的PAC学習可能といえるか?
神の一手 よりちょっと悪い
- 160. 不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀.
|𝐻| < ∞ のとき 𝐻 は不可知論的PAC学習可能といえるか?
神の一手 よりちょっと悪い
→いえる (証明略)
- 162. いつでもPAC学習可能?
|𝐻| < ∞ とか雑な仮定で上手くいくなら何でも上手くいきそう?
極端な話,モデルに全く仮定を置かないとどうなるか?
(つまり 𝐻 = なんでもあり)
モデル化を何も考えなくてもいい感じに学習してくれる
全自動学習器があれば楽できて最高!!!
← タダメシのイメージ図
- 163. ノー・フリー・ランチ定理
しかし次のようなことが言えてしまう
つまり 𝐻 に何も仮定を置かないと
どれだけ訓練データを増やしても
精度が上がらない
ノータダ飯
頑張ってモデル化しないとだめ
定義. 𝐻 がすべての関数の集合であるとき,汎化誤差
を 0 にできるような分布 𝐷 があって以下が成り立つ:
どれだけ訓練データ数を増やしても,高い確率で
𝐿 𝐷 ℎ 𝑆 ≥ 1/7.
- 175. 自己紹介
楠本 充 / @ir5
京大情報 (2008-2014)
Preferred Networks 株式会社 (2014-)
映像解析・センサーデータの解析などの研究開発
競プロ歴
ICPC → 引退 (2008-2012)
ICPC ジャッジ (2014-?)
細かいことは http://irreko.cc に