SVM1

そろそろSVMについて一言どころかいろいろと言っておくか。
まあ学問的に詳しく知りたい人はSVMの本を買うか、ググればよいsvm - Google 検索と言うことでここでは直感的で現実的なお話をしていこうかな、と。
正確に言うと、僕自身が数学的に怪しかったり、プログラミング力に怪しさがあるからなんですけどね。
それはまあ置いといて。


SVMは世の中を真っ二つにぶった切る学習機械です。



いやほんとに。
正確にはn次元で記述された入力空間をn-1次元の超平面で二つに分けるわけです。
僕も最初良く分からなかったわけだけども、よくよく考えるとしごく当たり前なことを言っているわけですよ。
例えば2次元空間を考えたときに、2次元空間を二つに区切る時は直線を使います。
そう、つまり、1次元部分空間である、直線を使えば2次元空間を二つに区切ることが出来ますね。


では、3次元では。
平面ですよね。
平面は2次元と。
つまり現在の空間の次元から1次元引いたものを使えば空間は二つに分けれるわけです。
4次元以上は想像できないので、2次元とか3次元で考えればよいと思いますね。


んで、SVMは「教師有り学習」という手法に属します。
機械学習の手法は、「教師有り学習」と「教師無し学習」に分かれるわけです。
これに加えて「強化学習」なんてのもあるわけですが、今は特に触れません。


「教師有り学習」は学習の時に答えが分かってるものを使うわけです。
これはAだ。
これはBだ。
と。


するとどうなるか、学習が終わった後、初めて見るものがやってくると「これはAだな」と「予測」できるようになるわけです。
ここがポイント。
「予測」です。
それが合っているかどうかはまた別問題。


つまり、学習した後では、「これはAです。」「これはBです。」と学習機械が分類できるようになるのです。
前述のとおり、SVMは「教師あり学習」に属するので、学習を行うと「世の中を2つに区切る超平面」なるものを手に入れることができ、それにしたがって、見たことのないものが超平面のどちらにあるかでAなのかBなのか、と判断できます。
ここで気付くのですが、実はSVMは2つのものしか判定できません。
AかBかだけです。
専門的に言うと「2クラス分類器」とか言うものに属します。
まあ、最近は研究が進んでいるので2つだけでなく、3つ4つと分類することができるらしいですが、基本は2クラス分類です。


以下気が向いたら続けていきます。