Quale funzione di perdita è corretta per la regressione logistica?


31

Ho letto di due versioni della funzione di perdita per la regressione logistica, quale di esse è corretta e perché?

  1. Da Machine Learning , Zhou ZH (in cinese), con β=(w,B) e βTX=wTX+B :

    (1)l(β)=Σio=1m(-yioβTXio+ln(1+eβTXio))

  2. Dal mio corso universitario, con :zio=yiof(Xio)=yio(wTXio+B)

    (2)L(zio)=log(1+e-zio)


So che il primo è un accumulo di tutti i campioni e il secondo è per un singolo campione, ma sono più curioso della differenza nella forma di due funzioni di perdita. In qualche modo ho la sensazione che siano equivalenti.

Risposte:


31

La relazione è la seguente: .l(β)=ΣioL(zio)

Definire una funzione logistica come . Possiedono la proprietà che . O in altre parole: f(-z)=1-f(z)f(z)=ez1+ez=11+e-zf(-z)=1-f(z)

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

Se prendi il reciproco di entrambe le parti, prendi il registro che ottieni:

ln(1+ez)=ln(1+e-z)+z.

Sottrai da entrambi i lati e dovresti vedere questo:z

-yioβTXio+ln(1+eyioβTXio)=L(zio).

Modificare:

Al momento sto rileggendo questa risposta e sono confuso su come ho ottenuto per essere uguale a . Forse c'è un refuso nella domanda originale.- y i β T x i + l n ( 1 + e y i β T x i )-yioβTXio+ln(1+eβTXio)-yioβTXio+ln(1+eyioβTXio)

Modifica 2:

Nel caso in cui non ci fosse un refuso nella domanda originale, @ManelMorales sembra essere corretto per attirare l'attenzione sul fatto che, quando , la funzione di massa di probabilità può essere scritta come , a causa della proprietà che . Lo sto riscrivendo diversamente qui, perché introduce un nuovo equivoco sulla notazione . Il resto segue prendendo la probabilità logaritmica negativa per ogni codifica . Vedi la sua risposta di seguito per maggiori dettagli.P ( Y i = y i ) = f ( y i β T x i ) f ( - z ) = 1 - f ( z ) z i yy{-1,1}P(Yio=yio)=f(yioβTXio)f(-z)=1-f(z)zioy


42

OP ritiene erroneamente che la relazione tra queste due funzioni sia dovuta al numero di campioni (cioè singolo vs tutti). Tuttavia, la differenza reale è semplicemente come selezioniamo le nostre etichette di formazione.

Nel caso della classificazione binaria possiamo assegnare le etichette o .y=±1y=0,1

Come è già stato affermato, la funzione logistica è una buona scelta poiché ha la forma di una probabilità, cioè e come . Se scegliamo le etichette che possiamo assegnare σ(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

che può essere scritto in modo più compatto come .P(y|z)=σ(z)y(1-σ(z))1-y

È più semplice massimizzare la probabilità di log. Massimizzare la verosimiglianza equivale a minimizzare la verosimiglianza negativa. Per campioni , dopo aver preso il logaritmo naturale e alcune semplificazioni, scopriremo:m{Xio,yio}

l(z)=log(iomP(yio|zio))=-Σiomlog(P(yio|zio))=Σiom-yiozio+log(1+ezio)

Derivazione completa e informazioni aggiuntive sono disponibili su questo notebook jupyter . D'altra parte, potremmo invece aver usato le etichette . È abbastanza ovvio quindi che possiamo assegnarey=±1

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

È anche ovvio che . Seguendo gli stessi passaggi di prima in questo caso minimizziamo la funzione di perditaP(y=0|z)=P(y=-1|z)=σ(-z)

L(z)=-log(ΠjmP(yj|zj))=-Σjmlog(P(yj|zj))=Σjmlog(1+e-yzj)

Dove segue l'ultimo passo dopo prendiamo il reciproco che è indotto dal segno negativo. Sebbene non dovremmo equiparare queste due forme, dato che in ciascuna forma assume valori diversi, tuttavia queste due sono equivalenti:y

-yiozio+log(1+ezio)log(1+e-yzj)

Il caso è banale da mostrare. Se , quindi sul lato sinistro e sul lato destro.yio=1yio1yio=0yi=1

Mentre ci possono essere ragioni fondamentali per cui abbiamo due forme diverse (vedi Perché ci sono due diverse formule / notazioni di perdita logistica? ), Una ragione per scegliere la prima è per considerazioni pratiche. Nel primo possiamo usare la proprietà per calcolare banalmente e , entrambi necessari per l'analisi della convergenza (ovvero per determinare la convessità della funzione di perdita calcolando l'Assia ).σ(z)/z=σ(z)(1σ(z))l(z)2l(z)


La funzione di perdita logistica è convessa?
user85361

2
l(z)αlλl ( z ) λ l l(z)=l(z)+λz2l(z)λl'. Purtroppo ora stiamo riducendo al minimo una funzione diversa! Fortunatamente, possiamo dimostrare che il valore dell'ottimale della funzione regolarizzata è vicino al valore dell'ottimale dell'originale.
Manuel Morales,

Il taccuino che hai citato è andato, ho avuto un'altra prova: statlect.com/fundamentals-of-statistics/…
Domi.Zhang

2
Ho trovato questa la risposta più utile.
Mohit6up

@ManuelMorales Hai un collegamento al valore ottimale della funzione regolarizzata vicino all'originale?
Segna l'

19

Ho imparato la funzione di perdita per la regressione logistica come segue.

La regressione logistica esegue la classificazione binaria, quindi gli output dell'etichetta sono binari, 0 o 1. Sia la probabilità che l'output binario sia 1 dato il vettore della caratteristica di input . I coefficienti sono i pesi che l'algoritmo sta cercando di imparare.y x wP(y=1|X)yXw

P(y=1|X)=11+e-wTX

Poiché la regressione logistica è binaria, la probabilità è semplicemente 1 meno il termine sopra.P(y=0|X)

P(y=0|X)=1-11+e-wTX

La funzione di perdita è la somma di (A) l'uscita moltiplicata per e (B) l'uscita moltiplicata per per un esempio di allenamento, sommato oltre esempi di formazione.y = 1 P ( y = 1 ) y = 0 P ( y = 0 ) mJ(w)y=1P(y=1)y=0P(y=0)m

J(w)=Σio=1my(io)logP(y=1)+(1-y(io))logP(y=0)

dove indica l' etichetta nei dati di allenamento. Se un'istanza di formazione ha un'etichetta di , allora , lasciando l'addendo sinistra in posizione ma rendendo l'addendo destro con diventare . D'altra parte, se un'istanza di training ha , il summand destro con il termine rimane al suo posto, ma il summand sinistro diventa . La probabilità del registro viene utilizzata per facilitare il calcolo. i t h 1 y ( i ) = 1 1 - y ( i ) 0 y = 0 1 - y ( i ) 0y(io)ioth1y(io)=11-y(io)0y=01-y(io)0

Se poi sostituiamo e con le espressioni precedenti, otteniamo:P ( y = 0 )P(y=1)P(y=0)

J(w)=Σio=1my(io)log(11+e-wTX)+(1-y(io))log(1-11+e-wTX)

Puoi leggere di più su questo modulo in queste note di lezione di Stanford .


Questa risposta fornisce anche alcune prospettive rilevanti qui.
GeoMatt22,

6
L'espressione che hai non è una perdita (da minimizzare), ma piuttosto una verosimiglianza (da massimizzare).
xenocyon,

2
@xenocyon true: questa stessa formulazione è in genere scritta con un segno negativo applicato all'intera somma.
Alex Klibisz,

1

Invece di Mean Squared Error, utilizziamo una funzione di costo chiamata Cross-Entropy, nota anche come perdita di log. La perdita tra entropia può essere suddivisa in due funzioni di costo separate: una per y = 1 e una per y = 0.

j(θ)=1mΣio=1mCoSt(hθ(X(io)),y(io))CoSt(hθ(X),y)=-log(hθ(X))iof y=1CoSt(hθ(X),y)=-log(1-hθ(X))iof y=0

Quando li mettiamo insieme abbiamo:

j(θ)=1mΣio=1m[y(io)log(hθ(X(io)))+(1-y(io))log(1-hθ(X)(io))]

Moltiplicare per e nell'equazione sopra è un trucco subdolo che usiamo la stessa equazione per risolvere entrambi i casi e . Se , il primo lato si annulla. Se , la seconda parte si annulla. In entrambi i casi eseguiamo solo l'operazione necessaria.y(1-y)y=1y=0y=0y=1

Se non vuoi usare un forciclo, puoi provare una forma vettoriale dell'equazione sopra

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

L'intera spiegazione può essere visualizzata sul Cheatsheet di Machine Learning .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.