Как ответить
Градиентный бустинг — это итеративный алгоритм, который строит ансамбль из слабых моделей (обычно деревьев решений), где каждая следующая модель исправляет ошибки предыдущей. Формально процесс обучения описывается через минимизацию эмпирического риска с помощью градиентного спуска в функциональном пространстве.
На каждом шаге m мы имеем текущую модель Fm-1(x). Чтобы получить Fm(x), мы:
- Вычисляем псевдо-остатки (отрицательный градиент функции потерь по предсказаниям):
r_im = - [∂L(y_i, F(x_i)) / ∂F(x_i)] при F(x) = F_{m-1}(x) - Обучаем базовую модель (дерево) hm(x) предсказывать эти остатки rim.
- Находим оптимальный шаг (коэффициент сжатия) γm через line search:
γ_m = argmin_γ Σ L(y_i, F_{m-1}(x_i) + γ * h_m(x_i)) - Обновляем модель:
где ν — learning rate (обычно 0.01–0.3).F_m(x) = F_{m-1}(x) + ν * γ_m * h_m(x)
Выбор функции потерь зависит от задачи:
- Регрессия: MSE (L2-loss) — L(y, F) = (y - F)². Псевдо-остатки = y - F. Если данные с выбросами — MAE (L1-loss) или Huber loss.
- Бинарная классификация: Log-loss (binary cross-entropy) — L(y, F) = -y * log(p) - (1-y) * log(1-p), где p = 1 / (1 + e^{-F}). Псевдо-остатки = y - p.
- Многоклассовая классификация: Categorical cross-entropy. Для каждого класса k строится своя модель Fk, остатки считаются как yik - pik.
На практике в XGBoost/LightGBM используют аппроксимацию второго порядка (гессиан) для ускорения сходимости — это даёт формулу wj = - Σ gi / (Σ hi + λ) для весов листьев, где gi — градиент, hi — гессиан, λ — L2-регуляризация.