Download - スパース非線形分類器のデモ 最終発表
スパース非線形分類器のデモ最終発表
指導者 : Mathieu Blondel発表者 : 小林まなみ
1プログラム輪講最終発表
中間発表時点での最終目標
• Scikit-learn の svm_gui のソースコードを基にスパース非線型分類器を用いた可視化を行う
• svm とスパース非線形分類器を同時表示し、 2 つの分類器の違いを視覚的にみる
プログラム輪講最終発表 2
2 つの分類器を選択両方の分類を同時表示
線の色を変え表示
使用したツール• 言語 : Python• Python の拡張モジュール
o Numpy: 行列や多次元配列を扱うための数学関数ライブラリ→高速化
o Scikit-learn(sklearn): 機械学習ライブラリo Matplotlib: グラフ描画ライブラリo Tkinter: 標準的な GUI ツール
プログラム輪講最終発表 3
sklearn 内に実装されている svm_gui.py を基に可視化を進めた
SVM とは• Support Vector Machine の略• 与えられたデータを 2 クラスに分類する学習機械の一種• マージン最大化戦略に基づく学習器のため Large Margin 分
類器と呼ばれる• できるだけ真ん中を通るように識別面を作るので汎化能力が
高い• サポートベクトルは必ず訓練データの事例でなければならな
い
プログラム輪講最終発表 4
スパース非線形分類器• 2クラスタの中心を求めて基底ベクトルとして扱いサ
ポートベクトルの代わりとする• 基底ベクトルはサポートベクトルと異なり訓練データ
の事例でなくても良い• スパース性 ( 疎性 ) を上手く調整することができる
プログラム輪講最終発表 5
スパース非線形分類器の利点
スパース性が高すぎると予測速度が上がるが精度は下がる
かといって、
スパース性が低すぎると精度は上がるが過学習になる
スパース性が調整可能なので丁度良い点を見つけることができる
プログラム輪講最終発表 6
予測速度と精度、精度と過学習の関係はトレードオフ
SVM
スパース非線形分類器
完成した 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