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

先月 2007年07月 来月
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

2007年07月10日(火) [n年日記]

#1 Nonparametric Bayes tutorial

ACL 2007の チュートリアル の一つ, Percy Liangの "Structured Bayesian Nonparametric Models with Variational Inference" を全部読んでみた。
とにかく, ものすごーくよく書けているなあ, という感想。 途中, スライドの16ページ目でディリクレ分布の説明をしているところは, わかりやすすぎるだろ常識的に考えて‥という感じなので, ディリクレ分布 とは何かがよくわからない人がもしいたら, かなりお薦めです。
ただ全体に非常に良く書けているものの, ところどころ, 知っている人が読んでも 理解するのにやや時間のかかる部分もあるので, あまり細かい所にこだわらず読むのが よさそうです。(ただ, これだけでディリクレ過程がわかったと考えるのは早計だと 思いますが..)

個人的に面白かったのは, 25枚目の, D(q||p)の最小化とD(p||q)の最小化の違い について。真の分布をp, 近似分布をqとした時, D(q||p)を最小化すると, pが複峰だった場合に, ほぼ片方を近似するような分布(mode-finding)になり, D(p||q)を最小化すると, 全体をカバーするような分布(mean-finding)になる という話。へーへーへー。
一般に, 変分ベイズ法は真の事後分布に比べて, 変分事後分布がずっとpeakyになる という特徴があるようですが, これはD(q||p)を最小化しているからかも, と少し 思いました。

それから, スライド41-45での, exp(Ψ(x))の意味とその応用もへー×4でした。(注: Ψ(x)=d/dxlogΓ(x))
変分ベイズ法で多項分布を推定する時, Eステップで得られたカウントの事後期待値 xiに事前カウントα(0でもok)を足した値 ci = α+xi (i=1,2,..)を正規化して, Mステップで

p(i|x) = exp(Ψ(ci))/Σiexp(Ψ(ci))

としますが(この式の導出は, スライド90のAppendixに書かれています。 *1 ), これが通常の最尤推定

p(i|x) = ciici

とどう違うのか, という話。

exp(Ψ(x))のグラフを書いてみると, この関数はほぼ, x-0.5 と等しくなる ということがわかる(ただし, x<0.5についても自然に定義されている)。 よって, 上の式は最尤推定と比べて, Kneser-Neyのように「ディスカウント」が かかり, 小さなカウントの値をあまり信用しないようになる。 *2 つまり, カウントが0.6->0.1, 1.0->0.5, 2.0->1.5 のように減らされるので, 「ノイズ」による影響が減らされて事後分布がより信頼性の高いものに集中すること になる。実際, これを統計的機械翻訳の単語同士のアライメント確率に適用して, エラーレートが下がっている(スライド44)というのは興味深い。

なお, スライドの式は exp(Ψ(c_i))/exp(Ψ(Σ_i c_i))になっていますが, これは恐らく誤っているのに注意 (iについての和が1にならない)。 スライドの通り, p(i|x) ∝ exp(Ψ(c_i))/exp(Ψ(Σ_i c_i)) ですが, これは ∝ exp(Ψ(c_i)) なので, 正規化すると上のようになると思います。
この時, スライド43のMean-fieldの W(A|1) はカウントが c1=20, c2=20なので当然0.5で, W(A|2)は c1=0.5, c2=0.2なので, α=1のとき W(A|2) は0.5807になるようです。 (最尤推定ではスライドの通り 0.5/(0.5+0.2) = 0.71 なので, 確かにスムージング されている。)

・ -

ちなみに, 上の チュートリアルのページ で "Bayesian Nonparametric Structured Models, Afternoon, Hall III" と書いてある のを, 最初lを一つ抜いて読んでしまい, 「え? 午後はLiangじゃなくて彼がやるの?」と 思ってしまい, しばらくして場所の名前であることに気付いた。(ぉ

*1: ただ, 分配関数を求めたいパラメータで偏微分するとそのパラメータの期待値が 得られるというのは, 自分で計算した人にはわかりますが, 自然言語処理の人に とって常識とはとても言えないような気が..。(少なくとも, 僕は昔最初に見た時は??でした。)
*2: Uniformなディリクレ事前分布の場合α=1 なので, このディスカウントが あまり効かないというのは自然。 0.5は2変数の場合(ベータ分布)のJeffreys' priorで, この値より大きくなると, それなりに値が考慮されるようになる, というのは 興味深い。

#2 Klein's Tutorial (2)

それから, これも最近気付いたのですが(遅), NIPS 2006のDan Kleinの NLPのチュートリアル "Machine Learning for Natural Language Processing: New Developments and Challenges" が http://nips.cc/Conferences/2006/Program/event.php?ID=2 から見れるようです。
ビデオ(Talk)の方はスライドを全部カバーしないで終わっているのと, NLP的な内容は自然言語処理の人には既知の部分もありますが, スライドの後半は結構 面白そうです。


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