Класифікація з підвищенням градієнта: як зберегти прогноз у [0,1]


17

Питання

Я намагаюся зрозуміти, як прогноз зберігається в інтервалі [0,1] коли робимо бінарну класифікацію з підвищенням градієнта.

Припустимо, що ми працюємо над проблемою бінарної класифікації, і наша цільова функція - втрата журналу, yilog(Hm(xi))+(1yi)log(1Hm(xi)) , де y - цільова змінна {0,1} а H - наша поточна модель.

Під час навчання наступного слабкого учня hi таким, що нашою новою моделлю є Hi=Hi1+hi , який механізм повинен тримати Hi[0,1] ? Або, можливо, більш відповідне питання, чи існує такий механізм?


Більше інформації про те, що я роблю

Я намагаюся реалізувати збільшення градієнта, використовуючи дерева регресії. Що я уникаю, це помножити на коефіцієнт c [ 0 , c max ] , так що H + c max h не йде нижче нуля або вище одиниці, і я вибираю c в цьому діапазоні, що мінімізує функція втрат.hic[0,cmax]H+cmaxhc

Це спричиняє таку проблему: Після декількох раундів у мене є одна точка, яка ідеально класифікована, і найкращий доступний розкол для натискання класифікатора в напрямку градієнта хоче просунути цю точку вище однієї, що я переконуюсь, що цього не відбудеться встановлення . Таким чином, всі наступні ітерації виберуть однаковий розріз і однаковий c = 0 .c=0c=0

Я спробував звичайні практики регуляризації

  • Зниження швидкості навчання шляхом множення на μ = 0,01 . Це просто затримує проблему.cμ=0.01
  • Підгрупуючи простір функцій, але деякі пункти класифікувати дуже просто, вони відмічають майже кожне поле у ​​"Це позитив?" форми, і майже кожен «добрий розкол» показує таку поведінку.

Я думаю, що це не проблема параметрів, і повинен бути більш надійний спосіб виправити це. Я не відкидаю можливості порушення моєї реалізації, але я не знайшов нічого, щоб вирішити цю проблему.

Те, що ми маніпулюємо, в умовах логістичних втрат, має бути ймовірністю, тож як ми цього уникнути?


Моя інтуїція полягала б у тому, щоб поставити модель, яку ми будуємо, , в сигмовидну функцію такою, що вона обмежена [ 0 , 1 ] , і я думаю, що це спрацювало б, але я хочу знати, чи є інші рішення. Оскільки збільшення градієнта здається успішно використаним у класифікаційних завданнях, має існувати "правильне" (тобто з виправданням) рішення.H[0,1]


Ви можете зажадати, що є мультиплікативним, оскільки ln ( H ) адекватно поводиться з іншими вашими експертами. Hln(H)
Алекс Р.

Відповіді:


22

Мені подобається думати про це аналогічно випадку лінійних моделей та їх поширенню на ГЛМ (узагальнені лінійні моделі).

У лінійній моделі нам підходить лінійна функція для прогнозування нашої реакції

y^=β0+β1x1+βnxn

Для узагальнення інших ситуацій ми вводимо функцію зв’язку, яка перетворює лінійну частину моделі на масштаб відповіді (технічно це зворотна ланка, але, думаю, простіше думати про це таким чином, перетворюючи лінійний предиктор у відповідь, ніж перетворення відповіді у лінійний предиктор).

Наприклад, логістична модель використовує функцію sigmoid (або logit)

y^=11+exp((β0+β1x1+βnxn))

і пуассонова регресія використовує експоненціальну функцію

y^=exp(β0+β1x1+βnxn)

Щоб побудувати аналогію із збільшенням градієнта, ми замінюємо лінійну частину цих моделей на суму підсилених дерев. Так, наприклад, гауссова справа (аналогічна лінійній регресії) стає добре відомою

y^=ihi

де - наша послідовність слабких учнів. Біноміальний випадок аналогічний логістичній регресії (як ви зазначили у своїй відповіді)hi

y^=11+exp(ihi)

прискорення пуассона аналогічно регресії пуассона

y^=exp(ihi)

Залишається питання, як підходить до цих розширених моделей, коли задіяна функція зв'язку? Для випадку з гаусом, де посиланням є функція ідентичності, часто звучить мантра пристосування слабких учнів до залишків діючої робочої моделі, але це насправді не узагальнює складніші моделі. Трюк полягає в тому, щоб записати мінімальну функцію втрат як функцію лінійної частини моделі (тобто частина рецептури GLM).iβixi

Наприклад, біноміальну втрату зазвичай зустрічають як

iyilog(pi)+(1yi)log(1pi)

Тут втрата є функцією , передбачувані значення в тій же шкалі, що і відповідь, а p i - нелінійне перетворення лінійного предиктора L i . Натомість ми можемо повторно виразити це як функцію L i (у цьому випадку також відомий як коефіцієнт журналу)pipiLiLi

iyiLilog(1+exp(Li))

Тоді ми можемо взяти градієнт цього по відношенню до і посилити, щоб безпосередньо мінімізувати цю величину.L

Лише в самому кінці, коли ми хочемо створити передбачення для користувача, ми застосовуємо функцію зв’язку до остаточної послідовності слабких учнів, щоб поставити прогнози на ту саму шкалу, що і відповідь. Приміряючи модель, ми весь час працюємо у лінійному масштабі.


2
Погодьтеся з тим, що "функція втрати запису мінімізується як функція лінійної частини моделі". Але я думаю, що прямолінійний спосіб зрозуміти це без виведення шаблонів журналу такий: для лінійної частини моделі, тобто , подумайте про функцію втрат як - i ( y я log 1r(,), а псевдо-залишковий - просто зробити похідну від втрати wrtr. i(yilog11+er+(1yi)log(111+er))r
користувач2830451

@ matthew-drury Ви можете, будь ласка, додати трохи світла на мультиноміальну секцію K класу того ж алгоритму, де подібна ідея поширюється на її роботу?
MixCoded

6

Після деяких досліджень, здається, моя інтуїція та коментар Алекса Р. вірні.

[0,1]HHR

11+eH[0,1]
H

Це було запропоновано в статті " Аддитивна логістична регресія": статистичний погляд на підвищення Friedman, Hastie та Tibshirani для створення LogitBoost (Wikipedia) , адаптації AdaBoost (Wikipedia) до логістичних втрат.

Якщо дуже просто сказати, якщо можливо перейти від лінійної регресії до логістичної регресії шляхом додавання сигмоїди, то вона також працює для перетворення посилення регресії в прискорення класифікації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.