Классификация с градиентным ускорением: как сохранить прогноз в [0,1]

17

Вопрос

Я изо всех сил пытаюсь понять, как прогнозирование сохраняется в интервале [0,1] при выполнении бинарной классификации с градиентным повышением.

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

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


Больше информации о том, что я делаю

Я пытаюсь реализовать повышение градиента, используя деревья регрессии. Чтобы этого избежать, нужно умножить hi на коэффициент c[0,cmax] , чтобы H+cmaxh не опускался ниже нуля или выше единицы, и я выбираю c в этом диапазоне, который минимизирует функция потерь.

Это приводит к следующей проблеме: после нескольких раундов у меня есть одна точка, которая отлично классифицируется, и наилучшее из доступных разделений, чтобы толкать классификатор в направлении градиента, хочет переместить эту точку выше единицы, что, я уверен, не произойдет установка . Таким образом, вся следующая итерация выберет тот же сплит и тот же самый c = 0 .c=0c=0

Я попробовал общие практики регуляризации

  • Уменьшение скорости обучения путем умножения на μ = 0,01 . Это только задерживает проблему.cμ=0.01
  • Субдискретизация пространства объектов, но некоторые из точек очень легко классифицировать, они отмечают почти все флажки «это положительный результат?» форма, и почти каждый «хороший раскол» показывает это поведение.

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

То, чем мы манипулируем в контексте логистической потери, должно быть вероятностью, так как же нам ее избежать?


Моя интуиция состояла бы в том, чтобы поместить модель, которую мы строим, , в сигмовидную функцию так, чтобы она была ограничена [ 0 , 1 ] , и я думаю, что это сработало бы, но я хочу знать, есть ли другие решения. Поскольку усиление градиента, по-видимому, успешно используется в задачах классификации, должно существовать «правильное» (т.е. с обоснованием) решение.H[0,1]

подмигивает
источник
Вы можете потребовать, чтобы был мультипликативным, поскольку ln ( H ) ведет себя аддитивно с другими вашими экспертами. Hln(H)
Алекс Р.

Ответы:

22

Мне нравится думать об этом по аналогии со случаем линейных моделей и их распространением на GLM (обобщенные линейные модели).

В линейной модели мы подбираем линейную функцию, чтобы предсказать наш ответ

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

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

Например, логистическая модель использует функцию сигмоида (или логита)

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

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

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

Чтобы построить аналогию с градиентным повышением, мы заменим линейную часть этих моделей на сумму увеличенных деревьев. Так, например, случай Гаусса (аналогичный линейной регрессии) становится общеизвестным

y^=ihi

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

y^=11+exp(ihi)

и повышение Пуассона аналогично регрессии Пуассона

y^=exp(ihi)

iβixi

Например, биноминальная потеря обычно встречается как

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

pipiLiLi

iyiLilog(1+exp(Li))

L

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

Мэтью Друри
источник
2
r(,)i(yilog11+er+(1yi)log(111+er))r
@ matthew-drury Не могли бы вы немного осветить секцию многочленов K-класса того же алгоритма, где аналогичная идея распространена на него?
MixCoded
6

После некоторых исследований кажется, что моя интуиция и комментарий Алекса Р. верны .

Для того, чтобы построить непрерывную модель с прогнозами в [0,1]можно поставить модель ЧАСв логистическую функцию (Wikipedia) , такую, что дляЧАСр, у нас есть

11+е-ЧАС[0,1]
Затем шаги повышения градиента принимают производную по ЧАС и обновить модель, как если бы логистическая функция была частью функции стоимости, и она работает.

Это было предложено в статье Аддитивная логистическая регрессия: статистическое представление Фридмана, Хасти и Тибширани о том, как создать LogitBoost (Википедия) , адаптацию AdaBoost (Википедия) к логистическим потерям.

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

подмигивает
источник