確率的生成モデルとガウス過程(1)確率モデルの基礎

機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 確率的生成モデル 本ブログのナビ 深層学習技術 ノンパラメトリックベイズとガウス過程 サポートベクトルマシン

サマリー

ガウス過程 (Gaussian Process; GP) は、確率論に基づくノンパラメトリックな回帰やクラス分類の手法であり、連続的なデータのモデリングに利用される確率過程の一種となる。ガウス過程のアプローチでは、データの生成プロセスを確率分布でモデル化し、データ間の関係性を表現するためのカーネル (カーネル関数、カーネル関数行列) を用いて、データ点間の相関を表現し、データ点の間の関係性や不確実性を推定する。ガウス過程のカーネルは、様々な形状を持つことができ、データの特性に合わせてカスタマイズすることができるため、データに適合するような柔軟なモデルを構築することができる。ここではこのガウス過程について機械学習プロフェッショナルシリーズ「ガウス過程と機械学習」をベースに述べる。

前回はガウス過程回帰の一般化について述べた。今回は確率的生成モデルとガウス過程の基礎として確率モデルの基本について述べる。

現実世界における観測Yは、何らかの確立分布p(Y)からのサンプリングY〜p(Y)によってえられたものだという仮説のことを、観測Yの確率的生成モデルと呼ぶ。ここでは確率的生成モデリングの考え方、定式化、計算方法について述べる。

イントロダクション

ガウス過程回帰では、最も基本的なモデルとしてy=f(x)+εを仮定し、入力xを定数として固定した上で、関数f(・)、観測y、観測ノイズεを確率変数とおいた。観測ノイズεが確率変数だとするのは直感的にも受け入れやすい。しかし、yという観測値を確率変数として扱うのは、よく考えると不思議な発想となる。

すでに観測されて目の前にある値を、確率変数扱いする必要はあるのか?またこの観測値を生み出す関数f(・)を確率過程として扱い、入力x1,…,xNにおける値f=(f(x1),…,f(xN))を確率変数として扱った。知りたい対象であるf(・)やfを確率変数として扱うのは、よく考えてみると不思議な発想となる。

これらについて

  • 尤度関数の導入は「目の前の観測値yは、確率変数だ」という発想の転換であり、最尤推定法の基礎となる。
  • 事前確率・事後格率の導入は「知りたいもの(隠れ変数fもしくは未知パラメータθ)は、確率変数だ」という発想の転換であり、ベイズ推定の基礎となる。

という2点は、確率的生成モデルの基礎になる考え方で、日常的な直感と逆行する大きな発想の転換となる。

確率的生成モデリングの考え方は、データ解析にガウス過程を応用するための基礎として必要になるだけでなく、機械学習を生部上ですべての基礎となる考え方となる。そもそも最尤推定やベイズ推定の方法論は、確率的生成モデリングの考え方の上に築かれている。

確率変数と書き立的生成モデル – 確率変数xと確率分布p(x)

まず確率変数、確率分布、確率密度関数、確率過程等の基本概念について再確認する。

確率変数(random variable)とは、その値が試行ごとに確率的に決まる変数となる。

<例1> 確率変数が理想的なサイコロの出す目とする。Xの取りうる値の集合は{1,2,3,4,5,6}であり、それぞれの値の出現確率は数のように、p(X=1)1/6,…,p(X=6)=1/6となる。

すべての場合の確率の和は1になる必要がある。

\[\displaystyle\sum_{i=1}^6p(X=i)=1\]

一般に確率変数Xの性質は、Xが取りうる値の集合𝒳と、Xがこれらの値をとる確率を定める確率分布(probabilistic distribution)p(X)からなる。確率分布p(X)は、Xの実現値x∈𝒳の出現確率(p(X=x)をすべての実現値について定める。

<例2> 確率変数Xを、的の中心を狙って投げたダーツの矢の刺さった位置を的の中心から測った水平座標とする。このとき実現値が取りうる値は実数であり、x∈ℝ、たとえばx=2.7(cm)とかx=-4.5(cm)などの値になる。xの出現確率は確率密度関数p(x)によって表され、xが特定の範囲内に含まれる確率は以下のような積分で表される。

\[p(a<x<b)=\displaystyle\int_a^bp(x)dx\]

確率変数がとりうるすべての値に関する確率の積分は、下図のように1になる必要がある。

すべての場合についての積分をとることが明らかである場合には、以下のように積分範囲を省略して書くこともある。

\[\displaystyle\int_{y\in \mathbb{R}}p(y)dy=\int p(y)dy=1\]

平均μ、分散σ2の一次元ガウス分布の確率密度関数は以下のように書き表される。

\[N(x|\mu,\sigma^2)=\frac{1}{\sqrt{2\pi\sigma^2}}exp\left(-\frac{1}{2\sigma^2}(x-\mu)^2\right)\]

確率、確率分布、確率密度関数の表記法は、教科書や文献などにより様々となる。ここでし「p(X)」と書いた場合には、Xが離散値をとる各吊変数であるならばp(X)は確率分布、Xが連続値をとる確率変数であるならばp(X)は確率密度関数を表すとする。また、確率変数Xが平均μで分散σ2の1次元ガウス分布に従うことを表す記法も様々なものがある。

確率過程(stochastic process)を定義する。これまで確率過程を関数f(x)を確率的に生成する生成器のイメージとしてきたが、これをあらためて以下のように定義する。

<定義1 確率過程>

任意のN個の入力値x1,…,xN∈𝒳に対して、N個の出力値fN=(f1,…,fN)=(f(x1)),…f(xN)),f(xn)∈𝒴 の同時確率p(fN)=p(f1,…fN)を与えることができる時、この関係f(・)を確率過程と呼ぶ。ここではNは任意の自然数、𝒳と𝒴はそれぞれ入力値と出力値がとりうる値の集合とする。

ここでは𝒳∈ℝD,𝒴=ℝのような実数値の場合のみを想定しているが、複素数や離散空間であっても一般に「確率過程」を定義することができる。ガウス過程は確率過程の特別な場合となる。

<定義2 ガウス過程>

確率過程fにおいて、同時確率p(f1,…,fN)がN次元のガウス分布として得られる場合に、f(・)をガウス過程と呼ぶ。

ここでガウス過程を取り扱う際の「無限」という概念について述べる。「自然数Nを任意に与えれば、同時確率p(f1,;fN)が定まる」のように定義すれば、「無限」という言葉を避けながら同様な意味を持つ確率過程を取り扱うことができる。そのために「無限次元」という言葉を使わずに「自然数Nを任意に与えれば」の言い換えをしている。

同時確率p(X,Y)と周辺化

複数の確率変数の同時分布(joint distribution)を考えることができる。例えば確率変数XとYの同時分布を、p(X,Y)と書く。これは2つの確率変数XとYの組み合わせ(X,Y)を新たに1つの確率変数と考えた時の確率分布を意味する。3つ以上でも同様となる。

ガウス過程法では、複数の確率変数の同時確率のモデルを取り扱うので、同時確率を取り扱うための一般的な方法を確認する。

Xがとりうる値の集合を𝒳、Yがとりうる値の集合を𝒴と書く時、XとYの組み合わせ(X,Y)がとりうる値の集合を𝒳x𝒴と書き、集合𝒳と集合𝒴の直積集合(Cartesian product)と呼ぶ。直積集合を使うことで(X,Y)∈𝒳x𝒴のように書くことができる。2つ以上の確率変数の組み合わせについても、同様にして同時分布を考えることができる。

<定義3 周辺化と周辺分布>

複数の確率変数X,Yの同時分布の確率密度関数p(X,Y)から、以下のような積分計算によってXの確率密度関数せゅさょを得る操作のことを周辺化(marginalization)と呼び、こうしてできた確率分布を周辺分布(marginal distribution)と呼ぶ。

\[p(X)=\displaystyle\int p(X,Y)dY\]

この操作を「Yに関して周辺積分する」とか、「周辺化によってYを消す」ということがある。Yがとりうる値の集合𝒴が離散的である場合には、積分の代わりにYがとりうるすべての値に関する和をとる操作のことを周辺化と呼ぶ

\[p(x)=\displaystyle\sum_{Y∈𝒴} p(X,Y)\]

次に条件付き分布を考える。

<定義4 条件付き分布>

条件付き分布(conditional distribution)p(Y|X)は、Xの値が既知もしくは所与としたときの、Yの確率分布となる。条件Xは必ずしも確率変数である必要はない。p(Y|X)がYの確率密度関数である時以下が成り立つ。

\[\displaystyle\int p(Y|X)dY=1\quad(1)\]

一方で、条件Xに関する積分の値については特に制約はないことに注意が必要となる。

\[\displaystyle\int p(Y|X)dX=?\quad(2)\]

条件付き分布、同時分布、周辺分布の間には以下の関係が成り立つ。

\[p(Y|X)p(X)=p(X,Y)=p(X|Y)p(Y)\]

これを以下の形に変形したものをベイズの定理(Bayesian theorem)と呼ぶ。

<定理5 ベイズの定理>

\[p(Y|X)=\frac{p(X|Y)p(Y)}{p(X)}\]

練習のため、2つの確率変数X,Dの実現値x,dが連鎖的に生成されている状況を考える。

<例3 サイコロ・ダーツの連鎖的モデル>

サイコロを降り、その出目dによって的の位置座標μを既知の関数関係μ=μ(d)によって決め、そこを狙ってダーツを投げ、刺さった位置の吸い座標をx=X1∈ℝとする。(下図)

xの確率分布を密度関数p(x)の形で書き表すにはどのようにすればよいのか。xのaprioriはサイコロの出目の確率分布p(d)とダーツ投げ結果の位置座標の確率分布p(x|d)の2つによって決まる、連続てなa生成過程となる。

まず偏りのない通常のサイコロを使うものとして、サイコロの出目の確率分布には、次の一様分布を仮定する。

\[p(d=1)=1/6,…p(d=6)=1/6\quad(3)\]

次に、位置マイクロを狙って投げたダーツが刺さる位置はμを中心として適当な分散σ2を持つ正規分布に従うものと仮定する。するとダーツ投げの結果の確率分布は以下のようになる。

\[p(x|\mu)=N(x|\mu,\sigma^2)\]

ここでダーツで狙う位置座標μはサイコロの出目に依存して決まるので以下のようになる。

\[p(x|d)=p(x|\mu(d))=N(x|\mu(d),\sigma^2)\]

これで2つの過程をそれぞれモデリングすることができた。次にこれらを組み合わせる。XとDの同時分布p(x,d)は、上記で定義した2つの確率分布の積p(x,d)=p(x|d)p(d)で表すことができる。これで組み合わせ完了となる。

最後に、同時分布p(x,d)をdに関して周辺化することによって、求めたい密度関数p(x)を得ることができる。

\[p(x)=\displaystyle\sum_{d=1}^6 p(d)p(x|d)=\sum_{d=1}^6\frac{1}{6}N(x|\mu(d),\sigma^2)\]

これが求める答えとなり、図4.3の下図のように6つの山を持つ確率密度関数を描くことができる。なお、このように複数のガウス分布の重み付き平均の形で書くことができる確率分布を混合ガウス分布(mixture of Gaussian distribution)と呼ぶ。

以上を抽象化してまとめると以下のようになる。

  1. 未知の値を確率変数で表す(例:xとd)
  2. 個々の値が生成される確率的な過程をそれぞれ確率分布で表す(例:p(d)とp(x|d))
  3. すべての確率変数の同時分布を表す(例:p(x,d)=p(x|d)p(d))
  4. 必要な周辺分布を求める(例:p(x))

このように、観測される値のaprioriを確率分布で表現する作業を確率的生成モデリング(probabilistic generative modelin)と呼ぶ。

確率的生成モデルを〜を使って表す記号を使うと、連続的事象の確率的生成モデルを以下のようにシンプルに表現できる。

\begin{eqnarray}\begin{cases}d&\sim&p(d)\\x|d&\sim&N(\mu(d),\sigma^2)\end{cases}\quad(4)\end{eqnarray}

<例4 ガウス過程生成モデル>

ガウス過程生成モデルy=f(x)+εにおいて、入力点X=(X1,…XN)Tは所与の定数とする。関数f(・)がガウス過程であるとき、これらの入力点における観測値y=(y1,…,yN)Tはどのような分布に従うのか。Yの生成過程は、以下のような連続的事象となる。

\begin{eqnarray}\begin{cases}\mathbf{f}&\sim&N(\mu,\mathbf{K})\\\mathbf{y}|\mathbf{f}&\sim& N(\mathbf{f},\sigma^2\mathbf{I}_N)\end{cases}\quad(5)\end{eqnarray}

関数出力f=f(d(x1),…f(xN))Tはガウス分布N(μ,K)に従う。ここでμ=((μ(x1),…μ(xN))Tは平均ベクトル、KはNxNの共分散行列であり、その(n,n’)成分はカーネル関数の出力k(xn,xn’)となる。

そこで周辺化積分によって得られる周辺分布p(y)=∫p(y|f)p(f)dfを計算することによって、yの予測分布p(y)を求めることができる。ガウス過程回帰における予測分布の計算は、ガウス過程回帰が2段階の連続的事象を想定しているという点で、例3のサイコロダーツと同じ構造を持つ。

独立性:p(X,Y)=p(X)p(Y)と条件付き独立性:p(X,Y|Z)=p(X|Z)p(Y|Z)

複数の確率変数の関係を調べる時、もっとも基本的かつ重要な性質は独立性と条件付き独立性となる。

<定義6 確率変数の独立性>

一般に、2つの確率変数XとYに関する条件付き分布、同時分布、周辺分布の間に以下の関係が成り立つ時、確率変数XとYは独立(independence)であるという。\[p(X,Y)=p(X)p(Y)\]この関係はp(X)=p(X|Y)と等価、さらにp(Y)=p(Y|X)と等価となる。

<定義7 確率変数の条件付き独立性>

2つの確率変数X,Yと条件Zが以下の関係を満たす時、確率変数XとYは条件Zのもとで条件付き独立(conditionally independence)であるという。\[p(X,Y|Z)=p(X|Z)p(Y|Z)\]

条件Zのもとで条件付き独立p(X,Y|Z)=p(X|Z)p(Y|Z)であったとしても、無条件の独立性p(X,Y)=p(X)p(Y)が満たされるとは限らない。ここでp(X,Y)は適当な分布p(Z)のもとでの周辺分布∫p(X,Y,Z)dZ=∫p(X,Y|Z)p(Z)dZ=p(X,Y)となる。

<例5>

3つ以上の確率変数間の独立性や条件付き独立性も同様にして判定できる。

\[p(A,B,C|D,E)=p(A|D,E)p(B,C|D,E)\]

が成り立つ時、条件(B,C)の組み合わせをF、条件(D,E)の組み合わせをGと呼び直すことによって以下の式が得られる。

\[p(A,F|G)=p(A|G)p(F|G)\]

この関係式から、このとき条件(D,E)のもとでAと(B,C)が条件付き独立であるといえる。

<例6 多変量ガウス分布における独立性>

y1,y2,y3の同時確率(p(y1,y2,y3)が平均(μ123)と共分散行列σ2I3を持つ3次元ガウス分布であるとき以下のように変形することで示すことができる。

\begin{eqnarray}p(y_1,y_2,y_3)&=&\frac{1}{\sqrt{(2\pi)^3|\sigma\mathbf{I}_3|}}exp\left(-\frac{1}{2\sigma^2}\left[(y-1-\mu_1)^2+(y_2-\mu_2)^2+(y_3-\mu_3)^2\right]\right)\\&=&\frac{1}{\sqrt{2\pi\sigma^2}}exp\left(-\frac{1}{2\sigma^2}(y_1-\mu_1)^2\right)\\& &\times\frac{1}{\sqrt{2\pi\sigma^2}}exp\left(-\frac{1}{2\sigma^2}(y_2-\mu_2)^2\right)\\& &\times\frac{1}{\sqrt{2\pi\sigma^2}}exp\left(-\frac{1}{2\sigma^2}(y_3-\mu_3)^2\right)\\&=&N(y_1|\mu_1,\sigma^2)\times N(y_1|\mu_1,\sigma^2)\times N(y_1|\mu_1,\sigma^2)\\&=&p(y_1)p(y_2)p(y_3)\end{eqnarray}

さらに一般には3次元ガウス分布において、共分散行列が対角行列であるときにy1,y2,y3はお互いに独立であり、この逆も成り立つ。

<例7 ガウス過程回帰における条件付き独立性>

例4で、ガウス過程回帰の連鎖的aprioriの2段階目はp(y|f)=N(f2IN)となっていた。これはy1,…,yNのN個の確率変数がお互いに「fを条件とした条件付き独立」であることを意味している。すなわちp(y|f)=p(y1|f)x…xp(yN|f)が成り立つ。

ここで、fを以下の周辺化積分で消すことで得たp(y)に対して成分間の独立性は一般になりたたないことに注意する。

\[p(\mathbf{y})=\displaystyle\int p(\mathbf{y}|\mathbf{f})p(\mathbf{f})d\mathbf{f}\]

すなわち一般に、p(y)≠p(y1)x…xp(yN)となる。

<例8 独立同分布と条件付き独立性>

同じ確率分布を持つ確率変数から、繰り返し標本を生成することによって複数の実現値を得ることを、「独立同分布(independent and identically distribution,iid)からサンプリングする」という。たとえば同じサイコロを3回振ってその出目を観測する過程を、以下のように書く。

\[d_1,d_2,d_3\overset{iid}{\sim} p(d)\]

\(\overset{iid}{\sim}\)は左辺が右辺の確率分布から独立にサンプリングされていることを示す。ただし、左辺に複数の変数が書かれている場合には独立同分布からのサンプリングであることがあきらかなので、d1,d2,d3〜p(d)のようにi.i.d.を省略して書く場合もある。

なお、現実世界において独立同分布からのサンプリングが厳密に行われることはありえない。サイコロを降れば、サイコロに手垢がついたり角が削れるなど、変形して出目の確率は変わる。ダーツを投げる人間のコンディションは、投げるごとに少しずつ異なる。独立同分布は現実世界を単純化して理解するためのモデルや過程の一部であるという認識が必要となる。

ガウス過程回帰モデルのグラフィカルモデル

グラフィカルモデル(graphical model)は、確率変数の間の独立性および条件つき独立性の有無を一覧性の良い図で可視化するための記法となる。これまでに出てきた確率変数の関係は下図のようになる。

多数の確率変数を時雨時に取り扱うモデルを考える時、確率変数間の独立性や条件付き独立性の理解が重要であるため、これらの可視化は重要となる。

例えば、例5の関係を下図のようなグラフィカルモデルで描くことができる。

BとCの間が矢印のない実践である箇所は、BとCの間に独立性も条件付き独立性も特に指定されていないことを意味する。

回帰や識別などのデータ解析において、一般に確率変数の個数は任意となる。高騰場合に文書中の数式ならば「1,…M」のように…の記号を用いるなどの抽象化を行うが、グラフィカルモデルでも同様の抽象化を行う(下図(a))

また、同じことを表すのにグラフィカルモデルではパネル表示(上図(b),(c))を使うことがある。パネル表示は複雑なモデルをシンプルに書き表すのに便利で、多くの文献で使われているが、正確に理解していないと読めないので注意が必要となる。

<例9>

線形回帰の確率的生成モデルを、グラフィカルモデルを用いて描く。連鎖的生成過程は以下のようにまとめて書くことができる。

\begin{eqnarray}\begin{cases}\omega_m\quad\overset{i.i.d.}{\sim} N(0,\lambda^2)\\f_n|\mathbf{x}_i=f(\mathbf{x}_n;\mathbf{w})=\displaystyle\sum_{m=1}^M\omega_m\phi_m(\mathbf{x}_n)\\y_n|f_n\sim N(f_n,\sigma^2)\end{cases}\quad(6)\end{eqnarray}

ここでn=1,…,Nは観測のインデックス、m=1,…,Mは基底のインデックスとなる。パラメータW=(w1,…,wM)をベクトルの形で書くことにすると、以上の確率的aprioriは下図(a)もしくは、パネル表示で下図(b)のように描くこともできる。

データ解析を確率的生成モデリングに基づいて行う時、観測データ(ここではyn)に対応する確率変数を他と区別して四角で描くことがあり、こでもそのようにしていることに注意が必要である。

同じものをベクトル形式でもまとめておく。入力点X、観測値Y、観測されない関数値(隠れ変数)fN=(f1,…,fN)とパラメータwを用いて確率的生成モデルを以下のように書く。

\[p(Y,f_N,w|X)=p(Y|f_N)p(f_N|X,w)\]

図4.7(c)がこの書き方に対応する。

入力点Xを確率変数ではなく定数と見なしていることに注意が必要となる。定数なので、条件付き確率の数式上では、グラフィカルモデルの頭上では⚪︎で囲まない。

<例10>

ノイズを含む確率的生成モデルは以下のようにまとめて書くことができる。

\begin{eqnarray}\begin{cases}\mathbf{f}_N,f_*|\mathbf{X},x_*&\sim& N(\mu,\mathbf{K})\quad&(7)&\\y_n|f_n&\sim& N(f_n,\sigma^2)\quad&(8)&\\y_*|f_*&\sim& N(f_*,\sigma^2)\quad&(9)&\end{cases}\end{eqnarray}

ここでμとKはN+1個の入力点X,x*に対応する平均と共分散行列となる。これを下図と比較してみる。

特に注意すべき点は、Xを条件としたf1,…fN,f*の同時確率が式(7)で与えられていることに対応して、上図のグラフィカルモデルでf1,…fN,f*から2つ選ぶ時のすべての組み合わせが矢印がない無向リンクでつながっているところとなる。図4.8と図4.7を比較して、線形モデルのほうではf1,…fN,f*の間に直接のリンクが存在しないことも確かめる必要がある。

次回は確率的生成モデルとガウス過程の基礎として最尤推定とベイズ推定について述べる。

コメント

  1. […] 確率的生成モデルとガウス過程(1)確率モデルの基礎 […]

タイトルとURLをコピーしました