murawaki の雑記

はてなグループから移転してきました

Markov Chain Monte Carlo with People

Sanborn, A. N., & Griffiths, T. L.: Markov Chain Monte Carlo with People. NIPS 2007. (pdf).

NLP に分類したけど、論文に NLP の話は出てこない。探したら真面目に解説しているスライドがあった。こちらを見た方が良い。

目的。人間の頭の中にある (と想定される) 確率分布を知りたい。そのために、その分布からサンプルを引き出したい。サンプルをたくさん集めれば、元の確率分布が復元できるはず。しかし、人間は、見せられた絵がどれぐらいキリンっぽいかとった質問にうまく答えられない。人間の言語は離散的で、連続的なものをうまく表現できない。でも二つ絵を見せて、どちらがキリンっぽいかという質問になら、簡単に答えられる。

そこで MCMC で sampling された値を採択するか否かを人間にやらせる。つまり人間は Yes/No question に答えていく。具体的には、二つのデータを見せられて、どちらかを選ぶ。これを十分に繰り返すと、得られる値の列が、知りたい確率分布からサンプルされたものになっている。

中身は (一般化されていない) Metropolis 法。Bayes 則を使う。人間が Bayes 則に従って判断していると仮定。仮説は二つがあって、一つはマルコフ連鎖の現在の状態。もうひとつは提案分布から出た次の状態の候補。事前分布は一様と仮定。反対側の分布も g(x1) = g(x2) と仮定。これらの仮定により単純な採択関数が得られる。この関数は認知の人は昔から使っているというけど、全然知らない。

実験1。既知の分布が MCMC で復元出来るか調べる。しかし、訓練で正規分布を人に覚えさせるというのは結構不自然。結果、平均は割とあってるけど、分散は実際より大きくなる。

実験2。画像をカテゴリに分類する問題。9次元の自由度を持つ棒が、キリンか、馬か猫か犬かを表しているとして、人間の頭の中の prototype をあぶり出す。

他に何か応用例はないかと、この論文を引用している文献を探す。音素について何かやっているらしい論文を見つけた。まだ調べていない。

使い道。ぼんやりした分布そのものを得たい場合。自然言語処理は離散値の天下なので、あまりそういう話がない。欲しいのが離散値だったり、データが離散値だったり。正規分布ですら、使ったとしても裏方にまわっている場合がほとんど。だから、人間に答えを聞く場合、Yes/No question だったり、A か B か C から選ぶといった具合に離散的な値を答えさせている。そうしたデータを使うとなると、分離超平面を求めるといった話になってしまう。領域の端っこを求めましょうという問題になってしまっている。でも、本当に知りたいのは中心のことも多いのではないか。

しかし、言語分野で需要がないとも思えない。そもそも prototype というのは言語から出てきた話のはず。basic level category なんかをこれで扱えたりしないものか。