D X Y
nuovi dati.
Classificazione: È un tipo di apprendimento supervisionato in cui l'output y è una classe discreta o
un'etichetta (es. "gatto", "cane", "orso") .
Features: L'input non è solitamente l'immagine grezza, ma un vettore di "features" (caratteristiche)
x
estratte da essa.
L'apprendimento (o stima) è il processo di selezione dei parametri più appropriati per la funzione , mentre
θ f
l'inferenza è l'atto di usare il modello addestrato per fare previsioni.
Regressione Logistica Binaria
La regressione logistica è un modello lineare di classificazione. Nel caso più semplice, quello binario, si hanno
∈ {0, 1}
solo due classi (es. ).
y
Dal Logit alla Sigmoide
Riassunto Computer Vision 17
Invece di prevedere direttamente 0 o 1, il modello stima la probabilità che un input x appartenga alla classe
= 1 (y = 1 ∣
"positiva" (es. ), indicata come o .
y μ(x) P x)
L'assunzione fondamentale è che il log-odds (o logit) sia una funzione lineare delle features:
(P (y = 1 ∣ x) μ(x)
) = ) = T +
log( log( w b
x
(P (y = 0 ∣ 1 −
x) μ(x)
+ = 0
T
Questa equazione lineare definisce il decision boundary, ovvero l'iperpiano che separa le due
w x b
classi nello spazio delle features. (y = 1 ∣
Risolvendo l'equazione per (cioè ), si ottiene la funzione logistica (o sigmoide), indicata con
μ(x) P x)
σ(⋅): 1
T
= (y = 1 ∣ = =
+
μ(x) P x) σ(w b)
x 1 + +
exp(−(wT x b))
+ −∞ +∞
T
Il logit prende un input che può variare da a e la funzione sigmoide lo "schiaccia" in un
w x b [0, 1]
intervallo di probabilità valido .
= {w.b}
Per trovare i parametri ottimali , si usa il principio della massima verosimiglianza Maximum
θ
Likelihood). Si cercano i parametri che massimizzano la probabilità di osservare i dati di training che abbiamo
effettivamente osservato. n
= ∣ ,
∏
Questa probabilità è la produttoria L(D, θ) P r(y x θ).
i i
i=1
Per stabilità numerica (evitando prodotti di numeri molto piccoli), si preferisce minimizzare la "negative log-
likelihood" NLL, che è matematicamente equivalente.
n
∑
− ∣
= ,
nll(D, θ) logP r(y x θ)
i i
i=1
Nel caso binario (processo Bernoulliano), questa formula si semplifica nella binary cross-entropy, che funge da
nostra funzione di costo: , ^ ) = −[y ⋅ ^ + (1 − ) ⋅ − ^ )]
Cost(y y log y y log(1 y
i i i i i i
^ (P (y = 1 ∣ ,
Dove è l'etichetta vera 0 o 1 e è la probabilità predetta dal modello . Questa funzione
y y x θ))
i i i
0.1
penalizza il modello quando la sua previsione (es. ) è lontana dalla realtà (es. 1.
Classificazione Multi-classe (Softmax)
Quando le classi sono più di due (es. k classi), il modello cambia leggermente:
Logits: Si calcola un logit (un punteggio lineare) separato per ogni classe. Avremo k vettori di pesi e
w k
bias b.
Riassunto Computer Vision 18
Softmax: Per trasformare questi k punteggi in una distribuzione di probabilità (dove la somma è 1, si usa la
funzione softmax. exp(logit (x , θ))
j i
^ = (y = , =
y P j∣x θ)
i,j i i k exp(logit (x ,
∑ θ))
h i
h=1
Costo: La funzione di costo (NLL) diventa la categorical cross-entropy, che confronta la distribuzione
i
predetta con l'etichetta vera (spesso rappresentata come un vettore one-hot, es. ).
y y 0, 1, 0
i k
∑
, ^ ) = log ^
⋅
Cost(y y y y
i i i,j i,j
j=1
2. Regressione (Target Numerici)
Se l'output non è una classe ma un valore numerico (regressione), si può usare lo stesso framework. Si
y = T
assume un processo Gaussiano e si modella la media μ come una funzione lineare: . Applicando lo
μ w x
stesso principio di NLL, la funzione di costo da minimizzare diventa il minimo scarto quadratico (least squares
error): ∑ 2
n T
∝ = 1 (y −
nll(D, ϑ) i w x)
i
Ottimizzazione: Gradient Descent
Una volta definita la funzione di costo (la NLL su tutti i dati), dobbiamo trovare i parametri che la
l(θ) θ
minimizzano. Il metodo più comune è il Gradient Descent Discesa del Gradiente).
È un processo iterativo che si basa su un'approssimazione di Taylor al primo ordine. L'obiettivo è trovare una
Riassunto Computer Vision 19
) ≤ )
sequenza di aggiornamenti tale che la loss diminuisca a ogni passo: .
l(θ l(θ
e+1 e
L'algoritmo funziona così:
Si inizializzano i parametri casualmente.
θ 0 ∂l(θ )
Si calcola il gradiente (la derivata) della funzione di costo. Il gradiente indica la direzione di massima
e
∂θ
crescita della funzione.
Si aggiornano i parametri muovendosi nella direzione opposta al gradiente, usando un learning rate λ
(lambda) che controlla la dimensione del passo.
∂l(θ )
← −
La regola di aggiornamento è: .
e
λ
θ θ
e+1 e ∂θ ∂l(θ ) 2
) ≈ ) − ∣∣
Questo aggiornamento garantisce (teoricamente) che , assicurando che la loss
e
l(θ l(θ λ∣∣
e+1 e ∂θ
diminuisca.
Si ripete per un numero N di epoche (passaggi).
Varianti del Gradient Descent
Calcolare il gradiente sull'intero dataset (chiamato Batch GD) è computazionalmente "pesante" e costoso. Per
n
questo si usano delle varianti più efficienti:
Minibatch Stochastic) GD Calcola il gradiente non su tutti gli campioni, ma solo su un piccolo
n
sottoinsieme (batch ). È un'approssimazione (proxy) della funzione di costo reale.
B
Stochastic GD SGD È un caso limite del minibatch in cui si usa un sottoinsieme molto piccolo (o un singolo
= 1
campione, ).
B
Trade-off: Il Batch GD converge in modo fluido ma ogni passo è molto lento. L'SGD è molto più efficiente (ordini
di grandezza più veloce per passo) ma il suo percorso è "rumoroso" e meno accurato, poiché approssima il
gradiente.
Features
Abbiamo definito la (l'output), ma cosa usiamo come input ?
y x
L'Approccio Classico Pre-2012
In passato, era un vettore di features estratte manualmente dall'immagine. Queste includevano:
x
Istrogrammi dei colori.
Local features come bordi e angoli.
Descrittori come SIFT, che trovano punti chiave e li clusterizzano per creare un istogramma (noto come
"Bag of Visual Words").
Questo approccio manuale si è rivelato "fallimentare" e non forniva risultati soddisfacenti.
L'Approccio Moderno Deep Learning)
Dal 2012 circa, l'approccio dominante è quello di apprendere le features automaticamente tramite una rete
neurale.
Input: Invece di un vettore di features, si fornisce l'immagine grezza alla rete.
Output: La rete stessa si occupa di trovare la rappresentazione vettoriale ottimale.
Riassunto Computer Vision 20
Questo è un processo gerarchico, analogo alla visione umana:
Rete Neurale:
◦ Primi Layer: Elaborano l'immagine grezza per estrarre informazioni basilari (es. bordi e angoli).
◦ Layer Successivi: Rielaborano l'output dei layer precedenti, combinando le features semplici per
costruire rappresentazioni via via più complesse, astratte e informative (es. "bordi" diventano "forme",
"forme" diventano "oggetti").
Intuizione Geometrica
Possiamo immaginare questo processo in 2D
Un singolo "neurone" (come la regressione logistica) definisce un iperpiano (una linea) che separa i
dati. Questa è un'informazione basilare.
Riassunto Computer Vision 21
Un layer con tre neuroni può definire tre linee diverse, ognuna che separa i dati in un modo diverso.
Riassunto Computer Vision 22
Un secondo layer può combinare queste informazioni basilari. Può imparare una funzione che dice:
"attivati solo se l'input è sopra la linea A, sotto la linea B e a destra della linea C".
Riassunto Computer Vision 23
In questo modo, la rete ha creato un'astrazione: partendo da semplici linee, ha costruito una
rappresentazione di alto livello più informativa (un triangolo).
Riassunto Computer Vision 24
Il problema di ottimizzazione (come il Gradient Descent) consiste nel trovare la configurazione
ottimale di tutti questi parametri (linee) per definire le forme geometriche che meglio separano i dati di
training.
Questo approccio, che aumenta il potere espressivo del modello, porta naturalmente alla computazione tramite
gradiente (nello specifico, il gradiente discendente). La connessione di più perceptron crea un grafo, ovvero un
insieme di nodi e archi.
Un esempio di rete a due livelli (uno di input) non è altro che la rappresentazione di un'espressione algebrica.
Riassunto Computer Vision 25
Queste reti sono tipicamente strutturate in modo feedforward: i dati fluiscono in una sola direzione, con un
primo livello, un secondo che prende informazioni solo dal primo, un terzo dal secondo, e così via.
Qualsiasi espressione algebrica può essere visualizzata come un flusso operativo o un grafo di computazione.
Forward Pass: È il calcolo del valore dell'espressione (ad esempio, calcolare il valore di partendo da e
e a b
).
Riassunto Computer Vision 26
Backward Pass: A questo flusso di calcolo si associano operatori di differenziazione. Il passo all'indietro
(backward pass) comporta il calcolo delle derivate (gradienti) dell'output rispetto agli input (ad esempio).
Quando l'input è un vettore e l'output è un valore reale, la derivata è il gradiente. Queste regole di
differenziazione si applicano anche ai tensori.
Riassunto Computer Vision 27
cv_notebooks/7.Neural_networks.ipynb at master · gmanco/cv_notebooks
Contribute to gmanco/cv_notebooks development by creating an account on GitHub.
https://github.com/gmanco/cv_notebooks/blob/master/7.Neural_networks.ipynb
: ⟹
f R R
3 3
: ⟹
g R R
Il Problema del Gradiente Evanescente Vanishing Gradient)
Nei grafi di computazione, gli input sono gli elementi rispetto ai quali vogliamo calcolare i gradienti (i parametri
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Computer Vision (Giuseppe Manco): Guida completa (Elaborazione Immagini, CNN, Feature Extraction), parte 2
-
Computer Vision (Giuseppe Manco): Guida completa (Elaborazione Immagini, CNN, Feature Extraction)
-
Computer
-
Appunti per l'esame di Advanced Computer Architectures - parte 1
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Per termini, condizioni e privacy, visita la relativa pagina.