Risposte:
L'abstract dell'articolo dropout sembra perfettamente utile.
Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov, " Dropout: un modo semplice per prevenire il superamento delle reti neurali ", Journal of Machine Learning Research , 2014.
Le reti neurali profonde con un gran numero di parametri sono sistemi di apprendimento automatico molto potenti. Tuttavia, il overfitting è un problema serio in tali reti. Anche le reti di grandi dimensioni sono lente da usare, il che rende difficile gestire l'overfitting combinando le previsioni di molte diverse reti neurali di grandi dimensioni al momento del test. Il dropout è una tecnica per affrontare questo problema. L'idea chiave è far cadere casualmente le unità (insieme alle loro connessioni) dalla rete neurale durante l'allenamento. Ciò impedisce alle unità di adattarsi troppo. Durante l'allenamento, eliminare i campioni da un numero esponenziale di diverse reti "assottigliate". Al momento del test, è facile approssimare l'effetto della media delle previsioni di tutte queste reti assottigliate semplicemente usando una singola rete non diluita con pesi più piccoli. Ciò riduce significativamente il sovradimensionamento e offre importanti miglioramenti rispetto ad altri metodi di regolarizzazione. Mostriamo che il dropout migliora le prestazioni delle reti neurali su compiti di apprendimento supervisionato in visione, riconoscimento vocale, classificazione dei documenti e biologia computazionale, ottenendo risultati all'avanguardia su molti set di dati di riferimento.
Se leggi l'articolo, troverai una descrizione di ciò che significa comportamento di adattamento nel contesto del drop-out.
In una rete neurale standard, la derivata ricevuta da ciascun parametro indica come dovrebbe cambiare in modo da ridurre la funzione di perdita finale, dato ciò che tutte le altre unità stanno facendo. Pertanto, le unità possono cambiare in modo da correggere gli errori delle altre unità. Ciò può portare a complessi adattamenti. Questo a sua volta porta a un eccesso di adattamento perché questi adattamenti non si generalizzano a dati invisibili. Ipotizziamo che per ogni unità nascosta, il dropout prevenga il coadattamento rendendo inaffidabile la presenza di altre unità nascoste. Pertanto, un'unità nascosta non può fare affidamento su altre unità specifiche per correggere i propri errori. Deve funzionare bene in un'ampia varietà di contesti diversi forniti dalle altre unità nascoste. Per osservare direttamente questo effetto,
Questa risposta fa seguito alla grande risposta di Sycorax , per i lettori che vorrebbero vedere come viene implementato il dropout.
Quando si applica l'abbandono nelle reti neurali artificiali, è necessario compensare il fatto che al momento dell'allenamento una parte dei neuroni era disattivata. Per fare ciò, esistono due strategie comuni:
Il /p
viene spostato dalla formazione al codice di predire, in cui diventa *p
:
Queste tre diapositive sono nate dalla lezione 6 di Standford CS231n: reti neurali convoluzionali per il riconoscimento visivo .
L'abbandono momentaneo (in una serie di dati di input) spegne alcuni neuroni in un livello in modo che non forniscano alcuna informazione o apprendano informazioni durante quegli aggiornamenti, e l'onere ricade su altri neuroni attivi per imparare di più e ridurre l'errore.
Se devo spiegare l'abbandono a un bambino di 6 anni, ecco come: Immagina uno scenario, in un'aula, un insegnante fa delle domande ma sempre gli stessi due bambini rispondono immediatamente. Ora, l'insegnante chiede loro di rimanere in silenzio per un po 'di tempo e di far partecipare altri studenti. In questo modo altri studenti imparano meglio. Forse rispondono male, ma l'insegnante può correggerli (aggiornamenti di peso). In questo modo l'intera classe (livello) apprende meglio un argomento.
Puoi considerare il drop-out come una probabilità precedente sul fatto che una caratteristica (o caratteristica latente in un livello intermedio) non abbia importanza, ad esempio un picco (massa del punto a zero = caratteristica non importa) e lastra (piatta = non dichiarata precedente nell'intero spazio dei parametri) precedente.
È importante sottolineare che ciò consente non solo di regolarizzare l'adattamento del modello, ma anche di ottenere incertezza sull'inferenza. Questo è discusso nella tesi e negli articoli (anche questo ) di Yarin Gal.