Upload
shuyo-nakatani
View
27
Download
2
Embed Size (px)
DESCRIPTION
機械学習×プログラミング勉強会 vol.2 での発表資料です。 ベイズの何が嬉しいか、ノンパラベイズの何が嬉しいかを数式を使わず語ります。
Citation preview
ノンパラベイズ入門の入門
2012/11/09 MLxPGstudy
中谷 秀洋 (@shuyo, id:n_shuyo)
サイボウズ・ラボ
資料について
• やること
– ベイズって何が嬉しいの?
– ノンパラベイズって何が嬉しいの?
• やらないこと
– どうやって学習するの?
– プログラミング
– 数式 数式ないって よかった~
えー数式のほうが わかりやすいのに!
パラメータの推定 - 最尤推定とベイジアン -
さて問題です。
問題 1
• たかしくんがコインを 5 回投げたら、そ
のうち 3 回表が出ました。このコインの
表が出る確率を求めなさい。
解答: 3
5
では投げます!
つ、つっこまないぞ……
問題 2
• たかしくんがコインを 5000 回投げたら、
そのうち 3000 回表が出ました。このコ
インの表が出る確率を求めなさい。
解答: 3000
5000=
3
5
どっちも同じ答えでいいの?
コインの確率は?
• 確率 1/2 のコインかも
– たまたま「5回中、3回表」だっただけ
• 確率 1/5 のコインかも
– たまたま「5回中、3回表」だっただけ
• 5000回なら「めっちゃ 3/5」っぽい
– 何回以上なら 3/5 だって言ってもいい?
• これは「コイン投げ」のパラメータを求める
問題
最尤推定
• お手本(訓練データ)の確率が最大になるよ
うにパラメータを定める
– 実際に起きていることが一番起きやすい!
• 「表表表裏裏」の確率が最大になるのは
表の確率が 3/5 のとき
– ラグランジュ未定乗数法とか使うと示せる
ベイジアン
• コインの確率は 3/5? 1/2? 1/5?
– それぞれの可能性を確率で表す
• 答えが確率分布で求まる
– 青: 3表/5回
– 赤: 3000表/5000回
• 情報量が多い
– 最尤推定だとどちらも 3/5 で区別できない
めっちゃ3/5!
3/5 の可能性高め でも自信はない!!
1つのチャートに収めるため、2つの縦の縮尺は異なっています 事前分布によってグラフの形は大きく変わります(図は Beta(1,1) の場合)
最尤推定 vs ベイジアン
• どっちがいいの?
– どっちがいいとかそういうことではなく
– 解き方はまだまだ他にもあるし
• 結局、問題やモデル次第
– 最尤推定が適した問題なら最尤推定
– ベイジアンが(ry
• ただし、この発表の中ではベイジアン推し
– ノンパラベイスの話だからね!
具体例:言語モデル
言語モデル
• 文章のもっともらしさを数値化
– もっともらしい文章に良い数値を返す
– 確率的言語モデル:もっともらしさを確率で
• 簡単なモデルからスタートして、ノンパラベイズに
たどり着くのを見ていきましょう
「もっともらしさ」 って何?
さりげに難しいこと 聞いてくるねえ
ユニグラム(1-gram)
• 最も簡単な言語モデル
– 文書の内の単語の確率を掛け算
– お手本文書(コーパス)での各単語の割合が
そのまま単語の確率に
• 最尤推定!
I am a pen 0.011×0.005×0.025×0.001 =1.375 × 10-9
この文章の確率 (もっともらしさ)
ユニグラム(1-gram)
• 全ての文書に共通の単語分布を使う
– 単語「マンガ」の確率はどの文書でも同じ
政治 IT アニメ
コーパスから作った単語分布
矢印は 文書の単語がこの単語分布に 従っているってこと
性能を上げたい!
文書ごとに単語分布を作ったら……
• 1つの単語分布を作るのに使えるデータが少ない
– 共通の単語もいっぱいあるのに……
– 機械学習の大原則「データが増えるほどよい」!
文書グループごとに単語分布を……
• 文書を「正しく」グループ分けするのは大変!!
– 複数のグループに属するような文書はどうする?
– 「ナイーブベイズモデル」は こっち方向
アニメ 政治 IT
LSI (Latent Semantic Indexing)
• 単語分布の個数 K は適当に決める(図は K=3)
– 各文章の単語分布は K 個の単語分布を適当に混ぜる
– 単語分布と混合比を同時に最尤推定(EMアルゴリズム)
0.5 0.3 0.2
もっと性能を上げたい!
LSI をベイズ化
• 最尤推定でパラメータを決定的に推定
– 「それってたまたまじゃあないの?」問題
• 他にもゼロ頻度問題とか(今はやらないけど)
• ベイズ化してみよう!
– LSI のパラメータは単語分布と混合比
– それらの可能性を分布として表現
ディリクレ分布
• 足して1になる値の確率分布
– 3次元の場合、三角形の上の分布と見なせる
– 高次元でも同じ三角形イメージで
(0,0,1)
(0,0,1)
(0,1,0)
(1,0,0)
(0.5,0.3,0.2)
(0,0,1
)
LDA (Latent Dirichlet Allocation)
• LSI の単語分布と混合比にディリクレ分布を入れる
– ゼロ頻度対策しつつ、混合により多い情報を反映
• 言語モデルとして性能向上!
(0,0,1
)
(0,0,1
)
もっともっと性能を上げたい!
(0,0,1)
LDA をさらにベイズ化!?
• 単語分布の個数 K と混合比のディリクレ分布のパラメータを適切に選ぶと、LDA の性能が上がる
• パラメータをベイズ化したら、学習時に自動的に決まる!
– ……って、やりたいところだけど単純にはできない……
(0,0,1)
(0,0,1)
ベイズ化に都合のいい分布 (共役事前分布)
• なんでもベイズ化できるわけではない
– 推論に必要な積分が計算できないとツライ
• 「共役事前分布」
– 推論に出てくる積分を計算しなくていい分布
– 実はディリクレ分布は多項分布の共役事前分布
• ディリクレ分布に共役事前分布ある?
– 一応あるけど、その分布自体すでに計算できない
ものすごく都合のいい分布
• ディリクレ分布の代わりに使えて、
• パラメータに分布を入れても計算できて、
• ついでに単語分布数 K も勝手に決めてく
れる分布
そんな都合良すぎる分布 あるわけないよなあ……
ノンパラメトリックベイズ
ディリクレ過程 (Dirichlet Process)
• 重み付きの空間(図の黒太線)から可変個の点を取って、それぞれに確率を与える分布
– 縦線の本数が K に対応
– 縦線の長さがそれぞれの点の確率に対応
• 可変個 → 「ノンパラメトリック」な分布
– パラメータがないわけではない
乱暴にいうと、次数が可変のディリクレ分布
階層ディリクレ過程 (HDP)
• ディリクレ過程のパラメータに
ディリクレ過程を入れる
– 積分は出来ないが、これを解く
方法がある(中華フランチャイズ
過程など)
やめてー
LSI をノンパラベイズ化! (HDP-LDA)
• LSIの単語分布をベイズ化、混合比をHDPでノンパラベイズ化
– 混合比分布のパラメータと単語分布の個数 K が自動的に決まる!
• 本質的には LDA と大きく変わるわけではない
– 最適なパラメータを選択した LDA と同じ精度になる
(0,0,1
)
… K
ノンパラベイズの応用 • 階層化
– パラメータの自動決定
• チューニングに血道を上げなくても性能が出る
– 複雑で高度なモデルの構築
• sequence memoizer (最高性能の言語モデル)
• 教師無し分かち書き
• 次数の自動決定
– クラスタ数を事前に仮定したくないモデル
– 物体認識, 音源推定, etc
• 実応用にはあともうちょっと?
– 高速なオンライン&近似推論の決定版待望
まとめ • ノンパラベイズはパラメトリックモデルの
「究極進化形」(ポケモン的な意味で)
– 「ノンパラメトリック」より「ウルトラパラメトリック」とか呼びたいかも (解空間がデータによらないし)
– ホントのノンパラメトリックなベイズと区別しないの?
• 次に読むなら山本さん/持橋さんの資料がおすすめ
– Topicに基づく統計的言語モデルの最前線 - PLSIからHDPまで-
– http://chasen.org/~daiti-m/paper/topic2006.pdf
• 入門編(数式バリバリ)は Tokyo.ML(仮称)で!?
– 開催時期の予定は未定
ありがとうございました