8.5 KiB
Ovviamente non possiamo usare la sigmoide, ci serve qualcos'altro. Possiamo usare la SoftMax, che è definita così:
$$\text{softmax}(z_i) =\frac{ e^{z_i}}{\sum_{j=1}^{n}e^{z_{j}}}
Per cui otteniamo:
f_{\theta}(x_i)=softmax(\theta^Tx_i)
\theta^Tx_i
corrisponde al logit, o score.
x_i
è un vettore di dimensione[d*1]
che rappresenta le features del samplei
- può anche essere una feature sola ovviamente, ma possono essere 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26...
\theta
è la matrice dei parametri (pesi) di dimensione[c*d]
- con due classi era un vettore perché in quel caso consideravamo solamente la probabilità di cadere nella classe 1. Stavolta invece consideriamo la probabilità di cadere in ogni singola classe. Per cui abbiamo un vettore di pesi diverso per ogni classe, con come sempre, un peso per ogni feature.
- negli esempi di seguito, per semplicità avremo sempre d = 1
Esempio stupido che mi sono inventato ora: i sample sono case e le feature sono dimensione e numero di piani, le classi da predire sono: appartamento, villa in campagna, villetta in città
(da questo momento in poi x
e x_i
potrebbero venire interscambiati a cazzo, comunque sia ci si riferisce a un sample)
Definiamo
f(x)
: codifica la distribuzione di probabilità su tutte le classif(x)_i
: rappresenta la probabilità per la singola classe i- con probabilità
f(x)_i
, ci si trova nella classe i
- con probabilità
La probabilità di cadere in una certa classe (probabilità che la classe reale sia y_i
dato l'output del modello di predizione) la definiamo in modo simile alla volta scorsa. Ma dobbiamo chiaramente considerare che le classi non sono 2. Sia c
il numero di classi, otteniamo:
P(y \mid f(x))= \prod_{i=1}^c[f(x)_i]^{y_i}
Y è un vettore cosiddetto "one-hot", ovvero solo uno degli elementi vale 1 e tutti gli altri 0.
Possiamo togliere la produttoria e considerare solo uno degli elementi: quello per cui y_i
vale 1. Otteniamo così: P(y_i \mid f(x_i))= f(x_i)_y
Definiamo ora in modo analogo la Likelihood:
L = \prod_{i=1}^{n} P(y_i \mid f(x_i))
(come scritto qualche riga sopra, P(y_i \mid f(x_i))
è la probabilità che il valore reale sia y_i
dato il valore predetto con il sample x_i
)
Come sempre, la Likelihood può essere difficile da calcolare, è molto più facile calcolare il logaritmo di essa, per cui lo definiamo:
log(L)=LL=\sum_{i=0}^nlog(P(y_i \mid f(x_i)))=\sum_{i=0}^nlog(f(x^i)_{y_i})
(con n = numero di sample)
Analogamente, definiamo la NLL (Negative Log Likelihood) aggiungendo il -
davanti:
NLL = -\sum_{i=0}^nf(x^i)_{y_i}=-\sum_{i=0}^n\sum_{j=0}^clog(f(x^i)_j)
Questa viene anche detta Cross Entropy (CE)
Definiamo un esempio: classi
- gatto [1, 0, 0]
- cane [0, 1, 0]
- giraffa [0, 0, 1] sample x1 e x2
f(x1)=[0.4, 0.2, 0.4]
(il modello è indeciso, non riesce a decidere sex1
è un gatto o una giraffa, però il modello dice che probabilmente non è un cane)f(x2)=[0.01, 0.98, 0.01]
(il modello per questo sample invece è molto sicuro)
Calcoliamo la Cross Entropy!
-[[1(-0.91)+0(-1.6)+0(-0.91)]+[0(-4.6)+0(-0.02)+0(-4.6)]] = 0.93
quei numeri strani sono semplicemente i logaritmi di 0.4, 0.2 ecc., abbiamo semplicemente applicato la formula sopra!
Softmax optimization
Goal: massimizzare la probabilità della classe vera, al costo degli altri output. Facciamo il -log della sigmoide
-\frac{\log \exp p_{i}}{\sum_{{j}}\exp p_{j}}=-p_{i}+\log \sum_{j} \exp p_{j}
Per evitare di avere degli zeri, aggiungiamo una costante c
in questo modo:
=-p_{i}+\log \left(\sum_{j} \exp (p_{j}-c) \right) + c
Entropia
Per trovare i parametri migliori dobbiamo minimizzare la Cross Entropy
Entropy: misura l'incertezza di una distribuzione p H(p) = - \sum_{i} p(i) \log(p(i))
Cross Entropy: quantifica la differenza tra due distribuzioni di probabilità: la distribuzione "vera" (o reale) dei dati e quella "predetta" da un modello H(p, q) = - \sum_{i} p(i) \log(q(i))
La Kullback-Leibler Divergence (o KL divergence) è una misura di quanto una distribuzione di probabilità q differisce da una distribuzione di probabilità di riferimento p. In altre parole, quantifica la "distanza" (non simmetrica) tra due distribuzioni di probabilità, spesso usata per confrontare una distribuzione reale con una stimata o approssimata.
In pratica misura quante informazioni perdiamo usando q al posto di p.$$KL(p \parallel q) = \sum_{i} p(i) \log \left( \frac{p(i)}{q(i)} \right)
Si ottiene:
CE = H(P) + KL(P\parallel Q)
How to measure if a model is calibrated
L'Expected Calibration Error è una metrica che misura quanto bene un modello probabilistico è "calibrato", ovvero quanto le sue predizioni di probabilità riflettono la realtà.
Per calcolare l'ECE, si suddividono le predizioni in intervalli (o "bucket") di probabilità, quindi si confrontano le probabilità medie delle predizioni con le frequenze reali per ogni bucket. Dato un validation set, dividiamo i sample in m bucket, in base alla confidenza del modello per ogni sample.
Definiamo così l'Expected Calibration Error (ECE) come segue:
\sum_{m}^M \frac{B_{m}}{n} \lvert a_{m}-P_{m}\rvert
con:
B_{m}
: numero di sample la cui confidenza cade nel bucket mP_{m}
: confidenza media per il bucket ma_{m}
accuratezza media per il bucket mn
è il numero totale di sampleM
è il numero totale di bucket
Classificazione con gli iperpiani
Dato uno spazio di dimensione N
, un iperpiano è un sottospazio di dimensione N-1
Ad esempio, in uno spazio 2D, un iperpiano ha una dimensione. In uno spazio 3D, un iperpiano è 2D, ecc.
Possiamo usare gli iperpiani per separare classi, ma funzionano bene solo se le classi sono linearmente separabili. La distanza tra il sample più vicino e l'iperpiano è chiamata margine.
Un modello che fa questo è la SVM (Support Vector Machine).
Bias vs variance
Definizioni concettuali:
- l'errore causato dal Bias è definito come la differenza tra la previsione media del modello e il valore corretto da prevedere. Anche se si utilizza un solo modello, si può immaginare di ripetere il processo di costruzione del modello più volte, creando così modelli diversi a causa della variabilità nei dati. Il bias misura quanto, in media, le previsioni di questi modelli si discostano dal valore corretto.
- l'errore dovuto alla varianza è la variabilità delle previsioni di un modello per un dato punto. Se si potesse ripetere il processo di costruzione del modello più volte, la varianza misurerebbe quanto le previsioni per quel punto differiscono tra le varie realizzazioni del modello. Questo riflette l'impatto della casualità nei dati sui risultati delle previsioni.
Definizione grafica:
La definizione di sopra potrebbe non essere chiarissima, ma se proviamo a vederla graficamente dovrebbe risultare moooolto più chiara!
Si può visualizzare graficamente il bias e la varianza utilizzando un diagramma a bersaglio. Il centro rappresenta un modello che predice perfettamente i valori corretti. Allontanandosi dal centro, le previsioni peggiorano. Ripetendo il processo di costruzione del modello, si ottengono vari risultati che mostrano una dispersione di punti sul bersaglio, influenzata dalla variabilità nei dati di addestramento. Si possono tracciare quattro casi diversi che combinano alta e bassa bias e varianza.
!
Definizione matematica
eh sì, purtroppo c'è pure questa
Consideriamo la variabile che vogliamo prevedere Y e la covariata X.
Possiamo assumere che tra le due c'è una relazione definita come: $$Y = f(X) + \epsilon, \quad \epsilon \sim N(0, \sigma_\epsilon)$$dove \epsilon
rappresenta un errore normalmente distribuito con valore atteso 0.
Possiamo stimare un modello \hat{f}(X)
di f(X)
usando la linear regression o altre tecniche. In questo caso il nostro errore atteso (expected squared prediction error) sarà:
\text{Err}(x) = E[(Y - \hat{f}(x))^2]
L'errore di previsione al punto x può essere scomposto in bias, varianza e errore irriducibile: $$\text{Err}(x) = \left(E[\hat{f}(x)] - f(x)\right)^2 + E\left[(\hat{f}(x) - E[\hat{f}(x)])^2\right] + \sigma^2_\epsilon$$\text{Err}(x) = \text{Bias}^2 + \text{Variance} + \text{Irreducible Error}
L'errore irriducibile rappresenta il rumore nel modello reale, che non può essere ridotto da alcun modello. In situazioni reali, esiste un tradeoff tra la minimizzazione del bias e quella della varianza.