Байесовская оптимизация с изменяющейся во времени целью и ее реализация на Python - PullRequest
1 голос
/ 21 марта 2019

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

Я ищу библиотеку Python, которая реализует это.Hyperopt, по-видимому, обеспечивает «линейное забывание» с помощью своей функции tpe.suggest, а в этой статье даже говорится, что они использовали Hyperopt для этого.

Однако эта функция (если имеется) не документированаи я даже не уверен, правильно ли он был реализован в Hyperopt (см. , этот выпуск ).

Так что я был бы признателен за любые советы или указания о том, как использовать Hyperopt (или любой другойдругая библиотека), чтобы сделать это.

Повторюсь, это то, чего я пытаюсь достичь (из http://proceedings.mlr.press/v28/bergstra13.pdf):

Относительно Бергстры и др. (2011) мы сделалидве незначительные модификации алгоритма поиска. Первая модификация заключалась в том, чтобы уменьшить вес испытаний по мере их старения, чтобы старые результаты не учитывались так же, как более поздние. Мы дали полный вес последним 25 испытаниям и применили линейное линейное изменение от 0до 1,0 для более старых испытаний. Это эвристическая уступка предположению TPE о независимости гиперпараметра: когда наш поиск перемещается в пространстве, мы используем временное расстояние в экспериментев качестве суррогата расстояния в пространстве поиска.

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

...