確率・統計
- 0.概要
- 1.一般的な確率分布
- 2.確率モデルにおけるパラメータ推定
- キーワードまとめ
Contents
0.章の概要
この章では、確率と統計の基礎的な概念を学び、データ分析や機械学習における不確実性を評価するための主要な指標(期待値、分散など)を解説します。これらの知識とスキルは、データに基づいた意思決定や予測モデルの構築に不可欠であり、E資格ではこれらの計算問題も出題されますので、具体的な例を挙げて計算まで行います。
1.一般的な確率分布
学習キーワード: 確率の基礎、確率変数、同時確率、条件付き確率、周辺確率、確率質量関数、確率密度関数、期待値、分散、共分散、ベルヌーイ分布、多項分布ベルヌーイ試行、二項分布、カテゴリカル分布、ガウス分布、t分布混合ガウス分布、中心極限定理
概要
ここでは、確率の基本的な概念と重要な確率分布について学びます。確率は、データ分析や機械学習における不確実性を評価することが可能で、E資格でも必須の知識です。
確率とは何か、どのように計算されるのかを探り、ベルヌーイ分布や二項分布、ガウス分布といったデータの特性を捉えるためのモデルについて説明します。また、データの平均やばらつきを示す期待値や分散の重要性、さらに中心極限定理という確率分布の特性についても触れます。
確率の基礎
確率とは、ある事象が発生する可能性を示すもので0から1の間の値を取ります。一般的に事象Aが起こる確率P(A)は、以下のように表されます。
例として、サイコロを1回振ったとき、3が出る確率を考えます。この場合、サイコロの出目は1から6の6通りあるため、3が出る確率は次のように計算されます。
同時確率・条件付き確率・周辺確率
同時確率
同時確率は、2つ以上の事象が同時に発生する確率です。例えば、コイントスで表が出る確率と、サイコロで偶数が出る確率が独立であるため、同時に発生する確率を計算することができます。
数式は以下のように示されます。
コイントスで表が出る確率が \(\frac{1}{2}\) 、サイコロで偶数が出る確率が \(\frac{1}{2}\) とすると、両方が同時に発生する確率は次のように計算されます。
条件付き確率
条件付き確率は、ある事象が発生した場合に別の事象が発生する確率です。例えば、コイントスで表が出た場合にサイコロで偶数が出る確率を考える場合、条件付き確率が適用されます。
数式は以下のように示されます。
コイントスで表が出る確率が \(\frac{1}{2}\) 、サイコロで偶数が出る確率が \(\frac{1}{2}\) 、両方が同時に発生する確率が \(\frac{1}{4}\) とすると、コイントスで表が出た場合にサイコロで偶数が出る確率は次のように計算されます。
周辺確率
周辺確率は、他の変数を無視して特定の事象の確率を求めるものです。例えば、コイントスで表が出る確率に関して、サイコロの結果を無視してコイントスの結果のみを考える場合、周辺確率が適用されます。数式で表すと、周辺確率P(A)は、他の変数Bを無視してAが起こる確率を表します。
コイントスで表が出る確率が0.5、サイコロで偶数が出る確率が0.5とすると、コイントスで表が出る周辺確率は次のように計算されます。
確率変数
確率変数は、確率的な現象を数値で表現するための変数です。確率変数は、離散型と連続型の2種類に分けられます。
離散型確率変数は、離散的な値を取り、確率質量関数(PMF)によってその分布が記述されます。例えば、サイコロの出目は離散型確率変数であり、可能な値は1から6の整数です。
数式で表すと、離散型確率変数 \(X\) の確率質量関数 \(p(x)\) は、 \(X\) が \(x\) を取る確率を表します。
連続型確率変数は、連続的な値を取り、確率密度関数(PDF)によってその分布が記述されます。例えば、人の身長は連続型確率変数です。
連続型確率変数 \(X\) の確率密度関数 \(f(x)\) は、 \(X\) が \(x\) から \(x+dx\) の間にある確率を表します。
期待値・分散・共分散
期待値
期待値は、確率変数の平均値を示します。確率変数 \(X\) の期待値 \(E(X)\) は以下のように表されます。
数式は以下のように示されます。
この式では、\(x\)は確率変数Xが取りうる値、 \(P(X = x)\) は \(X\) が \(x\) を取る確率を表します。
例えば、サイコロを1回投げたときの出目の期待値を計算してみましょう。サイコロの出目は1から6までの整数値を取り、各出目の確率は1/6です。
分散
分散は、データの散らばりの大きさを表す指標で、数式は以下のように示されます。
この式では、 \(E(X)\) は \(X\) の期待値、 \(E(X^2)\) は \(X\) の二乗の期待値を表します。
サイコロの出目の分散を計算してみましょう。まず、各出目の二乗の期待値を計算します。
次に、分散を計算します。
共分散
共分散は、2つの確率変数XとYの関係を示します。
共分散の計算には2つの数式が存在し、以下のように示されます。
この式では、 \(E(X)\) と \(E(Y)\) は \(X\) と \(Y\) の期待値、 \(P(X = x, Y = y)\) は \(X\) が \(x\) で \(Y\) が \(y\) の同時確率を表します。
1つ目の式は、期待値の形式で共分散を表します。2つ目の式は、同時確率を使用して共分散を計算します。
例えば、コイントスで表が出る確率変数 \(X\) とサイコロで偶数が出る確率変数 \(Y\) の共分散を計算する場合、 \(X\) と \(Y\) が同時に発生する確率を考慮して、2つ目の式を使用します。
具体的には、 \(X\) が表で \(Y\) が偶数の場合、 \(X\) が表で \(Y\) が奇数の場合、 \(X\) が裏で \(Y\) が偶数の場合、 \(X\) が裏で \(Y\) が奇数の場合など、 \(X\) と \(Y\) が同時に発生する全ての場合の確率を計算し、それらの積を足し合わせることで共分散を計算します。
結果的に、 \(X\) と \(Y\) は独立しているため、共分散が0になります。具体的には、 \(X\) が表の場合の値を1、裏の場合の値を0として、 \(Y\) が偶数の場合の値を2、奇数の場合の値を4として、4通りの同時確率を計算すると、
この計算を行うと、共分散は次のように求められます。
ベルヌーイ分布・多項分布
ベルヌーイ分布
ベルヌーイ分布は、成功(1)と失敗(0)の2つの結果を持つ確率分布です。成功の確率をp、失敗の確率を1-pとします。
以下の数式で示されます。
上記の式をまとめると以下のようになります。( \(x\) に0か1を代入すると同義であることが確認できます。)
ベルヌーイ分布の期待値は次のように計算されます。
ベルヌーイ分布の分散は次のように計算されます。
例えば、コインを1回投げるとき、表が出る確率とその期待値、分散は次のように計算されます。
多項分布
多項分布は、カテゴリカル分布(※説明は後述)を拡張したもので、複数回の独立した試行( \(n\) 回)の結果を扱います。 \(n\) 回の試行のうち、 \(k\) 個の異なる結果が出る確率を計算します。
数式は以下のように示されます。
例えば、サイコロを3回投げたとき、各目が出る回数を計算してみましょう。サイコロの目は1から6までの整数値を取り、各目の確率は1/6です。
二項分布・カテゴリカル分布
二項分布
二項分布は、n回の試行の中で成功する回数を表します。例えば、コインを10回投げたときに表が出る回数を考えてみましょう。成功の確率を \(p\) (この場合は、コインが表になる確率)とすると、 \(k\) 回成功する確率は次のように表されます。
数式は以下のように示されます。
例えば、コインを10回投げたときに表が出る回数が5回である確率を計算してみましょう。成功の確率 \(p\) は0.5(コインが表になる確率)とします。
カテゴリカル分布
カテゴリカル分布は、1回の試行で複数のカテゴリのうち1つに属する確率を示します。 例としてサイコロを1回投げる場合がカテゴリカル分布に該当します。
カテゴリカル分布は多項分布の特別なケースで、\(n = 1\) のときに該当します。数式は以下のように示されます。
例えば、サイコロを1回投げたとき、各目の出る確率はすべて \( \frac{1}{6} \) です。
ガウス分布・t分布・混合ガウス分布
ガウス分布
ガウス分布(正規分布)は、データが平均値の周りに集まる形を持つ確率分布です。
特徴は以下の通りです。
- 平均値と中央値と最頻値が一致
- 平均値を中心にして左右対称
- x軸が漸近線
- 分散の大小で形状が変化(大ほど山が低く左右に広がる)
数式は以下のように示されます。(暗記必須!!)
- \(μ\):平均値
- \(σ\):標準偏差
- \(X\):連続型確率変数
例えば、身長が正規分布に従う場合、平均身長が170cm、標準偏差が5cmの時、170cmの身長を持つ人の確率密度は次のように計算されます。
t分布
t分布は、サンプルサイズが小さい場合の平均の推定に使用され、正規分布と違って、母集団の情報なしに母平均を推定できるところが特徴です。
確率密度関数は以下のように示されます。
- \(ν\):自由度( \(n-1\)と定義される)
- \(t\):t分布に従う確率変数(サンプルの平均が母集団の平均からどれだけ離れているかを示す指標)
- \(Γ\):ガンマ関数
使用例として、サンプルサイズが10のデータがあった場合、自由度は9(\(n-1\))です。ここで、平均が0、標準偏差が1の正規分布からサンプルを抽出したと仮定し、t分布に従う確率変数 \(t\) の値が2.26である確率密度を計算してみましょう。
この計算結果に対して、t分布の累積分布関数 \(T(t)\) を使用して累積確率を計算します。(※累積分布関数の直接的な計算は複雑であり、ここでは重要ではないため割愛します。)
この結果により、t分布に従う確率変数tが2.26以下である確率が97.5%であると解釈できます。(要は、サンプルデータが母集団の平均値からどの程度ズレているか(偏差)を算出できる!!)
内容がやや難しいですが、正規分布との違いと、累積確率までの計算手順は覚えておきましょう。
混合ガウス分布
混合ガウス分布は、複数の正規分布の線形結合として表される確率分布です。
確率密度関数は以下のように示されます。
- \(K\):混合成分の数
- \(\pi_k\):k番目の成分の重み
- \(\mu_k\):k番目の成分の平均
- \(\Sigma_k\):k番目の成分の共分散行列
- \(X\):連続型確率変数
中心極限定理(Central Limit Theorem:CLT)
中心極限定理は、サンプルサイズ \(n\) が大きくなることで、、元の分布が何であれ、近似的に正規分布(ガウス分布)に従うことを指します。
平均が \(μ\) 、分散が \(σ^2\) をもつあらゆる分布からの無作為標本の標本平均 \(X\) の分布は、 \(n\) が十分大きいとき以下の式が成立します。
ここで、 \(Z_n\) は標準化された標本平均、 \(z\) は標準化された値、 \(\Phi(z)\) は標準正規分布の累積分布関数を表します。
数式にするとわかりにくいですが、ここで覚えておく重要ポイントは次の2つです。
- 元の集団(母集団)が正規分布でなくとも、標本の数が大きくなるに連れてサンプル(標本)の平均値は必ず正規分布に近づいていく
- そのとき、標本の平均値の分散は、元の集団の分散 (\(\sigma^2\)) をサンプル数 (\(n\)) で割った値 (\(\frac{\sigma^2}{n}\)) となる
中心極限定理により、たとえ元の分布が正規分布でなくても、サンプルの平均が正規分布に従うため、多くの統計的手法(例: 信頼区間や仮説検定)が正規分布の仮定のもとで使用できます。
2.確率モデルにおけるパラメータ推定
学習キーワード: ベイズ則、ナイーブベイズ、平均二乗誤差、対数尤度、ダイバージェンス、最尤推定、MAP推定、ベイズ推定
概要
確率モデルでは、データに基づいて未知のパラメータを推定することが重要です。このセクションでは、確率モデルにおけるパラメータ推定の基本概念と手法、具体的にはベイズ則やナイーブベイズを用いた推定法、平均二乗誤差や対数尤度などの評価指標について詳しく解説します。
ベイズ則とナイーブベイズ
ベイズ則
ベイズ則は、条件付き確率を基に未知の確率を推定する方法です。データに基づいて仮説の確率を更新していく手法で、特に機械学習や推論において重要です。
例として、サイコロを2回振った後に少なくとも1回6が出たという条件下で、6が出た確率について求めましょう。
式に当てはめると、 \(P(A)\) はサイコロを1回振ったときに「6が出る」事象であり、 \(P(B)\) は「サイコロを2回振って少なくとも1回6が出た」という事象になります。ここでは \(P(A) = \frac{1}{6}\) と定義します。
まず、全体の事象 \(B\) が発生する確率 \(P(B)\) を計算します。これは、サイコロを2回振って少なくとも1回6が出る確率であり、「サイコロを2回振って一度も6が出ない確率」を1から引くことで求められます。
次に、 \(P(B|A)\) の条件付き確率を計算します。これは、事象 \(A\) (6が出た)が発生した場合に、事象 \(B\) (少なくとも1回6が出た)が発生する確率です。事象 \(A\) が1回6が出る場合、事象 \(B\) も必ず発生するため、 \(P(B|A) = 1\) となります。
最後に、ベイズ則を使用して計算します。
結果として、サイコロを2回振った後に少なくとも1回6が出たという条件下で、6が出た確率は 約54.55% です。
ナイーブベイズ
ナイーブベイズは、複数の特徴量を考慮するための簡易モデルです。このモデルでは、各特徴量が独立しているという仮定のもとで、ベイズ則を適用します。これにより、各特徴量の影響を個別に考慮しつつ、全体的な確率を計算することができます。
基本的な数式は次のようになります。
- \(P(C | X_1, X_2, \ldots, X_n)\):特徴量 \(X_1, X_2, \ldots, X_n\) に基づくクラス \(C\) の事後確率
- \(P(C)\):クラス \(C\) の事前確率
- \(P(X_i | C)\):クラス \(C\) の条件下での特徴量 \(X_i\) の確率 (i は 1 から \(n\) までの整数)
- \(P(X_1, X_2, \ldots, X_n)\):特徴量 \(X_1, X_2, \ldots, X_n\) の同時確率
また、ナイーブベイズの仮定を適用すると、事後確率は次のように簡略化されます:
ここで、式の右側の部分は、特徴量が独立であるという仮定に基づいています。このため、各特徴量の条件付き確率を単独で計算し、それらを掛け合わせることで全体の確率を得ることができます。
具体例として、スパムメールのフィルタリングを考えてみましょう。「このメールはスパムかどうか」を判断するために、次の特徴量を考慮します。
- メールの内容に「無料」が含まれているかどうか
- メールの内容に「割引」が含まれているかどうか
- メールの内容に「購入」が含まれているかどうか
計算に用いる数値は以下のように定義します。
事前確率:
- \(P(スパム) = 0.6\)
- \(P(ハム) = 0.4\)
特徴量の条件付き確率:
- \(P( 無料 | スパム ) = 0.8\)
- \(P( 割引 | スパム ) = 0.7\)
- \(P( 購入 | スパム ) = 0.6\)
- \(P( 無料 | ハム ) = 0.1\)
- \(P( 割引 | ハム ) = 0.2\)
- \(P( 購入 | ハム ) = 0.3\)
ここで、メールに「無料」と「割引」が含まれていると仮定し、スパムである確率 \( P(スパム | 無料、割引)\) を計算します。
\( P(スパム | 無料、割引) = \frac{P(スパム) \times P(割引 | スパム) \times P(無料 | スパム)}{P(無料、割引)}\)
まず、 \(P(無料、割引)\) を計算します。
\(P(無料、割引) = P(無料 | スパム) \times P(スパム) + P(無料 | ハム) \times P(ハム)\)
$$= (0.8 \times 0.6) + (0.1 \times 0.4) = 0.48 + 0.04 = 0.52$$
次に、 \( P(スパム | 無料、割引)\) を計算します。
\(P(スパム | 無料、割引) = \frac{(0.8 \times 0.7 \times 0.6)}{0.52} = \frac{0.336}{0.52} \approx 0.645\)
したがって、メールがスパムである確率は約0.645(64.5%)です。
平均二乗誤差と対数尤度
平均二乗誤差(Mean Squared Error)
平均二乗誤差は、予測値と実際の値の誤差を二乗して平均したもので、モデルの誤差を評価する一般的な手法です。
例えば、観測値 \(y = [3, 5, 2, 7]\) と、モデルの予測値 \(\hat{y} = [2, 4, 3, 6]\) が与えられた場合、MSEは次のように計算されます。
対数尤度(Log-Likelihood)
対数尤度は、観測されたデータが特定の確率モデルから生成された可能性を測るために使われる指標です。尤度(Likelihood)は、モデルがデータをどの程度説明できるかを示すものであり、対数尤度はその尤度の自然対数を取ったものです。
対数尤度を最大化することは、観測データに最もよくフィットするモデルを見つけるための手法としてよく用いられます。
データ \( x_1, x_2, \ldots, x_n \) とモデルのパラメータ \( \theta \) に対する尤度は次のように定義されます:
対数尤度はこの尤度の自然対数を取ったものです:
この対数尤度を最大化することで、観測されたデータに最も適合するパラメータ \( \theta \) を求めることができます。
最尤推定とMAP推定
最尤推定
最尤推定(Maximum Likelihood Estimation)は、データが最も確からしいパラメータを推定する方法です。得られた現象の起きる確率が最も大きくなる原因を採用する手法とも言い換えられ、尤度関数を最大化することで、データに最もよく適合するパラメータを見つけます。
数式は以下の通りです。
- \( \theta \):推定したいパラメータ
- \( P(x_i|\theta) \):パラメータ \( \theta \) の下で観測データ \( x_i \) が得られる確率
- \( \prod \):すべての観測データに対する確率の積を表す記号(パイ記号)
- \( n \):観測データの総数
機械学習では、計算を簡単にするために対数を取り、最小化問題として扱うために、対数尤度関数にマイナスをかけて最小化する形に書き換えます。
例として、コインの裏表を表す二項分布のパラメータ \( \theta \) (コインが表になる確率)を推定します。コインを10回投げて、表が7回出た場合を考えます。
コインの表が出る確率を \( \theta \)、裏が出る確率を \( 1 - \theta \) とします。このとき、尤度関数は次のようになります。
これを最大化する \( \theta \) を見つけるために、対数を取って計算します。さらに、最小化問題にするためにマイナスをかけます。
これを \( \theta \) で微分し、0と置くことで、最尤推定値 \( \theta_{MLE} \) を得ます。
これを解くと、
したがって、最尤推定によるコインが表になる確率 \( \theta \) は 0.7 であると推定されます。
MAP(Maximum A Posteriori)推定
MAP推定は、最尤推定に事前確率(事前分布)を加味して推定を行います。データと事前知識を統合して推定を行う方法です。
例として、サイコロの目が出る確率をMAP推定で求める例を示します。サイコロを10回投げた結果、次の目が出たとします。
- 1:1回
- 2:2回
- 3:3回
- 4:4回
- 5:0回
- 6:0回
この観測結果に基づいて、最尤推定(MLE)は各目の出現確率を以下のように計算します。
次に、MAP推定では、事前確率を考慮に入れます。ここでは、事前にサイコロが公平であるという仮定を採用し、各目の事前確率 \( P(\theta) \) を一様分布と仮定します。この場合、各目の事前確率は次のようになります。
MAP推定では、ベイズの定理に基づいて事後確率 \( P(\theta|X) \) を次の式で計算します。
- \( P(X|\theta_i) \):観測データ \( X \) が、パラメータ \( \theta_i \) の下で得られる確率
- \( P(\theta_i) \):パラメータ \( \theta_i \) に対する事前確率
- \( P(X) \):観測データ全体の確率(証拠)
例えば、目が3の確率 \( \theta_3 \) についての事後確率を計算します。まず、最尤推定に基づく \( P(X|\theta_3) \) は観測頻度に対応し、以下のように求められます。
また、事前確率 \( P(\theta_3) \) は一様分布と仮定しているため、
次に、全データに対する確率 \( P(X) \) を求めます。\( P(X) \) はすべての目に関する事前確率と尤度の積の和です。具体的には、
各目の \( P(X|\theta_i) \) と \( P(\theta_i) \) を計算し、以下のようになります。
\( \left( \frac{3}{10} \times \frac{1}{6} \right) + \left( \frac{4}{10} \times \frac{1}{6} \right) + \left( \frac{0}{10} \times \frac{1}{6} \right) + \left( \frac{0}{10} \times \frac{1}{6} \right) \)
したがって、目が3である場合の事後確率 \( P(\theta_3|X) \) は以下のように求められます。
この0.3は「観測結果と事前情報を統合した上での、目が3である事後確率が30%」という推定結果を表しています。
ダイバージェンス
ダイバージェンスは、 2つの確率分布間の差異を測定するための指標です。特に、KLダイバージェンスがよく使われます。
KLダイバージェンス(Kullback-Leibler Divergence)は、二つの確率分布間の距離を測る指標であり、主に実際の分布と予測分布の間の違いを表現します。 KLダイバージェンスは次の式で定義されます:
ここで、 \( D_{KL}(P || Q) \) は分布 \( P \) から分布 \( Q \) へのKLダイバージェンスを示します。分布 \( P \) は実際のデータ分布、 \( Q \) はモデルが予測した分布です。KLダイバージェンスが小さいほど、二つの分布は似ていると言えます。
KLダイバージェンスは、深層学習の分野では、特に生成モデル(Generative Model)などで広く使用されます。これらのモデルでは、KLダイバージェンスを損失関数の一部として使用し、モデルが生成する分布と実際のデータ分布の間の距離を最小化することを目指します。
ベイズ推定
ベイズ推定は、ベイズ則を基にパラメータの推定を行う方法です。データに基づいてパラメータの事後分布を更新し、最も可能性が高いパラメータ値を見つけます。
数式は以下の通りです。
- \( P(\theta|X) \):観測データ \( X \) に基づくパラメータ \( \theta \) の事後分布
- \( P(X|\theta) \):パラメータ \( \theta \) に基づく観測データ \( X \) の尤度
- \( P(\theta) \):パラメータ \( \theta \) の事前分布
- \( P(X) \):観測データ \( X \) の周辺尤度(正規化定数)
データから確率を推定する手法として、ベイズ推定が広く用いられています。ここでは、コインを投げた結果に基づいてコインが「表を出す確率」 \( \theta \) を推定する具体例を見てみましょう。
例として、次のようなコイン投げの結果が得られたとします。
- 表が3回
- 裏が2回
この結果に基づいて、コインが表を出す確率 \( \theta \) を推定します。事前分布 \( P(\theta) \) は一様分布(コインが公平である可能性)を仮定し、次のように設定します。
尤度は観測データに基づいて次のように計算されます。
これは、コインの表が3回、裏が2回出た場合の確率を示しています。
次に、ベイズ則に基づいて事後確率を計算します。
ここでは、正規化定数 \( P(X) \) を計算します。
この積分を計算すると、次のようになります:
これは、コインの表が3回、裏が2回出た結果の確率を正規化するための値です。
事後確率を求めるために、得られた尤度に正規化定数を掛けます。
最後に、得られた事後確率を最大化して \( \theta \) の最も確からしい値を求めます。これを求めるためには、事後確率の関数を微分し、ゼロに設定します。
微分すると、以下の式が得られます。
この方程式を解くことで、\( \theta \) の値を求めます。計算の結果、\( \theta = 0.6 \) となります。つまり、このコインが表を出す確率は60%だと推定できます。
計算過程は難しいように見えますが、これは事前のデータである5回中表が3回であるという結果(\(\frac{2}{5}\))と一致し、直感的にも理解できると思います。
関連用語の補足
- 最尤推定量:最尤推定において、最も起こる可能性が高い確率のこと。
- 尤度:特定のパラメータが与えられたときに、観測データが得られる確率を表し、通常はデータが実際に観測される可能性の高さを示す指標です。尤度が高いほど、指定したパラメータがデータを生成した可能性が高いと解釈されます。
- 正規化定数:事後確率を確率分布として正規化するための値で、全ての可能なパラメータに対する尤度の総和(または積分)を用いて計算される。
キーワードまとめ
確率の基礎、確率変数、同時確率、条件付き確率、周辺確率、確率質量関数、確率密度関数、期待値、分散、共分散、ベルヌーイ分布・多項分布ベルヌーイ試行、二項分布、カテゴリカル分布、ガウス分布・t分布混合ガウス分布、中心極限定理ベイズ則、ナイーブベイズ、平均二乗誤差、対数尤度、ダイバージェンス、最尤推定、MAP推定、ベイズ推定