Dropout

Il Dropout è una tecnica di regolarizzazione concettualmente molto diversa rispetto alla regolarizzazione L2.
A differenza di quest’ultima, non agisce modificando la funzione di costo, ma interviene modificando direttamente la struttura della rete neurale durante l’addestramento.


Addestramento di una rete neurale con Dropout

Si consideri il caso in cui si voglia addestrare una siffatta rete neurale. In particolare, si supponga di avere un input di training e un output desiderato .

Before DropoutAfter Droput
Nel caso standard, l’addestramento avverrebbe eseguendo una forward propagation dell’input attraverso la rete, seguita da una backpropagation per calcolare il contributo al gradiente.

Con il metodo di dropout, questo processo viene modificato.
Si inizia eliminando casualmente e temporaneamente la metà dei neuroni nei livelli nascosti.

I neuroni di input e output rimangono invariati.

Dopo questa operazione, si ottiene una rete temporaneamente ridotta.

Note

I neuroni disattivati tramite dropout (cioè esclusi temporaneamente dal calcolo) vengono comunque rappresentati in trasparenza (ghosted) nello schema della rete, per evidenziare la loro presenza strutturale anche se non attiva nel ciclo corrente di addestramento.

Procedura di addestramento con Dropout

L’input viene propagato in avanti (forward propagation) attraverso la rete modificata (con dropout), e successivamente si applica la backpropagation anch’essa sulla rete modificata.

Dopo aver eseguito questo processo su un mini-batch di esempi, si aggiornano i pesi e i bias della rete corrispondenti.

L’intero procedimento viene poi ripetuto ciclicamente:

  1. Si ripristinano i neuroni disattivati dal dropout precedente.
  2. Si sceglie casualmente un nuovo sottoinsieme di neuroni nascosti da escludere temporaneamente.
  3. Si stima il gradiente su un nuovo mini-batch.
  4. Si aggiornano nuovamente pesi e bias.

Ripetendo questo processo più volte, la rete apprende un insieme di pesi e bias.
Tuttavia, è importante notare che questi parametri vengono appresi in condizioni in cui la metà dei neuroni nascosti è stata sistematicamente esclusa a ogni iterazione.


⚠️ Esecuzione del modello in inferenza (test-time)

Warning

Al momento dell’uso effettivo della rete (test o inferenza), tutti i neuroni nascosti sono attivi.
Ciò significa che il numero di neuroni attivi è doppio rispetto a quello presente durante l’addestramento.

Important

Per compensare questo squilibrio, si dimezzano i pesi in uscita dai neuroni nascosti.
In questo modo, si mantengono le attivazioni medie coerenti tra fase di training e fase di inferenza.


The magic behind Dropout

Question

La procedura di dropout può sembrare inizialmente strana e ad hoc.
Perché ci si dovrebbe aspettare che sia utile ai fini della regolarizzazione?

Example

Per comprendere cosa sta accadendo, si può momentaneamente mettere da parte il dropout e considerare l’addestramento delle reti neurali nel modo tradizionale (cioè senza dropout).

Si immagini di addestrare più reti neurali distinte, tutte utilizzando lo stesso dataset di training.
Naturalmente, le reti possono non partire da condizioni identiche, e di conseguenza possono fornire risultati differenti dopo l’addestramento.

Quando questo accade, si può adottare una strategia di media o voto per decidere quale output accettare.
Ad esempio, se si sono addestrate cinque reti, e tre classificano una cifra come “3”, allora è molto probabile che si tratti effettivamente di un “3”.
Le altre due reti stanno probabilmente commettendo un errore.

Questo tipo di approccio basato sull’averaging è spesso efficace (anche se costoso) per ridurre l’overfitting, poiché reti diverse tendono a sovra-adattare in modi differenti, e la media dei loro risultati può contribuire a mitigare tale overfitting.

Interpretazione euristica Droput

In modo euristico, applicare il dropout a diversi sottoinsiemi di neuroni equivale ad addestrare molteplici reti neurali differenti.

Di conseguenza, la procedura di dropout può essere vista come un’approssimazione del processo di media su un gran numero di reti differenti.

Poiché ciascuna rete risultante dal dropout sovradatta in modo diverso, l’effetto complessivo sperato è una riduzione significativa dell’overfitting.

Un’altra interpretazione euristica del Dropout

Una spiegazione euristica correlata al funzionamento del dropout è stata fornita in uno dei primi articoli che hanno introdotto la tecnica:

“Questa tecnica riduce le co-adattazioni complesse tra i neuroni, poiché un neurone non può fare affidamento sulla presenza di neuroni specifici.

È quindi costretto a imparare caratteristiche più robuste, che siano utili in combinazione con molti diversi sottoinsiemi casuali degli altri neuroni.”

In altre parole, se si considera la rete come un modello che effettua predizioni, il dropout può essere visto come un modo per rendere il modello robusto alla perdita di qualsiasi singolo elemento informativo.

Sotto questo aspetto, il dropout è concettualmente simile alla regolarizzazione L1 e L2, che tendono a ridurre i pesi, rendendo così la rete più resistente alla perdita di una singola connessione.


Risultati pratici

La valutazione effettiva del dropout risiede nei risultati ottenuti.
L’articolo originale che ha introdotto la tecnica ha mostrato miglioramenti in una pletora di task differenti.

In particolare, è rilevante che il dropout sia stato applicato alla classificazione delle cifre MNIST, utilizzando una rete neurale feedforward semplice, simile a quella considerata in questi appunti.

Secondo il paper, il miglior risultato ottenuto fino a quel momento con tale architettura era del 98,4% di accuratezza sul test set.
Utilizzando una combinazione di dropout e regolarizzazione L2 modificata, tale accuratezza è stata aumentata al 98,7%.

Risultati altrettanto impressionanti sono stati ottenuti in molti altri compiti, tra cui:

  • Riconoscimento di immagini
  • Riconoscimento vocale
  • Elaborazione del linguaggio naturale (NLP)

Il dropout si è rivelato particolarmente utile nell’addestramento di reti profonde e di grandi dimensioni, dove il problema dell’overfitting è spesso molto marcato.