Что такое Tree-structured Parzen Estimator (TPE) в Optuna?
Ответ от нейросети
sobes.tech AI
Tree-structured Parzen Estimator (TPE) — это метод байесовской оптимизации, используемый в библиотеке Optuna для подбора гиперпараметров. В отличие от классического Gaussian Process (GP), TPE моделирует распределения вероятностей целевой функции с помощью двух непараметрических моделей плотности: одна для хороших (низких) значений функции потерь и другая для остальных.
Идея в том, чтобы оценить вероятность того, что заданные параметры приведут к улучшению результата, и на основе этого выбирать следующие параметры для проверки. TPE строит два распределения:
- l(x): плотность параметров, приводящих к лучшим результатам (ниже некоторого порога).
- g(x): плотность параметров, приводящих к худшим результатам.
Затем выбираются параметры, максимизирующие отношение l(x)/g(x), что повышает вероятность улучшения результата.
Это позволяет эффективно исследовать пространство гиперпараметров, особенно когда оно высокоразмерное или содержит категориальные параметры.
Пример использования в Optuna:
import optuna
def objective(trial):
x = trial.suggest_float('x', -10, 10)
return (x - 2) ** 2
study = optuna.create_study(sampler=optuna.samplers.TPESampler())
study.optimize(objective, n_trials=100)
print(study.best_params)
Таким образом, TPE — это эффективный и гибкий метод байесовской оптимизации, основанный на моделировании распределений параметров, а не на аппроксимации функции потерь напрямую.