Funkcja kosztów regresji logistycznej

W modelach najmniejszych kwadratów funkcja kosztu jest zdefiniowana jako kwadrat różnicy między wartością przewidywaną a wartością rzeczywistą jako funkcja wejścia.

Kiedy wykonujemy regresję logistyczną, zmieniamy funkcję kosztów na funkcję logirytmiczną, zamiast definiować ją jako kwadrat różnicy między funkcją sigmoidalną (wartością wyjściową)a rzeczywistą.

Czy można zmienić i zdefiniować własną funkcję kosztów w celu określenia parametry?

Author: Marc Shivers, 2012-08-28

4 answers

Tak, możesz zdefiniować własną funkcję straty, ale jeśli jesteś nowicjuszem, prawdopodobnie lepiej będzie użyć jednej z literatury. Istnieją warunki, które powinny spełniać funkcje strat:

  1. Powinny przybliżać rzeczywistą stratę, którą próbujesz zminimalizować. Jak zostało powiedziane w drugiej odpowiedzi, standardowe funkcje strat dla klasyfikacji to zero-jedna strata (wskaźnik misclassification), a te używane dla klasyfikatorów szkoleń są przybliżeniami tego strata.

    Strata błędu kwadratowego z regresji liniowej nie jest używana, ponieważ nie jest dobrze przybliżona zero-jedna strata: gdy twój model przewiduje +50 dla jakiejś próbki, podczas gdy zamierzona odpowiedź wynosiła + 1 (klasa dodatnia), przewidywanie jest po właściwej stronie granicy decyzji, więc zero-jedna strata wynosi zero, ale strata błędu kwadratowego wynosi nadal 492 = 2401. Niektóre algorytmy treningowe będą tracić dużo czasu na przewidywania bardzo zbliżone do {-1, +1}, zamiast skupiać się na uzyskiwaniu tylko znak / Etykieta klasy w prawo.(*)

  2. Funkcja strat powinna działać z zamierzonym algorytmem optymalizacji. To dlatego zero-One-loss nie jest używany bezpośrednio: nie działa z metodami optymalizacji gradientowej, ponieważ nie ma dobrze zdefiniowanego gradientu (lub nawet subgradient , Jak strata zawiasu dla SVM ma).

    Głównym algorytmem optymalizującym bezpośrednio stratę zero-jedynkową jest stary algorytm perceptron.

Również, gdy jeśli podłączysz niestandardową funkcję strat, nie budujesz już modelu regresji logistycznej, ale innego rodzaju klasyfikatora liniowego.

(*) Kwadratowy błąd jest używany w liniowej analizie dyskryminacyjnej, ale zwykle rozwiązuje się go w bliskiej formie zamiast iteracyjnie.

 26
Author: Fred Foo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-07 10:07:40

Funkcja logistyczna, utrata zawiasów, wygładzona utrata zawiasów itp. są używane, ponieważ są wyższymi granicami na stracie klasyfikacji binarnej zerowej jedynki.

Funkcje te zazwyczaj penalizują również przykłady, które są poprawnie sklasyfikowane, ale nadal znajdują się w pobliżu granicy decyzyjnej, tworząc w ten sposób "margines."

Więc, jeśli robisz klasyfikację binarną, to z pewnością powinieneś wybrać standardową funkcję straty.

Jeśli próbujesz rozwiązać inny problem, to inny funkcja utraty prawdopodobnie będzie działać lepiej.

 10
Author: user1149913,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-30 15:12:13

Nie wybierasz funkcji straty, wybierasz model

Funkcja strat jest zwykle bezpośrednio określana przez model, gdy dopasujesz swoje parametry za pomocą szacowania maksymalnego prawdopodobieństwa (mle), które jest najpopularniejszym podejściem w uczeniu maszynowym.

Wspomniałeś o błędzie Mean Squared jako funkcji straty dla regresji liniowej. Następnie "zmieniamy funkcję kosztową na funkcję logarytmiczną", odnosząc się do straty entropii krzyżowej. Nie zmieniliśmy funkcji kosztów. W rzeczywistości średni błąd kwadratowy jest stratą entropii krzyżowej dla regresji liniowej, gdy Zakładamy, że yjest rozkładana normalnie przez Gaussa, którego średnia jest określona przez Wx + b.

Wyjaśnienie

Z MLE, można wybrać parametry w sposób, że prawdopodobieństwo danych treningowych jest zmaksymalizowane. Prawdopodobieństwo całego zestawu danych treningowych jest iloczynem prawdopodobieństwa każdej próbki treningowej. Ponieważ może to zaniżyć do zera, Zwykle maksymalizujemy prawdopodobieństwo logowania dane treningowe / zminimalizuj negatywne prawdopodobieństwo logowania. W ten sposób funkcja kosztów staje się sumą ujemnego prawdopodobieństwa logowania każdej próbki szkolenia, która jest podana przez:

-log(p(y | x; w))

Gdzie w to parametry naszego modelu (w tym bias). Regresja logistyczna to logarytm, o którym Pan mówił. Ale co z twierdzeniem, że to również odpowiada MSE dla regresji liniowej?

Przykład

Aby pokazać MSE odpowiada Entropia krzyżowa, Zakładamy, że y jest normalnie rozłożona wokół średniej, którą przewidujemy za pomocą w^T x + b. Zakładamy również, że ma stałą wariancję, więc nie przewidujemy wariancji z naszą regresją liniową, tylko średnią Gaussa.

p(y | x; w) = N(y; w^T x + b, 1)

Widać, mean = w^T x + b i variance = 1

Teraz funkcja straty odpowiada

-log N(y; w^T x + b, 1)

Jeśli przyjrzymy się, jak definiuje się Gaussa N, to zobacz:

Tutaj wpisz opis obrazka

Weźmy ujemny logarytm tego. To daje:

Tutaj wpisz opis obrazka

Wybraliśmy stałą wariancję 1. To sprawia, że pierwszy termin jest stały i zmniejsza drugi termin do:

0.5 (y - mean)^2

Pamiętaj, że zdefiniowaliśmy średnią jako w^T x + b. Ponieważ pierwszy termin jest stały, minimalizacja ujemnego logarytmu Gaussa odpowiada minimalizacji

(y - w^T x + b)^2

Co odpowiada minimalizacja błędu średniego kwadratu.

 3
Author: Kilian Batzner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-11 13:59:47

Tak , do określenia parametrów można użyć innych funkcji kosztów.

Kwadratowa funkcja błędu (powszechnie używana funkcja regresji liniowej) nie jest zbyt odpowiednia dla regresji logistycznej.

Podobnie jak w przypadku regresji logistycznej hipoteza jest nieliniowa (funkcja sigmoidalna), co sprawia, że funkcja błędu kwadratowego nie jest wypukła.

Funkcja logarytmiczna jest funkcją wypukłą, dla której nie istnieje lokalna optima, więc gradient działa cóż.

 0
Author: Nisha Arora,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-22 12:28:21