Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
前置き
 これは情報オリンピック2015春合宿講義の資料です
 機械学習の概要と理論 (大体PAC学習) の話をします
 アニメーションを分割したせいでページ数が多いように
見えますが実際は70枚程度です
 画像は以下のサイトのクリエイ...
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
文字認識
紙でアンケート
取りました
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
文字認識
紙でアンケート
取りました
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
文字認識
紙でアンケート
取りました
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
文字認識
自動で集計
したい…
紙でアンケート
取りました
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
スパムフィルター
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
スパムフィルター
おはようございます
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
スパムフィルター
おはようございます
もう寝ます
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
スパムフィルター
おはようございます
@xxxx @yyyy @zzzz @abcdefg
激安サングラス1999円今すぐ購入
もう寝ます
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
スパムフィルター
おはようございます
@xxxx @yyyy @zzzz @abcdefg
激安サングラス1999円今すぐ購入
もう寝ます
!!??
記述しがたいタスク
世の中には厳密に定義するのが難しいタスクがたくさんある
スパムフィルター
おはようございます
@xxxx @yyyy @zzzz @abcdefg
激安サングラス1999円今すぐ購入
もう寝ます
!!?? こういうのは
消し...
記述しがたいタスク
自動化してコンピュータに解かせたい!!!!!
 でもそもそも問題を定義できない
 与えられた画像に書かれた数字が 0 とか 1 であるとは?
 文がスパムであるとは?
@xxxx @yyyy @zzzz @abcdef...
ルールを書くのは辛い
数字とか穴の数とかで判定すれば?
「激安」が含まれていたらスパムでは?
ルールを書くのは辛い
数字とか穴の数とかで判定すれば?
「激安」が含まれていたらスパムでは?
また激安スパムか
ルールを書くのは辛い
数字とか穴の数とかで判定すれば?
「激安」が含まれていたらスパムでは?
穴を閉じてない 同じ数字でも
穴の数違う
また激安スパムか
これはスパムではない
ルールを書くのは辛い
そこは線を太くして穴を塞げば…
ルールを書くのは辛い
そこは線を太くして穴を塞げば…
穴が潰れる
ルールを書くのは辛い
そこは線を太くして穴を塞げば…
このようにタスクを解くために「ルール」を書くのは辛い
 考えても抜け穴が出てくる
人間の認識メカニズムは実はとても複雑
現実のデータは過酷 : ノイズ,様々な環境,…
 それを塞ごう...
ルールを書くのは辛い
そこは線を太くして穴を塞げば…
このようにタスクを解くために「ルール」を書くのは辛い
 考えても抜け穴が出てくる
人間の認識メカニズムは実はとても複雑
現実のデータは過酷 : ノイズ,様々な環境,…
 それを塞ごう...
ルールを書くのは辛い
そこは線を太くして穴を塞げば…
このようにタスクを解くために「ルール」を書くのは辛い
 考えても抜け穴が出てくる
人間の認識メカニズムは実はとても複雑
現実のデータは過酷 : ノイズ,様々な環境,…
 それを塞ごう...
今日のお話
機械学習
 人工知能の分野の一つ
 人間は経験からものごとを学習するが,それを計算機上で
やる,というのがコンセプトらしい
 様々な応用
画像認識,音声認識,
自然言語処理,…
今日はその概要を話します
実践先?
2011年の NASA の機械学習コンテスト(topcoder)
http://www.slideshare.net/ckleclerc/open-
sourceatnasa-fong
実践先?
2011年の NASA の機械学習コンテスト(topcoder)
http://www.slideshare.net/ckleclerc/open-
sourceatnasa-fong
画像に乗り物が映ってるか
判定して精度を競う
実践先?
2011年の NASA の機械学習コンテスト(topcoder)
http://www.slideshare.net/ckleclerc/open-
sourceatnasa-fong
50万円
画像に乗り物が映ってるか
判定して精度...
実践先?
そして最近も…
実践先?
そして最近も…
実践先?
そして最近も…
実践先?
そして最近も…
実践先?
そして最近も…
賞金ゲットのチャンスか!!!!!?????
今日のお話
…ですが今日はそういう話はしません
 機械学習の概要について触れます
 その上でその背後にある理論について述べます
今日のお話
問題を厳密に定義できなくて
困ってるのに理論って
どういうこと?
今日のお話
問題を厳密に定義できなくて
困ってるのに理論って
どういうこと?
厳密に定義できないところは無視,
機械学習の枠組み部分だけを解析する
この話を選んだ理由
JOIをはじめとする競技プログラミングではアルゴリズムや
データ構造など,理論的にしっかりしたものがよく扱われる
 評価しやすいため
 学びやすいため
しかし実用上は最初に述べたような「記述しがたい問題」を
解くことは非...
なお
今回の話は Shalev ら著「Understanding Machine Learning」 を
参考に作っています
 2014年5月出版
 サブタイに「理論からアルゴリズムへ」とある通り
理論から入りそこから実用的なアルゴリズムの...
今日の予定
第1部 入門っぽい話
第2部 理論っぽい話
第1部 入門っぽい話
人間はなぜ認識できるのか
 人間には元々文字を認識する機能がある
生まれた時に文字読める人は居ない
 他人に教えてもらったから
 …
これは数字の 3
80x80のビットマップで
各画素が白と黒です
人間はなぜ認識できるのか
人間はなぜ認識できるのか
人間はなぜ認識できるのか
数字の 3
人間はなぜ認識できるのか
数字の 3 数字の 3
ではない
人間はなぜ認識できるのか
数字の 3 数字の 3
ではない
なるほど~
人間はなぜ認識できるのか
数字の 3 数字の 3
ではない
なるほど~
こういうノリをコンピューターに持ち込んでみよう
機械学習とは
一般的説明: 集められたデータから問題を解くのに必要な特徴
や情報を抽出し,ルールを自動で獲得する手法
データ
機械学習とは
一般的説明: 集められたデータから問題を解くのに必要な特徴
や情報を抽出し,ルールを自動で獲得する手法
データ
なる
ほど
機械学習とは
一般的説明: 集められたデータから問題を解くのに必要な特徴
や情報を抽出し,ルールを自動で獲得する手法
データ
なる
ほど
機械学習とは
一般的説明: 集められたデータから問題を解くのに必要な特徴
や情報を抽出し,ルールを自動で獲得する手法
データ
なる
ほど
これは 3
機械学習とは
一般的説明: 集められたデータから問題を解くのに必要な特徴
や情報を抽出し,ルールを自動で獲得する手法
データ
なる
ほど
これは 3
ルールの獲得
機械学習とは
一般的説明: 集められたデータから問題を解くのに必要な特徴
や情報を抽出し,ルールを自動で獲得する手法
データ
なる
ほど
これは 3
ルールの獲得
? どうすんのこれ?
ナッツ農家から学ぶ機械学習
以下のお話を例に解説
 ナッツをザックザク採れる農家がいる
 なぜか採れたナッツが美味しかったり不味かったりする
 困る
 ナッツが美味しいか不味いか分類器を作りたい
ナッツ農家から学ぶ機械学習
以下のお話を例に解説
 ナッツをザックザク採れる農家がいる
 なぜか採れたナッツが美味しかったり不味かったりする
 困る
 ナッツが美味しいか不味いか分類器を作りたい
助けて
ナッツ農家から学ぶ機械学習
以下のお話を例に解説
 ナッツをザックザク採れる農家がいる
 なぜか採れたナッツが美味しかったり不味かったりする
 困る
 ナッツが美味しいか不味いか分類器を作りたい
助けて
……
ヒントを集める
美味しいかどうかとか知らないし…
ヒントを集める
美味しいかどうかとか知らないし…
ヒントを集めよう
ヒントを集める
美味しいかどうかとか知らないし…
ヒントを集めよう
ヒントを集める
美味しいかどうかとか知らないし…
ヒントを集めよう
小さいやつの方が美味しい気がする
ヒントを集める
美味しいかどうかとか知らないし…
ヒントを集めよう
小さいやつの方が美味しい気がする
色が濃いやつの方が美味しい気がする
ヒントを集める
大きさと色から判断してみよう
美味しいかどうかとか知らないし…
ヒントを集めよう
小さいやつの方が美味しい気がする
色が濃いやつの方が美味しい気がする
データを集める
大きい/小さいとか,色が濃い/薄いとか,どう判断する?
→ 実データを集めて眺めてみよう
データを集める
大きい/小さいとか,色が濃い/薄いとか,どう判断する?
→ 実データを集めて眺めてみよう
大きさ 色 美味しい
1.9 0.6 Yes
1.3 0.4 Yes
1.1 0.5 Yes
0.3 0.9 Yes
4.3 0.5 No...
データを集める
大きい/小さいとか,色が濃い/薄いとか,どう判断する?
→ 実データを集めて眺めてみよう
大きさ 色 美味しい
1.9 0.6 Yes
1.3 0.4 Yes
1.1 0.5 Yes
0.3 0.9 Yes
4.3 0.5 No...
データを集める
大きい/小さいとか,色が濃い/薄いとか,どう判断する?
→ 実データを集めて眺めてみよう
大きさ 色 美味しい
1.9 0.6 Yes
1.3 0.4 Yes
1.1 0.5 Yes
0.3 0.9 Yes
4.3 0.5 No...
直線で分離
曲線とか難しいんでとりあえず直線にしましょう
直線で分離
曲線とか難しいんでとりあえず直線にしましょう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
色
大きさ
美味しい
美味しくない
直線で分離
曲線とか難しいんでとりあえず直線にしましょう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
色
大きさ
美味しい
美味しくない
直線で分離
曲線とか難しいんでとりあえず直線にしましょう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
色
大きさ
美味しい
美味しくない
a×大きさ + b×色 = c
直線で分離
曲線とか難しいんでとりあえず直線にしましょう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
色
大きさ
美味しい
美味しくない
a×大きさ + b×色 = c
i 番目のナッツが
美味しい ⇒ a×...
直線で分離
曲線とか難しいんでとりあえず直線にしましょう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
色
大きさ
美味しい
美味しくない
a×大きさ + b×色 = c
i 番目のナッツが
美味しい ⇒ a×...
直線で分離
曲線とか難しいんでとりあえず直線にしましょう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
色
大きさ
美味しい
美味しくない
a×大きさ + b×色 = c
i 番目のナッツが
美味しい ⇒ a×...
定式化
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
大きさ → x1
色 → x2 と表すことにする
美味しい → -1
美味しくない → +1 とする
定式化
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
i 番目のナッツについて
大きさ,色 → (x1[i], x2[i])
美味しさ → y[i]
で表す
大きさ → x1...
定式化
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...
定式化
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...
定式化
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...
ここまでのまとめ
ここまでのまとめ
データ
ここまでのまとめ
データ
大きさと色
を使おう
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
大きさと色
を使おう
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
大きさと色
を使おう
まっすぐに
分離しよう
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
...
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
...
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
...
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
...
ここまでのまとめ
データ 特徴の取り出し
大きさ 色 美味しい
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
大きさと色
を使おう
まっすぐに
分離しよう
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
...
一番良い分類関数?
…で,実際にどうやって求めんの?
直線の良さ := 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]𝑛
𝑖=1
これを最大にするような直線のパラメータ
a1, a2, b を求めたい
一番良い分類関数?
…で,実際にどうやって求めんの?
 ちょっとややこしい
 普通は必ず説明するんですが準備する時間なかったんで
今回はスキップします
 とりあえずこういうのは求められるという
前提で進めます
直線の良さ := 𝑠𝑖𝑔𝑛 ...
余談:モデル化
モデル化: いままでやったように「現実の対象を便宜上扱い
やすくするために単純に記述する」こと
 たとえばモデル化して考えた分類関数
(直線とか)は分類モデルと呼ばれる
「モデル」は一般的な用語で
自然科学全般で使われる
(e...
残念なお知らせ
データをもっと集めてみたところ…
残念なお知らせ
データをもっと集めてみたところ…
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
残念なお知らせ
データをもっと集めてみたところ…
全然分類できてない!!!
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
モデルを変える
• 直線だと思ってたけど直線じゃなかった
• 折れ線にでもしてみよう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
モデルを変える
• 直線だと思ってたけど直線じゃなかった
• 折れ線にでもしてみよう
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
全部分類できた!!!! 常勝!!!!
※こ...
本当に常勝?
ありがと
う!!!
!!!!
!!!!
x2
x1
できました!!
本当に常勝?
あの分類器
ぶっちゃけ微妙
なんだけど…
~数日後~
ええ?
0.0
0.2
0.4
0.6
0.8
1.0
x2
美味しい
美味しくない
全部分類できてるん
じゃないの?
過学習
そもそもなぜ分類器が必要だったか?
↑このような(見知らぬものを正しく分類する)
能力のことを汎化能力という
今回みたいに手元では精度が高いのに
汎化能力は低いことを過学習という
 過学習は機械学習ではしばしば起こる
✘ 今手元にある...
過学習
過学習が起きる理由
 分類モデルが複雑すぎる
 データが少なすぎる
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
過学習
過学習が起きる理由
 分類モデルが複雑すぎる
 データが少なすぎる
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
過学習
過学習が起きる理由
 分類モデルが複雑すぎる
 データが少なすぎる
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
過学習
過学習が起きる理由
 分類モデルが複雑すぎる
 データが少なすぎる
0.0
0.2
0.4
0.6
0.8
1.0
0.0 2.0 4.0 6.0
x2
x1
美味しい
美味しくない
分類モデルが複雑ということは
考えられる可能性が...
過学習
解決策
モデルの複雑さ 訓練データの個数
良いバランスが重要
過学習
解決策
モデルの複雑さ 訓練データの個数
• 単純すぎると上手くデータに
当てはまらない (高バイアス)
• 複雑すぎると汎化性能が
ダダ落ち (過学習)
良いバランスが重要
• 基本的に多いほど良い
• でもたくさん準備するのは大変
...
余談:鳩も過学習する?
 B.F.スキナーによる実験
 小屋に入れた鳩にランダムな時間間隔(20秒とか)で餌を
あげているとやがて奇妙な行動を取り始める
くるくる回ったり羽根をバタバタさせたり…
https://www.youtube.c...
余談:鳩も過学習する?
なんでこんなことに?
 鳩はなぜ自分が餌をもらえたのか考える
直前の行動のせいでは?と予測
少ない過去の事例から無理に理由付けしようとしている
(過学習?)
 当然ずっとくるくる回っていたりすればそのうち(行動と...
精度の測り方
新しいデータを持ってきてそれで測るのが良い
でも美味しいかどうか
分かってないといけない
訓練用とテスト用に
データを2分割しよう
精度の測り方
新しいデータを持ってきてそれで測るのが良い
でも美味しいかどうか
分かってないといけない
訓練用とテスト用に
データを2分割しよう
データ
訓練用
テスト用
x2
x1
x2
x1
こっちで
訓練して
こっちで
測る
精度の測り方
新しいデータを持ってきてそれで測るのが良い
でも美味しいかどうか
分かってないといけない
訓練用とテスト用に
データを2分割しよう
データ
訓練用
テスト用
x2
x1
x2
x1
こっちで
訓練して
こっちで
測る
精度75%
...
ナッツ農家まとめ
機械学習の一連の流れ
データから必要な特徴の選択と分類のモデルを前もって選び,
しかるべき基準のもとで適切な分類器を選ぶ
過学習
モデルが複雑すぎ / 訓練データが少ないと精度が出ない
交差検定
分類器の精度は訓練データじゃな...
文字認識
…で,ナッツの美味しさ判定してはしゃいでたわけだが
 これで文字認識とかどうやるの?
 基本的なフローは同じ
元画像 何らかの
特徴
x1 x2 数字
1.9 0.6 0
1.3 0.4 8
… … …
画像特有のテクが必要
高次...
補足
ぶっちゃけナッツの例みたいに2次元しかない要素なら
コンピュータなんか使わないで良い
 エクセルでプロットして目視でスパッと分類器を推測すれば
いい
コンピュータが必要な理由
 データが高次元:目視ではまず分析できない
要素の中には...
画像の特徴
 判断するのによく使う特徴は何か?
エッジ(画素値が急激に変わる点)が重要とされている
特に角が重要
 ちょっとした変形をしても特徴があまり変わらないのが良い
平行移動,微妙な回転,ノイズ,…
 様々な研究がされており,...
第2部 理論っぽい話
学習理論
良い分類器を得るためには「学習モデルの複雑さ」と
「訓練データの個数」のバランスが重要だった
 モデルが単純すぎ → データにうまく当てはまらない
 モデルが複雑すぎ → 過学習
データ増やせばなんとでもなるかというと…
アノテー...
学習理論の設定
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
学習理論の設定
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
各データは組 (𝒙𝑖, 𝑦𝑖) で
表される
• 𝒙𝑖 は特徴のベクトル
(e.g., 「大きさ」「色」)
• 𝑦𝑖 はラベル
(e....
学習理論の設定
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
分類用の関数
各データは組 (𝒙𝑖, 𝑦𝑖) で
表される
• 𝒙𝑖 は特徴のベクトル
(e.g., 「大きさ」「色」)
• 𝑦𝑖 はラベル
(e....
学習理論の設定
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標分類用の関数
ℎ ∈ 𝐻
学習理論の設定
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標分類用の関数
ℎ ∈ 𝐻
分類器 ℎ のデータ (𝒙, 𝑦) に対する誤差を
• ℎ 𝒙 = 𝑦 なら 0 (誤差無し)
• ℎ 𝒙 ≠ ...
学習理論の設定
一番良い分類器
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
ℎ ∈ 𝐻
学習理論の設定
一番良い分類器
𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]
𝑛
𝑖=1
良さの指標
𝐿 𝑆 ℎ
ℎ ∈ 𝐻
単純に誤差 𝐿 ℎ, 𝑆 が最小な
分類器を選べばよい
(訓練誤差最小化)
argmin
ℎ∈𝐻...
学習理論の設定
さて,そもそもデータはどこから来るのでしょう?
なんでもあり?
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆
𝑚
良い分類器を作れると期待しているということは
データになんらかの偏り・傾向が...
学習理論の設定
さて,そもそもデータはどこから来るのでしょう?
なんでもあり?
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆
𝑚
良い分類器を作れると期待しているということは
データになんらかの偏り・傾向が...
学習理論の設定
確率分布?
ランダムな振る舞いをする値の現れやすさを表すもの
0
0.2
0.4
0.6
0.8
1
1 2 3 4 5 6
サイコロの目 今日の晩飯
0
0.2
0.4
0.6
0.8
1
うどん カレー 担々麺
学習理論の設定
確率分布?
ランダムな振る舞いをする値の現れやすさを表すもの
0
0.5
1 3
3.23
3.46
3.69
3.92
4.15
4.38
4.61
4.84
幅跳びの成績
連続も
OK
学習理論の設定
データがやってくる分布を 𝐷 と表す
 訓練データの要素 (𝒙𝑖, 𝑦𝑖) は分布 𝐷 に沿って得られるとする
 各要素は互いに独立とする
 我々は分布 𝐷 を知らないものと
する
分布 𝐷
←これはかなり強い仮定である
...
学習理論の設定
得られた分類器 ℎ 𝑆 の汎化性能を知りたい
→ 新たにデータを分布 𝐷 から持ってきて判定
一番良い分類器
ℎS ∈ 𝐻
分布 𝐷
• データ (𝒙, 𝑦) を分布 𝐷 から新たに取る
• ただしく分類できるかどうか見る
𝐿 ...
まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 特徴とラベルの組
(𝒙, 𝑦) がデータ
• (𝒙, 𝑦) は分布 𝐷 から
得られ...
まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 𝐻 は前もって定まって
いる
• 訓練誤差 𝐿 𝑆 ℎ を
最小化するような ℎ を...
まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 𝐻 は前もって定まって
いる
• 訓練誤差 𝐿 𝑆 ℎ を
最小化するような ℎ を...
まとめると
訓練データ
x1 x2 y
1.9 0.6 1
1.3 0.4 1
… … …
𝑆 ℎ 𝑆 ∈ 𝐻
一番良い分類器 汎化性能
𝐿 𝐷(ℎ 𝑆)
• 𝐻 は前もって定まって
いる
• 訓練誤差 𝐿 𝑆 ℎ を
最小化するような ℎ を...
スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を...
スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を...
スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を...
スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を...
スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を...
スタートライン
次のようなことがいえてしまう
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を...
スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
これってまともなの?
直線全体の集合とかどう考えても無限
(|ℝ|=∞)
スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
これってまともなの?
直線全体の集合とかどう考えても無限
(|ℝ|=∞)
たとえば3つの実数で直線を表すときコンピュータ上では dou...
スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99 で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ...
スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個
以上あれば確率 0.99で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ ...
スタートライン
定理.次の条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような分類器 が 𝐻 にある
が成り立つとき,訓練データ数が
1
𝜀
log
1
𝛿
𝐻 個
以上あれば確率 1-δ で汎化誤差を以下で抑えられる.
𝐿 𝐷 ℎ 𝑆...
準備
証明してみる前に準備
(和集合上界) 任意の事象 A, B に対して
𝑃 𝐴 + 𝑃 𝐵 ≥ 𝑃[𝐴 ∪ 𝐵].
(指数関数で抑える一般的なテク)
1 − 𝑥 ≤ 𝑒−𝑥.
準備
証明してみる前に準備
(和集合上界) 任意の事象 A, B に対して
𝑃 𝐴 + 𝑃 𝐵 ≥ 𝑃[𝐴 ∪ 𝐵].
(指数関数で抑える一般的なテク)
1 − 𝑥 ≤ 𝑒−𝑥.
スタートラインの証明
証明してみよう
 要するに大ハズレな訓練データが滅多に来ないことを
言いたい
 訓練データ 𝑆 が大ハズレとは: 𝐿 𝐷 ℎ 𝑆 > 𝜀 なこと
条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような
分類器 が...
スタートラインの証明
仮定から 𝐿 𝑆 ℎ 𝑆 = 0 のはず.
 汎化誤差を 0 にするような分類器は
訓練誤差も 0 にする.
条件:
• 𝐻 が有限集合
• 汎化誤差を 0 にするような
分類器 が 𝐻 にある
☠ = 𝐏𝑆[ 𝐿 𝐷 ...
スタートラインの証明
ℎ ∈ 𝐻 (𝐿 𝐷 ℎ > 𝜀) を固定して考える
𝐏𝑆 𝐿 𝑆 ℎ = 0
= 𝐏𝑆[全部の 𝑖 で ℎ 𝑥𝑖 = 𝑦𝑖]
= 𝑃𝑥 𝑖,𝑦 𝑖
[ℎ 𝑥𝑖 = 𝑦𝑖]𝑚
𝑖=1
= (1 − 𝐿 𝐷(ℎ))𝑚
𝑖=1...
スタートラインの証明
よって
これが δ 以下になるのはどういうときかというと
のとき.両辺の対数を取って整理すると以下を得る.(終)
☠ ≤ 𝑒−𝜀𝑚
ℎ:𝐿 𝐷 ℎ >𝜀 ≤ 𝐻 𝑒−𝜀𝑚
𝐻 𝑒−𝜀𝑚
≤ 𝛿
𝑚 ≥ log(
𝐻
𝛿
)...
キーポイント
で,
何の話だっけ?
キーポイント
モデルを制限したりなんらかの仮定を入れることで,
訓練データ数がこれくらいあったら高確率で汎化性能の高い
分類器を作ることができる,というのが言えた
 これは素晴らしい
 モデルを決めたときにどれくらい訓練データが要るか分かる...
PAC学習
これを一般化した概念が PAC 学習である
定義.次のとき 𝐻 は PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
汎化誤差を 0 にするような分類器 が 𝐻 ...
PAC学習
これを一般化した概念が PAC 学習である
定義.次のとき 𝐻 は PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
汎化誤差を 0 にするような分類器 が 𝐻 ...
PAC学習
これを一般化した概念が PAC 学習である
定義.次のとき 𝐻 は PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
汎化誤差を 0 にするような分類器 が 𝐻 ...
不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿...
不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿...
不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿...
不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿...
不可知論的PAC学習
定義.次のとき 𝐻 は不可知論的 PAC 学習可能という:
関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し
以下が成り立つ:
訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で
𝐿...
いつでもPAC学習可能?
|𝐻| < ∞ とか雑な仮定で上手くいくなら何でも上手くいきそう?
極端な話,モデルに全く仮定を置かないとどうなるか?
(つまり 𝐻 = なんでもあり)
いつでもPAC学習可能?
|𝐻| < ∞ とか雑な仮定で上手くいくなら何でも上手くいきそう?
極端な話,モデルに全く仮定を置かないとどうなるか?
(つまり 𝐻 = なんでもあり)
モデル化を何も考えなくてもいい感じに学習してくれる
全自動学習器...
ノー・フリー・ランチ定理
しかし次のようなことが言えてしまう
 つまり 𝐻 に何も仮定を置かないと
どれだけ訓練データを増やしても
精度が上がらない
 ノータダ飯
 頑張ってモデル化しないとだめ
定義. 𝐻 がすべての関数の集合であるとき...
PAC 学習まとめ
𝐻 有限
なんでも
あり
PAC 学習可能
𝑚 =
1
𝜀
log(
𝐻
𝛿
)
PAC 学習不可能
PAC 学習まとめ
𝐻 有限
なんでも
あり
PAC 学習可能
𝑚 =
1
𝜀
log(
𝐻
𝛿
)
PAC 学習不可能
この間は
どうなってるの?
PAC 学習まとめ
𝐻 有限
なんでも
あり
PAC 学習可能
𝑚 =
1
𝜀
log(
𝐻
𝛿
)
PAC 学習不可能
この間は
どうなってるの?
便利な指標が
ある
VC次元
𝐻 の複雑度を測る VC次元というなんか便利な指標がある
VC次元
𝐻 の複雑度を測る VC次元というなんか便利な指標がある
𝐻の
VC次元
1 2 3 … 𝑑 … ∞
VC次元
𝐻 の複雑度を測る VC次元というなんか便利な指標がある
𝐻の
VC次元
1 2 3 … 𝑑 … ∞
PAC学習
不可能
PAC学習可能
𝑚 =
1
𝜀
(𝑑 + log
1
𝛿
)
VC次元
𝐻 の複雑度を測る VC次元というなんか便利な指標がある
𝐻の
VC次元
1 2 3 … 𝑑 … ∞
PAC学習
不可能
PAC学習可能
𝑚 =
1
𝜀
(𝑑 + log
1
𝛿
)
次元に応じて必要な
訓練データ数が変化
補足
今回しなかった話はいっぱいあります
 学習のアルゴリズムの話を全くしませんでした
普通はアルゴリズムから入ることが多いです
最適化することになりますが大体がNP困難… (◞‸◟)
目的関数を置き換えたり,数値的に解くことが多いです...
補足2
 今回は2値分類だけを扱いましたが他にも色々あります
多値分類,回帰(実数値の予測)
 今回のようにデータにラベルが付いている設定を
「教師あり学習」といいます
教師無し学習:ラベル無しの設定
クラスタリングとかそういう話
まとめ
機械学習の概要と理論の話をなんかした
Appendix
自己紹介
楠本 充 / @ir5
 京大情報 (2008-2014)
 Preferred Networks 株式会社 (2014-)
映像解析・センサーデータの解析などの研究開発
競プロ歴
 ICPC → 引退 (2008-2012)...
機械学習とその理論 (情報オリンピック2015春合宿講義資料)
Upcoming SlideShare
Loading in …5
×

機械学習とその理論 (情報オリンピック2015春合宿講義資料)

17,688 views

Published on

はとぽっぽ

Published in: Education

機械学習とその理論 (情報オリンピック2015春合宿講義資料)

  1. 1. 前置き  これは情報オリンピック2015春合宿講義の資料です  機械学習の概要と理論 (大体PAC学習) の話をします  アニメーションを分割したせいでページ数が多いように 見えますが実際は70枚程度です  画像は以下のサイトのクリエイティブ・コモンズ・ライセンスの ものを使用しています  http://en.wikipedia.org/  https://www.flickr.com/  http://pictogram2.com/  http://www.publicdomainpictures.net/
  2. 2. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある
  3. 3. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある 文字認識 紙でアンケート 取りました
  4. 4. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある 文字認識 紙でアンケート 取りました
  5. 5. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある 文字認識 紙でアンケート 取りました
  6. 6. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある 文字認識 自動で集計 したい… 紙でアンケート 取りました
  7. 7. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある スパムフィルター
  8. 8. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある スパムフィルター おはようございます
  9. 9. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある スパムフィルター おはようございます もう寝ます
  10. 10. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある スパムフィルター おはようございます @xxxx @yyyy @zzzz @abcdefg 激安サングラス1999円今すぐ購入 もう寝ます
  11. 11. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある スパムフィルター おはようございます @xxxx @yyyy @zzzz @abcdefg 激安サングラス1999円今すぐ購入 もう寝ます !!??
  12. 12. 記述しがたいタスク 世の中には厳密に定義するのが難しいタスクがたくさんある スパムフィルター おはようございます @xxxx @yyyy @zzzz @abcdefg 激安サングラス1999円今すぐ購入 もう寝ます !!?? こういうのは 消し去りたい!!!
  13. 13. 記述しがたいタスク 自動化してコンピュータに解かせたい!!!!!  でもそもそも問題を定義できない  与えられた画像に書かれた数字が 0 とか 1 であるとは?  文がスパムであるとは? @xxxx @yyyy @zzzz @abcdefg 激安サングラス1999円今すぐ購入
  14. 14. ルールを書くのは辛い 数字とか穴の数とかで判定すれば? 「激安」が含まれていたらスパムでは?
  15. 15. ルールを書くのは辛い 数字とか穴の数とかで判定すれば? 「激安」が含まれていたらスパムでは? また激安スパムか
  16. 16. ルールを書くのは辛い 数字とか穴の数とかで判定すれば? 「激安」が含まれていたらスパムでは? 穴を閉じてない 同じ数字でも 穴の数違う また激安スパムか これはスパムではない
  17. 17. ルールを書くのは辛い そこは線を太くして穴を塞げば…
  18. 18. ルールを書くのは辛い そこは線を太くして穴を塞げば… 穴が潰れる
  19. 19. ルールを書くのは辛い そこは線を太くして穴を塞げば… このようにタスクを解くために「ルール」を書くのは辛い  考えても抜け穴が出てくる 人間の認識メカニズムは実はとても複雑 現実のデータは過酷 : ノイズ,様々な環境,…  それを塞ごうとしてどんどん複雑化 穴が潰れる
  20. 20. ルールを書くのは辛い そこは線を太くして穴を塞げば… このようにタスクを解くために「ルール」を書くのは辛い  考えても抜け穴が出てくる 人間の認識メカニズムは実はとても複雑 現実のデータは過酷 : ノイズ,様々な環境,…  それを塞ごうとしてどんどん複雑化 我々は激安サングラスの恐怖に怯えるしかないのか??? 穴が潰れる
  21. 21. ルールを書くのは辛い そこは線を太くして穴を塞げば… このようにタスクを解くために「ルール」を書くのは辛い  考えても抜け穴が出てくる 人間の認識メカニズムは実はとても複雑 現実のデータは過酷 : ノイズ,様々な環境,…  それを塞ごうとしてどんどん複雑化 我々は激安サングラスの恐怖に怯えるしかないのか??? 穴が潰れる 機械学習!!!!!!!!!
  22. 22. 今日のお話 機械学習  人工知能の分野の一つ  人間は経験からものごとを学習するが,それを計算機上で やる,というのがコンセプトらしい  様々な応用 画像認識,音声認識, 自然言語処理,… 今日はその概要を話します
  23. 23. 実践先? 2011年の NASA の機械学習コンテスト(topcoder) http://www.slideshare.net/ckleclerc/open- sourceatnasa-fong
  24. 24. 実践先? 2011年の NASA の機械学習コンテスト(topcoder) http://www.slideshare.net/ckleclerc/open- sourceatnasa-fong 画像に乗り物が映ってるか 判定して精度を競う
  25. 25. 実践先? 2011年の NASA の機械学習コンテスト(topcoder) http://www.slideshare.net/ckleclerc/open- sourceatnasa-fong 50万円 画像に乗り物が映ってるか 判定して精度を競う
  26. 26. 実践先? そして最近も…
  27. 27. 実践先? そして最近も…
  28. 28. 実践先? そして最近も…
  29. 29. 実践先? そして最近も…
  30. 30. 実践先? そして最近も… 賞金ゲットのチャンスか!!!!!?????
  31. 31. 今日のお話 …ですが今日はそういう話はしません  機械学習の概要について触れます  その上でその背後にある理論について述べます
  32. 32. 今日のお話 問題を厳密に定義できなくて 困ってるのに理論って どういうこと?
  33. 33. 今日のお話 問題を厳密に定義できなくて 困ってるのに理論って どういうこと? 厳密に定義できないところは無視, 機械学習の枠組み部分だけを解析する
  34. 34. この話を選んだ理由 JOIをはじめとする競技プログラミングではアルゴリズムや データ構造など,理論的にしっかりしたものがよく扱われる  評価しやすいため  学びやすいため しかし実用上は最初に述べたような「記述しがたい問題」を 解くことは非常に重要… そこで  ふわっとした問題は理論が好きな人には扱いにくく見えるが, 実はその解き方には理論がある 何らかの形で興味を持ってもらえると幸い
  35. 35. なお 今回の話は Shalev ら著「Understanding Machine Learning」 を 参考に作っています  2014年5月出版  サブタイに「理論からアルゴリズムへ」とある通り 理論から入りそこから実用的なアルゴリズムの話に入る
  36. 36. 今日の予定 第1部 入門っぽい話 第2部 理論っぽい話
  37. 37. 第1部 入門っぽい話
  38. 38. 人間はなぜ認識できるのか  人間には元々文字を認識する機能がある 生まれた時に文字読める人は居ない  他人に教えてもらったから  … これは数字の 3 80x80のビットマップで 各画素が白と黒です
  39. 39. 人間はなぜ認識できるのか
  40. 40. 人間はなぜ認識できるのか
  41. 41. 人間はなぜ認識できるのか 数字の 3
  42. 42. 人間はなぜ認識できるのか 数字の 3 数字の 3 ではない
  43. 43. 人間はなぜ認識できるのか 数字の 3 数字の 3 ではない なるほど~
  44. 44. 人間はなぜ認識できるのか 数字の 3 数字の 3 ではない なるほど~ こういうノリをコンピューターに持ち込んでみよう
  45. 45. 機械学習とは 一般的説明: 集められたデータから問題を解くのに必要な特徴 や情報を抽出し,ルールを自動で獲得する手法 データ
  46. 46. 機械学習とは 一般的説明: 集められたデータから問題を解くのに必要な特徴 や情報を抽出し,ルールを自動で獲得する手法 データ なる ほど
  47. 47. 機械学習とは 一般的説明: 集められたデータから問題を解くのに必要な特徴 や情報を抽出し,ルールを自動で獲得する手法 データ なる ほど
  48. 48. 機械学習とは 一般的説明: 集められたデータから問題を解くのに必要な特徴 や情報を抽出し,ルールを自動で獲得する手法 データ なる ほど これは 3
  49. 49. 機械学習とは 一般的説明: 集められたデータから問題を解くのに必要な特徴 や情報を抽出し,ルールを自動で獲得する手法 データ なる ほど これは 3 ルールの獲得
  50. 50. 機械学習とは 一般的説明: 集められたデータから問題を解くのに必要な特徴 や情報を抽出し,ルールを自動で獲得する手法 データ なる ほど これは 3 ルールの獲得 ? どうすんのこれ?
  51. 51. ナッツ農家から学ぶ機械学習 以下のお話を例に解説  ナッツをザックザク採れる農家がいる  なぜか採れたナッツが美味しかったり不味かったりする  困る  ナッツが美味しいか不味いか分類器を作りたい
  52. 52. ナッツ農家から学ぶ機械学習 以下のお話を例に解説  ナッツをザックザク採れる農家がいる  なぜか採れたナッツが美味しかったり不味かったりする  困る  ナッツが美味しいか不味いか分類器を作りたい 助けて
  53. 53. ナッツ農家から学ぶ機械学習 以下のお話を例に解説  ナッツをザックザク採れる農家がいる  なぜか採れたナッツが美味しかったり不味かったりする  困る  ナッツが美味しいか不味いか分類器を作りたい 助けて ……
  54. 54. ヒントを集める 美味しいかどうかとか知らないし…
  55. 55. ヒントを集める 美味しいかどうかとか知らないし… ヒントを集めよう
  56. 56. ヒントを集める 美味しいかどうかとか知らないし… ヒントを集めよう
  57. 57. ヒントを集める 美味しいかどうかとか知らないし… ヒントを集めよう 小さいやつの方が美味しい気がする
  58. 58. ヒントを集める 美味しいかどうかとか知らないし… ヒントを集めよう 小さいやつの方が美味しい気がする 色が濃いやつの方が美味しい気がする
  59. 59. ヒントを集める 大きさと色から判断してみよう 美味しいかどうかとか知らないし… ヒントを集めよう 小さいやつの方が美味しい気がする 色が濃いやつの方が美味しい気がする
  60. 60. データを集める 大きい/小さいとか,色が濃い/薄いとか,どう判断する? → 実データを集めて眺めてみよう
  61. 61. データを集める 大きい/小さいとか,色が濃い/薄いとか,どう判断する? → 実データを集めて眺めてみよう 大きさ 色 美味しい 1.9 0.6 Yes 1.3 0.4 Yes 1.1 0.5 Yes 0.3 0.9 Yes 4.3 0.5 No 2.2 0.3 No 1.3 0.9 No 1.2 0.8 No
  62. 62. データを集める 大きい/小さいとか,色が濃い/薄いとか,どう判断する? → 実データを集めて眺めてみよう 大きさ 色 美味しい 1.9 0.6 Yes 1.3 0.4 Yes 1.1 0.5 Yes 0.3 0.9 Yes 4.3 0.5 No 2.2 0.3 No 1.3 0.9 No 1.2 0.8 No 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない
  63. 63. データを集める 大きい/小さいとか,色が濃い/薄いとか,どう判断する? → 実データを集めて眺めてみよう 大きさ 色 美味しい 1.9 0.6 Yes 1.3 0.4 Yes 1.1 0.5 Yes 0.3 0.9 Yes 4.3 0.5 No 2.2 0.3 No 1.3 0.9 No 1.2 0.8 No 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない このへんで 分かれそう???
  64. 64. 直線で分離 曲線とか難しいんでとりあえず直線にしましょう
  65. 65. 直線で分離 曲線とか難しいんでとりあえず直線にしましょう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない
  66. 66. 直線で分離 曲線とか難しいんでとりあえず直線にしましょう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない
  67. 67. 直線で分離 曲線とか難しいんでとりあえず直線にしましょう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない a×大きさ + b×色 = c
  68. 68. 直線で分離 曲線とか難しいんでとりあえず直線にしましょう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない a×大きさ + b×色 = c i 番目のナッツが 美味しい ⇒ a×大きさ[i] + b×色[i] < c 美味しくない ⇒ a×大きさ[i] + b×色[i] > c みたいになってほしい
  69. 69. 直線で分離 曲線とか難しいんでとりあえず直線にしましょう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない a×大きさ + b×色 = c i 番目のナッツが 美味しい ⇒ a×大きさ[i] + b×色[i] < c 美味しくない ⇒ a×大きさ[i] + b×色[i] > c みたいになってほしい
  70. 70. 直線で分離 曲線とか難しいんでとりあえず直線にしましょう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 色 大きさ 美味しい 美味しくない a×大きさ + b×色 = c i 番目のナッツが 美味しい ⇒ a×大きさ[i] + b×色[i] < c 美味しくない ⇒ a×大きさ[i] + b×色[i] > c みたいになってほしい が, ならないやつがいる… 出来るだけ多くのナッツを 分類できればいいことにしよう
  71. 71. 定式化 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない 大きさ → x1 色 → x2 と表すことにする 美味しい → -1 美味しくない → +1 とする
  72. 72. 定式化 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない i 番目のナッツについて 大きさ,色 → (x1[i], x2[i]) 美味しさ → y[i] で表す 大きさ → x1 色 → x2 と表すことにする 美味しい → -1 美味しくない → +1 とする
  73. 73. 定式化 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 とする
  74. 74. 定式化 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
  75. 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 これを最大にするような直線のパラメータ a1, a2, b を求めたい
  76. 76. ここまでのまとめ
  77. 77. ここまでのまとめ データ
  78. 78. ここまでのまとめ データ 大きさと色 を使おう
  79. 79. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 大きさと色 を使おう
  80. 80. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 大きさと色 を使おう まっすぐに 分離しよう
  81. 81. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 大きさと色 を使おう まっすぐに 分離しよう
  82. 82. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 大きさと色 を使おう まっすぐに 分離しよう 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標
  83. 83. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 大きさと色 を使おう まっすぐに 分離しよう 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標 なるべく その通りに 分離したい
  84. 84. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 大きさと色 を使おう まっすぐに 分離しよう 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標 なるべく その通りに 分離したい 一番良い分類器
  85. 85. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 大きさと色 を使おう まっすぐに 分離しよう 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標 なるべく その通りに 分離したい 一番良い分類器 この一連の 流れを学習とか 訓練と呼ぶ
  86. 86. ここまでのまとめ データ 特徴の取り出し 大きさ 色 美味しい 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 大きさと色 を使おう まっすぐに 分離しよう 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標 なるべく その通りに 分離したい 一番良い分類器 ? この一連の 流れを学習とか 訓練と呼ぶ
  87. 87. 一番良い分類関数? …で,実際にどうやって求めんの? 直線の良さ := 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]𝑛 𝑖=1 これを最大にするような直線のパラメータ a1, a2, b を求めたい
  88. 88. 一番良い分類関数? …で,実際にどうやって求めんの?  ちょっとややこしい  普通は必ず説明するんですが準備する時間なかったんで 今回はスキップします  とりあえずこういうのは求められるという 前提で進めます 直線の良さ := 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖]𝑛 𝑖=1 これを最大にするような直線のパラメータ a1, a2, b を求めたい
  89. 89. 余談:モデル化 モデル化: いままでやったように「現実の対象を便宜上扱い やすくするために単純に記述する」こと  たとえばモデル化して考えた分類関数 (直線とか)は分類モデルと呼ばれる 「モデル」は一般的な用語で 自然科学全般で使われる (e.g. 数理モデル) 大きさと色 を使おう まっすぐに 分離しよう なるべく その通りに 分離したい
  90. 90. 残念なお知らせ データをもっと集めてみたところ…
  91. 91. 残念なお知らせ データをもっと集めてみたところ… 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない
  92. 92. 残念なお知らせ データをもっと集めてみたところ… 全然分類できてない!!! 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない
  93. 93. モデルを変える • 直線だと思ってたけど直線じゃなかった • 折れ線にでもしてみよう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない
  94. 94. モデルを変える • 直線だと思ってたけど直線じゃなかった • 折れ線にでもしてみよう 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない 全部分類できた!!!! 常勝!!!! ※ここでもこういう折れ線 をどうやって求めてるかは とりあえず置いておきます
  95. 95. 本当に常勝? ありがと う!!! !!!! !!!! x2 x1 できました!!
  96. 96. 本当に常勝? あの分類器 ぶっちゃけ微妙 なんだけど… ~数日後~ ええ? 0.0 0.2 0.4 0.6 0.8 1.0 x2 美味しい 美味しくない 全部分類できてるん じゃないの?
  97. 97. 過学習 そもそもなぜ分類器が必要だったか? ↑このような(見知らぬものを正しく分類する) 能力のことを汎化能力という 今回みたいに手元では精度が高いのに 汎化能力は低いことを過学習という  過学習は機械学習ではしばしば起こる ✘ 今手元にあるナッツを(美味しさで)分類するため • すでにわかってるものを分類してどうする? ✔ 見知らぬナッツを(美味しさで)分類するため
  98. 98. 過学習 過学習が起きる理由  分類モデルが複雑すぎる  データが少なすぎる 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない
  99. 99. 過学習 過学習が起きる理由  分類モデルが複雑すぎる  データが少なすぎる 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない
  100. 100. 過学習 過学習が起きる理由  分類モデルが複雑すぎる  データが少なすぎる 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない
  101. 101. 過学習 過学習が起きる理由  分類モデルが複雑すぎる  データが少なすぎる 0.0 0.2 0.4 0.6 0.8 1.0 0.0 2.0 4.0 6.0 x2 x1 美味しい 美味しくない 分類モデルが複雑ということは 考えられる可能性がたくさんある ということ → データがたくさん無ければまとも なものに定めることができない
  102. 102. 過学習 解決策 モデルの複雑さ 訓練データの個数 良いバランスが重要
  103. 103. 過学習 解決策 モデルの複雑さ 訓練データの個数 • 単純すぎると上手くデータに 当てはまらない (高バイアス) • 複雑すぎると汎化性能が ダダ落ち (過学習) 良いバランスが重要 • 基本的に多いほど良い • でもたくさん準備するのは大変 このような作業を「データ アノテーション」と言う.
  104. 104. 余談:鳩も過学習する?  B.F.スキナーによる実験  小屋に入れた鳩にランダムな時間間隔(20秒とか)で餌を あげているとやがて奇妙な行動を取り始める くるくる回ったり羽根をバタバタさせたり… https://www.youtube.com/ watch?v=TtfQlkGwE2U 餌入れ
  105. 105. 余談:鳩も過学習する? なんでこんなことに?  鳩はなぜ自分が餌をもらえたのか考える 直前の行動のせいでは?と予測 少ない過去の事例から無理に理由付けしようとしている (過学習?)  当然ずっとくるくる回っていたりすればそのうち(行動とは 無関係に)餌はもらえる それを自分の行動のせいだと勘違い 鳩の変な行動がさらに強化され,以降ずっと続く
  106. 106. 精度の測り方 新しいデータを持ってきてそれで測るのが良い でも美味しいかどうか 分かってないといけない 訓練用とテスト用に データを2分割しよう
  107. 107. 精度の測り方 新しいデータを持ってきてそれで測るのが良い でも美味しいかどうか 分かってないといけない 訓練用とテスト用に データを2分割しよう データ 訓練用 テスト用 x2 x1 x2 x1 こっちで 訓練して こっちで 測る
  108. 108. 精度の測り方 新しいデータを持ってきてそれで測るのが良い でも美味しいかどうか 分かってないといけない 訓練用とテスト用に データを2分割しよう データ 訓練用 テスト用 x2 x1 x2 x1 こっちで 訓練して こっちで 測る 精度75% こういうのを交差検定といいます
  109. 109. ナッツ農家まとめ 機械学習の一連の流れ データから必要な特徴の選択と分類のモデルを前もって選び, しかるべき基準のもとで適切な分類器を選ぶ 過学習 モデルが複雑すぎ / 訓練データが少ないと精度が出ない 交差検定 分類器の精度は訓練データじゃなくてテストデータで測ろう パラメータの最適化
  110. 110. 文字認識 …で,ナッツの美味しさ判定してはしゃいでたわけだが  これで文字認識とかどうやるの?  基本的なフローは同じ 元画像 何らかの 特徴 x1 x2 数字 1.9 0.6 0 1.3 0.4 8 … … … 画像特有のテクが必要 高次元になることが多い (数百~数千) x2 x1 学習 高次元な大量の 訓練データを捌くため 高速なアルゴリズムが必要
  111. 111. 補足 ぶっちゃけナッツの例みたいに2次元しかない要素なら コンピュータなんか使わないで良い  エクセルでプロットして目視でスパッと分類器を推測すれば いい コンピュータが必要な理由  データが高次元:目視ではまず分析できない 要素の中には役に立つものもあれば役に立たないものも ある.そういったものを自動で取り出したりふるい落とした りしてくれるのが強い  データが大量:高速な手法が必要 これはコンピュータが無ければできないこと
  112. 112. 画像の特徴  判断するのによく使う特徴は何か? エッジ(画素値が急激に変わる点)が重要とされている 特に角が重要  ちょっとした変形をしても特徴があまり変わらないのが良い 平行移動,微妙な回転,ノイズ,…  様々な研究がされており,どのような特徴が良いかは色々 知られている
  113. 113. 第2部 理論っぽい話
  114. 114. 学習理論 良い分類器を得るためには「学習モデルの複雑さ」と 「訓練データの個数」のバランスが重要だった  モデルが単純すぎ → データにうまく当てはまらない  モデルが複雑すぎ → 過学習 データ増やせばなんとでもなるかというと… アノテーションは苦痛!!!!! たすけて学習理論: このバランスを数学的に 調べる分野
  115. 115. 学習理論の設定 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数
  116. 116. 学習理論の設定 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 各データは組 (𝒙𝑖, 𝑦𝑖) で 表される • 𝒙𝑖 は特徴のベクトル (e.g., 「大きさ」「色」) • 𝑦𝑖 はラベル (e.g., 「美味しい or not」) 訓練データ全体を 𝑆, 訓練データの個数を𝑚 とする 𝑆 から 𝑚
  117. 117. 学習理論の設定 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 分類用の関数 各データは組 (𝒙𝑖, 𝑦𝑖) で 表される • 𝒙𝑖 は特徴のベクトル (e.g., 「大きさ」「色」) • 𝑦𝑖 はラベル (e.g., 「美味しい or not」) モデルでありうる関数 全体を 𝐻 で表す (e.g., 線形関数全体) 訓練データ全体を 𝑆, 訓練データの個数を𝑚 とする 𝑆 から ℎ ∈ 𝐻 を1つ 選ぶ作業 ℎ は分類器 (特徴をラベルに写す関数) 𝑚
  118. 118. 学習理論の設定 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標分類用の関数 ℎ ∈ 𝐻
  119. 119. 学習理論の設定 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標分類用の関数 ℎ ∈ 𝐻 分類器 ℎ のデータ (𝒙, 𝑦) に対する誤差を • ℎ 𝒙 = 𝑦 なら 0 (誤差無し) • ℎ 𝒙 ≠ 𝑦 なら 1 (誤差有り) とする.これを 𝑙(ℎ, (𝒙, 𝑦)) と記す 分類器 ℎ の訓練データ 𝑆 に対する誤差を 1 𝑚 𝑙(ℎ, 𝒙𝑖, 𝑦𝒊 ) 𝑚 𝑖=1 とする.これを 𝐿 𝑆 ℎ と記す.
  120. 120. 学習理論の設定 一番良い分類器 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標 ℎ ∈ 𝐻
  121. 121. 学習理論の設定 一番良い分類器 𝑠𝑖𝑔𝑛 𝑎1 𝑥1 𝑖 + 𝑎2 𝑥2 𝑖 − 𝑏 ⋅ 𝑦[𝑖] 𝑛 𝑖=1 良さの指標 𝐿 𝑆 ℎ ℎ ∈ 𝐻 単純に誤差 𝐿 ℎ, 𝑆 が最小な 分類器を選べばよい (訓練誤差最小化) argmin ℎ∈𝐻 𝐿(ℎ, 𝑆) これを ℎ 𝑆 と記す
  122. 122. 学習理論の設定 さて,そもそもデータはどこから来るのでしょう? なんでもあり? 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 𝑆 𝑚 良い分類器を作れると期待しているということは データになんらかの偏り・傾向があるはず → なんでもありではない 美味しい ゾーン 美味しくない ゾーン
  123. 123. 学習理論の設定 さて,そもそもデータはどこから来るのでしょう? なんでもあり? 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 𝑆 𝑚 良い分類器を作れると期待しているということは データになんらかの偏り・傾向があるはず → なんでもありではない 美味しい ゾーン 美味しくない ゾーン どこから来るか?確率分布であろう
  124. 124. 学習理論の設定 確率分布? ランダムな振る舞いをする値の現れやすさを表すもの 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 サイコロの目 今日の晩飯 0 0.2 0.4 0.6 0.8 1 うどん カレー 担々麺
  125. 125. 学習理論の設定 確率分布? ランダムな振る舞いをする値の現れやすさを表すもの 0 0.5 1 3 3.23 3.46 3.69 3.92 4.15 4.38 4.61 4.84 幅跳びの成績 連続も OK
  126. 126. 学習理論の設定 データがやってくる分布を 𝐷 と表す  訓練データの要素 (𝒙𝑖, 𝑦𝑖) は分布 𝐷 に沿って得られるとする  各要素は互いに独立とする  我々は分布 𝐷 を知らないものと する 分布 𝐷 ←これはかなり強い仮定である がそうしないと解析できないので ここではそういうもんだということ にする
  127. 127. 学習理論の設定 得られた分類器 ℎ 𝑆 の汎化性能を知りたい → 新たにデータを分布 𝐷 から持ってきて判定 一番良い分類器 ℎS ∈ 𝐻 分布 𝐷 • データ (𝒙, 𝑦) を分布 𝐷 から新たに取る • ただしく分類できるかどうか見る 𝐿 𝐷 ℎ 𝑆 = 𝐏(𝑥,𝒚)[ℎ 𝑆 𝒙 = 𝑦] 確率を 取ろう
  128. 128. まとめると 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 𝑆 ℎ 𝑆 ∈ 𝐻 一番良い分類器 汎化性能 𝐿 𝐷(ℎ 𝑆)
  129. 129. まとめると 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 𝑆 ℎ 𝑆 ∈ 𝐻 一番良い分類器 汎化性能 𝐿 𝐷(ℎ 𝑆) • 特徴とラベルの組 (𝒙, 𝑦) がデータ • (𝒙, 𝑦) は分布 𝐷 から 得られる(ランダム) • 分布 𝐷 自体は未知
  130. 130. まとめると 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 𝑆 ℎ 𝑆 ∈ 𝐻 一番良い分類器 汎化性能 𝐿 𝐷(ℎ 𝑆) • 𝐻 は前もって定まって いる • 訓練誤差 𝐿 𝑆 ℎ を 最小化するような ℎ を 選ぶ (訓練誤差最小化) • 特徴とラベルの組 (𝒙, 𝑦) がデータ • (𝒙, 𝑦) は分布 𝐷 から 得られる(ランダム) • 分布 𝐷 自体は未知
  131. 131. まとめると 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 𝑆 ℎ 𝑆 ∈ 𝐻 一番良い分類器 汎化性能 𝐿 𝐷(ℎ 𝑆) • 𝐻 は前もって定まって いる • 訓練誤差 𝐿 𝑆 ℎ を 最小化するような ℎ を 選ぶ (訓練誤差最小化) • 特徴とラベルの組 (𝒙, 𝑦) がデータ • (𝒙, 𝑦) は分布 𝐷 から 得られる(ランダム) • 分布 𝐷 自体は未知 得られた分類器の 汎化性能が 高ければ勝利
  132. 132. まとめると 訓練データ x1 x2 y 1.9 0.6 1 1.3 0.4 1 … … … 𝑆 ℎ 𝑆 ∈ 𝐻 一番良い分類器 汎化性能 𝐿 𝐷(ℎ 𝑆) • 𝐻 は前もって定まって いる • 訓練誤差 𝐿 𝑆 ℎ を 最小化するような ℎ を 選ぶ (訓練誤差最小化) • 特徴とラベルの組 (𝒙, 𝑦) がデータ • (𝒙, 𝑦) は分布 𝐷 から 得られる(ランダム) • 分布 𝐷 自体は未知 得られた分類器の 汎化性能が 高ければ勝利 モデルとデータ数によって 汎化性能がどの程度変わる か調べたい
  133. 133. スタートライン 次のようなことがいえてしまう 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99 で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01.
  134. 134. スタートライン 次のようなことがいえてしまう 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99 で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01. モデルが単純
  135. 135. スタートライン 次のようなことがいえてしまう 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99 で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01. モデルが単純 誤差を0にできる可能性 神の一手
  136. 136. スタートライン 次のようなことがいえてしまう 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99 で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01. モデルが単純 誤差を0にできる可能性 モデルの複雑さと訓練データ 数のバランスを定量的に解析 神の一手
  137. 137. スタートライン 次のようなことがいえてしまう 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99 で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01. モデルが単純 誤差を0にできる可能性 訓練データはランダムに 得られると仮定していたので ここに確率が入る (もし大ハズレなデータが 来たら何もできないので…) モデルの複雑さと訓練データ 数のバランスを定量的に解析 神の一手
  138. 138. スタートライン 次のようなことがいえてしまう 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99 で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01. モデルが単純 誤差を0にできる可能性 訓練データはランダムに 得られると仮定していたので ここに確率が入る (もし大ハズレなデータが 来たら何もできないので…) モデルの複雑さと訓練データ 数のバランスを定量的に解析 COOL!! 神の一手
  139. 139. スタートライン 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある これってまともなの? 直線全体の集合とかどう考えても無限 (|ℝ|=∞)
  140. 140. スタートライン 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある これってまともなの? 直線全体の集合とかどう考えても無限 (|ℝ|=∞) たとえば3つの実数で直線を表すときコンピュータ上では double を3つ使うことに なるけど,それは全体で 64x3 = 192 バイト.つまりたった 2192 個しかない. コンピュータで表す場合,実数の取りうる値は実質有限
  141. 141. スタートライン 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99 で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01.これってどれくらい? → 𝐻 = 2192 を実際に代入すると約 1万3000. 𝐻 の中身や分布 𝐷 に何も仮定を置いていない ので最悪ケースの値が出る.
  142. 142. スタートライン 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 100 log 1.01 𝐻 個 以上あれば確率 0.99で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 0.01. このへんの値は実は正ならなんでも良い 正確には…
  143. 143. スタートライン 定理.次の条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような分類器 が 𝐻 にある が成り立つとき,訓練データ数が 1 𝜀 log 1 𝛿 𝐻 個 以上あれば確率 1-δ で汎化誤差を以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 𝜀. 任意のε,δ>0 に対し,
  144. 144. 準備 証明してみる前に準備 (和集合上界) 任意の事象 A, B に対して 𝑃 𝐴 + 𝑃 𝐵 ≥ 𝑃[𝐴 ∪ 𝐵]. (指数関数で抑える一般的なテク) 1 − 𝑥 ≤ 𝑒−𝑥.
  145. 145. 準備 証明してみる前に準備 (和集合上界) 任意の事象 A, B に対して 𝑃 𝐴 + 𝑃 𝐵 ≥ 𝑃[𝐴 ∪ 𝐵]. (指数関数で抑える一般的なテク) 1 − 𝑥 ≤ 𝑒−𝑥.
  146. 146. スタートラインの証明 証明してみよう  要するに大ハズレな訓練データが滅多に来ないことを 言いたい  訓練データ 𝑆 が大ハズレとは: 𝐿 𝐷 ℎ 𝑆 > 𝜀 なこと 条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような 分類器 が 𝐻 にある ☠ = 𝐏𝑆[ 𝐿 𝐷 ℎ 𝑆 > 𝜀 ] とおく.これが小さいことを言おう.
  147. 147. スタートラインの証明 仮定から 𝐿 𝑆 ℎ 𝑆 = 0 のはず.  汎化誤差を 0 にするような分類器は 訓練誤差も 0 にする. 条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような 分類器 が 𝐻 にある ☠ = 𝐏𝑆[ 𝐿 𝐷 ℎ 𝑆 > 𝜀 ] ☠ ≤ 𝐏𝑆[ ある ℎ ∈ 𝐻 があって, 𝐿 𝐷 ℎ > 𝜀 かつ 𝐿 𝑆 ℎ = 0] = 𝑃𝑆[ 𝐿 𝑆 ℎ = 0ℎ:𝐿 𝐷 ℎ >𝜀 ] ≤ 𝑃𝑆[𝐿 𝑆 ℎ = 0]ℎ:𝐿 𝐷 ℎ >𝜀 高々 |𝐻| 個の項 これは一体? ↑の考察 言い換え 和集合上界
  148. 148. スタートラインの証明 ℎ ∈ 𝐻 (𝐿 𝐷 ℎ > 𝜀) を固定して考える 𝐏𝑆 𝐿 𝑆 ℎ = 0 = 𝐏𝑆[全部の 𝑖 で ℎ 𝑥𝑖 = 𝑦𝑖] = 𝑃𝑥 𝑖,𝑦 𝑖 [ℎ 𝑥𝑖 = 𝑦𝑖]𝑚 𝑖=1 = (1 − 𝐿 𝐷(ℎ))𝑚 𝑖=1 ≤ 1 − 𝜀 𝑚 ≤ e−𝜀𝑚 一般的なテク 仮定 誤差0 = 全部正解 独立性 汎化誤差の定義 条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような 分類器 が 𝐻 にある ☠ = 𝐏𝑆[ 𝐿 𝐷 ℎ 𝑆 > 𝜀 ]
  149. 149. スタートラインの証明 よって これが δ 以下になるのはどういうときかというと のとき.両辺の対数を取って整理すると以下を得る.(終) ☠ ≤ 𝑒−𝜀𝑚 ℎ:𝐿 𝐷 ℎ >𝜀 ≤ 𝐻 𝑒−𝜀𝑚 𝐻 𝑒−𝜀𝑚 ≤ 𝛿 𝑚 ≥ log( 𝐻 𝛿 )/𝜀 条件: • 𝐻 が有限集合 • 汎化誤差を 0 にするような 分類器 が 𝐻 にある ☠ = 𝐏𝑆[ 𝐿 𝐷 ℎ 𝑆 > 𝜀 ]
  150. 150. キーポイント で, 何の話だっけ?
  151. 151. キーポイント モデルを制限したりなんらかの仮定を入れることで, 訓練データ数がこれくらいあったら高確率で汎化性能の高い 分類器を作ることができる,というのが言えた  これは素晴らしい  モデルを決めたときにどれくらい訓練データが要るか分かる  あるいは訓練データを増やしたときにどれくらい精度が 上がるもんなのか分かる で, 何の話だっけ?
  152. 152. PAC学習 これを一般化した概念が PAC 学習である 定義.次のとき 𝐻 は PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 汎化誤差を 0 にするような分類器 が 𝐻 にある場合, 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 汎化誤差を 𝜀 以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 𝜀. たとえば |𝐻| < ∞ なら 𝐻 はPAC学習可能.
  153. 153. PAC学習 これを一般化した概念が PAC 学習である 定義.次のとき 𝐻 は PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 汎化誤差を 0 にするような分類器 が 𝐻 にある場合, 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 汎化誤差を 𝜀 以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 𝜀. たとえば |𝐻| < ∞ なら 𝐻 はPAC学習可能.
  154. 154. PAC学習 これを一般化した概念が PAC 学習である 定義.次のとき 𝐻 は PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 汎化誤差を 0 にするような分類器 が 𝐻 にある場合, 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 汎化誤差を 𝜀 以下で抑えられる. 𝐿 𝐷 ℎ 𝑆 ≤ 𝜀. たとえば |𝐻| < ∞ なら 𝐻 はPAC学習可能. これはかなり強い仮定である. モデルと実データが完全一致というのは普通は まず無い.この仮定を外すとどうなるか?
  155. 155. 不可知論的PAC学習 定義.次のとき 𝐻 は不可知論的 PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀.
  156. 156. 不可知論的PAC学習 定義.次のとき 𝐻 は不可知論的 PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀. 神の一手
  157. 157. 不可知論的PAC学習 定義.次のとき 𝐻 は不可知論的 PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀. 神の一手 よりちょっと悪い
  158. 158. 不可知論的PAC学習 定義.次のとき 𝐻 は不可知論的 PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀. |𝐻| < ∞ のとき 𝐻 は不可知論的PAC学習可能といえるか? 神の一手 よりちょっと悪い
  159. 159. 不可知論的PAC学習 定義.次のとき 𝐻 は不可知論的 PAC 学習可能という: 関数 𝑚(𝜀, 𝛿) があって全ての 𝜀, 𝛿 > 0, 分布 𝐷 に対し 以下が成り立つ: 訓練データ数が 𝑚(𝜀, 𝛿) 個以上あれば確率 1 − 𝛿 で 𝐿 𝐷 ℎ 𝑆 ≤ minℎ′∈𝐻 𝐿 𝐷 ℎ′ + 𝜀. |𝐻| < ∞ のとき 𝐻 は不可知論的PAC学習可能といえるか? 神の一手 よりちょっと悪い →いえる (証明略)
  160. 160. いつでもPAC学習可能? |𝐻| < ∞ とか雑な仮定で上手くいくなら何でも上手くいきそう? 極端な話,モデルに全く仮定を置かないとどうなるか? (つまり 𝐻 = なんでもあり)
  161. 161. いつでもPAC学習可能? |𝐻| < ∞ とか雑な仮定で上手くいくなら何でも上手くいきそう? 極端な話,モデルに全く仮定を置かないとどうなるか? (つまり 𝐻 = なんでもあり) モデル化を何も考えなくてもいい感じに学習してくれる 全自動学習器があれば楽できて最高!!! ← タダメシのイメージ図
  162. 162. ノー・フリー・ランチ定理 しかし次のようなことが言えてしまう  つまり 𝐻 に何も仮定を置かないと どれだけ訓練データを増やしても 精度が上がらない  ノータダ飯  頑張ってモデル化しないとだめ 定義. 𝐻 がすべての関数の集合であるとき,汎化誤差 を 0 にできるような分布 𝐷 があって以下が成り立つ: どれだけ訓練データ数を増やしても,高い確率で 𝐿 𝐷 ℎ 𝑆 ≥ 1/7.
  163. 163. PAC 学習まとめ 𝐻 有限 なんでも あり PAC 学習可能 𝑚 = 1 𝜀 log( 𝐻 𝛿 ) PAC 学習不可能
  164. 164. PAC 学習まとめ 𝐻 有限 なんでも あり PAC 学習可能 𝑚 = 1 𝜀 log( 𝐻 𝛿 ) PAC 学習不可能 この間は どうなってるの?
  165. 165. PAC 学習まとめ 𝐻 有限 なんでも あり PAC 学習可能 𝑚 = 1 𝜀 log( 𝐻 𝛿 ) PAC 学習不可能 この間は どうなってるの? 便利な指標が ある
  166. 166. VC次元 𝐻 の複雑度を測る VC次元というなんか便利な指標がある
  167. 167. VC次元 𝐻 の複雑度を測る VC次元というなんか便利な指標がある 𝐻の VC次元 1 2 3 … 𝑑 … ∞
  168. 168. VC次元 𝐻 の複雑度を測る VC次元というなんか便利な指標がある 𝐻の VC次元 1 2 3 … 𝑑 … ∞ PAC学習 不可能 PAC学習可能 𝑚 = 1 𝜀 (𝑑 + log 1 𝛿 )
  169. 169. VC次元 𝐻 の複雑度を測る VC次元というなんか便利な指標がある 𝐻の VC次元 1 2 3 … 𝑑 … ∞ PAC学習 不可能 PAC学習可能 𝑚 = 1 𝜀 (𝑑 + log 1 𝛿 ) 次元に応じて必要な 訓練データ数が変化
  170. 170. 補足 今回しなかった話はいっぱいあります  学習のアルゴリズムの話を全くしませんでした 普通はアルゴリズムから入ることが多いです 最適化することになりますが大体がNP困難… (◞‸◟) 目的関数を置き換えたり,数値的に解くことが多いです  統計の話を全くしませんでした 妥当なモデルを作るための強力な道具 普通は統計から入ることが多いです
  171. 171. 補足2  今回は2値分類だけを扱いましたが他にも色々あります 多値分類,回帰(実数値の予測)  今回のようにデータにラベルが付いている設定を 「教師あり学習」といいます 教師無し学習:ラベル無しの設定 クラスタリングとかそういう話
  172. 172. まとめ 機械学習の概要と理論の話をなんかした
  173. 173. Appendix
  174. 174. 自己紹介 楠本 充 / @ir5  京大情報 (2008-2014)  Preferred Networks 株式会社 (2014-) 映像解析・センサーデータの解析などの研究開発 競プロ歴  ICPC → 引退 (2008-2012)  ICPC ジャッジ (2014-?) 細かいことは http://irreko.cc に

×