Логистическая регрессия не работает в простом примере - PullRequest
0 голосов
/ 21 мая 2019

Мне кажется, я понимаю логистическую регрессию (из книги Бишопа на стр. 206), но когда я делаю следующий простой пример, я не могу найти (абсолютный) минимум функции стоимости (функция ошибки).

Мой обучающий набор состоит из 2 точек на линии действительных чисел: 1 и -1, которые имеют (классификация) значения 1 соответственно 0.

Функция стоимости, где s - сигмовидная функция, и где сумма берется по всему обучающему набору:

E(w0,w1)= sum -t.log(s(w0+w1.x)-(1-t).log(1-s(w0+w1.x))

Так вот в нашем случае:

E(w0,w1)= -log(s(w0+w1))-log(1-s(w0-w1))

Я не могу найти минимума. Если я использую алгоритм, w1 уходит в бесконечность.

Я думал, что w0 = 0. Если вы предполагаете это, то из-за 1-s(-w)=s(w) мы получим

E(w1)=-2.log(s(w))

- нисходящая функция до нуля, поэтому минимум равен бесконечности.

1 Ответ

0 голосов
/ 21 мая 2019

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

dE / dw0 = exp(w1)(exp(2w0) - 1) / ((exp(w0) + exp(w1)) * (exp(w0 + w1) + 1))
dE / dw1 = (-exp(w1 + 2w0) - exp(w1) - 2exp(w0)) / ((exp(w0) + exp(w1)) * (exp(w0 + w1) + 1))

dE / dw0 = 0 при w0 = 0.В этом случае dE / dw1 = 0 не представляется возможным.

Однако, если вы добавите термин регуляризации в функцию потерь, то есть Enew = E + w1^2, вы найдете оптимальные значения.

...