狠狠撸
Submit Search
コンピュータ先端ガイド2巻3章勉强会(厂痴惭)
?
0 likes
?
2,165 views
M
Masaya Kaneko
Follow
研究室内で行われた勉强会资料です。厂痴惭について解説しています。
Read less
Read more
1 of 56
Download now
Downloaded 17 times
More Related Content
コンピュータ先端ガイド2巻3章勉强会(厂痴惭)
1.
コンピュータ先端ガイド2巻3章 他:SVM(Support Vector Machine) B4M1勉強会 2017/05/11
B4 金子 真也
2.
1 自己紹介 ? 名前:金子 真也(かねこ
まさや) ? Twitter:@syinari0123 ? 出身:巣鴨高校 ? 趣味:お散歩, 美味しいもの?美術館巡りなど ? やる気だけはなくさないように生きてます
3.
2 目次 ? パターン識別 ? 線形から非線形への拡張 ?
カーネル関数 ? SVM(Support Vector Machine) – 線形SVM – 非線形SVM ? SVMの多クラス分類 ? SVMの応用
4.
3 発表を始める前に ? 今回の発表は基本的にデータ解析アルゴリズム の話なので数式がかなり多いです… ? できる限り抑えるようにしましたが,
せっかくの 勉強会なので「ある程度の数式は仕方ない ですかね…」としてスライドを作っています ? すみません…
5.
4 目次 ? パターン識別 ← ?
線形から非線形への拡張 ? カーネル関数 ? SVM(Support Vector Machine) – 線形SVM – 非線形SVM ? SVMの多クラス分類 ? SVMの応用
6.
5 パターン識別とは 与えられた入力データがどのクラスに属するか を教師あり学習で識別する問題 →正解クラスを適切に出力できる?? ???? を求める 特徴ベクトル ???? 識別関数 ??(????) 正解クラス ???? ネコである (クラス1
??1) ネコじゃない (クラス2 ??2) ??(????) ≥ ?? ?? ???? ≤ ?? 入力画像 ???? = ????1 ? ???? ??
7.
6 線形パターン識別 識別関数?? ???? として以下のように定める ??
???? = ???? ???? + ??0 ? ≥ 0 (???? ∈ ??1) ≤ 0 (???? ∈ ??2) →適切に????を識別できるような??, ??0を求める (空間を適切に分断する超平面を求める) http://www.neuro.sfc.keio.ac.jp/~masato/study/SVM/SVM_1.htm
8.
7 目次 ? パターン識別 ? 線形から非線形への拡張
← ? カーネル関数 ? SVM(Support Vector Machine) – 線形SVM – 非線形SVM ? SVMの多クラス分類 ? SVMの応用
9.
8 線形から非線形への拡張(1) 線形パターン識別には限界がある 線形分離可能な分布 線形分離不可能な分布 http://pika-shi.hatenablog.com/entries/2011/11/11
10.
9 線形から非線形への拡張(2) 非線形関数Φによりデータの非線形変換 ??: ?? =
??1, . . , ???? ?? → ??1 ?? , … , ???? ?? →線形分離可能な分布をするような空間に変換 ?? ???? = ???? ??(????) + ??0 ? ≥ 0 (???? ∈ ??1) ≤ 0 (???? ∈ ??2) https://www1.doshisha.ac.jp/~mjin/R/31/31.html
11.
10 線形から非線形への拡張(3) 非線形関数を利用するにあたって注意点あり 1. 高次元空間への変換で分離可能性は高くなるが 次元の呪いの発生(過学習) 2. 適切な非線形変換Φを決定する手段がない →カーネル関数を使うといい感じに (カーネル法)
12.
11 目次 ? パターン識別 ? 線形から非線形への拡張 ?
カーネル関数 ← ? SVM(Support Vector Machine) – 線形SVM – 非線形SVM ? SVMの多クラス分類 ? SVMの応用
13.
12 カーネル関数(1) ある関数?? ?? (????
→ ????)があり, ???, ?? ∈ ????に対して, ?? ??, ?? = ?? ?? ?? ??(??) が成立する関数Φが存在する時, 関数kを カーネル関数という. ※カーネル関数が存在するための必要十分条件と してはMercer’s theoremが存在(省略)
14.
13 カーネル関数(2) カーネル関数の例 ? 線形カーネル ??
??, ?? = ???? ?? ? 多項式カーネル ?? ??, ?? = ???? ?? + ?? ?? ? ガウスカーネル ?? ??, ?? = exp(? ?? ? ?? 2??2 ) ? RBFカーネル ?? ??, ?? = exp(??? ?? ? ?? 2)
15.
14 カーネル関数(3) カーネル関数を使うとメリットがある 1. D次元ベクトルの内積がd次元ベクトルの関数 で表される(?? ?
??の時,計算量の削減に) →カーネルトリック 2. 具体的な?? ?? の形を与える必要がない カーネル法はSVMと相性がかなり良い
16.
15 目次 ? パターン識別 ? 線形から非線形への拡張 ?
カーネル関数 ? SVM(Support Vector Machine) ← – 線形SVM – 非線形SVM ? SVMの多クラス分類 ? SVMの応用
17.
16 目次 ? パターン識別 ? 線形から非線形への拡張 ?
カーネル関数 ? SVM(Support Vector Machine) – 線形SVM ← – 非線形SVM ? SVMの多クラス分類 ? SVMの応用
18.
17 線形SVM ? 基本的な考えとしてはパターン識別と同じ ? クラスを分類する超平面の候補のうち,
以下の 図で点線間の距離を最大にする境界を求める (マージン最大化) 最先端ガイド2 3章 図3.8右
19.
18 マージン最大化(1) 分類境界から最も近くにある????との距離の最大化 max ??,??0 min ?? ???? ???? + ??0 ?? 制約条件として ??
???? = ???? ???? + ??0 ≥ 1 ? (?) を入れることで上の式は以下に帰着できる max ?? 1 ?? = min ?? ??
20.
19 マージン最大化(2) マージン最大化の直感的解釈 min ??,??0 ?? = max ??,??0 2 ?? ??.
??. ?? ???? ≥ 1 2 ?? ??(????) ?? = ???? ?? + ??0 ?? ?? ?? = ???? ?? + ??0 ?? ?? = 1 ?? ?? = ?1 ?? ?? = 0 ????|?? ?? | ≥ 1
21.
20 ハードマージン 制約式 ? は次のように書き換えられる ??
???? = ???? ???? + ??0 ? ≥ 1 (???? ∈ ??1) ≤ ?1 (???? ∈ ??2) 制約式 ? 条件下で以下を求める問題に帰着できる min ??,??0 ?? →線形分離不可能な場合に解が存在しない ?? ?? ≥ 1 ?? ?? ≤ ?1 ?? ?? = 0
22.
21 ソフトマージン 分離の誤りを少し許すために制約式 ? に 誤差項????(≥
0)を導入 ?? ???? = ???? ???? + ??0 ? ≥ 1 ? ???? (???? ∈ ??1) ≤ ?1 + ????(???? ∈ ??2) ? (??) ???? ?????1 ????+1 ?? ?? = 1 ?? ?? = ?1
23.
22 最適化問題への帰着(1) ????の属するクラスの変数(正解クラス)を 以下のように定める ???? = ? 1
(???? ∈ ??1) ?1 (???? ∈ ??2) ????のクラス属性も組み込んだ制約式 ?? は次になる ???? ???? ???? + ??0 ≥ 1 ? ???? ???? ≥ 0 ???? = 1 ???? = ?1 ?? ?? ≥ 1 ? ???? ?? ?? ≤ ?1 + ????
24.
23 最適化問題への帰着(2) 最終的に線形SVM(ソフトマージン)の最適化は 以下のような最小化問題に帰着できる ? 第一項:マージン(2/ ??
)の最大化 ? 第二項:誤差項(????)の最小化(??は正則化係数) min ??,??0,???? 1 2 ?? 2 + ?? ? ???? ?? ??=0 ??. ??. ??? ???? ???? ???? + ??0 ≥ 1 ? ???? ??? ???? ≥ 0
25.
24 ソフトマージンの実例 パラメータCの調節により誤りの許容度を 変化させることができる ?? = 100
の時 ?? = 0.1 の時 MLP サポートベクターマシン 第一章 図1.5
26.
25 線形SVMの双対問題 ラグランジュ関数を用いることで最適化問題から 以下の双対問題を導ける (??は双対変数) ? SVMの場合には強双対性が成立するために上式のように 書き換えられる(省略) ?
カールシュ?クーン?タッカー条件(KKT条件) max ?? (? 1 2 ? ???? ???? ???? ???? ???? ?? ???? ??,?? + ? ???? ?? ) ??. ??. ? ???? ???? = 0 ?? ??? 0 ≤ ???? ≤ ??
27.
26 双対問題の利点 ? 非線形SVMへ拡張する際にはカーネルトリック をそのまま適用できる ? 内積がわかっていればデータ????そのものの保持 の必要がない(メモリの節約) –
データ行列 ??1, … , ???? ?? の要素???? – 内積計算に必要なデータ量?? ?? ? 1 /2 ? 双対変数??の一部が0要素を多く持つ場合があり, 計算時間の短縮化に (マージン外領域にデータが多い場合)
28.
27 目次 ? パターン識別 ? 線形から非線形への拡張 ?
カーネル関数 ? SVM(Support Vector Machine) – 線形SVM – 非線形SVM ← ? SVMの多クラス分類 ? SVMの応用
29.
28 非線形SVM ? 線形な分離には限界がある ? 非線形関数Φを使ってデータを線形分離可能な 分布をするような空間に変換 ?
双対問題に対して非線形変換を行うことで カーネルトリックを利用できる https://www1.doshisha.ac.jp/~mjin/R/31/31.html
30.
29 非線形SVMの最適問題(1) 入力データを特徴空間へ写像する関数Φを用いて ?? ?? =
???? ??(??) + ??0 を識別関数とすればよい. 双対問題に代入すると, max ?? (? 1 2 ? ???? ???? ???? ???? ?? ???? ?? ??(????) ??,?? + ? ???? ?? ) ??. ??. ? ???? ???? = 0 ?? ??? 0 ≤ ???? ≤ ??
31.
30 非線形SVMの最適問題(2) 前式をカーネル関数で書き直すと (KKT条件より) ?? ??
= ? ???? ???? ??(????, ??) ?? + ??0 双対問題は以下のようになる. max ?? (? 1 2 ? ???? ???? ???? ???? ??(????, ????) ??,?? + ? ???? ?? ) ??. ??. ? ???? ???? = 0 ?? ??? 0 ≤ ???? ≤ ??
32.
31 非線形SVMの実例(1) ガウスカーネルを利用した場合 Cが小さい時 Cが大きい時 http://d.hatena.ne.jp/hase1031/20111218/1324194721
33.
32 非線形SVMの実例(2) ガウスカーネルを利用した場合 σが小さい時 σが大きい時 http://aidiary.hatenablog.com/entry/20100503/1272889097
34.
33 目次 ? パターン識別 ? 線形から非線形への拡張 ?
カーネル関数 ? SVM(Support Vector Machine) – 線形SVM – 非線形SVM ? SVMの多クラス分類 ← ? SVMの応用
35.
34 SVMの多クラス分類(1) SVMでは2クラス分類しかできない →多クラス分類を行うためには工夫が必要 http://opencv.jp/sample/misc.html
36.
35 SVMの多クラス分類(2) 工夫の方向性として次のようなものが考えられる ? 複数の2クラス分類器の組み合わせ – 1対他方式 –
1対1方式 – 誤り訂正出力符号 ? SVMの定式化の拡張
37.
36 SVMの多クラス分類の目次 ? 複数の2クラス分類器の組み合わせ ← –
1対他方式 – 1対1方式 – 誤り訂正出力符号 ? SVMの定式化の拡張
38.
37 SVMの多クラス分類の目次 ? 複数の2クラス分類器の組み合わせ – 1対他方式
← – 1対1方式 – 誤り訂正出力符号 ? SVMの定式化の拡張
39.
38 1対他方式(1) ? 最も単純な方式 ? 1クラスと残りのクラスに分類 ?
k番目のクラスの識別関数?? ?? ?? の最大値を選ぶ ことで属するクラスの決定 argmax ?? ?? ??(??) クラス 1 クラス 2 クラス 3 http://qiita.com/pika_shi/items/5e59bcf69e85fdd9edb2
40.
39 1対他方式(2) 特徴として以下のようなことが挙げられる ? 実装が容易 ? 識別関数??
?? ?? の値を比較することが適切か不明 ↑異なるSVMを利用しているから
41.
40 SVMの多クラス分類の目次 ? 複数の2クラス分類器の組み合わせ – 1対他方式 –
1対1方式 ← – 誤り訂正出力符号 ? SVMの定式化の拡張
42.
41 1対1方式(1) ? 全体から2つのクラスのペアを作り分類 – nクラスに対して
?? ??2個のSVM ? 全ての組み合わせに対して多数決を行う ?????? ?? ? > 0 ??に投票 < 0 ??に投票 3クラス分類問題において, あるデータ??が… ??12 ?? > 0 クラス1に投票 ??23 ?? < 0 クラス3に投票 ??13 ?? > 0 クラス1に投票 → データ??はクラス1に分類(2票獲得)
43.
42 1対1方式(2) 特徴として以下のようなことが挙げられる ? 訓練時には毎回対象の2クラス分のデータしか 用いないのでSVMの学習コストが小さい ? 使うSVMの個数が多い(??(??2)) ?
単純な多数決以外にも… – 非循環有効グラフによる方法 – ペアワイズカップリング法
44.
43 非循環有効グラフによる方法 逐次的に2クラス分類を行っていくことで 分類回数を減らす http://www.kri.sfc.keio.ac.jp/report/mori/2004/c-118/
45.
44 ペアワイズカップリング法(1) 確率的な解釈で1対1分類結果?????? ?? から 多クラス分類確率????
?? の推定 1対1での分類確率 ?????? ?? 全体からの分類確率 ???? ?? 識別関数 ?????? ?? ↓ ?? ?? = ?? ?? ∈ ??, ?? , ?? = ?? ↓ ??(?? = ??|?? = ??) SVMでの識別境界 (1)モデル化 (2)推定
46.
45 ペアワイズカップリング法(2) 1. 識別関数?????? ??
から分類確率??????? ?? のモデル化 ??????? ?? = 1 1 + exp(????????? ?? + ??) →最尤推定法によりA,Bを推定 2. モデル化した??????? ?? と実際の?????? ?? が近くなるよ うに???? ?? の推定 min ???? ??∈[??] ? ???? + ???? ???? ??????? ∥ ?????? ??≠?? → ?????? = ????/(???? + ????)より ???? ??∈[??] に関して最小化
47.
46 SVMの多クラス分類の目次 ? 複数の2クラス分類器の組み合わせ – 1対他方式 –
1対1方式 – 誤り訂正出力符号 ← ? SVMの定式化の拡張
48.
47 誤り訂正出力符号(1) 各クラスをある特徴に基づいて1,-1を割り当てて 符号語を作成(以下は符号長 m=7) MLP サポートベクターマシン
第二章 表2.2
49.
48 誤り訂正出力符号(2) ? m個の符号の列それぞれで識別関数???? ??
を学習 ? それぞれの符号とのハミング距離を計算し, 最も 距離が近いクラスへと分類 識別関数 ???? ???? (?? = 1 … ??) -1 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 正解符号語 ?? = 2 距離0 特徴ベクトル ???? 入力画像 ???? = ????1 ? ???? ?? 符号語
50.
49 SVMの多クラス分類の目次 ? 複数の2クラス分類器の組み合わせ – 1対他方式 –
1対1方式 – 誤り訂正出力符号 ? SVMの定式化の拡張 ←
51.
50 SVMの定式化の拡張(多クラス) ? SVMの識別関数を以下のように拡張 (???? , ??0 ?? は各クラス??(∈
[??])に対応するパラメータ) ?? ?? = argmax ?? ???? ?? ?? ?? + ??0 ?? ? あるデータ(????, ????)を分類するために必要な条件 ?????? ?? ?? ?? + ??0 ???? ≥ ???? ?? ?? ?? + ??0 ?? + 1 (?? ≠ ????) クラス????の時の 識別関数の値 クラス????以外の時の 識別関数の値 +1(ハードマージン) → +1 ? ???? ?? (ソフトマージン)
52.
51 多クラスSVMの最適化問題 2クラス分類SVMの時と同様に最適化問題に帰着 →SVMの時と同様に双対問題を考えられる min ????,??0 ??,???? ?? ??∈[??] 1 2 ? ???? 2 ?? +
?? ? ? ???? ?? ??≠?????? ??. ??. ??? ?????? ?? ?? ?? + ??0 ???? ≥ ???? ?? ?? ?? + ??0 ?? + 1 ? ???? ?? (?? ≠ ????) ??? ???? ?? ≥ 0 (?? ≠ ????)
53.
52 多クラスSVMの双対問題 同様にラグランジュ関数によって最適化問題から 以下の双対問題を導ける (???? ??,
????? ??は双対変数) 識別関数も以下のようになる(KKT条件の利用) ???? ?? ?? ?? + ??0 ?? = ? ??????? ?? ????, ???? ?? + ??0 ?? max ?? ? 1 2 ? ? ??????? ??????? ?? ????, ???? ????,?? + ? ? ?????? ??≠?????? ??. ??. ??? ? ??????? ?? = 0 (?? ≠ ????) ??? 0 ≤ ?????? ≤ ?? (?? ≠ ????)
54.
53 目次 ? パターン識別 ? 線形から非線形への拡張 ?
カーネル関数 ? SVM(Support Vector Machine) – 線形SVM – 非線形SVM ? SVMの多クラス分類 ? SVMの応用 ←
55.
54 SVMの応用 今回は分類問題に絞って解説を試みたが他にも – 回帰分析 – 教師なし学習(異常検知) –
構造化問題(自然言語処理など) – 半教師あり学習 にも利用可能!(すごそう)
56.
55 参考文献 ? 八木康史?斎藤英雄 編 「コンピュータビジョン最先端ガイド2」 ?
竹内一郎?鳥山昌幸 「MLPシリーズ サポートベクターマシン」
Download