今、別記事で自然言語処理を学習している。
その中で出てくる機械学習の部分で、
結構数学の知識が必要となる。
それを補足していこうというのが、本記事の内容だ。
今回は、確率を解説する。
案外苦手な人も多いであろう部分なので、
基本的な部分から解説していこう。
確率とは
確率とは、全体のうち特定の事象が起こる割合だ。
普段の生活にも密接に関わっているので、
なんとなくは分かっていると思う。
よくあるソシャゲの排出率3%みたいなものも、
もちろんこの確率だ。
確率の種類
いきなり蛇足だが、
実は確率には種類があることはご存じだろうか。
- 統計的確率
- 数学的確率
- 公理的確率
この3つだ。
統計的確率
これは、実際に何度も繰り返して統計を取り、
その結果から求める確率だ。
例えば、サイコロを振って、
1の目が出る確率を求めるとしよう。
100回サイコロを振って、1が15回出たとする。
このときの1が出る統計的確率は、
15/100 = 15%となる。
数学的確率
これが、学校で習う確率だ。
全部の事象のうち、ある事象が占める割合を
そのまま確率とする。
上と同じくサイコロを例に出そう。
どの面も出る割合が等しいとしたときに、
サイコロの1の目が出る確率を求めよう。
全体の事象は1から6の目が出るパターンなので6通り。
その中で、1の目が出るパターンは1通り。
というわけで、割合を出すと1/6、
これがそのまま確率となる。
本記事では、
単に確率と言ったらこれを表すとしよう。
なお、どの面も出る割合が正しいとする、
というのがポイントだったりする。
これを、同様に確からしいという言い方をする。
公理的確率
こちらは、集合やその実数への写像を公理として定め、
それを確率として扱うというもの。
今回解説したいものとはちょっと異なるので、
詳細な説明は省こう。
確率の計算
では、具体的な計算を見ていこう。
確率の定義
全体のパターン数を\(n\)、
そのうちある事象\(A\)のパターン数を\(a\)としたとき、
事象\(A\)が起こる確率\(p\)を、
$$p = \frac{a}{n}$$
と定義する。
例えば、コイントスを1回する場合。
全体は表か裏かの2パターン、
どちらが出るかは同様に確からしいとしよう。
表が出るという事象を\(A\)とすると、
そのパターン数はもちろん1だ。
この確率は、
$$p = \frac{1}{2}$$
となる。
これは大丈夫だと思う。
互いに独立な事象が同時に起こる確率
次にこれを見よう。
二つの独立した事象\(A\)、\(B\)が
同時に起こる確率を求めたい。
このとき、単純に
それぞれの確率を掛けてあげればいい。
式に直そう。
事象\(A\)が起こる確率を\(p_a\)、
\(B\)が起こる確率を\(p_b\)と置く。
このとき、\(A\)と\(B\)が同時に起こる確率\(p\)は、
$$p = p_a \times p_b$$
となる。
例えば、コイントスとサイコロを同時にやってみる。
ここで、
コインが表かつサイコロで偶数が出る確率
を求めてみよう。
前提として、
コインは表、裏が出る確率は同様に確からしい、
サイコロもどの面も出る確率は同様に確からしいとしよう。
まず、コインが表になる確率は上で求めた通り1/2。
次に、サイコロで偶数が出る確率は、
全体が6通り、偶数は2, 4, 6の3通りなので、
こちらも1/2となる。
よって、
コインが表かつサイコロで偶数が出る確率\(p\)は、
$$p = \frac{1}{2} \times \frac{1}{2} = \frac{1}{4}$$
となる。
このあたりまでは大丈夫だと思う。
ちょっとだけ発展させてみよう。
\(n\)個の事象が全て独立とし、
その確率を\(p_1, p_2, …, p_n\)とする。
このとき、これらが全て起こる確率\(p\)は、
全部掛け合わせればいいので、
$$p = p_1 \times p_2 \times … \times p_n$$
となる…のだが、これを毎回書くのは面倒だろう。
というわけで、掛け算の省略形を定義する。
円周率を表すときによく使う
ギリシャ文字\(\pi\)の大文字\(\Pi\)を使って、
以下のように書き直す。
$$p_1 \times p_2 \times … \times p_n = \Pi_{i=1}^{n}p_i$$
右辺は、文字\(i\)を1から\(n\)まで1ずつ足しながら、
その右にある\(p_i\)を掛けていく、という意味になる。
この記法は元の機械学習解説側で使うので、
覚えておいて欲しい。
また、もう一つ補足で、
この書き方は確率の話ではなく、数学全体の話だ。
条件付き確率
これがちょっと分かりづらいという人も多いかもしれない。
条件付き確率とは、
ある事象\(A\)が起こったとき、別の事象\(B\)が起こる確率
を指す。
そのまま、ある条件の元で求める確率のことだ。
これを、数式では\(P(B|A)\)と書き表し、
以下の式で求めることができる。
$$P(B|A) = \frac{P(A \cap B)}{P(A)}$$
なお、\(P(A \cap B)\)は、
事象\(A\)と事象\(B\)が同時に起こる確率を表す。
例えば、これもサイコロで見てみよう。
これまで通り、
どの面も出る確率は同様に確からしいとする。
ここで、
事象\(A\):2の倍数が出たということは分かっており、
事象\(B\):それが3の倍数である確率を求めてみる。
まず、\(P(A)\)は、
単純に2の倍数である確率なので、1/2だ。
次に\(P(A \cap B)\)、
2の倍数かつ3の倍数…これは要するに6だ。
よって、確率\(P(A \cap B)\)は1/6になる。
最後に、これを計算しよう。
$$P(B|A) = \frac{P(A \cap B)}{P(A)} = \frac{\frac{1}{6}}{\frac{1}{2}} = \frac{1}{3}$$
よって、計算では1/3と出た。
合っているか、一応意味的に考えてみよう。
まず、2の倍数が出たと分かっているので、
出た目は2, 4, 6のいずれかである。
この時点で、
全体が3パターンに絞られたことになる。
その中で3の倍数であるのは6のみ、
つまり1パターン。
よって、確率は1/3、
一致したので大丈夫そうだ。
ちなみに、一個上の段落で
独立という言葉を使用している。
その定義は、
片方が起こったと分かっても、
もう片方の確率に影響しないということ。
さっき上げたコインとサイコロの例だと、
例えコインがどっちになろうと、
サイコロの目がいくつになるかは分からないので独立だ。
逆に、
こっちの例であるサイコロの2の倍数と3の倍数では、
片方が分かるともう片方の確率に影響するため、
独立ではないということになる。
ベイズの定理
…実は、これを解説したかったので
この記事を書いたといっても過言ではない。
ベイズの定理は、条件付き確率を書き直すものだ。
先に定理の内容を。
ある事象\(A\)が起こるという条件の元、
事象\(B\)が起こる条件付き確率\(P(B|A)\)は、
以下のように書き直せる。
$$P(B|A) = \frac{P(B) \times P(A|B)}{P(A)}$$
さて、定理ということは証明しないと使えない。
まあ、一般的にはすでに証明されている内容ではあるが、
折角なので証明していこう。
まず、条件付き確率を使って、
事象\(A\)と事象\(B\)それぞれ、
片方が起こったらもう片方も起こるという確率を表す。
$$
\begin{eqnarray}
P(A|B) & = & \frac{P(A \cap B)}{P(B)} \\
P(B|A) & = & \frac{P(A \cap B)}{P(A)}
\end{eqnarray}
$$
上の式の両辺に\(P(B)\)を掛ける。
$$P(B) \times P(A|B) = P(A \cap B)$$
これを、下の式に代入する。
$$P(B|A) = \frac{P(B) \times P(A|B)}{P(A)}$$
これで完成だ。
ここまで分かれば、
次回の内容が理解できるだろう。
おわりに
今回は、自然言語処理…というか、
機械学習の内容を補足するために、確率を解説した。
高校でやったような内容は
結構難しいという人も多いだろうが、
このあたりだけなら大丈夫だと思う。
というわけで、
次回は機械学習の分類器というものを解説する。
その具体例、ナイーブベイズ分類器というもので、
ここの内容が出てくる。
そのときにはこの記事へのリンクも貼っておくので、
適宜参照しながら進めて欲しい。
コメント