mots quotidiens.
Daichi Mochihashi (持橋大地) daichi <at> ism.ac.jp by hns, version 2.10-pl1.

先月 2006年01月 来月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

2006年01月05日(木) [n年日記]

#1 Loader

Cでプログラムを書いていて, テキスト形式でセーブされたパラメータファイルから ベクトル/行列に読み込むという処理は非常によくあると思うのだが (MATLABの load に相当), うっかり前に書いたコードを忘れて車輪を再発明する ところだった。;
誰が書いても同じようなコードになると思うのだけれども, 次元を事前に指定せず, 読むのと同時に決めるコードは一瞬では書けないと思うので, せっかくなので 下に公開しておきます。(ファイルに書く方は簡単なので省略。)
loader.c loader.h dmatrix.c dmatrix.h

これを使うには, 以下のようにします。

#include "loader.h"
double *vector, **matrix;
int dim, rows, cols;
if ((vector = load_vector(file, &dim)) == NULL) {
	fprintf(stderr, "can't open vector from %s.\n", file);
	exit(1);
}
if ((matrix = load_matrix(file, &rows, &cols)) == NULL) {
	fprintf(stderr, "can't open matrix from %s.\n", file);
	exit(1);
}

MATLABでも, Matlabコンパイラ(mcc) を使う場合には標準の load が使えない ので, 自分でベクトルや行列をセーブ/ロードするコードを書かないといけない のだった。少し考えないとナイーブなコードを書いてしまいがちなので, 公開した 方がいいのかなと思いますが, 微妙。もし欲しい人がいたら, ご連絡下さい。
例えば, ベクトルをMATLABでロードするコードは以下のような感じに書けます。

function v = vload(file,sep)
% v = vload(file,[sep])
% load a vector v from file in ASCII format. (for mcc compiler)
% output is a column vector irrespective of original.
% file = filename of input,
% sep  = separator character in row-wise format.
% Fri Feb 13 16:41:15 2004 JST daichi.mochihashi<at>atr.jp

% open file
fid = fopen(file,'r');
if (fid == -1)
  error(sprintf('vload: %s can''t be opened.',file));
end
% field separator
if nargin < 2
  sep = '';     % null string
end
% read data
fprintf(2,'loading from file %s..\n',file);
[v,count] = fscanf(fid,sprintf('%%g%s',sep),inf);
% close file
fclose(fid);
fprintf(2,'done.\n');
研究に直接関係ないのと, それほど書くのが難しくないわりに, 皆が同じコードを 自分で考えて書かないといけない(その時, もしかするとアドホックなコードを書いて しまうかも知れない)のがムダっぽいなぁ, とは思うわけですが。 うーん。


2006年01月24日(火) [n年日記]

#1 NLP2006

言語処理学会2006 は, ポスターP2 で発表することになりました。タイトルは 「Gibbs Samplingによる確率的テキスト分割と複数観測への拡張」。
中身的にはどう考えても B3:文脈処理 だと思うんですが, こちらはポスターではないので, P2に割り当てられた のかなと思います。P2もよく見ると言語モデルに近い話が含まれているので, 中では妥当なのかも。
わりと考えれば自明な拡張ではありますが, やってみないとわからない部分が あるので, これから書こうと思います。

#2 伝統

僕が主催して, 内部でやっているMacKay輪講の担当分を読んでいて, Alan Turing が..とか Good が..とかいう記述があった (と書けば, どこを読んでいたのかわかる人にはわかると思いますが)。
思ったのは, われわれは Turing というと「フーン」という感じで別の場所の人, という風に思ってしまうが, イギリス人であるMacKay には違った風に感じられる のだろうな, ということ。
日本人にとって「江崎玲於奈が..」というのと同じように(僕は物理系ではないので よくわかりませんが), 50年前の人物のことを先輩として語っており, そして自分が それを継ぐ者であることを意識しているのだと思う。

僕も本郷の総合図書館に入った時に同じようなことを考えたことがあるが, それは単に文学的感慨であるのに対し, この場合は自分がイギリスのそうした科学の系譜 に連なっているということは, 科学的な生産活動に直接影響を及ぼすと思う。
藤原正彦氏も 『遥かなるケンブリッジ』 の中でそんなことを書かれていたような記憶がある。
もちろん, 現代で面白い研究やモデルの多くは, そうした伝統の全くないアメリカ で生まれているわけで, そうした知的伝統が不可欠のものである, ということは 必ずしもないのだとは思うけれども。


2006年01月25日(水) [n年日記]

#1 Dirichlet Processes

大羽さんのベイズ掲示板で, Dirichlet Process のいい資料がないですか, と 聞かれている ので, コメント。 僕もそんなに偉そうなことを言えるわけではないのですが, Dirichlet Process については色々スライドの類がありますが, それを見ても 結局数学的な部分はよくわからないと思うので, 地道に論文を読むのが正道だと 思います。DPについては, まず最初の論文である
Ferguson (1973) A Bayesian Analysis of Some Nonparametric Problems, The Annals of Statistics,Vol.1, No.2, 1973.
Antoniak (1974) Mixtures of Dirichlet Processes with Applications to Bayesian Nonparametric Problems, The Annals of Statistics,Vol.2, No.6, 1974.
を読むのがいいと思います。
ただし, これはルベーグ測度論がわからないと全然お話にならないので(僕はそうでした), まずその勉強が必要かもしれません。 SVM2004 の後, 松本研的には平均場近似が流行っていたみたいですが, 僕は頭が固まりそうに なりながらひたすらルベーグ測度の勉強をしていました。 本としては "Probability with Martingales" が有名で, Guy Lebanon が 絶賛しています が, あまりに詰め込まれすぎていて, ざっと見た感じ僕はあまりいい本とは思わな かったです。ものすごく数学的基礎のある人が読むと, もしかすると素晴らしい本 なのかもしれません。

DPは, それ自体というよりディリクレ過程混合モデルとして使う人が多いか と思うので, その場合は

Escobar and West (1995) "Bayesian Density Estimation and Inference using Mixtures", Journal of the American Statistical Association,Vol. 90, No. 430, 1995.
がいい論文で, これを読むのが当面の目標ではないかと思います。 ちなみに, これを読むためには, ディリクレ過程の生成パラメータであるαの 推定が必要で, それを Beta variable を入れた augmented Gibbs でやる話で
West (1992) "Hyperparameter estimation in Dirichlet process mixture models", ISDS discussion paper 1992-03, 1992.
を読む必要があります。 (Googleで探すとリンクが切れているみたいですが, 今探したら ここ にありました。)
これを手に入れたのはもうずいぶん前で, 確か2年くらい前だったのだ けれども, この論文を理解できるようになるまでこんなに長い道のりが必要だった とは, 当時は全く思っていなかった。。。

他にも色々ありますが, とりあえず上に挙げた論文が一番基礎的だと思います。
ちなみに, Antoniak (1974)などはWeb上にはないので, NAISTの電子図書館で複写依頼して 大川さんに自宅まで転送してもらったのだけれど, 何と 京大数理解析研究所附属図書館から, 和紙風の白い封筒で来て(2003年の7月ごろ), 文IIIだった僕がついに京大数理解析研究所ですか!と個人的に感慨にふけって しまったのでした。
この論文では第1種 Stirling 数になる, という話が後ろの方でわりと 突然出てきますが, これがどうしてかというのは, 僕の 2005/9/6の日記 に書いておきました。結局この論文や上のものは後で東大にログインして JSTORからPDFをゲットしたので, PDFがほしい, という方は個人的にご連絡下さい。

上の論文とは別に, スライドとしては大羽さんも紹介されていた Ghahramani の UAI'05のスライド と, Jordanの NIPS'05のスライド が 直観的な感覚をつかむにはとてもいいと思います。 Ghahramani のスライドを見て, Base measure との関係はこんな感じか! というのが 僕はよくわかりました。
というあたりで, 参考になればと思います。


3 days displayed.
タイトル一覧
カテゴリ分類
 なかのひと
Powered by hns-2.10-pl1, HyperNikkiSystem Project