TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
Лев говорит

19 Aug, 18:29

Open in Telegram Share Report

Как градиентный бустинг учится на ошибках, без формул на доске 🧠

На собеседовании часто говорят: «Градиентный бустинг последовательно исправляет ошибки предыдущих деревьев». Это хорошее начало, но за этой фразой легко спрятать непонимание механики. Главное, что стоит запомнить сразу: таргет второго дерева не равен предсказанию первого дерева. Он показывает, какую поправку нужно внести в это предсказание. В общем случае эта поправка называется антиградиентом функции потерь, то есть направлением, в котором нужно сдвинуть текущий прогноз, чтобы ошибка стала меньше. Именно поэтому бустинг называют градиентным. 💡

🏠 Представим задачу прогноза цены квартиры. У нас есть площадь, район, этаж, год постройки и реальная цена каждой квартиры. Первое дерево обычно очень простое. Например, оно замечает, что квартиры больше 60 квадратных метров в среднем стоят дороже, и выдаёт грубые прогнозы. Для одной квартиры оно предсказало 10 миллионов, хотя настоящая цена была 12 миллионов. Для другой предсказало 8 миллионов вместо 7 миллионов. После первого дерева у нас появляется не только прогноз, но и понимание, где и насколько текущая модель ошибается.

📌 Что становится таргетом второго дерева? Не исходная цена квартиры и не прогноз первого дерева. В простой регрессионной задаче с квадратичной ошибкой это остаток:


таргет второго дерева = факт − прогноз первого дерева


Для квартиры стоимостью 12 млн первое дерево предсказало 10 млн. Значит, таргет второго дерева будет +2 млн. Для квартиры стоимостью 7 млн был прогноз 8 млн, значит таргет будет −1 млн. В этом конкретном случае остаток и есть антиградиент функции потерь. Там, где первое дерево занизило цену, новое дерево учится добавлять значение. Там, где завысило, уменьшать. Каждое новое дерево отвечает не на вопрос «сколько стоит квартира?», а на вопрос «какую поправку нужно добавить к уже сделанному прогнозу?» ⚙️

➕ Как деревья собираются в один прогноз? Их предсказания не конкурируют друг с другом, а складываются в композицию. Если первое дерево для квартиры предсказало 10 млн, а второе выучило поправку +1,5 млн, итоговый прогноз после двух деревьев будет 11,5 млн. Если третье дерево добавит ещё +0,3 млн, итог станет 11,8 млн:


итоговый прогноз = прогноз 1-го дерева + поправка 2-го дерева + поправка 3-го дерева + ...

10 млн + 1,5 млн + 0,3 млн = 11,8 млн


На практике к каждой поправке ещё применяется скорость обучения. Например, при learning_rate = 0.1 вклад второго дерева +1,5 млн добавится не целиком, а как +0,15 млн. Так модель учится осторожнее и меньше рискует слишком точно запомнить обучающие данные. 🛡️

После добавления второго дерева прогноз становится точнее, но ошибки всё ещё остаются. Третье дерево смотрит уже на ошибку суммы первого и второго деревьев и ищет следующую полезную поправку. Возможно, оно замечает, что квартиры на верхних этажах без лифта систематически переоценены. Четвёртое, что год постройки тоже важен. Так постепенно возникает композиция: первое дерево улавливает крупную закономерность, следующие добавляют более тонкие исправления. Деревья обучаются последовательно, а не одновременно, потому что для следующей поправки нужно знать, что уже объяснила текущая сумма всех предыдущих деревьев. 🔍

🧠 Почему здесь появляется слово «градиентный»? В задаче с квадратичной ошибкой антиградиент совпадает с остатком, то есть с разницей между фактом и прогнозом. Но это не универсальное правило. В задачах классификации, например при прогнозе дефолта, модель оптимизирует другую функцию потерь. Тогда таргетом следующего дерева становятся псевдоостатки, то есть антиградиенты этой функции. Формулу можно не помнить. Важно понимать идею: каждое новое дерево строит не новый прогноз с нуля, а поправку к уже собранной модели, которая уменьшает выбранную ошибку.

159 0 2 8
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot