本記事では、データ解析の基本となる曲線フィッティングを、確率論を用いて理解するための解説を行っている。
最尤推定やベイズの定理を駆使し、パラメータ推定から予測分布の計算までを、そもそもなぜ最尤推定をしたいのか、なぜその式で予測分布が得られるのかを含めて説明している。
この記事を通じて、曲線フィッティングの基本的な考え方を段階的に理解できることだろう。
確立論を使った曲線フィッティング
-
多項式曲線フィッティング入門!過学習を回避するL1/L2正則化に迫る!
最近のデータ解析や機械学習の分野で重要な役割を果たす多項式曲線フィッティング。 これは機械学習の基礎の基礎となる内容が詰め込まれており勉強になる。 その基本的な理解を深め、適切なモデル選択がいかに重要 ...
続きを見る
この記事では多項式曲線フィッティングを誤差最小化としてどのように表現できるかをみた。
ここでは改めて確立的な視点からこの問題をとらえなおしてみる。
確率論を用いた多項式曲線フィッティングとは、データに対してノイズを考慮しながら最適な多項式曲線を求める手法である。具体的には、データが与えられた時にそれに対応する目標変数が確率分布(通常はガウス分布)に従うと仮定し、その確率分布のパラメータを最尤推定やベイズ推定などの手法を用いて求める。
まず、\(N\) 個のデータ点が与えられているとする。データ点は \((x_1, t_1), (x_2, t_2), \dots, (x_N, t_N)\) のように表される。多項式曲線フィッティングでは、次のような多項式関数 \(y(x, \mathbf{w})\) をデータに適合させることを目指す。
$$ y(x, \mathbf{w}) = w_0 + w_1 x + w_2 x^2 + \dots + w_M x^M $$
ここで、\(M\) は多項式の次数、\(\mathbf{w} = (w_0, w_1, \dots, w_M)\) は多項式のパラメータである。
確率論的な観点からの多項式曲線フィッティングでは、目標変数 \(t\) が、多項式関数 \(y(x, \mathbf{w})\) の周りに従うガウス分布(正規分布)を仮定する。つまり、
$$ p(t \mid x, \mathbf{w}, \beta) = \mathcal{N}(t \mid y(x, \mathbf{w}), \beta^{-1}) $$
と表すことができる。ここで、\(\mathcal{N}\) はガウス分布を表し、\(\beta\) は精度パラメータ(分布の逆分散)である。
【復習】ガウス分布
ガウス分布(正規分布とも呼ばれる)は、平均値の周りにデータが集中し、その両側に減衰していく形状の確率分布である。ガウス分布の式は以下のようになる。
$$ \mathcal{N}(t \mid \mu,\sigma^2)=\frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left(-\frac{(t-\mu)^2}{2 \sigma^2}\right) $$
ここで、\(\mu\) は平均値、\(\sigma^2\) は分散である。今回の問題では、\(y(x, \mathbf{w})\) が平均値、\(\beta^{-1}\) が分散に相当する。
-
一次元ガウス分布徹底解説~いろんな性質とその証明、不偏推定量~
この記事では、ガウス分布というデータ解析の基本となる確率分布を解説していく。 実は、ガウス分布は自然界にもたくさん出てくるので、それを理解することで現象をより深く理解することができるのだ ...
続きを見る
最尤推定
次に、最尤推定とは、あるデータが得られたとき、そのデータが最も尤もらしい(最も起こりやすい)と考えられる確率分布のパラメータを求める方法である。尤度関数とは、データが得られたときの確率分布のパラメータの尤もらしさを表す関数である。
さて、問題に戻って、与えられた \(x\) に対して対応する \(t\) が多項式曲線に等しいガウス分布に従うということは、
$$ p(t \mid x, \mathbf{w}, \beta)=\mathcal{N}\left(t \mid y(x, \mathbf{w}), \beta^{-1}\right) $$
と表すことができるのであった。
訓練データを使って未知のパラメータ \(\mathbf{w}\) と \(\beta\) を求めるために最尤推定を使う。尤度関数は以下のように表される。
$$ p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta)=\prod_{n=1}^N \mathcal{N}\left(t_n \mid y\left(x_n, \mathbf{w}\right), \beta^{-1}\right) $$
この式は、訓練データのすべてのサンプル \((x_n, t_n)\)(\(n=1, 2, \ldots, N\))に対して、それぞれのサンプルが得られる確率(ガウス分率)を求め、それらの確率をすべて掛け合わせたものである。これが尤度関数であり、この尤度関数が最大となるパラメータ \(\mathbf{w}\) と \(\beta\) を求めることが最尤推定の目的である。
尤度関数を最大化するためには、通常、対数尤度関数を使って計算するのが便利である。対数尤度関数は尤度関数の対数をとったものである。対数をとることで、掛け算が足し算に変換され、計算が容易になる。対数尤度関数は以下のように表される。
$$ \ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta) = \sum_{n=1}^N \ln \mathcal{N}\left(t_n \mid y\left(x_n, \mathbf{w}\right), \beta^{-1}\right) $$
つまりは
$$
\ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta)=-\frac{\beta}{2} \sum_{n=1}^N\left\{y\left(x_n, \mathbf{w}\right)-t_n\right\}^2+\frac{N}{2} \ln \beta-\frac{N}{2} \ln (2 \pi)
$$
と表すことができる。
対数尤度関数を最大化するパラメータ \(\mathbf{w}\) と \(\beta\) を求めることが、多項式曲線フィッティングの問題における最尤推定の目的である。具体的には、対数尤度関数を \(\mathbf{w}\) と \(\beta\) で微分し、その微分が0になる点を求めることで、最適なパラメータを見つけることができる。
対数尤度関数の最大化
では実際に対数尤度関数の最大化するパラメータを求めてみよう。
\(\mathbf{w}\)についての最大化
対数尤度関数を最大化するということは、確率の観点からは最も適切なパラメータ \(\mathbf{w}\) を見つけることに相当する。ここでの目標は、最大化するために必要なパラメータ \(\mathbf{w}\) を決定することである。
まず、対数尤度関数 \(\ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta)\) を確認する。
$$ \ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta)=-\frac{\beta}{2} \sum_{n=1}^N\left \{y\left(x_n, \mathbf{w}\right)-t_n\right\}^2+\frac{N}{2} \ln \beta-\frac{N}{2} \ln (2 \pi) $$
この対数尤度関数を最大化するには、パラメータ \(\mathbf{w}\) について微分し、それをゼロに設定すればよい。つまり、次のように微分する。
$$ \frac{\partial \ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta)}{\partial \mathbf{w}} = 0 $$
\(\ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta)\) を \(\mathbf{w}\) で微分すると、二乗和誤差の部分だけが \(\mathbf{w}\) に依存するため、その部分だけ考慮すればよい。つまり、以下の式が得られる。
$$ -\frac{\beta}{2} \sum_{n=1}^N 2\left\{y\left(x_n, \mathbf{w}\right)-t_n\right\} y'(x_n, \mathbf{w}) = 0 $$
ここで、\(2\) と \(\beta\) は正の定数であるため、以下の式が成り立つ。
$$ \sum_{n=1}^N \left\{y\left(x_n, \mathbf{w}\right)-t_n\right\} y'(x_n, \mathbf{w}) = 0 $$
この式は、\(\mathbf{w}\) を決めることによって、各データ点における \(y(x_n, \mathbf{w}) - t_n\) という誤差に対して、その微分 \(y'(x_n, \mathbf{w})\) によって重み付けされた和がゼロになることを意味している。つまり、この条件を満たす \(\mathbf{w}\) は、二乗和誤差を最小にすることに相当する。
つまりは、この記事の二乗和誤差の最小化とやっていることが同じだという言うことなのだ。
-
多項式曲線フィッティング入門!過学習を回避するL1/L2正則化に迫る!
最近のデータ解析や機械学習の分野で重要な役割を果たす多項式曲線フィッティング。 これは機械学習の基礎の基礎となる内容が詰め込まれており勉強になる。 その基本的な理解を深め、適切なモデル選択がいかに重要 ...
続きを見る
この記事では二乗和誤差を最小にするwが一意であることを示したのであった。
\(\beta\) についての最大化
次に\(\beta\) についての最尤推定を行うために、対数尤度関数 \(\ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta)\) を最大化することを考える。対数尤度関数は以下のようになる。
$$ \ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta) = -\frac{\beta}{2} \sum_{n=1}^N\left\{y\left(x_n, \mathbf{w}\right)-t_n\right\}^2+\frac{N}{2} \ln \beta-\frac{N}{2} \ln (2 \pi) $$
\(\mathbf{w}\) についての最尤推定 \(\mathbf{w}_{\mathrm{ML}}\) がすでに求められていると仮定する。このとき、\(\beta\) に関する最尤推定を行いたいので、対数尤度関数を \(\beta\) で微分する。
$$ \frac{\partial \ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}_{\mathrm{ML}}, \beta)}{\partial \beta} = 0 $$
微分の際、第1項と第2項だけが \(\beta\) に依存しているため、それらの項だけを考慮すればよい。それぞれ微分すると、次の式が得られる。
$$
\frac{\partial}{\partial \beta}\left(-\frac{\beta}{2} \sum_{n=1}^N\left(y\left(x_n, \mathbf{w}_{\mathrm{ML}}\right)-t_n\right)^2\right)=-\frac{1}{2} \sum_{n=1}^N\left(y\left(x_n, \mathbf{w}_{\mathrm{ML}}\right)-t_n\right)^2
$$
$$ \frac{\partial}{\partial \beta}\left(\frac{N}{2} \ln \beta\right) = \frac{N}{2 \beta} $$
これらの式を使って、\(\ln p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}_{\mathrm{ML}}, \beta)\) を \(\beta\) で微分した結果をゼロに設定する。
$$ -\frac{1}{2} \sum_{n=1}^N\left\{y\left(x_n, \mathbf{w}_{\mathrm{ML}}\right)-t_n\right\}^2 + \frac{N}{2 \beta} = 0 $$
この式を \(\beta\) について解くと、
$$ \beta_{\mathrm{ML}} = \frac{N}{\sum_{n=1}^N\left\{y\left(x_n, \mathbf{w}_{\mathrm{ML}}\right)-t_n\right\}^2} $$
逆数をとって整理すると、
$$ \frac{1}{\beta_{\mathrm{ML}}} = \frac{1}{N} \sum_{n=1}^N\left\{y\left(x_n, \mathbf{w}_{\mathrm{ML}}\right)-t_n\right\}^2 $$
この結果から、\(\beta_{\mathrm{ML}}\) を求めることができる。これは、データ点の個数 \(N\) で二乗誤差の総和を割った値の逆数を取ったものが、最尤推定によって求められる \(\beta\) の値であることを意味している。
つまり、最尤推定法を用いて、パラメータ \(\mathbf{w}\) と \(\beta\) の最適な値を求めることができる。\(\mathbf{w}\) は、二乗和誤差を最小にする値であり、\(\beta\) は、データ点の個数で二乗誤差の総和を割った値の逆数である。これにより、モデルの予測性能を最適化することができる。
ベイズ的に予測分布を得る
パラメータwとβが上の最尤推定によって決まったので、これで予測分布を得るための道具がそろった。
まずは事後分布を計算
ベイズ推定では、予測分布を計算する際に必要になるから、パラメータの事前分布とデータの尤度関数を用いて、まずはパラメータの事後分布を計算する。具体的には、パラメータ \(\mathbf{w}\) に対する事前分布 \(p(\mathbf{w} \mid \alpha)\) を設定し(\(\alpha\) はハイパーパラメータ)、尤度関数と事前分布を使って事後分布 \(p(\mathbf{w} \mid \mathbf{x}, \mathbf{t}, \alpha, \beta)\) を求める。
事前分布と超パラメータ
ここでは事前分布を
$$ p(\mathbf{w} \mid \alpha)=\mathcal{N}\left(\mathbf{w} \mid \mathbf{0}, \alpha^{-1} \mathbf{I}\right)=\left(\frac{\alpha}{2 \pi}\right)^{(M+1) / 2} \exp \left\{-\frac{\alpha}{2} \mathbf{w}^{\mathrm{T}} \mathbf{w}\right\} $$
と表す。
事前分布とは、データを観測する前に、パラメータに関して持っている信念や仮定を表現したものである。ベイズ統計学では、事前分布を用いてパラメータの不確かさを扱うことができる。具体的には、事前分布はパラメータが取りうる値の範囲やその確率を表している。
超パラメータとは、モデルのパラメータを決定するために使用される、さらに上位レベルのパラメータである。つまり、モデルのパラメータに影響を与えるが、直接的にデータに関係しない値となる。モデルの構造や学習アルゴリズムに関する情報を制御するために使用される。
上記の数式では、\(\alpha\) は超パラメータである。この数式は、重みベクトル \(\mathbf{w}\) の事前分布を表しており、正規分布(ガウス分布)に従うことを示している。ここでの \(\alpha\) は、重みベクトルの要素がどの程度の大きさを持つべきかを制御する役割を果たしている。\(\alpha\) が大きければ大きいほど、重みが 0 に近い値を取ることが期待され、逆に \(\alpha\) が小さければ小さいほど、重みが広い範囲の値を取ることが許容される。このように、超パラメータはモデルの複雑さや汎化性能に大きな影響を与えるため、適切な値を選択することが重要である。
例えば、あるクラスで身長を測定する場合を考えよう。まだデータを取得していない段階で、身長が 0 から 250 cm の範囲にあることは分かっている。このような場合、事前分布は身長がどの程度の範囲に分布しているかを示すものとなる。
超パラメータは、事前分布の形状や性質を制御する役割を果たす。例えば、正規分布を事前分布として用いる場合、平均値と分散はその分布の形状を決定する超パラメータとなる。平均値は分布の中心を示し、分散は分布の広がり具合を示す。
事後分布は、データ \(\mathbf{x}, \mathbf{t}\) が与えられたときのパラメータ \(\mathbf{w}\) の確率分布である。ベイズの定理を用いて、事後分布は以下のように表すことができる。
$$ p(\mathbf{w} \mid \mathbf{x}, \mathbf{t}, \alpha, \beta) = \frac{p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta) p(\mathbf{w} \mid \alpha)}{p(\mathbf{t} \mid \mathbf{x}, \alpha, \beta)} $$
ここで、分母の \(p(\mathbf{t} \mid \mathbf{x}, \alpha, \beta)\) は、データ \(\mathbf{x}\) と \(\mathbf{t}\) の同時確率をパラメータ \(\mathbf{w}\) で積分したものであり、規格化定数と呼ばれる。
$$ p(\mathbf{t} \mid \mathbf{x}, \alpha, \beta) = \int p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta) p(\mathbf{w} \mid \alpha) d\mathbf{w} $$
分母は \(\mathbf{w}\) に依存しないため、規格化定数として扱うことができ、事後分布は次のように表すことができる。
$$ p(\mathbf{w} \mid \mathbf{x}, \mathbf{t}, \alpha, \beta) \propto p(\mathbf{t} \mid \mathbf{x}, \mathbf{w}, \beta) p(\mathbf{w} \mid \alpha) $$
予測分布を得る
いよいよ予測分布を得る段階に入れる。
予測分布の計算の根本的なアイデアは、新しい入力 \(x\) に対する目標変数 \(t\) の確率分布を求めることである。しかし、未知のパラメータ \(\mathbf{w}\) の存在が問題を複雑にしている。
そこで、予測分布 \(p(t \mid x, \mathbf{x}, \mathbf{t}, \alpha, \beta)\) を計算する際には、まず \(p(t \mid x, \mathbf{w}, \beta)\) を考慮する。これは、パラメータ \(\mathbf{w}\) が既知の場合に、新しい入力 \(x\) に対する目標変数 \(t\) の確率分布を表す。
しかし、現実的には \(\mathbf{w}\) は未知であり、我々が持っているのは \(\mathbf{w}\) に対する事後分布 \(p(\mathbf{w} \mid \mathbf{x}, \mathbf{t}, \alpha, \beta)\) である。この事後分布は、データ \(\mathbf{x}, \mathbf{t}\) が与えられたときのパラメータ \(\mathbf{w}\) の確率分布を表す。
ここで、事後分布 \(p(\mathbf{w} \mid \mathbf{x}, \mathbf{t}, \alpha, \beta)\) を \(p(t \mid x, \mathbf{w}, \beta)\) と組み合わせることで、未知のパラメータ \(\mathbf{w}\) を考慮した上で、新しい入力 \(x\) に対する目標変数 \(t\) の確率分布を求めることができる。具体的には、全ての可能なパラメータ \(\mathbf{w}\) に対する寄与を考慮するために、以下のような積分を計算する。
$$ p(t \mid x, \mathbf{x}, \mathbf{t}, \alpha, \beta) = \int p(t \mid x, \mathbf{w}, \beta) p(\mathbf{w} \mid \mathbf{x}, \mathbf{t}, \alpha, \beta) d\mathbf{w} $$
この積分によって、\(\mathbf{w}\) の不確実性を考慮した新しい入力 \(x\) に対する目標変数 \(t\) の確率分布が得られる。つまり、積分を通じて \(\mathbf{w}\) の不確実性を含めた予測分布を計算できるわけである。この予測分布は、未知のデータに対する確率的な予測を行う際に非常に有用である。
ベイズ推定の利点は、パラメータの不確実性を考慮することができるため、過学習を抑制しやすいことがある。
まとめ
曲線フィッティングは、データ解析の基本であり、確率論を活用することでさらに理解が深まる。
本記事では、最尤推定を用いてパラメータを最適化し、ベイズ統計学に基づく事後分布や予測分布の計算を行っている。
これらの概念を段階的に学ぶことで、曲線フィッティングの理解延いては、ベイズ統計を使用した機械学習の流れがざっと掴めることと思う。
参考先