« | »

2011.08.12

CRFツールのベンチマーク

CRFsuite 0.12のリリースに合わせて,チャンキングタスクによるベンチマークを更新しました.見所は,0.11→0.12でどのくらい速くなったのか,高速だと謳っているWapitiがどのくらい速いかです.その他,各学習アルゴリズムによる性能(学習速度,精度)差も,興味深い点かと思います.比較したツールは,

実験では,L2正則化(C=1),L-BFGSの終了条件は直近10回の反復で目的関数の改善率が1e-5を下回ったとき,平均化パーセプトロンの反復回数は50に固定,という条件にしました.

まず,CRFsuite 0.12で実装された平均化パーセプトロン(AP)は,非常に高速でありながら,L-BFGSやSGDに迫るタグ付け性能を示しています.精度はL-BFGSやSGDと比較して0.1~0.3ポイントくらい低下するようですが,学習データを1回(iteration)処理するのに要する時間は,1.7-1.9倍高速です.1回の反復に要する時間が短くなるのは,各事例に対してViterbiアルゴリズムを適用するだけで学習を進めることができ,手間のかかる対数尤度や勾配の計算を省くことができるからです.さらに,今回の実験では8回の反復でピークの性能を示したので,反復の回数を開発データセットなどでうまく調整できれば,非常に有用な学習アルゴリズムと言えます.

比較したソフトウェアの中で後発のWapitiはなかなか速いですが,一回の反復に要する時間を比較するとCRFsuiteより遅いようです.Wapitiのデフォルトのパラメータでは,L-BFGSの収束判定が非常に甘いため,30回強の反復で最適化が終了してしまいます(このため収束判定条件を統一しました).L-BFGSのiteration回数と精度のグラフを見ていると,30回付近では精度の改善が続いているため,この段階で最適化を止めてしまうのは早すぎます.WapitiはML compで長い間最速を維持していると謳っていますが,収束判定が甘いのが主要因だとすると,利用には注意が必要かもしれません.

CRFsuiteもML compにエントリーしたいのですが,系列ラベリングタスクの素性生成は各ソフトウェアに任されており,しかも,各ソフトウェアはどのタスクのデータが来たのか分からないため,有益な比較がしづらい状況にあります.つまり,与えられたデータの各列の意味がソフトウェア側からは(トリッキーな方法を使わない限り)分からないので,品詞タグ付けやチャンキングで同じ素性セットを使うことになってしまいます.さらに,素性数や学習アルゴリズム,パラメータなどで学習時間は大きく変わるので,純粋な実装の「良さ」をML compの実験環境で見積もるのは難しいと思います.

CRFsuite 0.11と0.12の比較(L-BFGS学習時)では,sparse素性で1.38倍,dense素性で1.46倍の速度向上が見られました.大した速度向上ではないかもしれませんが,0.12ではソースコードの可読性・再利用性を劇的に改善したので,この結果には満足しています.

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>