なるほど!?サポートベクトルマシンにおける重要なコンセプト
みなさんこんにちは。
今日も張り切っていきましょう
今日はサポートベクトルマシンについてです。
サポートベクトルマシンとは機械学習の回帰と分類をとり扱う手法の1つです。
1960年代からある手法ですが1992年にカーネルトリックという考え方で拡張されて
現在でも認識性能が高い手法の1つとして広く利用されています。
今回は1960年代からある線形サポートベクトルマシンについて紹介します
(カーネルトリックなどはまた後日)
〜今日の目次〜
線形サポートベクトルマシンについて
「線形」とは「平らな」とか「まっすぐ」であることを表す数学的な表現です。
線形サポートベクトルマシンとは直線や平面のような境界によって
データを分類することです。
境界面の一般化「超平面」
データを分類する境界の名前が特徴量の次元により「直線」「平面」と変わるのは
非常に面倒。そこで境界の名前を一般化して「超平面」と呼ぶことがあります。
例えば特徴量の次元数が2の時、超平面は直線になり、次元数が3の時は超平面は平面
ということになります。
サポートベクトルマシンの重要なコンセプト「マージン最大化」
線形サポートベクトルマシンにおける境界(超平面)を定め方を2次元で解説します。
今回は線形サポートベクトルマシンで以下のように2つのクラスに分類するとしましょう。
2つのクラスにデータを分離する境界は無数に書くことがきますね・・・。
そこでマージン最大化というコンセプトの元、境界面を定めていくのです。
マージンとは日本語で「余白」という意味でサポートベクトルマシンでは
境界に最も近い点と境界までの距離を表します。
例えば データを以下のように2つのクラスに分類したとしましょう
(点々はデータのこと)
↔︎で表したのがマージンです。
赤色の点とは境界面が離れていますが緑色の点とは境界面とあまりにも近づきすぎています。
この場合、訓練データなどでは忠実に分類することができるのですが、
未知のデータなどを分類した際に誤認識してしまうことがよくあります。
そこでなるべくマージンを大きくなるように調整します。
今回はどうでしょうか。
赤色の点からも緑色の点からもできるだけ離すことができました。
マージンを大きくすることによりデータと境界との距離が遠くなりました。
よって誤認識の少ない境界面を引くことが可能になります。
つまり、
訓練データだけではなく未知のデータの分類の精度が上がり汎用性が高まるということです。
重要なコンセプト「サポートベクトルによる計算コストの低下」
サポートベクトルとは境界に最も近い点のことです。
実はこのサポートベクトルは名の通りサポートベクトルマシンにとって重要な性質を
持っているのです。
一度境界面が定まるとデータの分類することができます。
新しいデータに対して予測を行う際に必要なのはサポートベクトルのみでそれ以外の点は
新しいデータの予測に不必要であるのです。
つまり新しいデータを予測する際に、全てのデータと比較して予測する必要はなく
境界に近い点だけと比較することで予測ができるのです。
つまりその分だけ計算コストは抑えることができますね!!
参考文献