Я пытаюсь настроить гиперпараметры алгоритма гауссовой регрессии, который я реализовал. Я просто хочу максимизировать предельное правдоподобие, определяемое формулой где 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 , и а, б и л являются гиперпараметры.
частная производная логарифмического предельного правдоподобия по параметрам определяется следующим образом:
Поскольку элементы матрицы зависит от параметров, так что производные и обратную . Это означает, что когда используется оптимизатор на основе градиента, оценка градиента в данной точке (значение параметра) потребует повторного вычисления ковариационной матрицы. В моем приложении это неосуществимо, потому что вычисление ковариационной матрицы с нуля и вычисление ее обратного значения в каждой итерации градиентного подъема слишком дорого. Мой вопрос заключается в том, каковы мои варианты, чтобы найти довольно хорошую комбинацию этих трех параметров? и я также не знаю, какой параметр оптимизировать в первую очередь, и я был бы признателен за любые указания по этому вопросу.
источник
Ответы:
Вы правы, что вам нужно новое вычисление ковариационной матрицы на каждой итерации подъема градиента. Так что, если матричные вычисления не подходят для вашей настройки, то, я думаю, вы не можете использовать градиентную вероятностную оптимизацию на основе градиента.
Мое предложение заключается в использовании методов без градиента для настройки гиперпараметров, таких как поиск по сетке, случайный поиск или поиск на основе байесовской оптимизации . Эти методы широко используются для оптимизации гиперпараметров других алгоритмов машинного обучения, например SVM.
Я предлагаю поиск по сетке для вашей первой попытки. Вы в основном формируете таблицу (сетку) возможных гиперпараметров, пробуете каждый и ищите лучшую производительность проверки (или наилучшую предельную вероятность).
Поиск по сетке дал бы неоптимальный набор гиперпараметров, и вы должны указать сетку самостоятельно (подсказка: создайте сетку в логарифмическом масштабе), но требуется гораздо меньше вычислений. (и вам не нужен градиент!)
Если вы не знакомы с поиском по сетке, вы можете посмотреть Википедию: Оптимизация гиперпараметров - Поиск по сетке
источник