Какая функция потерь подходит для логистической регрессии?


31

Я прочитал о двух версиях функции потерь для логистической регрессии, какая из них правильная и почему?

  1. Из машинного обучения , Zhou ZH (на китайском языке), с :β=(w,b) and βTx=wTx+b

    (1)l(β)=∑i=1m(−yiβTxi+ln⁡(1+eβTxi))

  2. Из моего курса в колледже, с :zi=yif(xi)=yi(wTxi+b)

    (2)L(zi)=log⁡(1+e−zi)


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

Ответы:


31

Соотношение следующее: .l(β)=∑iL(zi)

Определите логистическую функцию как . Они обладают свойством, что . Или другими словами:f(z)=ez1+ez=11+e−zf(−z)=1−f(z)

11+ez=e−z1+e−z.

Если вы возьмете взаимность обеих сторон, то возьмите журнал, который вы получите:

ln⁡(1+ez)=ln⁡(1+e−z)+z.

Вычтите с обеих сторон, и вы должны увидеть это:z

−yiβTxi+ln(1+eyiβTxi)=L(zi).

Редактировать:

В данный момент я перечитываю этот ответ и не понимаю, почему я получил равный . Возможно, в первоначальном вопросе есть опечатка.−yiβTxi+ln(1+eβTxi)−yiβTxi+ln(1+eyiβTxi)

Изменить 2:

В случае, если в первоначальном вопросе не было опечатки, @ManelMorales представляется правильным привлечь внимание к тому факту, что когда , функцию вероятности можно записать в виде из-за свойства . Я переписываю это по-другому здесь, потому что он вводит новую двусмысленность в обозначении . Остальное следует, принимая отрицательное логарифмическое правдоподобие для каждого кодирования. Смотрите его ответ ниже для более подробной информации.y∈{−1,1}P(Yi=yi)=f(yiβTxi)f(−z)=1−f(z)ziy


42

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

В случае бинарной классификации мы можем присвоить метки или .y=±1y=0,1

Как уже было сказано, логистическая функция является хорошим выбором, поскольку она имеет вид вероятности, т.е. и как . Если мы выберем метки мы можем назначить σ(z)σ(−z)=1−σ(z)σ(z)∈(0,1)z→±∞y=0,1

P(y=1|z)=σ(z)=11+e−zP(y=0|z)=1−σ(z)=11+ez

который можно записать более компактно как .P(y|z)=σ(z)y(1−σ(z))1−y

Проще максимизировать логарифмическую вероятность. Максимизация логарифмической вероятности аналогична минимизации отрицательной логарифмической вероятности. Для выборок , после натурального логарифма и некоторого упрощения, мы выясним:m{xi,yi}

l(z)=−log⁡(∏imP(yi|zi))=−∑imlog⁡(P(yi|zi))=∑im−yizi+log⁡(1+ezi)

Полный вывод и дополнительная информация могут быть найдены на этом ноутбуке Jupyter . С другой стороны, мы могли бы вместо этого использовать метки . Тогда совершенно очевидно, что мы можем назначитьy=±1

P(y|z)=σ(yz).

Также очевидно, что . Следуя тем же шагам, что и раньше, мы минимизируем в этом случае функцию потерьP(y=0|z)=P(y=−1|z)=σ(−z)

L(z)=−log⁡(∏jmP(yj|zj))=−∑jmlog⁡(P(yj|zj))=∑jmlog⁡(1+e−yzj)

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

−yizi+log⁡(1+ezi)≡log⁡(1+e−yzj)

Случай тривиален, чтобы показать. Если , то с левой стороны и с правой стороны.yi=1yi≠1yi=0yi=−1

Хотя могут быть фундаментальные причины того, почему у нас есть две разные формы (см. Почему существуют две разные формулировки / обозначения логистических потерь? ), Одна из причин выбора первой заключается в практических соображениях. В первом случае мы можем использовать свойство для тривиального вычисления и , оба из которых необходимы для анализа сходимости (т. е. для определения выпуклости функции потерь путем вычисления гессиана ).∂σ(z)/∂z=σ(z)(1−σ(z))∇l(z)∇2l(z)


Является ли функция логистических потерь выпуклой?
— user85361

2
Лог reg IS выпуклый, но не выпуклый . Таким образом, мы не можем ограничить время, необходимое для схода градиента. Мы можем настроить форму чтобы она сильно выпукла, добавив член регуляризации: с положительной константой определим нашу новую функцию как st является - сильно выпуклые , и теперь мы можем доказать сходимость грань . К сожалению, мы сейчас сворачиваем другую функцию! К счастью, мы можем показать, что значение оптимума регуляризованной функции близко к значению оптимума оригинала. l(z)αlλl′(z)=l(z)+λ‖z‖2l′(z)λl′
— Мануэль Моралес

Ноутбук вы упомянули ушел, я получил еще одно доказательство: statlect.com/fundamentals-of-statistics/...
— Domi.Zhang

2
Я нашел, что это самый полезный ответ.
— mohit6up

@ManuelMorales У вас есть ссылка на оптимальное значение регуляризованной функции, близкое к оригинальному?
— Марк

19

Я изучил функцию потерь для логистической регрессии следующим образом.

Логистическая регрессия выполняет двоичную классификацию, поэтому выходные данные меток являются двоичными, 0 или 1. Пусть будет вероятностью того, что двоичный выход равен 1, учитывая вектор входных признаков . Коэффициенты - это веса, которые алгоритм пытается выучить.P(y=1|x)yxw

P(y=1|x)=11+e−wTx

Поскольку логистическая регрессия является двоичной, вероятность просто равна 1 минус термин выше.P(y=0|x)

P(y=0|x)=1−11+e−wTx

Функция потерь представляет собой сумму (A) выходных данных умноженных на и (B) выходных данных умноженных на для одного примера обучения, суммированных более учебных примеров.J(w)y=1P(y=1)y=0P(y=0)m

J(w)=∑i=1my(i)log⁡P(y=1)+(1−y(i))log⁡P(y=0)

где обозначает метку в ваших тренировочных данных. Если обучающий экземпляр имеет метку , то , оставляя левое слагаемое на месте, но делая правое слагаемое с равным . С другой стороны, если обучающий экземпляр имеет , то правое слагаемое с членом остается на месте, но левое слагаемое становится . Логарифмическая вероятность используется для простоты расчета.y(i)ith1y(i)=11−y(i)0y=01−y(i)0

Если затем мы заменим и на более ранние выражения, то получим:P(y=1)P(y=0)

J(w)=∑i=1my(i)log⁡(11+e−wTx)+(1−y(i))log⁡(1−11+e−wTx)

Вы можете прочитать больше об этой форме в этих лекциях Стэнфорда .


Этот ответ также дает некоторые соответствующие перспективы здесь.
— GeoMatt22

6
Выражение, которое вы имеете, - это не потеря (для минимизации), а логарифмическая вероятность (для максимизации).
— ксеноцион

2
@ xenocyon true - эта же формулировка обычно пишется с отрицательным знаком, применяемым для полного суммирования.
— Алекс Клибиш

1

Вместо Mean Squared Error мы используем функцию стоимости, называемую Cross-Entropy, также известную как Log Loss. Кросс-энтропийные потери можно разделить на две отдельные функции затрат: одну для y = 1 и одну для y = 0.

j(θ)=1m∑i=1mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=−log⁡(hθ(x))if y=1Cost(hθ(x),y)=−log⁡(1−hθ(x))if y=0

Когда мы собираем их вместе, мы имеем:

j(θ)=1m∑i=1m[y(i)log⁡(hθ(x(i)))+(1−y(i))log⁡(1−hθ(x)(i))]

Умножение на и в вышеприведенном уравнении является хитрым трюком, который позволяет нам использовать одно и то же уравнение для решения обоих случаев и . Если , первая сторона отменяется. Если , вторая сторона отменяется. В обоих случаях мы выполняем только ту операцию, которая нам нужна.y(1−y)y=1y=0y=0y=1

Если вы не хотите использовать forцикл, вы можете попробовать векторизованную форму уравнения выше

h=g(Xθ)J(θ)=1m⋅(−yTlog⁡(h)−(1−y)Tlog⁡(1−h))

Полное объяснение можно посмотреть на листе машинного обучения .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.