Я создал оценщик GP с scikit-optimize, чтобы найти глобальный минимум функции Hartmann6.
Результат ask()
- следующий кандидат, предложенный оптимизатором. tell()
- это шаг подгонки с использованием недавно обнаруженных данных.
В этом методе настраиваются ли гиперпараметры ядра gp на основе логарифмической вероятности? Есть ли параметр для настройки этих гиперпараметров на каждой итерации?
optimizer = Optimizer(
acq_func="gp_hedge",
dimensions=[Real(0.0, 1.0), Real(0.0, 1.0), Real(0.0, 1.0), Real(0.0, 1.0), Real(0.0, 1.0), Real(0.0, 1.0)],
random_state=1,
base_estimator="gp"
)
x = optimizer.ask(n_points=10)
y = Parallel(n_jobs=10)(delayed(hart6)(v) for v in x)
optimizer.tell(x, y)
while min(optimizer.yi) > -3.32237 * 0.9995:
x = optimizer.ask(n_points=10)
y = Parallel(n_jobs=10)(delayed(hart6)(v) for v in x)
optimizer.tell(x , y)
print(min(optimizer.yi))
end = time.time()
print("time ", end-start)