見、劇的な効果がある雰囲気はない。エンコーダー/デコーダーモデルで固有名詞が入れ替わってしまうのを抑えられるので十分嬉しいということなのかな。aysユーモア文かそうでないか判定する話。流行るわー、という気分に。いえば、なぞかけ生成やってはる人いたなあ。等価)に、事前知識を組み込む話。上回っている(ただし僅差)」って言われても、その指標を評価に使うのが間違っているとしか思えないというわけで、選ぶならせめて評価は読まないと、という教訓。これがもし読み会トリだったら、ものすごいビミョウな空気で終わることになってしまってたので、そうじゃなくて本当に良かった。ソフトなアライメントだよね、って言われて聞くと、なるほどいろんな応用先がありそうだなあという気にさせられる。傾向スコアについて日本語で学ぼうとしたら、第一に名前が挙がるのは「調査観察データの統計科学」だろう。見るところがこの本、数式を中心に難が多く、読み始めたはいいけど困っているという人がかなり多そうだ。実は社内の機械学習勉強会でこの本を紹介したのだが、数式のフォローがかなり大変で、そこそこ端折ったにもかかわらず、3章が終わるまでに7回ほどかかってしまった。3章頭の「難所」については、社内勉強会の時の資料をもとにメモを書いてブログに公開したりもしている。木曜不足ひと段落したら勉強会の資料も公開しようかと思っていたのだが、3章をとりあえず終わらせたところで力尽きて、ほったらかしにしてしまっていた(忘れていたともいう......)。上の記事のコメントで公開要請をいただいたので、ようやく重い腰を上げて資料を整え公開した。Nakatani1・2章についてはおそらく大きな問題はない。層別解析の紹介がおざなりすぎることくらいだろう(それは他の本で得るべき知識というスタンスなのだと思う)。3章は、つじつまの合わない数式や記述が正直かなり多い。スライドではできる範囲でフォローしたつもりだがもちろん完全ではない。因果推論が専門なわけでもなんでもないので、「こうならつじつまがあう」という想像に基づくフォロー自体が適切ではない部分だってきっとあるだろう。資料の間違いや勇み足については指摘大歓迎なので、ぜひ。書籍と対照させながら読んでもらうためのものなので、原則として記号は書籍のものを踏襲している。理由はスライドの中でも説明しているし、実際に数式を追ってもらったら納得いくと思うが、念のため。企業で取り扱うデータの多くは、この本で言う「調査観察データ」、つまり実験室的セッティングが許されない状況で集められたデータであり、そんな「調査観察データ」でもバイアスを抑えた分析ができる(かもしれない)傾向スコアは多くの人が興味を持つ可能性があるだろう。それなのに、数式が追えないという理由だけで詰まったり読まれなかったりするのはもったいない。この資料が「調査観察データの統計科学」を読む人の助けになれば幸いである。読んでないっす......。4章以降は3章ほど大変じゃないと思うよ。ノンパラベイズ昨日の「続・わかりやすいパターン認識」読書会にて、「ホップの壺や中華料理店過程のシミュレーションをみると、これを使うと均等にクラスタリングされるのではなく、クラスタサイズが大きいものから順に小さくなっていくようなクラスタリングがされるように見えるのだが、その認識で正しいのか」といった感じの質疑があった。「クラスタリングの事前確率の考え方」のところに、ダイレクトにではないがその質問の答えにつながることが書いてあったりする。いうコラムの形になっているので、つい読み飛ばしちゃった人も多いかもしれないが、結構大事なことが書いてあるので一度じっくり読んでみるといい。そのあたりも含めて読書会でフォローした内容をここにメモしておく。ベイズにおいて、事前確率(事前分布)の選び方に論理的な裏付けがありうるのか、というと、実のところ全く何もない。ぶっちゃけ事前分布はなんでもいい。機械学習連載で書いたので、興味があれば一度。理論的にはなんでもいいが、そこに人間様の都合が絡むと、こういう事前分布は困る、とか、こういうのは嬉しい、とか出てくる。ありうる事象(今回の場合は分割方法)の確率が非ゼロなんらかの方法で事後分布が計算できる共役事前分布は後者の「計算できる」を最優先にした選び方になる。共役でなくても、今回のディリクレ過程のように「ギブスサンプリングできる」でもいい。12章でやる話なので、ここではとりあげない。ベイズ公式を見ればわかるが、事前確率がゼロである事象は、たとえどんなデータをもってきても、事後確率もゼロである。よって「ありうる事象」、つまり「答えとして考えられるすべての可能性」には非ゼロの確率を与えておかないといけない。今やりたいことは「クラスタ数をあらかじめ決めない」なので、クラスタ数が3個でも4個でも5個でも、何個であってもちゃんと非ゼロの確率を持つ事前分布が必要なわけである。これで冒頭の質問に答える準備ができた。ここで大事なことは、事前確率は非ゼロでさえあればどんなに小さくても(理論的には)いいということ。いう割り方にもちゃんと非ゼロの確率が割り振られる。現実には到底観測されることなんかあり得ないほど低い確率だろうけど、ゼロでさえなければ、データが何とかしてくれる期待が持てるわけだ。何でもいいといっても、事前分布が「変」であるほど、「正しい答え」にたどり着くには膨大なデータ数が必要になる。逆に言えば、データ数が少ないと事前分布に引きずられる。2個のクラスタにまでは分かれるのだが、そこから分割が進まなかったりする*1。近いところまで行くのだが。これはおそらく事前分布であるディリクレ過程に引きずられているのだろう。いう発想が当然出てくるだろうが、実は可算無限な台を持つ一様分布は作れない(ちょっと考えれば雰囲気はわかる、はず)のと同じ理由で、どうしたって傾斜を持たせるしかなかったりする。ディリクレ過程(やホップの壺や中華料理店過程)は、上の「任意クラスタ数で非ゼロ&計算できる」という条件を満たす中で一番易しいものなのだ。紹介されているピットマン・ヨー過程*2はその代表的な一つである。ある分野でどんなに有名であっても、その隣接分野ですら知られているとは限らないというよくある現象なんだけどね。11章をつらつら読む。なるまでシミュレーションしたときのテーブル数の推移が示されているのだが、当然ながら一回の試行しか描かれていない。10行ちょっとのスクリプトでできる話であり、実際やってみると、実行するたびにテーブルの増え方が結構変わる。一回の試行ではぶっちゃけよくわからん。なったときのテーブル数の分布を箱ひげで描いてみた。ほとんどは中心の周辺にきれいにまとまるけど、散らばりもそれなりにある。少ないうちにだいたい決まっちゃう)ということもわかる。テーブルの増える確率がどんどん小さくなることから想像できる通りではあるが。ちなみに、それぞれの平均値と標準偏差はこんな感じだった。sd=3.27(3.22)カッコ内はそれぞれの理論値。giovedi`?」で求めていたが、分散も「独立な確率変数の和の分散は、分散の和」*1であることに注意すればまったく同様に求めることができる。ここでは厳密さが欲しかったわけじゃないのでシミュレーションでお茶を濁したけど、実は二手間くらいかければ確率質量関数も計算できる。知りたかったら「ポアソン二項分布」で検索。大したものではないが、シミュレーションのスクリプトも一応貼っておく。中華料理店過程は、事後分布とか絡まなければ、実装はとても易しく楽しいので、興味あればこんなん見ないで自分で実装してみる方がいい。ノンパラベイズ「続・わかりやすいパターン認識」(以降「ぞくパタ」)の11章「ノンパラメトリックベイズモデル」を読んでいる。この11章・12章のための本、と言ったらさすがに言いすぎなのかもしれないけど、そのつもりで読んでる人はけっこう多そう。ノンパラベイズをしたかったら英語の論文読むしかない状態だったのが、日本語で読めるようになったというだけでも十分価値があるわけだが、ディリクレ過程と、無限次元ディリクレ分布や中華料理店過程との関係などもきちんとフォローされているし、ディリクレ過程とはどのようなふるまいをするものなのか、あれこれ実験して示してもくれていて、これは力作だなあと頭が下がる。いっても、そもそも題材が本質的に易しくないので、これほどていねいに解説されてあっても、さらっと読んだだけではまったく意味はわからない。紙と鉛筆無しで理解できたら、ウン千人かに一人の天才以上だろう。読書会もまもなくノンパラベイズに突入するが、それなりの覚悟を持って予習するのがおすすめ。前振りはこれくらいで。なることが知られている。