Please enable JavaScript.
Coggle requires JavaScript to display documents.
Tecniche per ottimizzare le reti neurali - Coggle Diagram
Tecniche per ottimizzare le reti neurali
L2 calibration
L'idea è di penalizzare i grandi pesi: essi potrebbero influire negativamente sul modello rendendo trascurabili tutti gli altri pesi.
Si modifica la funzione di costo aggiundendo un termine:
(L/2m) * ||w||
L è un iperparametro
m è il numero di esempi a disposizione
||w|| è la norma del vettore (o matrice) dei pesi
L'obbiettivo è di portare ||w|| a 0
Approfondimento
Droupout
Questa tecnica consiste nel disabilitare alcuni percettroni durante l'allenamento della rete. In questo modo la rete impara che non può fidarsi di tutti gli input e provvederà ad aggiornare i pesi in modo più equo rispetto a tutta la rete
:red_cross: Ovviamente il dropout deve essere disabilitato a momento di test
Data augmentation
Consiste nel variare il dataset in input in modi verosimili
Esempi:
riflettere un'immagine
ruotare e scalare un immagine
Mini batch
Il dataset viene diviso in piccoli batch. Per ogni mini-batch viene fatto un passo di gradient descent
Così si introducono le epoche. Un'epoca consiste nel passare attraverso tutto il dataset, un mini-batch alla volta
Allenare la rete su tutti i dati in una volta può diventare molto lento
Succede quando il mini-batch ha la stessa dimensione di tutto il dataset. Allora si chiama
Batch gradient descent
Se la dimensione del mini-batch è uno si dice
Stochastic gradient descent
la dimensione è sempre compresa tra 1 e m
Exploding or vanishing gradient
Se i valori dei pesi sono >1 i livelli più profondi tenderanno ad attivarsi tutti, seguendo un andamento esponenziale esponenziale (e così il gradiente)
Per risolvere questi problemi si cerca di tenere i pesi ad un valore vicino ad 1. Ovvero si inizializzano in modo che la varianza sia circa 1/n
In pratica, per ogni vettore di pesi di un livello, si sceglie un valore casuale tra [0,1] e si moltiplica per sqrt(1/(n))
(n è il numero di percettroni del livello precedente)
Se i valori dei pesi sono <1 i livelli più profondi tenderanno a non attivarsi, seguendo un andamento esponenziale esponenziale (e così il gradiente)
Batch Normalization
Il batch viene normalizzato calcolando media e deviazione standard. Lo scopo è di velocizzare l'allenamento dei livelli successivi
Questa tecnica è simile al dropout perché aggiunge del rumore alle attivazioni dei livelli nascosti. Questo succede perché media e varianza vengono calcolate su un singolo mini-batch
Softmax
L'obiettivo è quello di fornire in output delle probabilità per ciascuna classe
Viene utilizzato come ultimo livello di una rete di classificazione multiclasse
Transfer learning
L'dea è di modificare una rete già esistente e ben performante e riadattarla ad un altro problema.