ガウス過程の考え方

  • 2
    Like
  • 0
    Comment

次元と近似の話。

100次元空間にプロットAがあるとする。
しかし、我々には限られた測定手段しかない。
そう。たった10通りの方法=10次元のパラメータしか測れない

そうすると、100次元空間のプロットAは10次元空間に近似して表現される。
この近似は、残りの90次元の情報を捨てているという意味ですね。

ところで、手元にある10次元のパラメータは、一般には、互いに独立ではないですね。
今日の歩数αと、ラーメン摂取量β体重変化量γと、は、互いに独立ではない。
で、ポイントは、α,β,γをジックリ調べてみる。

α=11000,β=0,γ=1

何か怪しい
良く歩いている。ラーメンを食べていない。なのに体重が1kgも増えている。

さては、ビールをがぶ飲みしながら揚げ物を食べまくったな
きっと、財布の中身も減っているでしょう。

つまり、パラメータ間の相関関係を仮定する事で、測定していない(次元)情報を推定できる。

関数の見方を変える。

例えば、

YX+N(0,0.5)(1) YN(X,0.5)

として、10回の観測を行う。

set.seed(5)

N <- 10
x <- seq(1, 10, length = N)
y <- x + rnorm(N, 0, 0.5)

round(cbind(x,y), 3)

       x      y
 [1,]  1  0.580
 [2,]  2  2.692
 [3,]  3  2.372
 [4,]  4  4.035
 [5,]  5  5.856
 [6,]  6  5.699
 [7,]  7  6.764
 [8,]  8  7.682
 [9,]  9  8.857
[10,] 10 10.069

これは、真のモデルY=Xから誤差を含めて観測された系列データの様に見える。
でも、互いに相関のある10個のパラメータで定義された(10次元空間中の)1点と考えても良いハズだ。

前節の議論に基づくと、この既知パラメータの相関関係が推定できれば、非観測パラメータ(i.e. x=11の時のyの値)の予測分布が得られるんじゃないか。

例ではxを離散的に取ったけれども、

         x     y
 [1,] 0.5 0.080
 [2,] 1.0 1.692
 [3,] 1.5 0.872
 [4,] 2.0 2.035
 [5,] 2.5 3.356
 [6,] 3.0 2.699
 [7,] 3.5 3.264
 [8,] 4.0 3.682
 [9,] 4.5 4.357
[10,] 5.0 5.069

これも立派な10次元空間中の1点ですよね。

このままxの間隔を無限に細かくして、xの範囲を無限に大きくしたらどうなるか。

それは、ですよね。
でも、無限次元空間中の1点ですよね。

つまり、ですね。

       x     y1    y2    y3    y4    y5
 [1,]  1  0.580 1.614 1.450 1.158 1.775
 [2,]  2  2.692 1.599 2.471 2.555 1.599
 [3,]  3  2.372 2.460 3.734 4.108 2.963
 [4,]  4  4.035 3.921 4.353 4.609 4.948
 [5,]  5  5.856 4.464 5.410 5.740 4.772
 [6,]  6  5.699 5.931 5.853 6.476 6.281
 [7,]  7  6.764 6.701 7.709 6.495 6.556
 [8,]  8  7.682 6.908 8.749 7.000 7.770
 [9,]  9  8.857 9.120 8.671 8.119 8.638
[10,] 10 10.069 9.870 9.574 9.929 9.965

これは、2次元中の1本の線から誤差込みで観測された5本のサンプル、と同時に、

   x=1   x=2   x=3   x=4   x=5   x=6   x=7   x=8   x=9   x=10
y1 0.580 2.692 2.372 4.035 5.856 5.699 6.764 7.682 8.857 10.069
y2 1.614 1.599 2.460 3.921 4.464 5.931 6.701 6.908 9.120  9.870
y3 1.450 2.471 3.734 4.353 5.410 5.853 7.709 8.749 8.671  9.574
y4 1.158 2.555 4.108 4.609 5.740 6.476 6.495 7.000 8.119  9.929
y5 1.775 1.599 2.963 4.948 4.772 6.281 6.556 7.770 8.638  9.965

10次元空間中の1点から誤差込みで得られた5点のサンプル、とも言える。

後者の解釈において、真のモデルY=Xを推定する作業は、
10次元空間座標から無限次元パラメータの相関関係を推定する事に他ならない。

これ、前節で出てきたヤツですね。
手元にある情報からパラメータ間の相関関係を仮定する事で、測定していない(次元)情報を推定するという話。

そんな事、できんのかいな。

ちなみにこのサンプルの場合は、Yは多次元正規分布から得られた点の集合になる。
おっと、そうか。そうだった。

復習の多次元正規分布。

承前:条件付き多変量正規分布

n次元正規分布に従う集合Yを、

(2)YNn(μ,Σ)

とする。
μは期待値、Σは分散共分散行列。

同一のYから発生した互いに素なデータY1Y2を考える。
Y1Yのうち最初のn1個の要素で、Y2が残りのn2=nn1個の要素で構成されているとしても、一般性は失わない。

[Y1Y2]Nn([μ1μ2],[Σ11Σ12Σ21Σ22])

Y1Y2は、同一の分布から派生しているので、当然、独立ではなく、下記のカンケイを持つ。

Y2 | Y1Nn2(μ2|1, Σ22|1)

ここで、

μ2|1=μ2+Σ21Σ11(Y1μ1)(3)Σ22|1=Σ22Σ21Σ111Σ12

と表せる。

これに従えば、Y1から推定されたμ1Σ1を用いてY2の分布を推定できるハズ。

でも、Y2が未知なのに分散共分散行列って求められないじゃん。
まてまて、特徴量の内積だよな。
なら、適切に設計されたカーネル関数のグラム行列Kで表現できるハズ。

復習のカーネル。

承前:
カーネルトリック
R de 『カーネル多変量解析』

d個のパラメータ(特徴量)で定義される関数f(x)は、カーネル関数k(xi,xj)を使う事で、データ数n個の重み付けwを推定することになる。というのがカーネルトリックの理屈でした。

このカーネル関数の設計を工夫すると無限のパラメータ(特徴)を考慮できる。

例えば、

(4)k(xi,xj)=α exp(β ||xixj||2)

とすれば、xを1次元、zRとして、

(5)φ(x)=A exp(B(xz)2)

の時、

φ(xi) φ(xj)=φz(xi) φz(xj)dz=A2π2B exp(B2(xixj)2)(6)=α exp(β(xixj)2) = k(xi,xj)

つまるところ、n個のパラメータwを推定することが、zRに当てはまる全て(無限個)の特徴量φ(x)に対する回帰を行なっていることと同等になる。

f(x)=m=1αm φm(x)=i=1nwi φ(xi)Tφ(x)(7)=i=1nwi k(xi,x)

で、ガウス過程。

という事は、データ数に等しいパラメータ(次元)を計算すればいい。

準備:既知のn1個のX1に対応する既知のY1を用意する。
目的:既知のn2個のX2に対応する未知Y2の分布を推定する。

ステップ1:Y1を(n次元正規分布のうちの)n1次元で近似して、カーネル関数のパラメータを推定する。
ステップ2:そのパラメータからμ1Σ1を推定する。
ステップ2:μ1Σ1とカーネル関数のパラメータを用いて、μ2Σ2を推定する。
ステップ3:μ2Σ2を用いて X2に対応するY2の分布を推定する。

という流れですね。
ベイズの考え方では、このモデルをあらかじめ組んでおけば、全ての推定は一度に行えるハズです。

実装編はまたそのうち。