機械学習手法『SVM(Support Vector Machine)』

久しぶりの機械学習ネタ。

Deep Learningが何かと話題の昨今ですが、実用方面ではSVMやRandom Forestなどの古典的な手法が活躍しているらしい。
それなら、古典を学べば身近なところですぐに応用ができるのではないかと思い始めた。リッチな処理じゃなくて、すごく質素な単純作業か何かが自動化できたら面白いなぁ、と。(機械学習の古典的手法というとむしろニューラルネットワークの方らしいけど)

Random Forestについては前に勉強したからそれなりに理解しているので、今回はSVMについて理解を深めておこうと思う。



この記事に触発されたというのもあります。↓

C++によるSMOを用いたSVMの実装

機械学習の手法にはいろいろありますが、その中でもサポートベクトルマシン(SVM; support vector machine)は高い精度で知られる有名な手法です。
以前C++で多層パーセプトロンを実装したので、今度はSVMをC++で実装してみました。


スポンサーリンク

というか、この記事で非常にわかりやすく解説されているので、もうあんまりやることがない(笑)


スポンサーリンク


SVMのような古典的な手法なら、以前見つけたMLDemosというツールに実装されているので、これをいじって試してみる。
https://blog.negativemind.com/2015/01/09/%e6%a9%9f%e6%a2%b0%e5%ad%a6%e7%bf%92%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%99%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ae%e5%8f%af%e8%a6%96%e5%8c%96%e3%83%84%e3%83%bc%e3%83%ab%e3%80%8eml/

少し調べてみたら、SVMを実装したLIBSVMっていうメジャーなライブラリがあるみたい。↓

LIBSVM — A Library for Support Vector Machines

LIBSVM

LIBSVMは、サポートベクトルの分類(C-SVC、NU-SVC)、回帰(イプシロン – SVR、NU-SVR)と分布推定(1クラスSVM)のための統合ソフトウェアで、マルチクラス分類をサポートしています。

ソースコードはGitHubにもある。色々な言語へのインターフェイスを用意しているみたいだけど、コアは読めなくもない量だ。
これ、javascriptでも動くのか。Wikipediaによると、Pythonの機械画集ライブラリscikit-learnもこのLIBSVMを利用しているらしい。


スポンサーリンク

関連記事

ディープラーニングに対応したPythonの機械学習ライブラリ『Pylearn2』
オープンソースの顔認識フレームワーク『OpenBR』
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
FCN (Fully Convolutional Network):ディープラーニングによるSema...
クラスの基本
UnityのTransformクラスについて調べてみた
バージョン管理の履歴を可視化するツール『Gource』
RefineNet (Multi-Path Refinement Network):ディープラーニン...
CycleGAN:ドメイン関係を学習した画像変換
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
Seleniumを使ったFXや株の自動取引
Unityの各コンポーネント間でのやり取り
3Dグラフィックスの入門書
オープンソースの物理ベースGIレンダラ『appleseed』
Open3D:3Dデータ処理ライブラリ
Mask R-CNN:ディープラーニングによる一般物体検出・Instance Segmentatio...
MFnDataとMFnAttribute
UnityからROSを利用できる『ROS#』
PythonでMayaのShapeノードプラグインを作る
ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
OpenMVSのサンプルを動かしてみる
3Dコンピュータービジョンライブラリ『PyTorch3D』
画像中の人物表面のUV座標を推定する『DensePose』
Model View Controller
HD画質の無駄遣い その2
OpenCVのための軽量GUIライブラリ『cvui』
WordPressプラグインの作り方
機械学習手法『Random Forest』
IronPythonを使ってUnity上でPythonのコードを実行する
WordPressのテーマを自作する
OpenCV バージョン4がリリースされた!
3Dボリュームデータ処理ライブラリ『OpenVDB』
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
Raspberry PiのGPIOを操作するPythonライブラリ『RPi.GPIO』の使い方
続・ディープラーニングの資料
iPhoneアプリ開発 Xcode 5のお作法
Houdiniのライセンスの種類
機械学習に役立つPythonライブラリ一覧
OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』
書籍『OpenCV 3 プログラミングブック』を購入
マンガで分かる JavaScriptプログラミング講座
科学技術計算向けスクリプト言語『Julia』

コメント