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

先月 2024年05月 来月
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

2009年07月05日() [n年日記]

#1 バルセロナの思い出

現在充電期間なので, 研究と直接関係ない話。
言語系の会議に行くのは久し振りですが, ACL/EMNLP2004でバルセロナに 行った際, 会場は Forum Barcelona 2004 という海の近くの国際会議場で, フードコートに各種の店が並ぶ活気溢れる空間でした。
昼食を松本研メンバーでフードコートで取ったとき, ドリンクは共通に Forum Barcelonaのロゴの入った上の写真の容器で, 1.5€のデポジットになっていて, 返却するとお金が戻る仕組みになっていました。

これは飲み口が三角になっていてとても飲みやすく, 手にもよく馴染む素晴らしい デザインだと思ったのですが, よく見ると, 数学的にもとても美しい構造をしています。 これは右のような, 正三角形を囲む3つの円弧からなる図形を一辺(2/3π)だけ ひねりながら上昇させた立体で, しかも測ると, 上の辺の長さと立体の高さの比はちょうど1:2になっています。
バルセロナから帰った後これを何とかモデル化しようと思っていたのですが, 極座標で考えていたりして上手くいきませんでした。 が, 日曜日に普通の直交座標でちょっと考えたらできたので, 以下その過程。

正三角形を図のようにとると, 円弧上の点の偏角をθとすれば, 0≦θ≦π/3のとき 円弧上の点は単純に(cosθ,sinθ)です。π/3<θ≦2/3πのときは, 正三角形を左に1 移動して第2象限にあると思うと偏角はθ+π/3なので, 右に戻すだけ。 2/3π<θ≦πのときは上の頂点が原点と重なるように平行移動すると偏角は θ+2/3πになるので, 移動分の(1/2,√3/2)だけ元に戻せばOK。

まとめると図のようなパラメータ表示になり, Mathematicaで書くと

f[t_] := N[
             If[ t < Pi/3,
                 {Cos[t], Sin[t]},
                 If[ t < 2 Pi/3,
                     {Cos[t+Pi/3]+1, Sin[t+Pi/3]},
                     {Cos[t+2 Pi/3] + 1/2, Sin[t+2 Pi/3] + Sqrt[3]/2}
                 ]
             ]
         ]
です。 後はこれを原点中心に移動して, 回転行列を掛けてからさらにz方向を加えて拡大。
g[t_,s_] :=
    Block[
        {m = {{Cos[s], -Sin[s]},{Sin[s], Cos[s]}}},
        m . (f[t] - {1/2,1/(2 Sqrt[3])})
    ]
h[t_,z_] :=
    Block[
        {r = 7.5/4.8 / (2 Pi/3),
         y = r z + 1},
        Append[y g[t,z], z]
    ]

プロットすると以下のようになります。

ParametricPlot3D[
    h[t,z],
    {t,0,Pi},{z,0,2 Pi/3},
    Mesh->False,
    BoxRatios->{1,1,2},
    ViewPoint->{1.3,-2.4,2}
] 

ということで, グレート!
何年も気になっていたのですが, これでバルセロナの思い出を, Mathematicaの中に留めることができました。
(実際と捻りが逆向きですが, モデルではそちらの方が綺麗だったので, 上ではそうしてあります。)


2008年07月05日() [n年日記]

#1 PRML日本語版 下巻発売

PRML日本語版 の下巻 [amazon] が7/8(amazonでは7/11になっている)に発売だそうで, ちょうど 訳者謹呈本が届きました。
amazonで予約受付け中だそうです。

下巻はカーネル法, グラフィカルモデル, MCMC, EM, 変分ベイズ法, 確率的主成分分析 その他と内容が豪華で, すごく「実用的」な感じです。
僕が担当したのは10章の変分ベイズ法とEPでした。
翻訳した後で気づいたのですが, 10章は中でも Bishop 自身の専門でもある こともあって, かなり内容が複雑です。
そのため, 補助動詞にひらがなを意識的に使ったり, リズムを持って読めるように 訳を色々工夫してわかりやすくしたのですが, *1 それでも結構複雑なのと, 変分ベイズの一般的な公式が十分抽象的な 形で示されていないので, 変分ベイズ法について知りたい方は, まず最初に前に書いた "自然言語処理のための変分ベイズ法" などのスライドか参考文献に上げた論文 を読んで一般論を理解してから, ガウス分布の場合や線形回帰についての適用などについて知りたい 場合に, PRMLの方を読むといいのではないかと思います。

神嶌さんのリーダーシップで, これで上下巻が揃って, 上巻はかなり 売れているそうです。
個人的には, 黄色-赤系統のSpringerの表紙に帯が青文字の下巻はかなりいいなと 思ったので, 上巻の帯も赤ではなく, 緑文字にするといいような気がします。 *2


*1: 私用で先に原稿を読まれた井手さんに, 訳を褒めていただきました。 恥ずかしいですね.. ^^;。
*2: 青が先端的なイメージであるのに対して, 緑は基礎的なイメージがするということも あります。

#2 CS研異動

7/1付けで, 中岩さんと交代で上田さんがCS研の 副所長に。 (外挿すると..という話も。)
上田さんは4Fの企画に行ってしまったのですが, それでも時々3Fに来て研究されて いるようで, 凄いなと思います。


2005年07月05日(火) [n年日記]

#1 Estimating Dirichlet (2)

予備実験のために, 単純なディリクレ分布(DMのようにmixtureでない もの)の推定の計算をする必要があった。
1年位前に書いたコードがあるのだが, 先日の疎行列のフォーマットを 使ってコードを書き直してみた。

DMでは LOO (Leave-one-out) 近似を使っているが, その際気になったので, Ψ関数を使った exact な計算と, MacKayの近似法(MacKay 1994. 去年の SVM2004で紹介した話)を比べてみた。
小さなデータの代表として Cranfield コーパスを使った結果, 下のような感じになった。

UnigramBigramTrigram
Exact- (49860)64.20 [31] (57.2312)- (8298.3)
MacKay385.99 [15] (240.1676)236.80 [9] (45.0992)416.09 [16] (195.6051)
LOO 24.30 [40] (293.6186) 14.17 [24] (57.5734) 29.55 [34] (24.3058)

数値は順に, 計算時間(秒), iterationの回数, α = Σkαk. - は収束しなかったことを表す。
UnigramはDMで混合数 M=1 の場合, Bigramは (MacKay 1994) の場合と同じ。

これを見てわかるように, bigram以外では, Exact な iteration は収束しない。 山本先生のところ で, DMの計算にΨ関数を使った Exact な計算では収束しなかった, とおっしゃって いた記憶があるが, DMでなくて単純なディリクレ分布の場合でも, Exactな fixed-point iteration は unigram については収束しないようだ。
(()の中は100回の最大の繰り返し終了後の値だが, 見ると, αがすごい値になってしまっていることがわかる。)

最適化の振る舞いを見ていると, 一回最適解に行きかけるが, 途中でそれを超えて 発散してしまっているように見える。理論的には単峰で凸なはずなので 謎。ただ, 他のデータでもそうだったので, 山本先生のグループのおっしゃっていた ことは正しいのだと思う。
という, Minkaの論文を見ていただけではわからない実際的な話がわかったので, まとめてみました。

プログラムは間違っていないと思うのだが, 参考のために置いておきます。
(あくまで参考なので, これだけでは動かないので注意。)
dirpolya.m dirpolya_mackay.m dirpolya_loo.m

・ fastfit

一応 Minka のところには fastfit というパッケージもあるみたいですが, この手の話は理解する方が大変で, コードを書くのはそれほど難しくないので, 基本的に自分で書くのがいいと思う。


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