Quanti dati per l'apprendimento profondo?


9

Sto imparando il deep learning (in particolare le CNN) e come in genere richiede moltissimi dati per prevenire un eccesso di adattamento. Tuttavia, mi è stato anche detto che maggiore è la capacità / più parametri ha un modello, più dati sono necessari per evitare un eccesso di adattamento. Pertanto, la mia domanda è: perché non puoi semplicemente ridurre il numero di layer / nodi per layer in una rete neurale profonda e farlo funzionare con una quantità minore di dati? Esiste un "numero minimo di parametri" fondamentale che una rete neurale richiede fino a quando "entra in azione"? Al di sotto di un certo numero di livelli, le reti neurali non sembrano avere funzionalità codificate a mano.

Risposte:


10

Questa è un'ottima domanda e ci sono state alcune ricerche per affrontare i problemi di capacità / profondità che hai citato.

Ci sono state molte prove che la profondità delle reti neurali convoluzionali ha portato all'apprendimento di gerarchie di funzioni più ricche e diverse. Empiricamente vediamo che le reti con le migliori prestazioni tendono ad essere "profonde": Oxford VGG-Net aveva 19 strati, l'architettura di Google Inception è profonda, la Microsoft Deep Residual Network ha 152 livelli segnalati e tutti questi stanno ottenendo un benchmark ImageNet davvero impressionante risultati.

In superficie, è un dato di fatto che i modelli di capacità più elevata hanno la tendenza a sovralimentarsi a meno che non si utilizzi una sorta di regolarizzatore. Un modo in cui un overfitting di reti molto profonde può danneggiare le prestazioni è che si avvicineranno rapidamente a errori di addestramento molto bassi in un numero limitato di epoche di addestramento, vale a dire che non possiamo addestrare la rete per un gran numero di passaggi nel set di dati. Una tecnica come Dropout, una tecnica di regolarizzazione stocastica, ci consente di allenare reti molto profonde per periodi di tempo più lunghi. Questo in effetti ci consente di apprendere caratteristiche migliori e migliorare la precisione della nostra classificazione perché otteniamo più passaggi attraverso i dati di allenamento.

Per quanto riguarda la tua prima domanda:

Perché non puoi semplicemente ridurre il numero di layer / nodi per layer in una rete neurale profonda e farlo funzionare con una quantità minore di dati?

Se riduciamo le dimensioni del set di addestramento, in che modo ciò influisce sulle prestazioni di generalizzazione? Se utilizziamo dimensioni di set di addestramento più piccole, ciò potrebbe comportare l'apprendimento di una rappresentazione delle caratteristiche distribuite più piccola e ciò potrebbe danneggiare la nostra capacità di generalizzazione. In definitiva, vogliamo essere in grado di generalizzare bene. Avere un set di formazione più ampio ci consente di apprendere una gerarchia di funzioni distribuite più diversificata.

Per quanto riguarda la tua seconda domanda:

Esiste un "numero minimo di parametri" fondamentale che una rete neurale richiede fino a quando "entra in azione"? Al di sotto di un certo numero di livelli, le reti neurali non sembrano avere funzionalità codificate a mano.

Ora aggiungiamo qualche sfumatura alla discussione sopra sul problema di profondità. Sembra, dato il punto in cui ci troviamo ora con lo stato dell'arte attuale, per addestrare una rete di convogliamento ad alte prestazioni da zero, viene utilizzata una sorta di architettura profonda.

Ma c'è stata una serie di risultati incentrati sulla compressione del modello . Quindi questa non è una risposta diretta alla tua domanda, ma è correlata. La compressione del modello è interessata alla seguente domanda: dato un modello ad alte prestazioni (nel nostro caso diciamo una rete profonda di conv), possiamo comprimere il modello, ridurne la profondità o persino il conteggio dei parametri e conservare le stesse prestazioni?

Siamo in grado di vedere l' insegnante come un insegnante con prestazioni elevate e capacità elevata . Possiamo usare l'insegnante per formare un modello di studente più compatto ?

Sorprendentemente la risposta è: . Ci sono stati una serie di risultati, un buon articolo per la prospettiva della rete conv è un articolo di Rich Caruana e Jimmy Ba Do Deep Nets davvero bisogno di essere Deep? . Sono in grado di addestrare un modello poco profondo per imitare il modello più profondo, con una perdita di prestazioni molto ridotta. C'è stato un po 'più di lavoro anche su questo argomento, ad esempio:

tra le altre opere. Sono sicuro che mi mancano alcuni altri buoni articoli.

Per me questo tipo di risultati mette in dubbio la capacità di questi modelli poco profondi. Nell'articolo di Caruana, Ba, si afferma la seguente possibilità:

"I risultati suggeriscono che la forza del deep learning potrebbe derivare in parte da una buona corrispondenza tra architetture profonde e attuali procedure di formazione e che potrebbe essere possibile escogitare algoritmi di apprendimento migliori per addestrare reti feed-forward poco profonde più accurate. Per un dato numero di parametri, la profondità può facilitare l'apprendimento, ma potrebbe non essere sempre essenziale "

È importante essere chiari: nell'articolo di Caruana, Ba, non stanno allenando un modello superficiale da zero, cioè allenandosi solo con le etichette di classe, per ottenere prestazioni all'avanguardia. Piuttosto, addestrano un modello profondo ad alte prestazioni e da questo modello estraggono le probabilità di registro per ciascun punto dati. Formiamo quindi un modello superficiale per prevedere queste probabilità di registro. Quindi non addestriamo il modello superficiale sulle etichette di classe, ma piuttosto usando queste probabilità di registro.

Tuttavia, è ancora un risultato piuttosto interessante. Anche se questo non fornisce una risposta diretta alla tua domanda, ci sono alcune idee interessanti qui che sono molto rilevanti.

Fondamentalmente: è sempre importante ricordare che esiste una differenza tra la "capacità" teorica di un modello e la ricerca di una buona configurazione del modello. Quest'ultimo dipende dai metodi di ottimizzazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.