Переобучение, регуляризация и ранняя остановка

В отличие от случайных лесов, деревья с градиентным усилением могут перенасыщаться. Поэтому, как и для нейронных сетей, вы можете применить регуляризацию и раннюю остановку, используя набор данных проверки.

Например, на следующих рисунках показаны кривые потерь и точности для обучающих и проверочных наборов при обучении модели GBT. Обратите внимание, насколько расходятся кривые, что предполагает высокую степень переобучения.

Plots of training loss and validation loss versus the number of
  decision trees. Training loss gradually decreases as the number
  of decision trees increases. However, validation loss only decreases
  until about 40 decision trees. With more than 40 decision trees,
  validation loss actually increases. With 400 decision trees, the
  gap between training loss and validation loss is
  enormous.

Рисунок 29. Потери в зависимости от количества деревьев решений.

Plots of training accuracy and validation accuracy versus the number of
  decision trees. Training accuracy gradually increases as the number
  of decision trees increases, reaching a peak of almost 1.0 at 400
  decision trees. Validation accuracy increases to about 0.86 at 40
  decision trees, then gradually falls to about 0.83 at 400 decision
  trees.

Рисунок 30. Точность в зависимости от количества деревьев решений.

Общие параметры регуляризации для деревьев с градиентным усилением включают:

  • Максимальная глубина дерева.
  • Скорость усадки.
  • Соотношение атрибутов, проверенных на каждом узле.
  • Коэффициенты L1 и L2 на потери.

Обратите внимание, что деревья решений обычно растут намного мельче, чем модели случайного леса. По умолчанию деревья с градиентным усилением в TF-DF выращиваются до глубины 6. Поскольку деревья неглубокие, минимальное количество примеров на лист мало влияет и, как правило, не настраивается.

Необходимость в наборе данных для проверки является проблемой, когда количество обучающих примеров невелико. Поэтому принято обучать деревья с градиентным усилением внутри цикла перекрестной проверки или отключать раннюю остановку, когда известно, что модель не переобучается.

Пример использования

В предыдущей главе мы обучили случайный лес на небольшом наборе данных. В этом примере мы просто заменим модель случайного леса моделью деревьев с градиентным усилением:

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

Использование и ограничения

У деревьев с градиентным усилением есть свои плюсы и минусы.

Плюсы

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

Минусы

  • Деревья решений должны обучаться последовательно, что может значительно замедлить обучение. Однако замедление обучения несколько компенсируется тем, что деревья решений меньше.
  • Как и случайные леса, деревья с градиентным усилением не могут изучать и повторно использовать внутренние представления. Каждое дерево решений (и каждая ветвь каждого дерева решений) должно повторно изучить шаблон набора данных. В некоторых наборах данных, особенно наборах данных с неструктурированными данными (например, изображениями, текстом), это приводит к тому, что деревья с градиентным усилением показывают худшие результаты, чем другие методы.