TPE означает «Древовидный оценщик Парцена», который представляет собой алгоритм байесовской оптимизации, обычно используемый для настройки гиперпараметров в машинном обучении. Это особенно эффективно, когда пространство поиска гиперпараметров велико и сложно.
Параметры TPE включают в себя:
- n: количество выборок, извлекаемых из пространства гиперпараметров.
- гамма: доля образцов, которые следует сохранить в качестве кандидатов для следующей итерации.
- n_EI_candidates: количество образцов, которые следует учитывать для расчета ожидаемого улучшения (EI).
Вот алгоритмический обзор алгоритма TPE:
- Укажите пространство поиска гиперпараметров и определите предыдущие распределения для каждого гиперпараметра.
- Инициализировать алгоритм TPE с указанными параметрами.
- Пример n конфигураций гиперпараметров из предыдущего дистрибутива.
- Оцените целевую функцию для каждой выборочной конфигурации.
- Разделите образцы на две группы: «хорошие» и «плохие» на основании результатов оценки.
- Обновите предыдущие распределения для каждого гиперпараметра, используя «хорошие» образцы.
- Создать новый набор образцов гиперпараметров на основе обновленных апостериорных распределений.
- Оцените целевую функцию для новых образцов.
- Повторяйте шаги 5–8 до достижения сходимости или заданного количества итераций.
Вот пример фрагмента кода для использования TPE в качестве оптимизатора с использованием библиотеки Hyperopt в Python:
from hyperopt import fmin, tpe, hp
# Define the objective function
def objective(params):
# perform training and evaluation using the hyperparameters
# return the objective value to minimize/maximize
# Define the hyperparameter search space
space = {
'learning_rate': hp.uniform('learning_rate', 0.01, 0.1),
'num_layers': hp.choice('num_layers', [1, 2, 3]),
'hidden_units': hp.quniform('hidden_units', 50, 200, 10),
# add more hyperparameters as needed
}
# Run the optimization
best = fmin(
fn=objective,
space=space,
algo=tpe.suggest,
max_evals=100
)
print(best)
В этом примере функция objectiveпредставляет задачу машинного обучения, которую вы хотите оптимизировать. Словарь spaceопределяет пространство поиска гиперпараметров с помощью функций hpиз библиотеки Hyperopt. Функция fminвыполняет оптимизацию с использованием алгоритма TPE (tpe.suggest) и задает максимальное количество оценок (max_evals).
Блог
Настройка гиперпараметров имеет решающее значение для оптимизации производительности моделей машинного обучения. В этой статье мы рассмотрим алгоритм древовидной оценки Парзена (TPE), мощный подход байесовской оптимизации для поиска в сложных пространствах гиперпараметров. Мы дадим обзор алгоритма TPE, объясним его параметры и рассмотрим пример кода Python, который демонстрирует, как использовать TPE в качестве оптимизатора для задач машинного обучения.
Содержание:
- Введение в настройку гиперпараметров
- Байесовская оптимизация и алгоритм TPE
- Понимание параметров TPE
- Реализация оптимизации TPE в Python
- Пример кода: использование TPE с библиотекой Hyperopt
- Заключение
В этой статье мы углубимся в алгоритм TPE и покажем, как он может эффективно выполнять поиск в пространствах гиперпараметров, что приводит к повышению производительности модели. Мы предоставим пошаговые объяснения и пример кода, который вы сможете легко адаптировать к своим собственным проектам машинного обучения. Используя возможности TPE и байесовской оптимизации, вы сможете вывести свои модели на новый уровень.