Partiamo da una banalità: la rete neurale profonda è semplicemente una rete feedforward con molti livelli nascosti.
Questo è più o meno tutto ciò che c'è da dire sulla definizione. Le reti neurali possono essere ricorrenti o feedforward; quelli feedforward non hanno anelli nel loro grafico e possono essere organizzati in strati. Se ci sono "molti" livelli, allora diciamo che la rete è profonda .
Come molti strati ha una rete deve avere per qualificarsi in profondità? Non esiste una risposta definitiva a questo (è un po 'come chiedere a quanti grani formano un mucchio ), ma di solito avere due o più strati nascosti conta in profondità. Al contrario, una rete con un solo strato nascosto viene convenzionalmente chiamata "superficiale". Ho il sospetto che ci sarà un po 'di inflazione in corso qui, e tra dieci anni la gente potrebbe pensare che qualsiasi cosa con meno di, diciamo, dieci strati sia superficiale e adatta solo per gli esercizi dell'asilo. Informalmente, "in profondità" suggerisce che la rete è difficile da gestire.
Ecco un'illustrazione, adattata da qui :
Ma la vera domanda che stai ponendo è, ovviamente, perché avere molti livelli sarebbe utile?
Penso che la risposta alquanto sorprendente sia che nessuno lo sa davvero. Ci sono alcune spiegazioni comuni che rivedrò brevemente di seguito, ma nessuna di esse è stata dimostrata in modo convincente come vera, e non si può nemmeno essere sicuri che avere molti livelli sia davvero vantaggioso.
Dico che questo è sorprendente, perché il deep learning è molto popolare, sta rompendo tutti i record (dal riconoscimento delle immagini, alla riproduzione di Go, alla traduzione automatica, ecc.) Ogni anno, viene utilizzato dall'industria, ecc. Ecc. E non siamo ancora del tutto sicuri del perché funzioni così bene.
Baso la mia discussione sul libro Deep Learning di Goodfellow, Bengio e Courville, uscito nel 2017 ed è ampiamente considerato il libro sul deep learning. (È disponibile gratuitamente online.) La sezione pertinente è 6.4.1 Proprietà e profondità di approssimazione universale .
L'hai scritto tu
10 anni fa in classe ho imparato che avere diversi livelli o uno strato (senza contare i livelli di input e output) era equivalente in termini di funzioni che una rete neurale è in grado di rappresentare [...]
Devi riferirti al cosiddetto teorema di approssimazione universale , dimostrato da Cybenko nel 1989 e generalizzato da varie persone negli anni '90. Sostanzialmente dice che una rete neurale superficiale (con 1 strato nascosto) può approssimare qualsiasi funzione, cioè in linea di principio può imparare qualsiasi cosa . Questo è vero per varie funzioni di attivazione non lineari, comprese le unità lineari rettificate che la maggior parte delle reti neurali sta utilizzando oggi (il manuale fa riferimento a Leshno et al. 1993 per questo risultato).
Se è così, allora perché tutti usano reti profonde?
Bene, una risposta ingenua è che perché funzionano meglio. Ecco una figura del libro di Deep Learning che mostra che aiuta ad avere più livelli in un compito particolare, ma lo stesso fenomeno è spesso osservato in vari compiti e domini:
Sappiamo che una rete poco profonda potrebbe funzionare bene come quella più profonda. Ma non lo fa; e di solito no. La domanda è --- perché? Possibili risposte:
- Forse una rete superficiale avrebbe bisogno di più neuroni di quella profonda?
- Forse una rete poco profonda è più difficile da addestrare con i nostri attuali algoritmi (ad esempio ha minimi locali più cattivi, o il tasso di convergenza è più lento, o altro)?
- Forse un'architettura superficiale non si adatta al tipo di problemi che di solito stiamo cercando di risolvere (ad esempio il riconoscimento degli oggetti è un processo gerarchico "profondo" per antonomasia)?
- Qualcos'altro?
Il libro Deep Learning sostiene i punti elenco n. 1 e n. 3. In primo luogo, sostiene che il numero di unità in una rete superficiale cresce esponenzialmente con la complessità delle attività. Quindi, per essere utile, una rete poco profonda potrebbe essere molto grande; forse molto più grande di una rete profonda. Questo si basa su una serie di articoli che dimostrano che le reti superficiali in alcuni casi avrebbero bisogno esponenzialmente di molti neuroni; ma se per esempio la classificazione MNIST o il Go play siano simili non è chiaro. Secondo, il libro dice questo:
La scelta di un modello profondo codifica una convinzione molto generale che la funzione che vogliamo imparare dovrebbe comportare la composizione di diverse funzioni più semplici. Questo può essere interpretato da un punto di vista dell'apprendimento della rappresentazione come dicendo che crediamo che il problema di apprendimento consista nello scoprire un insieme di fattori di variazione sottostanti che a loro volta possono essere descritti in termini di altri, più semplici fattori di variazione sottostanti.
Penso che l'attuale "consenso" sia che si tratta di una combinazione di punti elenco n. 1 e n. 3: per compiti del mondo reale l'architettura profonda è spesso vantaggiosa e l'architettura superficiale sarebbe inefficiente e richiederebbe molti più neuroni per le stesse prestazioni.
Ma è tutt'altro che provato. Consideriamo ad esempio Zagoruyko e Komodakis, 2016, Wide Residual Networks . Le reti residue con oltre 150 livelli sono apparse nel 2015 e hanno vinto vari concorsi di riconoscimento delle immagini. Fu un grande successo e sembrò un argomento convincente a favore della profondità; ecco una figura di una presentazione del primo autore sul documento di rete residuo (nota che qui il tempo va confuso a sinistra):
Ma la carta collegata sopra mostra che una rete residua "ampia" con "solo" 16 strati può superare quella "profonda" con oltre 150 strati. Se questo è vero, l'intero punto della figura sopra si rompe.
O considera Ba e Caruana, 2014, Le reti profonde hanno davvero bisogno di essere profonde? :
In questo documento forniamo prove empiriche che le reti poco profonde sono in grado di apprendere la stessa funzione delle reti profonde e in alcuni casi con lo stesso numero di parametri delle reti profonde. Facciamo questo addestrando prima un modello profondo all'avanguardia, quindi allenando un modello superficiale per imitare il modello profondo. Il modello mimic viene addestrato utilizzando lo schema di compressione del modello descritto nella sezione successiva. Sorprendentemente, con la compressione del modello siamo in grado di addestrare reti poco profonde per essere precisi come alcuni modelli profondi, anche se non siamo in grado di addestrare queste reti poco profonde per essere accurate come le reti profonde quando le reti poco profonde sono addestrate direttamente sull'originale dati di allenamento etichettati. Se una rete superficiale con lo stesso numero di parametri di una rete profonda può imparare a imitare una rete profonda con alta fedeltà,
Se fosse vero, ciò significherebbe che la spiegazione corretta è piuttosto il mio proiettile # 2 e non # 1 o # 3.
Come ho detto --- nessuno lo sa ancora per davvero.
Osservazioni conclusive
La quantità di progressi compiuti nel processo di apprendimento profondo negli ultimi ~ 10 anni è veramente sorprendente, ma la maggior parte di questo progresso è stato raggiunto per tentativi ed errori, e ci manca ancora la comprensione molto di base su cosa esattamente rende reti profonde di lavorare così bene. Anche l'elenco delle cose che le persone considerano cruciali per creare una rete profonda efficace sembra cambiare ogni due anni.
La rinascita del deep learning è iniziata nel 2006 quando Geoffrey Hinton (che ha lavorato su reti neurali per oltre 20 anni senza molto interesse da parte di nessuno) ha pubblicato un paio di articoli rivoluzionari che offrono un modo efficace per addestrare reti profonde ( Science paper , Neural computing paper ) . Il trucco era usare il pre-allenamento senza supervisione prima di iniziare la discesa gradiente. Questi documenti hanno rivoluzionato il campo e per un paio d'anni la gente ha pensato che la pre-formazione senza supervisione fosse la chiave.
Quindi, nel 2010 Martens ha dimostrato che le reti neuronali profonde possono essere addestrate con metodi di secondo ordine (i cosiddetti metodi privi di iuta) e possono superare le prestazioni delle reti addestrate con pre-addestramento: apprendimento profondo tramite ottimizzazione priva di iuta . Quindi nel 2013 Sutskever et al. ha dimostrato che la discesa graduale stocastica con alcuni accorgimenti molto intelligenti può superare i metodi privi di iuta: sull'importanza dell'inizializzazione e della quantità di moto nell'apprendimento profondo . Inoltre, intorno al 2010 le persone hanno capito che l'uso di unità lineari rettificate anziché unità sigmoidi fa una grande differenza per la discesa del gradiente. L'abbandono è apparso nel 2014. Le reti residue sono apparse nel 2015. Le persone continuano a trovare modi sempre più efficaci per addestrare reti profonde equella che sembrava un'intuizione chiave 10 anni fa è spesso considerata un fastidio oggi. Tutto ciò è in gran parte guidato da tentativi ed errori e c'è poca comprensione di ciò che fa funzionare alcune cose così bene e altre no. L'allenamento di reti profonde è come una grande borsa di trucchi. I trucchi di successo sono generalmente razionalizzati post factum.
Non sappiamo nemmeno perché le reti profonde raggiungano un plateau delle prestazioni; solo 10 anni la gente era solita incolpare i minimi locali, ma il pensiero attuale è che non è questo il punto (quando gli altipiani di prestazione, i gradienti tendono a rimanere grandi). Questa è una domanda così di base su reti profonde, e non so nemmeno questo .
Aggiornamento: questo è più o meno l'argomento del discorso NIPS 2017 di Ali Rahimi sull'apprendimento automatico come alchimia: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Questa risposta è stata interamente riscritta ad aprile 2017, quindi alcuni dei commenti di seguito non si applicano più.]