In che modo le NN di deep learning ora sono diverse (2016) da quelle che ho studiato solo 4 anni fa (2012)?


13

In Wikipedia e deeplearning4j si dice che i deep learning NN (DLNN) sono NN che hanno> 1 layer nascosto.

Per me questo tipo di NN era standard all'università, mentre DLNN è molto entusiasta in questo momento. Ci sono stato, fatto - qual è il grosso problema?

Ho sentito anche che le NN in pila sono considerate apprendimento profondo. Come viene veramente definito l'apprendimento profondo?

Il mio background di NN è principalmente universitario, non lavorativo:

  • studiato applicazioni di NN nell'industria
  • aveva circa 5 corsi di artef. Intel. & mach. imparare. - anche se forse 2 di loro su NN
  • usato NN per progetti semplici e di piccole dimensioni sul riconoscimento delle immagini - usato NN feed-forward a 3 strati
  • non ha fatto ricerche reali (come nella tesi di dottorato) su di loro

@NeilSlater: li ho studiati più intensamente intorno al 2012.
Make42

Risposte:


23

Hai ragione nel dire che il concetto di base di una NN profonda non è cambiato dal 2012. Ma sono stati apportati numerosi miglioramenti ai modi in cui le NN profonde vengono addestrate che le hanno rese qualitativamente più potenti. Oggi esiste anche una più ampia varietà di architetture. Ho elencato alcuni sviluppi dal 2012, raggruppati per miglioramenti della formazione e miglioramenti dell'architettura:

Miglioramenti alla formazione delle NN profonde

  • Hardware : il cambiamento più evidente è solo l'inesorabile progressione della legge di Moore. Oggi c'è più potenza di calcolo disponibile. Il cloud computing inoltre semplifica la formazione di grandi NN senza che sia necessario acquistare un enorme impianto di perforazione.

  • Software : il software open source per il deep learning è stato enormemente migliorato dal 2012. Nel 2012 c'era Theano, forse anche Caffe. Sono sicuro che ce ne sono anche altri. Ma oggi abbiamo anche TensorFlow, Torch, Paddle e CNTK, tutti supportati da grandi aziende tecnologiche. Ciò è strettamente correlato al punto elenco hardware poiché molte di queste piattaforme semplificano la formazione su GPU, il che accelera drasticamente i tempi di formazione.

  • Funzioni di attivazione : l'uso delle funzioni di attivazione di ReLU è probabilmente più diffuso in questi giorni, il che rende più semplice la formazione di reti molto profonde. Per quanto riguarda la ricerca, è in fase di studio una più ampia varietà di funzioni di attivazione, tra cui ReLU che perde , ReLU parametrica e unità maxout .

  • Algoritmi di ottimizzazione : oggi esistono più algoritmi di ottimizzazione. Adagrad e Adadelta sono stati appena introdotti nel 2011 e 2012, rispettivamente. Ma ora abbiamo anche l' ottimizzatore Adam ed è diventata una scelta molto popolare.

  • Abbandono : negli ultimi anni, l' abbandono è diventato uno strumento standard per la regolarizzazione durante l'allenamento delle reti neurali. Il dropout è una forma computazionalmente economica di ensemble per NNs. In generale, un set di modelli addestrati su campioni casuali del set di dati supererà un singolo modello addestrato sull'intero set di dati. Questo è difficile da fare esplicitamente per le NN perché sono così costose da addestrare. Ma un effetto simile può essere approssimato semplicemente "spegnendo" casualmente i neuroni ad ogni passo. Diversi sottografi nella NN finiscono per essere addestrati su diversi set di dati e quindi apprendere cose diverse. Come il montaggio, questo tende a rendere la NN complessiva più robusta rispetto al sovradimensionamento. Il dropout è una tecnica semplice che sembra migliorare le prestazioni in quasi tutti i casi, quindi '

  • Normalizzazione in lotti : è noto da tempo che gli NN si allenano meglio sui dati che sono normalizzati --- cioè, non c'è media e varianza unitaria. In una rete molto profonda, mentre i dati passano attraverso ogni livello, gli input verranno trasformati e generalmente andranno alla deriva verso una distribuzione priva di questa proprietà piacevole e normalizzata. Ciò rende più difficile l'apprendimento in questi strati più profondi perché, dal suo punto di vista, i suoi input non hanno media zero e varianza unitaria. La media potrebbe essere molto grande e la varianza potrebbe essere molto piccola. La normalizzazione in batch risolve questo problema trasformando gli input in un layer in modo da avere zero varianza media e unità. Questo sembra essere estremamente efficace nella formazione di NN molto profonde.

  • Teoria : Fino a poco tempo fa, si pensava che la ragione per cui le NN profonde sono difficili da addestrare è che gli algoritmi di ottimizzazione si bloccano nei minimi locali e hanno difficoltà a uscire e a trovare minimi globali. Negli ultimi quattro anni ci sono stati diversi studi che sembrano indicare che questa intuizione era sbagliata (ad esempio, Goodfellow et al. 2014). Nello spazio di parametri dimensionale molto elevato di una NN profonda, i minimi locali tendono a non essere molto peggio dei minimi globali. Il problema è in realtà che durante l'allenamento, l'NN può trovarsi su un altopiano lungo e largo. Inoltre, questi altipiani possono terminare bruscamente in una ripida scogliera. Se l'NN fa piccoli passi, ci vuole molto tempo per imparare. Ma se i gradini sono troppo grandi, incontra una grande pendenza quando corre nella scogliera, il che annulla tutto il lavoro precedente. (Questo può essere evitato con il clipping gradiente, un'altra innovazione post-2012.)

Nuove architetture

  • Reti residue : i ricercatori sono stati in grado di addestrare reti incredibilmente profonde (più di 1000 strati!) Usando reti residue . L'idea qui è che ogni livello riceva non solo l'output dal livello precedente, ma anche l'input originale. Se addestrato correttamente, questo incoraggia ogni livello a imparare qualcosa di diverso dai livelli precedenti, in modo che ogni livello aggiuntivo aggiunga informazioni.

  • Reti ampie e profonde : le reti ampie e poco profonde hanno la tendenza a memorizzare semplicemente la mappatura tra i loro input e output. Le reti profonde si generalizzano molto meglio. Di solito vuoi una buona generalizzazione, ma ci sono alcune situazioni, come i sistemi di raccomandazione, in cui è importante anche una semplice memorizzazione senza generalizzazione. In questi casi si desidera fornire soluzioni valide e sostanziali quando un utente esegue una query generale, ma soluzioni molto precise quando l'utente esegue una query molto specifica. Reti ampie e profonde sono in grado di svolgere bene questo compito.

  • Neing turing machine : un difetto delle tradizionali NN ricorrenti (siano esse le RNN standard o qualcosa di più sofisticato come un LSTM) è che la loro memoria è in qualche modo "intuitiva". Riescono a ricordare gli input passati salvando le attivazioni di layer nascoste che producono nel futuro. Tuttavia, a volte ha più senso archiviare esplicitamente alcuni dati. (Questa potrebbe essere la differenza tra scrivere un numero di telefono su un pezzo di carta invece di ricordare che il numero aveva circa 7 cifre e c'erano un paio di 3 in là e forse un trattino da qualche parte nel mezzo.) La macchina di Turing neuraleè un modo per provare a risolvere questo problema. L'idea è che la rete può imparare a impegnare esplicitamente alcuni fatti in un banco di memoria. Ciò non è semplice perché gli algoritmi di backprop richiedono funzioni differenziabili, ma il commit di un dato in un indirizzo di memoria è un'operazione intrinsecamente discreta. Di conseguenza, le macchine neurali di Turing riescono a risolvere questo problema impegnando un po 'di dati in una distribuzione di diversi indirizzi di memoria. Queste architetture non sembrano ancora funzionare molto bene, ma l'idea è molto importante. Alcune varianti di questi probabilmente diventeranno diffuse in futuro.

  • Reti contraddittorie generative : i GAN sono un'idea molto eccitante che sembra già essere molto utile. L'idea qui è quella di formare contemporaneamente due NN: uno che tenta di generare campioni dalla distribuzione di probabilità sottostante (un generatore) e uno che cerca di distinguere tra punti dati reali e punti dati falsi generati dal generatore (un discriminatore). Ad esempio, se il set di dati è una raccolta di immagini di camere da letto, il generatore proverà a creare le proprie foto di camere da letto e il discriminatore proverà a capire se sta guardando immagini reali di camere da letto o immagini false di camere da letto. Alla fine, hai due NN molto utili: uno che è davvero bravo a classificare le immagini come camere da letto o meno, e uno che è davvero bravo a generare immagini realistiche di camere da letto.


Buon punto! Non mi ero reso conto che l'abbandono fosse uno sviluppo così recente! L'ho aggiunto ora. Grazie!
J. O'Brien Antognini,

0

L'apprendimento profondo (e in particolare le reti neurali contorte profonde) è molto popolare in questo momento a causa dei recenti e sostanziali miglioramenti in varie sfide di visione artificiale / rilevamento di oggetti. I conventi profondi, in particolare, sono stati utilizzati per ridurre gli errori di classificazione di ImageNet dal 28% nel 2010 al 7% nel 2014. L'apprendimento profondo è certamente sovrascritto, ma ciò non dovrebbe sminuire il fatto che ci sono stati miglioramenti significativi nel campo della visione artificiale.


DLNN è in circolazione da un po 'di tempo - ma sono stati sintonizzati per funzionare bene di recente. È così?
Make42

Inoltre, qual è la definizione allora?
Make42

Sì, sono in circolazione da un po ', ma sono diventati popolari perché ora sono sintonizzati in modo più efficace. Come ha detto Neil Slater, DL è ampiamente definito perché è un po 'una parola d'ordine. Lo definirei come qualsiasi rete con più di 3 livelli nascosti. DL comprende anche reti completamente connesse, codificatori automatici e reti contorte. Le reti ricorrenti potrebbero anche rientrare nella categoria DL a seconda di chi chiedi
Ryan Zotti,

0
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.