Оптимизация масштабирования параметров в WORHP - PullRequest
1 голос
/ 08 мая 2019

Я уже некоторое время использую WORHP и постоянно замечаю, что масштабирование, примененное пользователем к параметру оптимизации, похоже, мало влияет на поведение WORHP. Есть случаи, когда нужно сделать параметр более «жестким», разделив его на небольшое число. Обычно это работает довольно хорошо с другими оптимизаторами на основе градиента, но не с WORHP. Любая идея, как я могу добиться аналогичного эффекта с WORHP?

1 Ответ

0 голосов
/ 17 июня 2019

Мне немного сложно ответить без контекста или примера. Когда вы говорите «другие оптимизаторы на основе градиента», подразумеваете ли вы также методы, которые используют производные второго порядка или только методы первого порядка? Насколько я знаю, методы первого порядка более восприимчивы к переменному масштабированию. Вы можете игнорировать информацию второго порядка в WORHP, установив для идентификатора Гессиана (например, вручную или используя диагональную BFGS с par.BFGSrestart == 1).

В качестве альтернативы вы можете попробовать добавить термин регуляризации к целевой функции. Скажем, вы хотите, чтобы x[i] был более «жестким», например, несколько ближе к некоторому контрольному значению x_ref. Вместо масштабирования x[i] вы можете добавить термин weight * (x[i] - x_ref)^2 к вашей целевой функции с соответствующим весом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...