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

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

2008年10月25日() [n年日記]

#1 IBIS 2008

いよいよ IBIS 2008 です。
ノンパラメトリックベイズは初日の29日, 10:05-12:05 です。
[概要]
絶賛テンパり中。..できた!
wave:~/work/ibis-npbayes% cvs log ibis2008-npbayes.tex
RCS file: /home/daichi/cvsroot/ibis2008-npbayes/ibis2008-npbayes.tex,v
Working file: ibis2008-npbayes.tex
head: 1.27
total revisions: 27;    selected revisions: 27
----------------------------
revision 1.27
date: 2008/10/26 05:10:13;  author: daichi;  state: Exp;  lines: +2 -4
*** empty log message ***
----------------------------
revision 1.26
date: 2008/10/26 05:07:32;  author: daichi;  state: Exp;  lines: +42 -3
*** empty log message ***
----------------------------


2007年10月25日(木) [n年日記]

#1 -

Lancelot James氏 (確率論の人。ノンパラメトリックベイズをきちんと勉強している 人は絶対に知っていると思います)から, 自然言語との関係に興味を持ったので訪問してTalkをして下さい, とのメールが。マジですか..。
深い話を完全に理解しているとはまだ言えないので, ちょっと不安な面もあるのですが, 行けますと返事したので, 来年になると思いますが, HKUSTの統計教室 に行ってTalkをする可能性がありそうです。

#2 The Nested Dirichlet Process

つくばに行っている間の勉強会で山田さんが紹介した Nested Dirichlet Process (nDP)を, 帰ってから山田さんの資料(非公開)を読んで少し議論して, ようやく理解した。
nDPは簡単に言うと, 「HDPのbase measureが観測グループ毎に異なるもの」。HDPでは base measure G_0 自体がDPに従うが, このG_0は一回だけ
G_0 ~ DP(β,H)
とDPからサンプルされたもの。
これに対して, nDPではG_0自体が infinite mixture になっていて,
G_j ~ DP(β,H) (j = 1,..,∞)
を stick-breaking で混ぜ合わせた G_0 からGをサンプルする。 イメージ的には, HDPで一つしかなかった共通の base measure をスペクトル分解して グループ毎のDPに分ける, というようなこと。 G ~ DP(α,G_0), G_0 〜 DP(β,H) なので, 合わせると G ~ DP(α,DP(β,H)) になり, Nested DPになる。 ここではサンプルした各G毎に, 使ったbase measureの混合要素 G_j が決まり, Gを使ったDPのクラスタリングに加え, G自体がクラスタリングされることになる。

nDPは数ヶ月前に自分で読んだ時には, HDPとの違いが全然分からなかったのですが, これで理解できるようになった。
ていうかこれだけノンパラメトリックベイズをやってきても分からなかったなんて, テクニカルすぎだろ常識的に考えて‥(笑)。


2004年10月25日(月) [n年日記]

#1 -

"A note on a Variational Bayes derivation of full Bayesian Latent Dirichlet Allocation" として 公開 しました.

#2 screen tips

最近気付いた GNU screen の tips を少し.

・ sessionname

screen では
% screen -S <session_name>
としてセッション名を付けてから起動すると, 以降 -r で復帰する時などに <session_name> で参照できるが, 普通付け忘れることが多い (^^;)。というか, 起動してから, その screen での主な 作業が決まることも多い。
で, そういう時でも, 実は <prefix> : sessionname foo とタイプすれば, 名前を foo に変更することができる。 ..しかし, その際に $STY を変更してはくれないし, やや手続きが面倒。
次のように ~/.zshrc に書いておくと, シェルから % session hoge とタイプする だけで今のセッションネームを hoge に変更できる。
session () {
        screen -X sessionname "$@"
        eval "STY=$STY:r.$@"
}
ただし, $STY の変更はこれを実行したシェルだけなので, 他に同時に走っている シェルでは /tmp/uscreens/S-username/* を見たりして$STYをアップデート する必要があるかも。

・ completion

複数の screen が上がっていてレジュームする時, 特に名前を付けていなければ,
% screen -r 21576
のようにプロセス番号を指定しなければならない。(または, 名前を付けていれば どの名前があるか思い出さないといけない。)
screen -ls を見てプロセス番号をコピーするのは何だかなぁ, とずっと思っていた のだが, .zshrc に次のように書いておくと,
% screen -r <TAB>
で補完できる。
_screen () {
reply=(`screen -ls | awk '/^[ \t]*[0-9][0-9]+/{ split($1,a,"."); print a[1] }'`)
}
compctl -K _screen screen
compinit が重いのと余計な補完をしてくれるため, わざと使っていないので, compctl になっているのに注意。
compinit だと, 上の補完は誰かが書いてすでに入って いる可能性があると思う。これでタブで補完しまくり。便利便利。

・ prefix

screen のデフォルトのプレフィクスは C-a のため, Emacs が使いにくい ので, screen を使っている人は普通何かのキーに変更していると思う。
僕は telnet のエスケープからの繋がりで
escape ^]]
としていたが (C-] で screen の機能を実行する), いずれにしても ホームポジションから指を離さないといけないので, 頻繁に使うウインドウの移動 (C-] C-]) などがやりにくい。
以前 screen スレを見ていたら, "C-;" は普通は意味を持っていないよ, という情報 があった。; はホームポジションなので, 全く手を離さずにタイプできる。

ただし, 普通に C-; を設定しても, そんなコードは存在しないのでバインドできない。 が, 普通X上で使うことが今は仮定できるので, その場合は, C-; が C-] のコードを 出すように ~/.Xresources で設定してあげれば実現できる。
具体的には, .screenrc が

escape ^]]
だった場合, .Xresources に次のように書いておく。
KTerm*VT100*Translations: #override \
        Ctrl  <Key> ;: string(0x1d) \n\
        Meta  Ctrl <Key> p: string(0x1d) string("[") string(0x15) \n\
        Meta Ctrl <Key> n: string(0x1d) string("[") string(0x04)
これで, X上では C-; を screen のプレフィクスとして使える。2行目〜3行目 は, screen の copy モードに入らなくても, M-C-{p,n} でバックスクロール するための設定。C-] でない人は, "0x1d" の部分を自分が使っているプレフィクス のコードに変更すればいけると思う。


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