Машинное обучение | Объясните принцип применения и вывод формулы GBDT в сценариях классификации

машинное обучение

Эта статья возникла из личного публичного аккаунта:TechFlow, оригинальность это не просто, прошу внимания


СегодняТемы машинного обученияВ 31-й статье продолжим разговор о модели GBDT.

В прошлой статье мы узнали принцип модели GBDT в задачах регрессии. Самая большая особенность GBDT заключается в том, что уменьшение функции потерь достигается не путем корректировки существующих параметров в модели, а если оно аппроксимируется путем обучения нового дерева решений CART. То есть к самой низкой точке функции потерь приближаются путем увеличения параметров, а не их корректировки.

Если вы не очень хорошо понимаете эту часть, вы можете просмотреть предыдущий контент по ссылке ниже:

Машинное обучение | Подробно объясните принцип дерева повышения градиента GBDT, прочитав его, вы больше не боитесь интервью


Функция потерь логистической регрессии


Прежде чем мы начнем объяснение и вывод принципа модели GBDT, давайте рассмотримлогистическая регрессиясоответствующие формулы и понятия.

Во-первых, давайте напишем функцию прогнозирования логистической регрессии:

hθ(x)=11+eθTxh_{\theta}(x) = \frac{1}{1 + e^{-\theta^Tx}}

Изображение нарисовано так, гдеhθ(x)h_{\theta}(x)Представляет вероятность того, что модель предсказывает принадлежность выборки x к категории 1.

В задаче бинарной классификации есть только два класса, 0 и 1, и суммы вероятностей двух классов равны только 1. Таким образом, мы можем получитьP(y=0x;θ)=1hθ(x)P(y=0|x;\theta)=1 - h_{\theta}(x).

Мы хотим, чтобы модель была такой, что при y=01hθ(x)1 - h_{\theta}(x)как можно больше, иначеhθ(x)h_{\theta}(x)Как можно больше, мы используем экспоненциальную форму, чтобы синтезировать их и записать функцию потерь L.

l(θ)=hθ(x)y(1hθ(x))1yl(\theta) = -h_{\theta}(x)^y(1 - h_{\theta}(x))^{1-y}

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

L(θ)=log(l(θ))=i=1N[yiloghθ(xi)+(1yi)log(1hθ(xi))]L(\theta)=log(l(\theta))=-\sum_{i=1}^N[y_i\log h_{\theta}(x_i)+(1 - y_i)\log (1 - h_{\theta}(x_i))]

Это источник функции потерь логистической регрессии.


Бинарная классификация GBDT


Принцип применения модели GBDT к сцене бинарной классификации фактически такой же, как и у логистической регрессии, но в логистической регрессииhθ(x)h_{\theta}(x)является линейной функцией, а в GBDThθ=m=1Mfm(x)h_{\theta} = \sum_{m=1}^M f_m(x),Являетсяаддитивная модель.

В проблеме регрессии GBDT,hθh_{\theta}Это окончательный результат вывода GBDT, и в задаче с двумя категориями нам также нужно добавить к этому результату сигмоидальную функцию. Мы делаем вышеперечисленноеhθh_{\theta}заFM(x)F_M(x), поэтому модель может быть выражена как:

P(y=1x)=11+eFM(x)P(y=1|x) = \frac{1}{1 + e^{-F_M(x)}}

Вносим эту формулу в функцию потерь логистической регрессии, можем получить:

L(xi,yiFM(x))=yilog(11+eFM(xi))(1yi)log(111+eFM(xi))=yilog(1+eFM(xi))+(1yi)[FM(xi)+log(1+eFM(xi))]\begin{aligned} L(x_i, y_i | F_M(x)) &= -y_i\log (\frac{1}{1 + e^{-F_M(x_i)}}) - (1 - y_i)\log (1 - \frac{1}{1 + e^{-F_M(x_i)}} )\\ &= y_i \log(1 + e^{-F_M(x_i)}) + (1 - y_i)[F_M(x_i) + \log (1 + e^{-F_M(x_i)})] \end{aligned}

Рассчитываем функцию потерьотрицательный градиент, то есть вычислитьL(x,yFM(X))L(x, y |F_M(X))правильноFM(x)F_M(x)Частная производная от :

LFM=yi11+eFM(x)=yiyi^-\frac{\partial L}{\partial F_M} = y_i - \frac{1}{1 + e^{-F_M(x)}} = y_i - \hat{y_i}

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


тренировочный процесс


Давайте разберем весь процесс обучения модели и подключим все детали.

Прежде всего, давайте уточним несколько параметров, M представляет собой количество деревьев решений.Fm(xi)F_m(x_i)представляет собой целое после m-го раунда обучения,Fm(xi)F_m(x_i)То есть конечная выходная модель GBDT.

  1. инициализация

    Сначала мы создаем первое дерево регрессии, т.е.f1(x)f_1(x), в задаче бинарной классификации это априорная информация, поэтому:

    f1(x)=logp11p1f_1(x) = \log \frac{p1}{1-p1}, p1 означаетДоля класса 1 в выборке

  2. повторять

    I. Для деревьев регрессии со 2-го по m-е нам нужно вычислить цель обучения каждого дерева, то есть невязку предыдущих результатов:

    rmi=[L(yi,f(xi))f(xi)]f(x)=fm1(x)=yiyi^r_{mi}=-[\frac{\partial L(y_i, f(x_i))}{\partial f(x_i)}]_{f(x) = f_{m-1}(x)}=y_i - \hat{y_i}

    ii.Для текущего m-го поддерева нам нужно пройти его возможные точки сегментации и пороги, чтобы найти параметры, соответствующие оптимальному прогнозируемому значению c, чтобы максимально приблизить невязку.Давайте напишем эту формулу:

    cmj=argminc xiеRmjL(yi,fm1(xi)+c)c_{mj}=\mathop{\arg\min}_{c} \ \ \ \sum_{x_i\in R_{mj}}L(y_i, f_{m-1}(x_i) + c)

    здесьRmjR_{mj}Относится к набору предсказанных значений листовых узлов во всех методах деления m-го поддерева, то естьВозможное предсказанное значение m-го дерева регрессии. где j находится в диапазоне 1,2,3...J.

    Далее мы обновляемfm(x)=fm1(x)+j=1JcmjI(xеRmj)f_m(x) = f_{m-1}(x) + \sum_{j=1}^J c_{mj}I(x \in R_{mj}), где I — функция, если выборка попадает вRmjR_{mj}На узле тогда I=1, иначе I=0.

  3. у нас есть

    FM(x)=fM(x)=m=1Mfm(x)=m=1Mj=1JcmjI(xеRmj)F_M(x) = f_M(x) = \sum_{m=1}^Mf_m(x)=\sum_{m=1}^M\sum_{j=1}^J c_{mj}I(x \in R_{mj})

  4. Вероятность того, что класс выборки равен 1, равна:

    P(xi)=11+eFM(xi)P(x_i) = \frac{1}{1 + e^{-F_M(x_i)}}


Проблема мультиклассификации


Проблема бинарной классификации решена, мультиклассификация не представляет сложности, по сути, это простое расширение бинарной классификации.

Предположим, что количество категорий выборки равно k, тогда нам нужноk разных наборов деревьевчтобы соответствовать вероятности каждого класса. Запишем формулу вероятности класса q:

P(y=qx)=eFq(x)i=1keFi(x)P(y=q|x) = \frac{e^{F_q(x)}}{\sum_{i=1}^k e^{F_i(x)}}

Функция потерь функции softmax:L=yilog(P(yix))L = -\sum y_i \log(P(y_i | x)), хотя это значение суммирования из формулы, но для многоклассовых задач,Будет только одна категория 1, остальные равны 0, поэтому только один элемент не равен 0, мы предполагаем, что этот элемент равен q. Найдем его отрицательный градиент, подставив:

LFq=yqeFq(x)i=1keFi(x)=yqyq^-\frac{\partial L}{\partial F_q} = y_q - \frac{e^{F_q(x)}}{\sum_{i=1}^k e^{F_i(x)}}= y_q - \hat{y_q}

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


Суммировать


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

Из сегодняшней статьи мы также видим, что модель GBDTШирокий спектр приложений, которую можно применять к задачам регрессии, бинарной классификации и множественной классификации, и это очень мощная модель. По этой причине он был очень популярен до появления глубокого обучения, и на его основе было создано множество улучшенных версий и приложений. Такие как XGboost, GBDT+LR и так далее. Поэтому во время собеседования часто задают вопросы.Если есть студенты, которые готовятся к собеседованию, рекомендуется досконально понять принцип.

Сегодняшняя статья здесь, если вам понравилась эта статья, пожалуйста, приходите на волнукачество три, поддержите меня (Подписывайтесь, делайте репосты, лайкайте).