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

先月 2005年10月 来月
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

2005年10月01日() [n年日記]

#1 IBIS 2005

は面白そうなので, 出張扱いにして参加することにしました。
ただ, 後半の2日が ATR研究発表会 2005 と丸重なりなので, 最初の日だけしか聞けなさそうなのが残念。
Proceedings だけもらって, 1日目が終わったらすぐ新幹線で帰ることになりそう です。

というわけで, IBISに行かれない方は, よろしければぜひATRオープンハウスに お越し下さい。 Googleの反省を生かして?, できるだけわかりやすく説明したいと思っています。

#2 cal

どうでもいい話。
% cal 10
とすると10月でなくて西暦10年のカレンダーが出るというのは有名ですが, 1年分のカレンダーを表示することなどめったにないのに, いちいち cal 10 2005 とするのは非常に苦痛なので, 簡単ですが, 下のようなシェルスクリプトを書いて使っています。
#!/bin/sh
#
#  cal -- with a nicer user interface.
#  $Id: cal,v 1.2 2005/10/01 13:03:19 dmochiha Exp $
#
CAL=/usr/bin/cal
if [ $# == 1 ]; then
        $CAL $1 `date +%Y`
else
        $CAL "$@"
fi
これを例えば calf という名前という名前でセーブしておいて, alias cal=calf としておけば,
% cal 10
とすれば普通に10月のカレンダーが出ます。もし本当に1年分のカレンダーを 表示したい時は(普通, めったにないと思いますが..) % =cal 2005 (zshの場合)とすれば1年分のカレンダーが表示されます。 使いにくい Unix の仕様に無理に合わせることはなくて, 適当にラッパーを 書けばいいのだなぁ, と思うのでした。


2005年10月12日(水) [n年日記]

#1 Geography reduces to Economics

勉強ばかりしていて頭が飽和してしまったので (inputばかりしていてはもちろん いけないのですが, 必要なことなので), 研究と関係ない話。

少し前のことになるが, MIT Press の "The Spatial Economy" [amazon] を買った。
高校生の時は地理が好き&得意で, 地理学者になりたいと思っていたことがあるし, 東大の二次試験も地理&世界史で受けた。ちなみに, 広域科学科の院試(もちろん 受かりましたが, NAISTに来た)ももと文科出身者は地理を選択できるので, 夏休みに 朝倉書店の人文地理学講座を通学の電車の中でずっと読んでいたという記憶 があります。
この "The Spatial Economy" ですが, 素晴らしい。 都市の周辺で距離と地価に従って産業が分布するというチューネン圏の概念は, 高校では単に直観的な曲線が出てくるだけですが,

Let p^A ≡ p^A(0) be the price of the agricultural good at the city. ..
Agricultural transport costs mean that farmers receive a lower price
the farther they are from the city:
p^A(r) = p^A exp(-τ^A|r|).
Let R(r) and w^A(r) be the land rent and wage rate for agricultural workers at location r. Rent is the value of output from each unit of land minus the wage bill for the c^A workers needed to farm that land:
R(r) = p^A(r) - c^Aw^A(r) = p^A exp(-τ^A|r|) - c^Aw^A(r).
Land rents are 0 at the edge of cultivation, distance f from the city, so
w^A(f) = p^A exp(-τ^A f)/c^A. ..

うおおおおお, イカース!!!
他にも, いかにして都市が形成されるか, その間の交通はどうなっているか, 貿易についてはどうかなど, 興味深い話題でいっぱいです。 実際に発展途上国の開発計画において, どこに貿易や文化の拠点を置くべきか, ここに立地するとどういう効果をもたらすか, などに理論的な洞察を与えてくれる ものだと思います。

自分の研究があるのでじっくり読んでいる時間はないのが残念ですが, 自然言語処理以外にも, やってもよかった分野に出会って幸せを感じた瞬間でした。
こんな面白い分野があるとは, 地理の授業や講義では全く教えてくれませんでした。 実際に, 「地理学」という学問はなく, "地理" というものを理論的にやろうとすると 自然地理, つまり地球科学に近付くか, 人間の行動に注目すると結局計量経済に 近付くようです。
もっと前の時期に大学でこういう分野に出会っていれば, もしかするとそちらに 行ったのかも知れないなぁ, と思います。 ただ, どちらにしても統計的なモデル化が必要になるので, 結局同じことになっていた のではないかという気もします (例えば, 2次元の Dirichlet Process やその同類)。
この本は統計ではなく, 経済のパターンで均衡解がどうなるか, という漸近的な性質 に焦点を絞っていますが, 本当は漸近解に行くまでの挙動や, 空間が均質ではなく, 地形に従ったり交通が生まれたりして curvature がある場合に どうなるか, という議論が必要になるのだと思う。専門は経済ではありませんが, それでも面白い。

最近でも, 交易センターがどのように出現するかという話とか [LINK] を本郷の方がやられていたりするようです。これは2001年の話ですが, 今度 Princeton から [こんな本] が出たりとかするらしい。
ちなみに [これ] はLSEの都市関係の研究一覧ですが, いやー, 面白いーー。はー。

・ Mathematical Biology

もう1つ, 最近非常に興味を持ったのは, 数理生物学 でした。(学部の実験でも少しやったんですが。)
少し前に調べたので忘れかけていますが, 巌佐先生の よいモデルとは何だろうか? は夕食を食べながら読んで, モデリングを行う誰にとっても, とてもよいドキュメントだと思ったので お薦めです。


2005年10月23日() [n年日記]

#1 けいはんな文化フォーラム

第210回のけいはんな文化フォーラムで元国連の 明石康さんが話される とのことで, これは聞かないといけないだろうなぁ, と思ったので, 日曜日にけいはんなプラザのホールに行って聞いてきました。

国際関係について, ニュースで言われているような話が色々あって, その後に, 日本人は何でも日本語で読め, 情報を得られるので, 日本という世界に 浸かってしまって国際感覚を失いがちだ, という話がありました。
印象的だったのは, 明石さんが"「国際貢献」という言葉は嫌いだ" とおっしゃって いたこと。"「国際協力」という言葉の方が好きです" とのことでした。
つまり, 国際的に日本が損をして奉仕する, というのではなくて, (そういう風に明示的には言われませんでしたが)互恵的な関係であることが 大事なのではないか, ということでした。これが思うに第一のポイントで, また, 中国の上海と南部とで13倍もある経済格差をなくすために, NGOなどの日本の方がずいぶん頑張ってくださっていて, そういう経済的でない 援助も重要ではないか, というのが第二のポイントだったかと思います。
こういう話を聞くということは, 話自体の情報だけというよりも, latent attitude を育てるという意味がまず一番であろうかと思うのですが。
なお, この内容は録音されていて, 来年の(確か)1/22のNHKラジオ第二で流れる のだそうです。(前に聞いた時はそういう話はなかったので, 今回は特別 なのだと思う。)


2005年10月28日(金) [n年日記]

#1 Polya分布再考

下に色々書き足したので, ここまで来ると, 別に文書にした方がいいような 気がしてきました。
と言っても, そんなに完全に新しいことを言っているわけ ではないと思うので, 少し躊躇があります。

相変わらず, Γ関数の海を泳いでいるわけですが..。
いま, 語彙が全部で V 個あったとして, ある文書において, それぞれの単語が x = (n_1, n_2, ..., n_V) 回現れたとする。 単語のユニグラム確率を p_i とすれば, このデータ x の確率は p_i が n_i 回現れているので, 多項分布に従って
p(x|p) = (n0!/Πini!)Πi pi^ni     (1)
になる。ただし, n0 = Σi ni.
これを最大にする確率 p_i は最尤推定で,
pi = ni/n0     (2)
として求まる。 これは基本的に Naive Bayes で使われている方法で, 高村君のNBのチュートリアル などを参照。
ただ, ni はほとんどが0で非零要素はせいぜい100個くらいなのに, 10000次元ぐらいある p_i が正確に求まるはずがない。 つまり, 確率 p_i 自体に不確実性があるということなので, p_i を生成する 確率分布 p(p|α) をもってきて,
p(x|α) = ∫p(x|p)p(p|α)dp
として p を積分消去してしまうことができる。この積分は解析的に計算できて,
p(x|α) = Γ(α0)/Γ(α0+n0i Γ(αi+ni)/Γ(αi)     (4)
になる。この分布は Polya分布 (Dirichlet/Multinomial)と呼ばれている。 ただし, α0 = Σiαi.
ここまでが前フリ。

Γ関数を含むこの分布は僕は毎日のように使っているわけだけれども, 一体この分布はどういう意味を持っているのだろうか, というのが気になった。
実はこの答えは, Minka の "Estimating a Dirichlet distribution" の4章に書いてあるのだが, とりあえず必要がなかったので, これまで 読み飛ばしていた。(この論文は普通に見るとかなり難しいと思うので, 隅から隅まで読んで計算をフォローしている人はあまりいないと思うのですが..。) ここに書いてある議論は, 以下のようなこと。

いま, (1)式は

p(x|p) ∝ Πipi^ni
を意味するので, 両辺の log をとると
logp(x|p) = Σi ni log pi.
よって, ∂logp(x|p)/∂pi = ni/pi.つまり, ni = (∂log(x|p)/∂pi)・piということになる。
これを Polya 分布の場合に同じ計算をしてみると,
(∂logp(x|α)/∂mi)・mi = αi[Ψ(αi+ni) - Ψ(αi)] ≡ n~(i).
になる。ここで, mi = αi0.
これは ni と同じような意味を持っていると考えられるので, n~(i) とおくと, これがどういう意味を持っているかが問題になります。 以下の話は, Minkaの論文には書いていない話。

さて, digamma関数 Ψ(x) = d/dx logΓ(x) は, Ψ(x+1) = 1/x + Ψ(x) という性質を持っているので (Γ(x+1) = xΓ(x) なので, 両辺を対数微分すれば簡単に出てきます。 きのうの夜はこれに気付かずに, ワイエルシュトラスの公式を使って一生懸命計算して しまった。; ), 実は Ψ(x+n) - Ψ(x) = Σi=1n 1/(x+n-i)です。つまり, n~(i) は (n_i = n, α_i = αと書くと)
n~(i) = α Σi=1n 1/(α+n-i)
= Σi=1n α/(α+n-i)
= Σi=1n 1/(1+(n-i)/α).
ここで, Σの中の各項が1に等しければ, 当然 n~(i) = n_i です。 しかし実際は, 各項は
1/(1+(n-i)/α)
で, 1より小さくなっています。つまり, この和は
1 + 1/(1+1/α) + 1/(1+2/α) + ... + 1/(1+(n-1)/α)
になっていて, 頻度 i が大きくなるほど, その実際のカウントは1増えるのでは なく, 1/(1+(n-i)/α) = 1 - (n-i)/(α+n-i) だけ "dumping" されます。 Minka の論文の Figure 1 には, この和がαが小さい時には log のような ダンピング効果を持つと書いてありますが ∫1/xdx = log(x) なことを考えると (この場合は離散ですが), わりと納得できると思う。
つまり, ある単語が20回出たという事象は1回出た事象の20倍の意味がある (普通の多項モデル)ではなく, log(20)倍くらいだろう (対数の底は任意として), という常識的な直観をモデル化していることになっている。 もちろん, この dumping は αi, つまり事前の仮想的な観測数に依存していて, αiが大きい, つまり観測が多いと仮定されていればほとんどダンピングはなく 線形に伸びるが, αiが小さく観測があまり信頼できないと予想されていれば, たとえその後何回も観測された としても, その効果は log 程度に緩められる, ということになる。

実際, ここで α が 0.001 のように非常に小さい時(自然言語の場合は よくある), 上の級数の2項めから後ろは分母が非常に大きくなるのでほとんど0に 近付いて, 結局「n が何であっても」この effective count はほぼ1になる, ということ。(!)
つまり, もし αi が小さい→ xi の事前観測値が小さければ, xi が何回観測されても, 1回だけ観測されたのと同じになる, ということ。 これが Minka の論文の(79)式の意味する所だと思う(こういう説明は論文には 全然書いていないが)。

・ LOO approximation

文書データ X = (x1, x2, .., xN)が与えられた時, 上の(4)式のαを最適化するためには,
αk' = αk ・(ΣiΨ(αk+nik)-Ψ(αk)) /(ΣiΨ(α0+ni)-Ψ(α0))
という fixed-point iteration を計算します。 (この式を導くには, 色々自明でない bound を使って計算する必要があります。)
ただ, DM の論文にあるように, この計算はΨ関数を使っていて重いので, LOO近似を使うと, また自明でない bound を使って結構計算して,
αk' = αk ・(Σi nik/(αk+nik-1)) /(Σi ni/(α0+ni-1))
という fixed-point iteration を解けばいいことがわかります。
この式の意味は僕はずっとよくわからなかったのですが, 上で書いたように, Ψ(x+n) - Ψ(x) = Σi=1n 1/(x+n-i)なので, 実はこの近似は
Ψ(α+n) - Ψ(α) = Σi=1n 1/(α+n-i) ~ n/(α+n-1)
という近似をやっているのだ, ということに気がつきました。
つまり, 1/(α+n-1) + 1/(α+n-2) + .. + 1/α という和を, 各項をみな一番小さい値 の 1/(α+n-1) で近似して, n * 1/(α+n-1) として計算しているということ。 これだと誤差が出るはずですが, 分子でも分母でも同じ近似をしているので相殺されて いるのかもしれません。この近似が, LOO近似は
Γ(x+n)/Γ(x) = x(n) = x(x+1)..(x+n-1) ~ (x+n-1)^n
という近似をしているのだ, という Minka の(71)式の意味なのだと思います。 (この式には説明がないので, 前に読んだ時は(71)式の理由が全然わからなかった。)

・ MacKay's interpretation

実は MacKay も, "Models for Dice Factories and Amino Acid Probabilities" (PDF)の最後で少し違った解釈を書いています。
ただ, MacKayの近似は α_i > 0.1 のような大きい場合を対象にして計算して いますが, 言語の場合は α_i はずっと小さいのであまり当てはまらないような 気はします。小さい場合の近似式を使って計算してみたところ, あまり 面白くない式になってしまいました。(大きい場合には, KLダイバージェンス*αで 正則化がかかっていると解釈できるような式が得られる。)


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