タグ

ブックマーク / wildpie.hatenablog.com (2)

  • SVM勉強メモ - wildpieの日記

    SVM SVM(Support Vector Machine)は2クラスの識別に使えるアルゴリズムで非常に性能が良いらしい。 コンピュータビジョン最先端ガイド2などによると を最小化するを求めるのがSVMとのこと。普通SVMは2次計画法を使って計算するけど、実装方法が分からないので今回はFOBOSを使う。参考1、参考2。 非線形SVMでガウシアンカーネルを使おうとしたけど、カーネルが式に出てこないからカーネルトリックが使えない。何か使う方法があるのかな? とりあえず多項式カーネルを試す。 実装 多項式 void polynomial(const double x1, const double x2, VectorXd& phi) { phi(0) = 1.0; // w0 phi(1) = 1.0; phi(2) = sqrt(3) * x1; phi(3) = sqrt(3) * x2;

    SVM勉強メモ - wildpieの日記
    delegate
    delegate 2013/02/13
  • レーベンバーグ・マーカート法を試す - wildpieの日記

    レーベンバーグ・マーカート法(Levenberg-Marquardt)は非線形の関数最小化ができる手法。誤差関数を最小化することで曲線のあてはめなどができる。 論文を読んでいると最小化はLM法を使用したと一行だけ書いてあることが多い。某学会でなぜLM法を使ったのですかという質問があったけど、みんな使っているからとの回答だった。 前から気になっていたのでどんなもんか試してみる。 ライブラリ 0からプログラムを書くのはしんどいので、ライブラリに頼る。 調べてみたら行列演算ライブラリのEigenに入っていたので、そのまま使う。 グラフの表示にはgnuplot-cpp http://code.google.com/p/gnuplot-cpp を使用する。 曲線の当てはめ Eigenのサンプルを参考にする。 このサイトでデータセットと正解データが公開されているので、正しく最適化されたかどうかが分かる

    レーベンバーグ・マーカート法を試す - wildpieの日記
  • 1