タグ

SMOに関するmroriiのブックマーク (2)

  • SVMの学習用アルゴリズムSMOを実装してみる - きしだのHatena

    SVMは2次最適化問題になるので、それを勉強してみてはということだったのですが、SVMに特化したSMO(Sequential Minimal Optimisation)アルゴリズムがあるということなので、そちらをやってみました。 SVMの制約条件に というのがあって、yiは正例なら1、負例なら-1となる値なのですが、そうすると、ようするにこの条件は、正例のαの合計と負例のαの合計が等しくなるということを示してるわけです。 この条件をつかうと、ひとつαを操作したときには、ほかのαを操作して、正例と負例のバランスを取る必要があることがわかります。 で、このことを利用して、同時に2つのαを操作することにすると、解析的に一つ目のαが求められて、2つ目のαはそこから足し算引き算で求められてお徳かも、というのがSMOの考え方です。 問題は、いかに効率よく更新する2つのαを決めるかということになります。

  • SMO法でSVMの学習してみた - きちめも

    SMO法はPRMLに名前はあるけど詳細が無かったので、別の*1買ってきて読んで理解した気分になったのでコードを書いてみた。 コードはpythonで書いたのだが、アルゴリズム的に行列の計算が全く無かった。 実際に試した対象は学習データが200程度だったので、scipyとOpenOptで素直に2次計画問題を計算させた方が早かった気がしてもにょい。*2 データはPRMLのページからダウンロードしたものを使った。 今はRVMの節を読んでいる。まだ7章終わってない>ω<; #!/usr/bin/python # -*- coding: utf-8 -*- import sys import random from scipy import * from scipy.linalg import norm from scipy.io import read_array import matplotli

    SMO法でSVMの学習してみた - きちめも
  • 1