時代に翻弄されるエンジニアのブログ

ゲームプログラマをやっています。仕事やゲームや趣味に関してつらつら書きたいと思います。

確率分布について読んでみた

こんにちは,今日はコロナ社から出版されている自然言語シリーズの自然言語のための機械学習入門を読んでみました

はじめに

 自分は学生時代に統計学機械学習について学んで研究もしていましたが,改めて読むと理論の理解がまだまだだとわかりました.そこで今回は基礎の基礎となる確率分布を解説したいと思います.

二項分布

 多項分布は以下数式になります.コイントスのような二つの事象をn回行ったときにx回ある事象が起きた確率を表しています.コイントスで言うと,表である確率がp,裏である確率が(1-p)のような形です.注意してほしいのは行った試行そのもではなく,回数による確率を扱っていることです.

{ \displaystyle
P(x;p,n) = {}_n C _x p^x (1-p)^{n-x} 
}

多項分布

 先ほどの二項分布では二つの事象でしたが,それを複数に拡張したものです.事象は一度に一つしか起きないためm個の事象の確率は

{ \displaystyle
\sum_{i}^{m} p(i)=1
}

のような性質を持ちます.多項分布では起きる順番は考慮されずないため,n回の試行で各事象が起こる回数を

{\displaystyle
 k_1,k_2,...k_m }

とすると,多項分布は以下のようになります.

{\displaystyle
\frac{n!}{\prod_{i} k_i} \prod_{i} p(i)^{k_i}
}

 たとえば,10回試行して,yesが2回,noが3回,cancelが5回出会った場合上記は以下のようになります.

{\displaystyle
\frac{10!}{2!3!5!} { {p_{yes}}^2 {p_{no}}^3 {p_{cancel}}^5 }
}

ポアソン分布

 これまではデータから分布を考えましたが,ポアソン分布は数式からどのようなものが表現できるか考えるようです.数式は以下のようになる

{\displaystyle
P(x;λ) = \frac{λ^x}{x!}e^{-λ}
}

 ポアソン分布は整数を確率変数とするため,0~∞の範囲で値を取るため計算のしやすさが利点となります.そして,分布自体は多項分布と似ています

連続確率変数

 上記では離散的な確率分布を見ました.自然言語処理では離散分布を扱うことが多いですが,現実空間をモデル化する場合連続値として見る必要があるため,連続確率分布を学ぶことは重要です.ここでは,いくつか連続確率分布について簡単に紹介したいと思います.また,連続確率分布では,確率の分布を関数ととらえ,確率密度関数と呼んでいます.確率値として用いる場合は,確率密度関数pをある範囲で積分する必要があります.

正規分布

 正規分布ガウス分布とも呼ばれ,最もよく使われます.ある研究ではすべての確率的事象は正規分布に従うとも言われています.正規分布確率密度関数は分布の平均mと分散σを用いて以下のように表現されます.

{\displaystyle
p(x;m,σ) = \frac{1}{\sqrt{2\piσ^2}}exp(-\frac{(x-m)^2}{aσ^2})
}

多次元の正規分布を求める場合xの要素毎の平均や分散,xの要素同士の関係などを考慮する必要があります.

ディクレ分布

 ディクレ分布は以下のようなの確率密度関数で,トピックモデルの構築などにも使われます.

{\displaystyle
p({\bf x};α) = \frac{1}{\int \prod_{i} x_i^{α_i-1} d{\bf x}} \prod_{i} x_i^{α_i-1}
}

 以下のような性質を持つことから,確率が0,1など極端なものになりにくい特性があります.この特性は離散分布である多項分布と同様であるため,多項分布の連続化として使われることがあるようです.

{\displaystyle
\sum_{i} x_i = 1
}

まとめ

 確率分布はある事象が起こる確率を数式で表すことができます.上で上げた例は離散的な確率分布でした.自然言語処理では単語の確率が出現する確率といったように,離散的な確率が多く存在するため,離散確率分布を学ぶことは重要になります.ですが,トピックモデルを代表とする近年の自然言語処理の技術において連続確率分布を用いることも増えたため,学習しておいても損はないと思います.