Hyperparameter-Tuning in der Gaußschen Prozessregression


12

Ich versuche, die Hyperparameter des von mir implementierten Gaußschen Prozessregressionsalgorithmus abzustimmen. Ich möchte einfach die logarithmische Grenzwahrscheinlichkeit maximieren, die durch die Formel wobeiKdie Kovarianzmatrix mit den ElementenKij=k(xi,xj)=b-1exp(- ist

Log(y|X.,θ)=- -12yT.K.y- -1y- -12Log(det(K.))- -n2Log(2π)
K.wobeiM=lIunda,bundlHyperparameter sind.
K.ichj=k(xich,xj)=b- -1exp(- -12(xich- -xj)T.M.(xich- -xj))+ein- -1δichj
M.=lichein,bl

Die partielle Ableitung der logarithmischen Grenzwahrscheinlichkeit für die Parameter ist durch das folgende

Log(y|X.,θ)dθ=12treince(K.- -1dK.dθ)+12(ydK.dθK.- -1dK.dθy)

K.K. . Dies bedeutet, wenn ein gradientenbasierter Optimierer verwendet wird, erfordert die Auswertung des Gradienten an einem bestimmten Punkt (Parameterwert) eine Neuberechnung der Kovarianzmatrix. In meiner Anwendung ist dies nicht möglich, da die Berechnung der Kovarianzmatrix von Grund auf und die Berechnung ihrer Inversen bei jeder Iteration des Gradientenaufstiegs zu teuer ist. Meine Frage ist, welche Möglichkeiten ich habe, um eine ziemlich gute Kombination dieser drei Parameter zu finden. und ich weiß auch nicht, welchen Parameter ich zuerst optimieren soll, und ich würde mich auch über Hinweise zu diesem Thema freuen.


Ich hatte Erfolg mit HMC, um GP-Hyperparameter für Datensätze mit bescheidener Größe abzutasten.
Sycorax sagt Reinstate Monica

Hallo @Sycorax, können Sie uns bitte sagen, wie Sie diese Technik verwendet haben, um dieses Problem zu lösen? Ich habe das gleiche Problem wie das OP und habe darüber nachgedacht, MCMC zu verwenden, um es zu lösen, weiß aber noch nicht, wie ich das machen soll.
Willian Fuks

Ich habe gerade den GP in Stan programmiert. Die GP-Hyperparameter wurden als Parameter des Modells deklariert und entsprechend abgeleitet. Dies erzeugte einen Satz von Vorhersagen für jede HMC-Iteration. Gelman zeigt, wie das alles in BDA3 funktioniert.
Sycorax sagt Reinstate Monica

Antworten:


6

Sie haben Recht, dass Sie bei jeder Iteration des Gradientenaufstiegs eine neue Kovarianzmatrixberechnung benötigen. Wenn die Matrixberechnung für Ihre Einstellung nicht möglich ist, können Sie meiner Meinung nach keine gradientenbasierte Optimierung der Grenzwahrscheinlichkeit verwenden.

Mein Vorschlag ist, gradientenfreie Methoden für die Optimierung von Hyperparametern zu verwenden, z. B. Rastersuche, Zufallssuche oder Bayes'sche optimierungsbasierte Suche . Diese Methoden werden häufig zur Optimierung von Hyperparametern anderer Algorithmen für maschinelles Lernen verwendet, z. B. SVMs.

Ich schlage die Rastersuche für Ihren ersten Versuch vor. Sie bilden im Grunde eine Tabelle (Raster) möglicher Hyperparameter, probieren jeden aus und suchen nach der besten Validierungsleistung (oder der besten Grenzwahrscheinlichkeit).

Die Rastersuche würde einen suboptimalen Satz von Hyperparametern ergeben, und Sie müssen das Raster selbst angeben (Tipp: Raster in einer Protokollskala erstellen), es ist jedoch weitaus weniger Berechnung erforderlich. (und du brauchst kein Gefälle!)

Wenn Sie mit der Rastersuche nicht vertraut sind, können Sie Wikipedia nachschlagen : Hyperparameter Optimization - Grid Search

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.