Gaussian Process Regressionのハイパーパラメーター調整


13

私が実装したガウスプロセス回帰アルゴリズムのハイパーパラメーターを調整しようとしています。式によって与えられる対数限界尤度を最大化したいだけです ここで、Kは、要素K_ {ij} = k(x_i、x_j)= b ^ {-1} \ exp(-\ frac {1} {2}(x_i-x_j)^ TM(x_i-x_j))+ a ^ {-1 } \ delta_ {ij}ここで、M = lIa、blはハイパーパラメーターです。KKIJ=KXIXJ=B-1つのEXP-1

log(y|X,θ)=12yTKy1y12log(det(K))n2log(2π)
K、M=LIABL
Kij=k(xi,xj)=b1exp(12(xixj)TM(xixj))+a1δij
M=lIa,bl

パラメータの対数周辺尤度の偏微分は、次の\ frac {\ log(\ mathbf {y} | X、\ mathbf {\ theta})} {d \ theta} = \ frac {1} {2}によって与えられます

log(y|X,θ)dθ=12trace(K1dKdθ)+12(ydKdθK1dKdθy)

KのエントリはKパラメーターに依存するため、Kの微分と逆も同様Kです。つまり、勾配ベースのオプティマイザーを使用する場合、特定のポイント(パラメーター値)で勾配を評価するには、共分散行列の再計算が必要になります。私のアプリケーションでは、ゼロから共分散行列を計算し、勾配上昇のすべての反復でその逆数を計算するのは非常にコストがかかるため、これは実行可能ではありません。私の質問は、これらの3つのパラメーターのかなり良い組み合わせを見つけるための私の選択肢は何ですか?また、最初に最適化するパラメーターがわからないので、この問題についてのアドバイスもいただければ幸いです。


HMCを使用して、適度なサイズのデータ​​セットのGPハイパーパラメーターをサンプリングすることに成功しました。
Sycoraxは、モニカ

こんにちは@Sycorax、この問題を解決するためにこの手法をどのように使用したかを教えていただけますか?OPが尋ねたのと同じ問題があり、MCMCを使用してそれを解決することを考えていましたが、それを行う方法がまだわかりません。
Willian Fuks 2017年

スタンでGPをコード化したところです。GPハイパーパラメーターはモデルのパラメーターとして宣言され、それに応じて推論されました。これにより、HMCの反復ごとに1セットの予測が生成されました。Gelmanは、これがすべてBDA3で
Sycoraxは、モニカを2017

回答:


6

勾配上昇のすべての反復で新しい共分散行列の計算が必要であるというのは正しいことです。したがって、マトリックス計算が設定に適さない場合は、勾配ベースの周辺尤度最適化を使用できないと思います。

私の提案は、グリッド検索、ランダム検索、ベイズ最適化ベースの検索など、ハイパーパラメーター調整に勾配のない方法を使用することです。これらの方法は、SVMなどの他の機械学習アルゴリズムの最適化ハイパーパラメーターに広く使用されています。

初めてのグリッド検索をお勧めします。基本的には、可能性のあるハイパーパラメーターのテーブル(グリッド)を形成し、すべてを試し、最高の検証パフォーマンス(または最高の限界尤度)を探します。

グリッド検索は次善のハイパーパラメーターのセットを生成し、グリッドを自分で指定する必要があります(ヒント:対数スケールでグリッドを作成)。ただし、必要な計算ははるかに少なくなります。(そしてグラデーションは必要ありません!)

グリッド検索に慣れていない場合は、Wikipedia:Hyperparameter Optimization-Grid Searchを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.