Настройка гиперпараметра в регрессии Гаусса

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} , где М = Li , и а, б и л являются гиперпараметры.

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

частная производная логарифмического предельного правдоподобия по параметрам определяется следующим образом:

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

Поскольку элементы матрицы K зависит от параметров, так что производные и обратную K . Это означает, что когда используется оптимизатор на основе градиента, оценка градиента в данной точке (значение параметра) потребует повторного вычисления ковариационной матрицы. В моем приложении это неосуществимо, потому что вычисление ковариационной матрицы с нуля и вычисление ее обратного значения в каждой итерации градиентного подъема слишком дорого. Мой вопрос заключается в том, каковы мои варианты, чтобы найти довольно хорошую комбинацию этих трех параметров? и я также не знаю, какой параметр оптимизировать в первую очередь, и я был бы признателен за любые указания по этому вопросу.

bfaskiplar
источник
Я успешно использовал HMC для выборки гиперпараметров GP для наборов данных скромного размера.
Sycorax сообщает, что восстановит Монику
Привет @Sycorax, не могли бы вы рассказать нам, как вы использовали эту технику для решения этой проблемы? У меня та же проблема, что и у ОП, и я думал об использовании MCMC для ее решения, но пока не знаю, как это сделать.
Виллиан Фукс
Я только что закодировал GP в Stan. Гиперпараметры GP были объявлены как параметры модели и выведены соответственно. Это породило один набор прогнозов для каждой итерации HMC. Гельман иллюстрирует, как все это работает в BDA3.
Sycorax говорит восстановить Monica

Ответы:

6

Вы правы, что вам нужно новое вычисление ковариационной матрицы на каждой итерации подъема градиента. Так что, если матричные вычисления не подходят для вашей настройки, то, я думаю, вы не можете использовать градиентную вероятностную оптимизацию на основе градиента.

Мое предложение заключается в использовании методов без градиента для настройки гиперпараметров, таких как поиск по сетке, случайный поиск или поиск на основе байесовской оптимизации . Эти методы широко используются для оптимизации гиперпараметров других алгоритмов машинного обучения, например SVM.

Я предлагаю поиск по сетке для вашей первой попытки. Вы в основном формируете таблицу (сетку) возможных гиперпараметров, пробуете каждый и ищите лучшую производительность проверки (или наилучшую предельную вероятность).

Поиск по сетке дал бы неоптимальный набор гиперпараметров, и вы должны указать сетку самостоятельно (подсказка: создайте сетку в логарифмическом масштабе), но требуется гораздо меньше вычислений. (и вам не нужен градиент!)

Если вы не знакомы с поиском по сетке, вы можете посмотреть Википедию: Оптимизация гиперпараметров - Поиск по сетке

Сангвон Юн
источник