【機械学習】サポートベクターマシン解説part1直観的理解
今回は機械学習手法のうち、教師あり学習アルゴリズムの一つであるサポートベクターマシンについて解説していきます。
はじめに
今回は機械学習手法の一つであるサポートベクターマシンについて解説していきたいと思います。
サポートベクターマシン(SVM)は教師あり学習の一つのアルゴリズムであり、分類、回帰どちらにも使用されますが、回帰はサポートベクター回帰(SVR)として考え、今回は分類のアルゴリズムに絞って解説していきたいと思います。また、サポートベクターマシンはカーネル関数を用いることで非線形に対応できるアルゴリズムです。part1ではその前段階として線形の分類を扱い、その直感的理解から解説していこうと思います。
概要説明
サポートベクターマシンはサポートベクトルというデータを使用し、マージン最大化という基準をもって分類曲線(直線)を作成する手法です。分類曲線(直線)を作成する際、様々な分類線を考えることができますが、その分類線は未知データを適切に分類する必要があります。未知データを適切に分類する基準の一つがサポートベクターマシンで考えられるマージン最大化です。
以下ではサポートベクトル、マージン最大化などについて解説していきます。
学習の流れ
まず、「分類」とは何かについて解説してきます。分類とはあるデータが与えられたときにそのデータを適切なクラスに分けていくことです。既に手元にあるデータ(学習データ)から適切にモデルを作成し、そのモデルを使用して未知データに対して適用し分類していきます。
次にモデルを作成する際に重要になるサポートベクトルについて解説していきます。
サポートベクトルとは
サポートベクトルとは、分類のための直線に最も近いデータポイントのことです。図を使用して説明します。
下図を見てください。今、青のデータ集合と赤のデータ集合を適切に分けるような直線を作成することを考えています(モデル作成)。この時、直線に最も近い点が各データ集合で存在します(下図、赤丸)。これがサポートベクトルです。
マージンとは
ここでサポートベクトルを定義すると、マージンを定義することができます。マージンとは各データ集合に対するサポートベクトルとの距離です。上図のデータでは二つの点線の距離がマージンに対応します。
マージンの最大化
ある分類直線を一つ選ぶとマージンが計算されます。サポートベクターマシンの分類基準は、このマージンを最大化させるように分類直線を設定することです。すなわち「マージン最大化基準」をもってモデルを構築していきます。
このマージン最大化基準を採用することで、各データ間に余裕が生まれ、未知データに対して最も適切に分類できるような分類直線を得ることができるのです。
終わりに
今回はサポートベクターマシンの線形分類における直観的理解について解説しました。
サポートベクターマシンでは「マージン最大化」を基準として分類直線を構築しています。この「マージン最大化」がサポートベクターマシンにおいて最も基本となる考え方です。今後のブログにおいて、綺麗に線形分離できない場合や過学習を抑えたい場合に使用される「ソフトマージン法」、カーネル関数を用いることによる「非線形分離サポートベクターマシン」、また回帰へ応用した「サポートベクター回帰」といった事柄についても解説していこうと思います。
次回のブログでは、マージン最大化基準を用いてどのように数理的に表現し、モデルを構築するのかについて解説していきます。