Queste note sono molto di base. Per cose leggermente più avanzate bisogna guardare Bayesian Linear Regression, Linear Regression methods.
Introduzione alla logistic regression
Giustificazione del metodo
Questo è uno dei modelli classici, creati da Minsky qualche decennio fa In questo caso andiamo direttamente a computare il valore di P(Y|X) durante l’inferenza, quindi si parla di modello discriminativo.
Introduzione al problema
Supponiamo che
- Y siano variabili booleane
- Xi siano variabili continue
- Xi siano indipendenti uno dall’altro.
- P(Xi|Y=k) sono modellate tramite distribuzioni gaussiane N(μik,σi)
- NOTA! la varianza non dipende dalle feature!, questo mi permetterebbe di poi togliere la cosa quadratico dopo, rendendo poi l’approssimazione lineare
- Per esempio se utilizziamo nelle immagini, avrebbe senso normalizzare pixel by pixel, e non image wide con un unico valore, è una assunzione, che se funziona dovrebbe poi far andare meglio la regressione logistica!
- Y è una distribuzione bernoulliana.
Ci chiediamo come è fatto P(Y|X)?
Caratterizzazione di P(Y|X)
Proviamo a calcolare analiticamente come è fatto P(Y|X) usando le assunzioni di sopra
P(Y=1|X=⟨x1,…,xn⟩)=11+exp(w0+∑iwixi)
E poi sappiamo che
lnP(Xi|Y=0)P(Xi|Y=1)=lne−(Xi−μi0)22σ20e−(Xi−μi1)22σ21=−(Xi−μi0)22σ2i+(Xi−μi1)22σ2iE si può notare che poi abbiamo il risultato di sopra e diventa sensato avere la forma di Sigmoid, che esce in modo molto molto naturale
Dalla parte in blu capiamo che è una cosa lineare, perché se è maggiore di zero allora è meglio la probabilità di stare da una parte rispetto all’altra.
Funzione di Sigmoid

Possiamo scrivere la probabilità di ogni singolo campione come in figura sotto
Funzione di loss

Ottimizzazione discesa del gradiente
Intuizione sul gradiente
abbiamo alla fine che il gradiente è
δL(w)δwi=∑lxli⋅(yl−αl)Perché già (y−α) sta misurando in un certo senso la differenza (l’errore), e il prodotto lo sta legando all’input preciso, quindi è molto bello quando la formula è interpretabile in modo fisico quasi.
∇wℓ(w)(x,y)=[σ(w⋅x)−y]xCalcolo del gradiente cross entropy
al=σ(w0+∑ixiwi)=σ(z)∑llogP(Y=yl|xl,w)=∑lyllog(αl)+(1−yl)(1−log(αl))Dalla formula di sopra riscritta in altro modo.

Fase update del gradiente
δL(w)δwi=∑l(yl−αl)xlPossiamo usare questa per aggiornare il peso di wi
wi=wi+μδL(w)δwiwi=wi+μδL(w)δwi+μλ|wi|Che implica il fatto che se abbiamo un singolo peso grande, farà molta fatica ad esserci nel regolarizzatore (quindi ho meno varianza fra i pesi diciamo).