Main Content

カーネル (共分散) 関数のオプション

教師あり学習では、予測子の値 xi が近い点は必然的に応答 (ターゲット) の値 yi が近くなることが予想されます。ガウス過程では、共分散関数がこの類似性を表します。[1]共分散関数は、2 つの潜在的変数 f(xi) および f(xj) の間の共分散を指定します。ここで、xixj はどちらも d 行 1 列のベクトルです。言い換えると、ある点 xi における応答に対して別の点 xj における応答がどのような影響を与えるかを決定します。ここで、i ≠ j および i = 1, 2, ..., n です。共分散関数 k(xi,xj) は、各種のカーネル関数によって定義できます。そして、ベクトル θ に含まれているカーネル パラメーターに関してパラメーター表現できます。したがって、共分散関数は k(xi,xj|θ) と表すことができます。

多くの標準的なカーネル関数で、カーネル パラメーターは信号標準偏差 σf と特性長スケール σl に基づきます。特性長スケールは、入力値 xi がどのくらい応答値から離れると無相関になるかを簡潔に定義します。σlσf は、どちらも 0 より大きい必要があります。これは、次のように制約のないパラメーター ベクトル θ によって強制できます。

θ1=logσl,θ2=logσf.

"各予測子について同じ特性長スケールをもつ" 組み込みカーネル (共分散) 関数には、次のようなものがあります。

  • 二乗指数カーネル

    これは最も一般的に使用される共分散関数の 1 つで、fitrgp の既定オプションです。二乗指数カーネル関数は、次のように定義されます。

    k(xi,xj|θ)=σf2exp[12(xi xj)T(xi xj)σl2].

    ここで、σl は特性長スケール、σf は信号標準偏差です。

  • 指数カーネル

    指数カーネル関数は、名前と値のペアの引数 'KernelFunction','exponential' を使用して指定できます。この共分散関数は次のように定義されます。

    k(xi,xj|θ)=σf2exp(rσl),

    ここで、σl は特性長スケール、

    r=(xi xj)T(xi xj)

    xixj の間のユークリッド距離です。

  • Matern 3/2

    Matern 3/2 カーネル関数は、名前と値のペアの引数 'KernelFunction','matern32' を使用して指定できます。この共分散関数は次のように定義されます。

    k(xi,xj|θ)=σf2(1+3rσl)exp(3rσl),

    ここで、次のようになります。

    r=(xi xj)T(xi xj)

    これは、xixj の間のユークリッド距離です。

  • Matern 5/2

    Matern 5/2 カーネル関数は、名前と値のペアの引数 'KernelFunction','matern52' を使用して指定できます。Matern 5/2 共分散関数は次のように定義されます。

    k(xi,xj)=σf2(1+5rσl+5r23σl2)exp(5rσl),

    ここで、次のようになります。

    r=(xi xj)T(xi xj)

    これは、xixj の間のユークリッド距離です。

  • 有理二次カーネル

    有理二次カーネル関数は、名前と値のペアの引数 'KernelFunction','rationalquadratic' を使用して指定できます。この共分散関数は次のように定義されます。

    k(xi,xj|θ)=σf2(1+r22ασl2)α,

    ここで、σl は特性長スケール、α は正の値のスケール混合パラメーター、

    r=(xi xj)T(xi xj)

    xixj の間のユークリッド距離です。

各予測子 m について別々の特性長スケール σm を使用できます (m = 1, 2, ...,d)。各予測子について特性長スケールが異なる組み込みカーネル (共分散) 関数は、関連度自動決定 (ARD) [2]を実装します。この場合、制約のないパラメーター表現 θ は次のようになります。

θm=logσm,form=1,2,...,dθd+1=logσf.

"各予測子について異なる特性長スケールをもつ" 組み込みカーネル (共分散) 関数には、次のようなものがあります。

  • ARD 二乗指数カーネル

    このカーネル関数は、名前と値のペアの引数 'KernelFunction','ardsquaredexponential' を使用して指定できます。この共分散関数は、各予測子について特性長スケールが異なる二乗指数カーネル関数です。これは、次のように定義されます。

    k(xi,xj|θ)=σf2exp[12m=1d(ximxjm)2σm2].

  • ARD 指数カーネル

    このカーネル関数は、名前と値のペアの引数 'KernelFunction','ardexponential' を使用して指定できます。この共分散関数は、各予測子について特性長スケールが異なる指数カーネル関数です。これは次のように定義されます。

    k(xi,xj|θ)=σf2exp(r),

    ここで

    r=m=1d(ximxjm)2σm2.

  • ARD Matern 3/2

    このカーネル関数は、名前と値のペアの引数 'KernelFunction','ardmatern32' を使用して指定できます。この共分散関数は、各予測子について特性長スケールが異なる Matern 3/2 カーネル関数です。これは、次のように定義されます。

    k(xi,xj|θ)=σf2(1+3r)exp(3r),

    ここで、次のようになります。

    r=m=1d(ximxjm)2σm2.

  • ARD Matern 5/2

    このカーネル関数は、名前と値のペアの引数 'KernelFunction','ardmatern52' を使用して指定できます。この共分散関数は、各予測子について特性長スケールが異なる Matern 5/2 カーネル関数です。これは、次のように定義されます。

    k(xi,xj|θ)=σf2(1+5r+53r2)exp(5r),

    ここで、次のようになります。

    r=m=1d(ximxjm)2σm2.

  • ARD 有理二次カーネル

    このカーネル関数は、名前と値のペアの引数 'KernelFunction','ardrationalquadratic' を使用して指定できます。この共分散関数は、各予測子について特性長スケールが異なる有理二次カーネル関数です。これは次のように定義されます。

    k(xi,xj|θ)=σf2(1+12αm=1d(ximxjm)2σm2)α.

カーネル関数は、fitrgp を呼び出すときに名前と値のペアの引数 KernelFunction を使用して指定できます。組み込みカーネル パラメーター オプションのいずれかを指定するか、カスタム関数を指定することができます。組み込みカーネル関数にカーネル パラメーターの初期値を指定する場合、信号標準偏差の初期値と特性長スケールを数値ベクトルとして入力します。カスタム カーネル関数にカーネル パラメーターの初期値を指定する場合、非制約パラメーター表現ベクトル θ の初期値を入力します。fitrgp は組み込みカーネル関数を使用する場合、パラメーター推定に解析微分を使用しますが、カスタム カーネル関数を使用する場合は、数値微分を使用します。

参照

[1] Rasmussen, C. E. and C. K. I. Williams. Gaussian Processes for Machine Learning. MIT Press. Cambridge, Massachusetts, 2006.

[2] Neal, R. M. Bayesian Learning for Neural Networks. Springer, New York. Lecture Notes in Statistics, 118, 1996.

参考

|

関連するトピック