美味しいマシンラーメンの作り方

みんなやってるPythonを用いた機械学習について書いていきます。

SVMで手書き数字識別

お疲れ様です.

今回から「手書きの数字がどの数字かを正しく分類する」という問題を, 優れた学習モデルであるサポート・ベクター・マシン (Support Vector Machine) を使って解いていきます.

サポート・ベクター・マシンとは?

いくつもの種類に分かれるものをうまく分類することが得意な学習モデルで, 今回取り扱う手書き数字の分類問題や, ネットワークの異常検出, さらには株価の予測なんかにも使われています. 様々な分野で使えるのは良いですね! 

SVMの直感的な説明

SVMは, データを表す2種類の点集合直線(超平面)によって分別するモデルです.

次の図をご覧下さい. いま, 図の青い点の集合と赤い点の集合を仕切る直線を引くことを考えます. 我々人間が線を引くとするならば, 右の引き方よりも左の引き方の方がうまく区別できそうな気がしませんか?

f:id:machine_ramen:20171120142851p:plain

実際左側の図は, 直線から一番近い点と直線との距離が大きく, 右側はそれが小さいです(下図). これをマージンと呼びます.

f:id:machine_ramen:20171120144144p:plain

SVMは, このマージンを最大化するアプローチを使って学習するモデルです.

次回に続きます.

冷やし中華あたためました

みんなやってるPythonを用いた機械学習に関する記事を書いていく予定です。

まずはPython機械学習プログラミングに沿って記事を更新するつもりです。