Assia di funzione logistica


15

Ho difficoltà a derivare l'Assia della funzione oggettiva, l(θ) , nella regressione logistica dove l(θ) è:

l(θ)=i=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))]

hθ(x) è una funzione logistica. Dell'Hessiana èXTDX . Ho provato a ricavarlo calcolando2l(θ)θiθj , ma poi non era ovvio per me come raggiungere la notazione matriciale da2l(θ)θiθj .

Qualcuno conosce un modo semplice e pulito di derivare XTDX ?


3
che cosa si ottiene per ? 2lθiθj
Glen_b -Restate Monica il

1
Ecco una buona serie di diapositive che mostrano il calcolo esatto che stai cercando: sites.stat.psu.edu/~jiali/course/stat597e/notes2/logit.pdf

Ho trovato un video meraviglioso che calcola l'Assia passo dopo passo. Regressione logistica (binaria) - calcolo dell'Assia
Naomi il

Risposte:


19

Qui traggo tutte le proprietà e le identità necessarie affinché la soluzione sia autonoma, ma a parte ciò questa derivazione è semplice e pulita. Cerchiamo di formalizzare la nostra notazione e di scrivere la funzione di perdita in modo un po 'più compatto. Considera m campioni {xi,yi} tali che xiRd e yiR . Ricordiamo che nella regressione logistica binaria in genere abbiamo la funzione di ipotesi hθ essere la funzione logistica. formalmente

hθ(xi)=σ(ωTxi)=σ(zi)=11+ezi,

dove ωRd e zi=ωTxi . La funzione di perdita (che a mio avviso manca di un segno negativo) è quindi definita come:

l(ω)=i=1m(yilogσ(zi)+(1yi)log(1σ(zi)))

Esistono due importanti proprietà della funzione logistica che desidero qui per riferimento futuro. Innanzitutto, nota che 1σ(z)=11/(1+ez)=ez/(1+ez)=1/(1+ez)=σ(z) .

Si noti anche che

zσ(z)=z(1+ez)1=ez(1+ez)2=11+ezez1+ez=σ(z)(1σ(z))

Invece di prendere derivati ​​rispetto ai componenti, qui lavoreremo direttamente con i vettori (puoi rivedere i derivati ​​con i vettori qui ). L'assia della funzione di perdita l(ω) è data da 2l(ω) , ma prima ricorda che zω=xTωω=xTezωT=ωTxωT=x.

Let li(ω)=yilogσ(zi)(1yi)log(1σ(zi)). Using the properties we derived above and the chain rule

logσ(zi)ωT=1σ(zi)σ(zi)ωT=1σ(zi)σ(zi)ziziωT=(1σ(zi))xilog(1σ(zi))ωT=11σ(zi)(1σ(zi))ωT=σ(zi)xi

It's now trivial to show that

li(ω)=li(ω)ωT=yixi(1σ(zi))+(1yi)xiσ(zi)=xi(σ(zi)yi)

whew!

Our last step is to compute the Hessian

2li(ω)=li(ω)ωωT=xixiTσ(zi)(1σ(zi))

For m samples we have 2l(ω)=i=1mxixiTσ(zi)(1σ(zi)). This is equivalent to concatenating column vectors xiRd into a matrix X of size d×m such that i=1mxixiT=XXT. The scalar terms are combined in a diagonal matrix D such that Dii=σ(zi)(1σ(zi)). Finally, we conclude that

H(ω)=2l(ω)=XDXT

A faster approach can be derived by considering all samples at once from the beginning and instead work with matrix derivatives. As an extra note, with this formulation it's trivial to show that l(ω) is convex. Let δ be any vector such that δRd. Then

δTH(ω)δ=δT2l(ω)δ=δTXDXTδ=δTXD(δTX)T=δTDX20

since D>0 and δTX0. This implies H is positive-semidefinite and therefore l is convex (but not strongly convex).


2
In the last equation, shouldn't it be ||δD1/2X|| since XDX = XD1/2(XD1/2)?
appletree

1
Shouldn't it be XTDX?
Chintan Shah
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.