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

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+ezi)


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

ХТТ
источник

Ответы:

31

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

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

11+ez=ez1+ez.

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

ln(1+ez)=ln(1+ez)+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)=1f(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+ezP(y=0|z)=1σ(z)=11+ez

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

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

l(z)=log(imP(yi|zi))=imlog(P(yi|zi))=imyizi+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+eyzj)

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

yizi+log(1+ezi)log(1+eyzj)

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

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

Мануэль Моралес
источник
Является ли функция логистических потерь выпуклой?
user85361
2
Лог reg IS выпуклый, но не выпуклый . Таким образом, мы не можем ограничить время, необходимое для схода градиента. Мы можем настроить форму чтобы она сильно выпукла, добавив член регуляризации: с положительной константой определим нашу новую функцию как st является - сильно выпуклые , и теперь мы можем доказать сходимость грань . К сожалению, мы сейчас сворачиваем другую функцию! К счастью, мы можем показать, что значение оптимума регуляризованной функции близко к значению оптимума оригинала. l(z)αlλl(z)=l(z)+λz2l(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+ewTx

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

P(y=0|x)=111+ewTx

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

J(w)=i=1my(i)logP(y=1)+(1y(i))logP(y=0)

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

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

J(w)=i=1my(i)log(11+ewTx)+(1y(i))log(111+ewTx)

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

stackoverflowuser2010
источник
Этот ответ также дает некоторые соответствующие перспективы здесь.
GeoMatt22
6
Выражение, которое вы имеете, - это не потеря (для минимизации), а логарифмическая вероятность (для максимизации).
ксеноцион
2
@ xenocyon true - эта же формулировка обычно пишется с отрицательным знаком, применяемым для полного суммирования.
Алекс Клибиш
1

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

j(θ)=1mi=1mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=log(hθ(x))if y=1Cost(hθ(x),y)=log(1hθ(x))if y=0

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

j(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x)(i))]

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

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

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

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

Эмануэль Фонтеллес
источник