タグ

ブックマーク / blog.unnono.net (3)

  • logsumexpとスケーリング法

    少し前にtwitter上でCRFSuiteはスケーリング法を使っているから速い,的なことを書いたのでその解説です. linear-chain CRFのパラメタ推定に必要なのは対数尤度関数の微分です.これの計算に必要なのが,前向き・後ろ向きのスコアαとβです.時刻t(系列上での位置)とラベルiに対する前向きスコアαは,以下の式で計算されます.fは特徴ベクトル,wは重みベクトルです. ところがこのままだと問題が起こります.αの値はexp個の足し算で構成されるため,最終的にかなり大きくて,簡単に倍精度の限界を超えてしまうのです.困った.そこで,logの世界に落とします.αの代わりにlog(α)を計算します.すると,expの世界の掛け算はlogの世界の足し算になります.問題は,足し算です.expの世界の足し算を,logの世界で行う2項関数がlogsumexpです. で定義されます.expをかけてる

  • matplotlibで日本語epsを生成する方法

    matplotlibは素晴らしく使い勝手がいいのだが,日語を表示しようとした途端にハマってしまった.まだちゃんと調べきれてないんだが,どういうわけかうまく行ったり行かなかったりで,とりあえず自宅環境でちゃんと動いたのでメモ.手元の環境は python 2.6 + matplotlib 0.99.1. 最終的な結論としては,フォントを適切に設定すればOK.フォントファイルの指定はFontPropertiesを使う必要があるようだ.ここで埋め込むフォントで挙動が変わるらしいことが,経験的にわかった.動作を確認したのは最新のIPAフォント(現時点でver 003.01).このフォントは,埋込PDFを作ることをライセンス上許可しているため,フォント埋込みを要求される論文投稿など(加えて,国際学会に日語の処理の文脈で投稿する必要がある時)使うと良いだろう.こういう基盤の仕事をオープンソースという

  • matplotlibで日本語表示~解決編

  • 1