スパース非線形分類器のデモ 最終発表 指導者 : 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
© Copyright 2024 ExpyDoc