33
ノンパラベイズ入門の入門 2012/11/09 MLxPGstudy 中谷 秀洋 (@shuyo, id:n_shuyo) サイボウズ・ラボ

ノンパラベイズ入門の入門

Embed Size (px)

DESCRIPTION

機械学習×プログラミング勉強会 vol.2 での発表資料です。 ベイズの何が嬉しいか、ノンパラベイズの何が嬉しいかを数式を使わず語ります。

Citation preview

Page 1: ノンパラベイズ入門の入門

ノンパラベイズ入門の入門

2012/11/09 MLxPGstudy

中谷 秀洋 (@shuyo, id:n_shuyo)

サイボウズ・ラボ

Page 2: ノンパラベイズ入門の入門

資料について

• やること

– ベイズって何が嬉しいの?

– ノンパラベイズって何が嬉しいの?

• やらないこと

– どうやって学習するの?

– プログラミング

– 数式 数式ないって よかった~

えー数式のほうが わかりやすいのに!

Page 3: ノンパラベイズ入門の入門

パラメータの推定 - 最尤推定とベイジアン -

Page 4: ノンパラベイズ入門の入門

さて問題です。

Page 5: ノンパラベイズ入門の入門

問題 1

• たかしくんがコインを 5 回投げたら、そ

のうち 3 回表が出ました。このコインの

表が出る確率を求めなさい。

解答: 3

5

では投げます!

つ、つっこまないぞ……

Page 6: ノンパラベイズ入門の入門

問題 2

• たかしくんがコインを 5000 回投げたら、

そのうち 3000 回表が出ました。このコ

インの表が出る確率を求めなさい。

解答: 3000

5000=

3

5

Page 7: ノンパラベイズ入門の入門

どっちも同じ答えでいいの?

Page 8: ノンパラベイズ入門の入門

コインの確率は?

• 確率 1/2 のコインかも

– たまたま「5回中、3回表」だっただけ

• 確率 1/5 のコインかも

– たまたま「5回中、3回表」だっただけ

• 5000回なら「めっちゃ 3/5」っぽい

– 何回以上なら 3/5 だって言ってもいい?

• これは「コイン投げ」のパラメータを求める

問題

Page 9: ノンパラベイズ入門の入門

最尤推定

• お手本(訓練データ)の確率が最大になるよ

うにパラメータを定める

– 実際に起きていることが一番起きやすい!

• 「表表表裏裏」の確率が最大になるのは

表の確率が 3/5 のとき

– ラグランジュ未定乗数法とか使うと示せる

Page 10: ノンパラベイズ入門の入門

ベイジアン

• コインの確率は 3/5? 1/2? 1/5?

– それぞれの可能性を確率で表す

• 答えが確率分布で求まる

– 青: 3表/5回

– 赤: 3000表/5000回

• 情報量が多い

– 最尤推定だとどちらも 3/5 で区別できない

めっちゃ3/5!

3/5 の可能性高め でも自信はない!!

1つのチャートに収めるため、2つの縦の縮尺は異なっています 事前分布によってグラフの形は大きく変わります(図は Beta(1,1) の場合)

Page 11: ノンパラベイズ入門の入門

最尤推定 vs ベイジアン

• どっちがいいの?

– どっちがいいとかそういうことではなく

– 解き方はまだまだ他にもあるし

• 結局、問題やモデル次第

– 最尤推定が適した問題なら最尤推定

– ベイジアンが(ry

• ただし、この発表の中ではベイジアン推し

– ノンパラベイスの話だからね!

Page 12: ノンパラベイズ入門の入門

具体例:言語モデル

Page 13: ノンパラベイズ入門の入門

言語モデル

• 文章のもっともらしさを数値化

– もっともらしい文章に良い数値を返す

– 確率的言語モデル:もっともらしさを確率で

• 簡単なモデルからスタートして、ノンパラベイズに

たどり着くのを見ていきましょう

「もっともらしさ」 って何?

さりげに難しいこと 聞いてくるねえ

Page 14: ノンパラベイズ入門の入門

ユニグラム(1-gram)

• 最も簡単な言語モデル

– 文書の内の単語の確率を掛け算

– お手本文書(コーパス)での各単語の割合が

そのまま単語の確率に

• 最尤推定!

I am a pen 0.011×0.005×0.025×0.001 =1.375 × 10-9

この文章の確率 (もっともらしさ)

Page 15: ノンパラベイズ入門の入門

ユニグラム(1-gram)

• 全ての文書に共通の単語分布を使う

– 単語「マンガ」の確率はどの文書でも同じ

政治 IT アニメ

コーパスから作った単語分布

矢印は 文書の単語がこの単語分布に 従っているってこと

Page 16: ノンパラベイズ入門の入門

性能を上げたい!

Page 17: ノンパラベイズ入門の入門

文書ごとに単語分布を作ったら……

• 1つの単語分布を作るのに使えるデータが少ない

– 共通の単語もいっぱいあるのに……

– 機械学習の大原則「データが増えるほどよい」!

Page 18: ノンパラベイズ入門の入門

文書グループごとに単語分布を……

• 文書を「正しく」グループ分けするのは大変!!

– 複数のグループに属するような文書はどうする?

– 「ナイーブベイズモデル」は こっち方向

アニメ 政治 IT

Page 19: ノンパラベイズ入門の入門

LSI (Latent Semantic Indexing)

• 単語分布の個数 K は適当に決める(図は K=3)

– 各文章の単語分布は K 個の単語分布を適当に混ぜる

– 単語分布と混合比を同時に最尤推定(EMアルゴリズム)

0.5 0.3 0.2

Page 20: ノンパラベイズ入門の入門

もっと性能を上げたい!

Page 21: ノンパラベイズ入門の入門

LSI をベイズ化

• 最尤推定でパラメータを決定的に推定

– 「それってたまたまじゃあないの?」問題

• 他にもゼロ頻度問題とか(今はやらないけど)

• ベイズ化してみよう!

– LSI のパラメータは単語分布と混合比

– それらの可能性を分布として表現

Page 22: ノンパラベイズ入門の入門

ディリクレ分布

• 足して1になる値の確率分布

– 3次元の場合、三角形の上の分布と見なせる

– 高次元でも同じ三角形イメージで

(0,0,1)

(0,0,1)

(0,1,0)

(1,0,0)

(0.5,0.3,0.2)

Page 23: ノンパラベイズ入門の入門

(0,0,1

)

LDA (Latent Dirichlet Allocation)

• LSI の単語分布と混合比にディリクレ分布を入れる

– ゼロ頻度対策しつつ、混合により多い情報を反映

• 言語モデルとして性能向上!

(0,0,1

)

(0,0,1

)

Page 24: ノンパラベイズ入門の入門

もっともっと性能を上げたい!

Page 25: ノンパラベイズ入門の入門

(0,0,1)

LDA をさらにベイズ化!?

• 単語分布の個数 K と混合比のディリクレ分布のパラメータを適切に選ぶと、LDA の性能が上がる

• パラメータをベイズ化したら、学習時に自動的に決まる!

– ……って、やりたいところだけど単純にはできない……

(0,0,1)

(0,0,1)

Page 26: ノンパラベイズ入門の入門

ベイズ化に都合のいい分布 (共役事前分布)

• なんでもベイズ化できるわけではない

– 推論に必要な積分が計算できないとツライ

• 「共役事前分布」

– 推論に出てくる積分を計算しなくていい分布

– 実はディリクレ分布は多項分布の共役事前分布

• ディリクレ分布に共役事前分布ある?

– 一応あるけど、その分布自体すでに計算できない

Page 27: ノンパラベイズ入門の入門

ものすごく都合のいい分布

• ディリクレ分布の代わりに使えて、

• パラメータに分布を入れても計算できて、

• ついでに単語分布数 K も勝手に決めてく

れる分布

そんな都合良すぎる分布 あるわけないよなあ……

Page 28: ノンパラベイズ入門の入門

ノンパラメトリックベイズ

Page 29: ノンパラベイズ入門の入門

ディリクレ過程 (Dirichlet Process)

• 重み付きの空間(図の黒太線)から可変個の点を取って、それぞれに確率を与える分布

– 縦線の本数が K に対応

– 縦線の長さがそれぞれの点の確率に対応

• 可変個 → 「ノンパラメトリック」な分布

– パラメータがないわけではない

乱暴にいうと、次数が可変のディリクレ分布

Page 30: ノンパラベイズ入門の入門

階層ディリクレ過程 (HDP)

• ディリクレ過程のパラメータに

ディリクレ過程を入れる

– 積分は出来ないが、これを解く

方法がある(中華フランチャイズ

過程など)

やめてー

Page 31: ノンパラベイズ入門の入門

LSI をノンパラベイズ化! (HDP-LDA)

• LSIの単語分布をベイズ化、混合比をHDPでノンパラベイズ化

– 混合比分布のパラメータと単語分布の個数 K が自動的に決まる!

• 本質的には LDA と大きく変わるわけではない

– 最適なパラメータを選択した LDA と同じ精度になる

(0,0,1

)

… K

Page 32: ノンパラベイズ入門の入門

ノンパラベイズの応用 • 階層化

– パラメータの自動決定

• チューニングに血道を上げなくても性能が出る

– 複雑で高度なモデルの構築

• sequence memoizer (最高性能の言語モデル)

• 教師無し分かち書き

• 次数の自動決定

– クラスタ数を事前に仮定したくないモデル

– 物体認識, 音源推定, etc

• 実応用にはあともうちょっと?

– 高速なオンライン&近似推論の決定版待望

Page 33: ノンパラベイズ入門の入門

まとめ • ノンパラベイズはパラメトリックモデルの

「究極進化形」(ポケモン的な意味で)

– 「ノンパラメトリック」より「ウルトラパラメトリック」とか呼びたいかも (解空間がデータによらないし)

– ホントのノンパラメトリックなベイズと区別しないの?

• 次に読むなら山本さん/持橋さんの資料がおすすめ

– Topicに基づく統計的言語モデルの最前線 - PLSIからHDPまで-

– http://chasen.org/~daiti-m/paper/topic2006.pdf

• 入門編(数式バリバリ)は Tokyo.ML(仮称)で!?

– 開催時期の予定は未定

ありがとうございました