SVM (二値素性)

SVM の学習には,更新が止まっているのを理解しつつも TinySVM を使っていた.というのは,二値素性に関する実装レベルの最適化(カーネル関数の評価結果のキャッシュ+浮動小数点演算を用いない内積計算,経験的に約数倍の高速化が得られる)がされている関係で,手元のタスクでは TinySVM が少なくとも SVM-Light よりはまだ高速だったからだ.最近の比較を眺めると,libsvm ならもしかして TinySVM より速いかもと思い試してみたら,ほぼ TinySVM と同じ程度の学習時間であった.
SVM-Light の学習が終わったら,表にまとめよう.終わった.間違って学習データを上書きしてしまった orz 表にまとめる程でもなかったのと,他にもプロセスを走らせたりしていて再実験もするかもしれないので,とりあえず結果だけ(パラメタは収束判定の閾値も含めて揃えて)TinySVM (7h59m), libSVM (8h1m), SVM-Light (16h46m).SVM で二値素性のみの分類器を学習するなら,libSVM を hack して使うのが良さそうだ.