2020.10.31確率モデルを完全に理解したい...。[1]https://togetter.com/li/1268851ということで、今回は「タカシくんジャンケン異様に強い説」を題材に、ベイズ推定であつかう「確率モデル[2]複数の基本的な確率分布を組み合わせて作った確率分布」を学んでいきましょう。長い記事になっていますが、この記事を最後まで辿り着く頃には、確率モデル構築の流れと考え方を完全に理解していることでしょう...。本記事は以下の書籍を参考にしています。ベイズ主義機械学習(ベイズ学習)の基本原理にのっとり、「モデルの構築→推論の導出」という一貫した手順でアルゴリズムの作り方を解説。圧倒的に柔軟なベイズ的回帰モデルであるガウス過程の日本初の入門書。基礎の線形回帰から始め、ガウス過程の原理をゼロからていねいに解説。教師なし学習、実応用など最近の話題まで紹介した。タカシくんジャンケン異様に強い説タカシくんはジャンケンが異様に強いと街で評判です。負けを観測したデータ)があるとします。データをもとに勝率を推定してみましょう。(ここでの勝率とはタカシくんがジャンケンに勝つ潜在的な確率を指します。観測できない、言わば神のみぞ知る真の確率のことです。)推定には色々な方法がある推定には色々な方法があります。)で計算することもできます。最尤推定では、例えばある人が3戦0勝だった場合、勝率が0/3=0だと推定されます。言って、ジャンケンに勝つ潜在的な確率が0、つまりタカシくんが必ずジャンケンに負ける人だと結論づけるのは違和感がありませんか?このように最尤推定では、試行回数が少ないとき推定値が信頼できないという問題があるのでした。そこで「ジャンケンなんて所詮運ゲー[4]ジャンケンのプロの方ごめんなさいだから勝率は0.5前後になるだろう」という事前知識を組み入れたくなります。そんなときに確率モデルとベイズ推定が力を発揮します。観測データ$\bf{X}$は確率分布から生成されると考えるまず大前提として、観測データは確率変数であり、何かしらの確率分布から生成されたものだと考えます(当たり前だけど、ここがとても重要)。ジャンケンに「勝った」「負けた」というような2値の観測データを生成するような分布としてベルヌーイ分布があります。1)$(一方の事象がどれだけ出やすいかをコントロールする)を指定すると形が一意に決まる分布です。今回は、観測データ$\bf{X}$が具体的な形はよく分からない(形を一意に決定づけるパラメータ$\mu$が未知である)ベルヌーイ分布に従って生成されていると仮定しましょう。この仮定によって、観測データ$\bf{X}$が確率的に生成される過程を条件付き確率$$P(\bf{X}|\mu)=\mathrm{Bern}(\bf{X}|\mu)$$で表せるようになります。このような確率分布は観測モデル[5]ベイズ推論による機械学習入門や確率的生成モデル[6]ガウス過程と機械学習と呼ばれます。ちなみにこの条件付き確率に関して、観測データ$\bf{X}$を定数として扱い、パラメータ$\mu$の関数と見立てたものを尤度関数と呼びます。(尤度関数を最大化する$\mu$をパラメータの推定値とすることを最尤推定と呼びます。)パラメータ$\mu$も確率分布から生成されると考えるところで、ベイズ推定ではこの$\mathrm{Bern}(\bf{X}|\mu)$の形を決定づける未知のパラメータ$\mu$も確率変数だと考えるのでした。$\mu$は何かしらの確率分布に従って生成されると考えます(この確率分布のことを事前分布と呼びます)。事前分布は何でもいいのですが、尤度関数がベルヌーイ分布で表されるとき、事前分布にベータ分布を選ぶと後の計算が効率的だということが知られています。(興味のある方は「共役事前分布」で検索してみてください。)今回の場合だと、事前分布にベータ分布を選ぶことで、尤度と事前分布の積(事後分布)がベータ分布で表せます。1)$となるような変数を生成する分布です。b)$$またパラメータが登場しました。b$を生成する確率分布のことを考えるの?」と思われるかもしれませんが、今回はそこまでは考えません。b$を生成する確率分布まで求めるとなると、これはもう大変です。b$を生成する確率分布を考えることもあります。b$を手動で設定します。それはすなわち、$\mu$を生成する確率分布(事前分布)の形を指定する、つまり自分が持っている事前知識を$\mu$の確率分布に反映させることになります。b$を調整するのです。観測データに基づいて$\mu$の確率分布の形を推定するさて、ここまでで以下のパーツを手にしました。bは任意の値)$$これらを組み合わせることで、ベイズの定理より観測データに基づいたパラメータ$\mu$の確率分布(事後分布)が解析的に求められます。\hat{b}$のベータ分布に従います。式で書くと以下のようになります。\hat{b}$を計算する問題に行きついてました。\hat{b}$を計算するだけで、観測データに基づいた$\mu$の確率分布の推定ができます。遠回りにも見えますが、元々$\mu$はベータ分布から生成されると仮定しているので、そのベータ分布のパラメータを観測データを使って計算するのはおかしくないですよね。ここまでのモデリングの流れをおさらいしましょう。観測データ$\bf{X}$を生成する確率分布$P(\bf{X}|\mu)$(尤度関数)を仮定する。パラメータ$\mu$を確率変数として扱い、観測データのことは一切考えずに$\mu$を生成する確率分布$P(\mu)$(事前分布)を仮定する。b$を手動で調整して事前知識を入れ込む。$(事後分布)を求める。\hat{b}$を計算する。\hat{b}$を計算することで、勝率$\mu$がどういう分布の形になっているか推定できました。ちなみにモデリング中は頭の中でこんなことを考えています。観測データ$\bf{X}$(確率変数だとみなす)を生成する確率分布の形を求めたい。→$\bf{X}$を生成する確率分布はベルヌーイ分布だと仮定する。ベルヌーイ分布は未知のパラメータ$\mu$(確率変数だとみなす)によって支配されている。(最終的にこのパラメータ$\mu$を観測データから学習したい。)→パラメータ$\mu$が確率分布に従うとみなして、$\mu$を生成する確率分布の形を求めたい。b$(確率変数だとみなす)によって支配されている。$\mu$に関して自分が持っている事前知識をモデルに入れたい。b$を手動で設定して$\mu$の確率分布の形を指定する。尤度関数と事前分布が定義できたから、ベイズの定理で事後分布が求められる。\hat{b}$を計算する。ここまで時間を掛けてしっかりとベイズ推定の流れを確認してきました。「で、結局タカシくんの勝率はどうなったの?」という話なわけですが、記事があまりにも長くなってしまったので、今日はここまでで...。具体的な勝率の計算は、またいつか実際のデータを使ってプログラミングしながら推定していきましょう。ここまでお付き合い頂きまして、ありがとうございました。ベイズ主義機械学習(ベイズ学習)の基本原理にのっとり、「モデルの構築→推論の導出」という一貫した手順でアルゴリズムの作り方を解説。圧倒的に柔軟なベイズ的回帰モデルであるガウス過程の日本初の入門書。基礎の線形回帰から始め、ガウス過程の原理をゼロからていねいに解説。教師なし学習、実応用など最近の話題まで紹介した。前回に引き続き、今回もグラフ機械学習についてです。今回は特に、グラフにおける表現学習について紹介します。一般に表現学習とは、(機械学習を用いた)予測器を構築する際に有用な情報を抽出しやすくするためのデータの表現を学...Python【Python】緑本こと『データ解析のための統計モデリング入門』を実装していく【第3章その2】みどり本第3章の例題続きです。前回は例題のデータを分析して、以下のような特徴が得られたのでした。今回はこういった特徴を考慮しながら統計モデルを作っていきます。今回から、グラフデータに対する機械学習(グラフ機械学習)について取り上げます。グラフ機械学習はややマニアックですが、SNS分析などに威力を発揮するツールです。この連載では、グラフ機械学習の理論の基礎とPythonを使った実装について紹介...確率統計ベルヌーイ分布とかベータ分布とかタイトルの確率分布について、ふと気になって調べて見つけた動画のメモです。ベルヌーイ分布が語られる際に、よく一緒に登場するベータ分布。それらの関係を手短に、わかりやすく解説した玉木先生の講義動画。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。研究所で働くエンジニアのブログ.。