PowerPoint プレゼンテーション

スパース非線形分類器のデモ
最終発表
指導者 : Mathieu Blondel
発表者 : 小林まなみ
プログラム輪講最終発表
1
中間発表時点での
最終目標
• Scikit-learnのsvm_guiのソースコードを基にスパース非
線型分類器を用いた可視化を行う
• svmとスパース非線形分類器を同時表示し、2つの分類
器の違いを視覚的にみる
線の色を変え表示
2つの分類器を選択
両方の分類を同時表示
プログラム輪講最終発表
2
使用したツール
• 言語 : Python
• Pythonの拡張モジュール
o Numpy:行列や多次元配列を扱うための数学関数ライ
ブラリ→高速化
o Scikit-learn(sklearn):機械学習ライブラリ
o Matplotlib:グラフ描画ライブラリ
o Tkinter:標準的なGUIツール
sklearn内に実装されているsvm_gui.pyを基に可視化を進めた
プログラム輪講最終発表
3
SVMとは
• Support Vector Machineの略
• 与えられたデータを2クラスに分類する学習機械の一種
• マージン最大化戦略に基づく学習器のためLarge Margin 分
類器と呼ばれる
• できるだけ真ん中を通るように識別面を作るので汎化能力が
高い
• サポートベクトルは必ず訓練データの事例でなければならな
い
プログラム輪講最終発表
4
スパース非線形分類器
• 2クラスタの中心を求めて基底ベクトルとして扱いサ
ポートベクトルの代わりとする
• 基底ベクトルはサポートベクトルと異なり訓練データの
事例でなくても良い
• スパース性(疎性)を上手く調整することができる
プログラム輪講最終発表
5
スパース非線形分類器の利点
SVM
スパース性が高すぎると予測速度が上がるが精度は下がる
かといって、
スパース性が低すぎると精度は上がるが過学習になる
予測速度と精度、精度と過学習の関係はトレードオフ
スパース
非線形分類器
スパース性が調整可能なので丁度良い点を見つけることができる
プログラム輪講最終発表
6
完成したGUI
左画面がSVM、右画面がスパース非線形分類器(PrimalSVC)
プログラム輪講最終発表
7
追加した機能(1)
①
① 2つのプロット領域を確保し、同時に同座標にデータ点を追加
プログラム輪講最終発表
8
追加した機能(2)
③
②
②
⑤
④
② パラメータ変更を直接入力以外でも可能にし、値の変
更時にfitを実行
③ 両分類器のより細かい比較を行うため両画面を重ね合
わせるOverlap機能
④ Marginの表示/非表示を切り替える機能
⑤ スパース非線形分類器の正則化の方法を切り替える
o L1正則化とL2正則化とL1L2正則化の中から選択可能
プログラム輪講最終発表
9
正則化の種類と特徴
正則化とは
過学習(Overfitting)を抑止するため、ペナルティ項を与えること
• L1正則化
o 精度はL2より低めだが、スパース性が高い
• L2正則化
o 精度は高いがスパース性が低く過学習になりやすい
o SVMはL2正則化
• L1L2正則化
o L1正則化を用いて学習し、選ばれた基底ベクトルを用いてL2正則化を行う。
o 精度を高いままに(L2)、スパース性を保つ(L1)
o deviasingと呼ばれる
プログラム輪講最終発表
10
今後の課題
• クリックして追加した事例(データ点)を削除して一つ
前に戻す「戻る」ボタン
• 「戻る」を取り消す「進む」ボタン
• 両分類器での予測速度を算出し、表示する機能
プログラム輪講最終発表
11