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