Sobes.tech
Senior
23

Что такое 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 — это эффективный и гибкий метод байесовской оптимизации, основанный на моделировании распределений параметров, а не на аппроксимации функции потерь напрямую.