Come configurare smartphone e PC. Portale informativo
  • casa
  • Ferro
  • Una nuova teoria rivela il segreto di come funzionano le reti neurali. Limitazioni del Deep Learning e futuro

Una nuova teoria rivela il segreto di come funzionano le reti neurali. Limitazioni del Deep Learning e futuro

In che modo un discorso della conferenza è diventato una sensazione nel mondo dell'intelligenza artificiale? Natalie Wolchower di WIRED ha riferito di una scoperta che potrebbe portare a indizi su come funzionano le reti di deep learning.

Sebbene gli algoritmi noti come “reti neurali profonde” abbiano imparato a guidare automobili, a battere i videogiochi e i campioni di Go, a dipingere quadri e a fare scoperte scientifiche, hanno sconcertato i loro creatori perché nessuno si aspettava che gli algoritmi di deep learning funzionassero così bene. Dopotutto, questi sistemi si basavano su una comprensione estremamente vaga dell'architettura del cervello (di cui nessuno capisce neanche il funzionamento).

Come il cervello, una rete neurale profonda ha strati di neuroni, solo artificiali, cioè frammenti memoria del computer. Quando un neurone si attiva, invia segnali ai neuroni associati in un altro strato. Durante l'apprendimento profondo, le connessioni nella rete vengono rafforzate o indebolite in modo che il sistema possa trasmettere meglio un segnale da dati esterni (ad esempio, una foto di un cane) a strati di neuroni associati ai concetti di alto livello desiderati, ad esempio, "cane". Dopo che una profonda rete neurale avrà imparato da migliaia di foto campione di cani, sarà in grado di riconoscere i cani nelle foto proprio come gli umani. Il salto magico dai casi specifici ai concetti generali è ciò che dà alle reti neurali il loro potere, poiché è alla base del pensiero umano, della creatività e di altre abilità chiamate collettivamente “intelligenza”. Gli esperti non sapevano cosa permettesse alle reti di deep learning di generalizzare e fino a che punto questa percezione della realtà fosse simile al cervello umano.

Lo scorso luglio è apparsa su YouTube la registrazione di un discorso tenuto a una conferenza a Berlino che suggerisce una possibile risposta. Nel suo rapporto Naftali Tishbi , scienziato e neuroscienziato dell'Università Ebraica di Gerusalemme, ha presentato prove a sostegno nuova teoria, che spiega l'apprendimento profondo. Tishby ritiene che le reti neurali profonde apprendano attraverso un “collo di bottiglia delle informazioni”, una procedura utilizzata da lui e dai suoi colleghi descritto nel 1999. L'idea è che la rete neurale si sbarazzi di dati e dettagli di input non necessari, "spingendo" le informazioni attraverso il collo di bottiglia e lasciando solo quelle più adatte per definizione generale segni.Esperimenti informatici Tishby e il suo studente Ravid Schwartz-Ziv hanno mostrato come avviene questa procedura durante il deep learning.

Questi risultati hanno entusiasmato la comunità dell’intelligenza artificiale. “Credo che l’idea del collo di bottiglia potrebbe essere molto importante nella ricerca futura reti neurali", ha detto Alex Alemi di Google Research, che lo ha già fatto sviluppato nuovi metodi di approssimazione per esplorare la teoria su reti neurali più grandi. Il collo di bottiglia può agire “non solo come strumento teorico per comprendere come funzionano le reti neurali, ma anche come strumento per creare nuovi obiettivi e strutture per le reti neurali”, ha affermato Alemi.

Alcuni ricercatori dubitano che questa teoria spieghi pienamente il successo dell'apprendimento profondo, ma Kyle Cranmer della New York University, che sta utilizzando l’apprendimento automatico per studiare le collisioni di particelle al Large Hadron Collider, afferma che “questo sembra essere vero”.

Geoffrey Hinton, un pioniere del deep learning, ha scritto una lettera a Tishby dopo aver visto il suo discorso. "È molto interessante. Avrò bisogno di ascoltarlo altre diecimila volte per capirlo davvero, ma è raro di questi tempi ascoltare un'esecuzione con un'idea davvero originale che potrebbe essere la risposta a un grande mistero."

Secondo Tishby, che considera questo principio fondamentale per ogni apprendimento, questa risposta tanto attesa significa che “il modo più parte principale imparare è dimenticare”.

Collo di bottiglia

Tishby iniziò a pensare al collo di bottiglia delle informazioni quando altri ricercatori iniziarono a lavorare con le reti neurali profonde, sebbene nessuno dei due concetti avesse ancora un nome. Fu negli anni '80 che Tishby stava riflettendo su quanto bene gli esseri umani riconoscessero il linguaggio degli altri, il che all'epoca costituiva un problema nello studio dell'intelligenza artificiale. Tishby si rese conto che il nocciolo del problema era una questione di rilevanza: quali sono le caratteristiche più significative di una parola parlata e come possiamo separarle da variabili come accenti, dizione e intonazione? Quali segnali cogliamo dal mare di dati della realtà?

"Questa idea di rilevanza dell'informazione è stata menzionata molte volte, ma non è mai stata adeguatamente articolata", ha detto Tishby in un'intervista. "Per molti anni la gente ha pensato che la teoria dell'informazione fosse inappropriata per pensare alla rilevanza, e queste idee sbagliate risalgono allo stesso Shannon."

Claude Shannon, il creatore della teoria dell'informazione, in un certo senso lanciò lo studio dell'informazione negli anni '40 permettendo di vedere l'informazione come una categoria astratta, zero e uno, con un significato puramente matematico. Come dice Tishby, Shannon accettava l’idea che “l’informazione non ha nulla a che fare con la semantica”. Ma Tishby ritiene che non sia così. Usando la teoria dell'informazione, "puoi definire la 'rilevanza' in modo rigoroso".

Immagina che X sia un insieme complesso di dati, come i pixel nella foto di un cane, e Y sia una variabile semplice rappresentata da quei dati, come la parola "cane". Puoi acquisire tutte le informazioni "rilevanti" su X in Y comprimendo X il più possibile senza perdere la capacità di prevedere Y. Nel loro articolo del 1999, Tishby e i coautori Fernando Pereira (ora presso Google) e William Bialek ( ora all'Università di Princeton) formulò questa ipotesi come un problema di ottimizzazione matematica. Era un’idea fondamentale senza alcuna applicazione pratica.

"Ho pensato a questo in diversi contesti negli ultimi trent'anni", dice Tishby. "Sono fortunato che le reti neurali profonde siano diventate così importanti."

Occhi sui volti delle persone

Sebbene il concetto di reti neurali profonde esista da decenni, le loro prestazioni nelle attività di riconoscimento vocale e di immagini sono aumentate all’inizio degli anni 2010 grazie a programmi di formazione migliorati e processori informatici più potenti. Tishby si è accorto della potenziale connessione tra questo miglioramento e il suo principio del collo di bottiglia nel 2014 dopo aver letto articoli i fisici David Schwab e Pankaj Mehta.

Hanno appreso che un algoritmo inventato da Hinton chiamato “rete di credenze profonde” funziona come la rinormalizzazione, una tecnica utilizzata in fisica per ottenere idea generale O sistema fisico secondo i suoi dettagli. Quando Schwab e Mehta hanno applicato la rete di credenze profonde a un modello di un magnete nel suo “punto critico”, dove il sistema è frattale a qualsiasi scala, hanno scoperto che la rete utilizzava automaticamente una tecnica simile alla rinormalizzazione per calcolare lo stato del modello. . Questo è stato un segno sorprendente del fatto che “l’estrazione di caratteristiche rilevanti nel contesto della fisica statistica e l’estrazione di caratteristiche nel contesto dell’apprendimento profondo non sono semplicemente chiamate la stessa cosa, ma sono la stessa cosa”, come ha detto il biofisico Ilya Nemenman.

L'unico problema è che il mondo reale non è frattale. “Il mondo naturale non è orecchie su orecchie su orecchie, è occhi su volti e persone”, ha detto Cranmer. “Quindi non direi che [la procedura di rinormalizzazione] sia il motivo per cui le reti neurali funzionano bene con le immagini”. Ma Tishby, che all’epoca era sottoposto a chemioterapia per un cancro al pancreas, si rese conto che dietro tutto ciò c’era un’idea più ampia. "Pensare alla scienza e al ruolo delle mie vecchie idee è stata una parte importante della mia guarigione", ha detto.

Nel 2015, Tishbi e il suo studente Noga Zaslavsky presunto che il deep learning è una procedura di collo di bottiglia delle informazioni che elimina i dati non necessari conservando le informazioni sull'argomento rappresentato dai dati. Nuovi esperimenti con reti neurali profonde mostrano come avviene la procedura del collo di bottiglia. In un caso, i ricercatori hanno utilizzato piccole reti che potevano essere addestrate per etichettare i dati in arrivo con uno o zero (“cane” o “non cane”) e hanno creato 282 connessioni neurali segnali casuali. Hanno poi monitorato cosa è successo quando le reti hanno iniziato l’addestramento su 3.000 set di dati.

L’algoritmo di base utilizzato nella maggior parte delle procedure di deep learning per ottimizzare il modo in cui le connessioni neurali rispondono ai dati è chiamato “discesa del gradiente stocastico”. Ogni volta che la rete riceve dati, il segnale si propaga attraverso strati di neuroni artificiali. Quando il segnale raggiunge lo strato superiore, il modello finale può essere confrontato con l'etichetta corretta per l'immagine: 1 o 0, "cane" o "non cane". Eventuali differenze tra questo modello e la risposta corretta vengono "propagate" attraverso i livelli, come un insegnante che corregge un esame, con l'algoritmo che rafforza o indebolisce ciascuna connessione per migliorare la rete e produrre il segnale di output corretto. Man mano che l'addestramento procede, i modelli comuni nei dati di addestramento si riflettono nella forza delle connessioni e la rete diventa esperta nell'etichettare correttamente i dati, nel riconoscere un cane, una parola o un'unità.

Nei loro esperimenti, Tishby e Schwartz-Ziv hanno monitorato la quantità di informazioni memorizzate da ciascuno strato di una rete neurale profonda sui dati di input e le informazioni memorizzate da ciascuno sull'etichetta di output. Gli scienziati hanno scoperto che le reti stanno gradualmente convergendo verso un collo di bottiglia teorico dell’informazione: limite teorico, ottenuto nell'articolo originale da Tishby, Pereira e Bialek. Il limite rappresenta l'assoluto miglior risultato, che il sistema può ottenere durante l'estrazione delle informazioni rilevanti. A questo limite, il sistema comprime i dati di input il più strettamente possibile senza sacrificare la capacità di prevederne con precisione la categoria.

Tishby e Schwartz-Ziv hanno fatto l'interessante scoperta che il deep learning avviene in due fasi: una breve fase di "sintonizzazione" in cui la rete impara a etichettare i dati di addestramento, e una lunga fase di "compressione" in cui la rete migliora nella generalizzazione, che viene misurato dalle prestazioni delle reti nell'etichettare i nuovi dati di test.

Quando una rete neurale regola le sue connessioni per la discesa del gradiente stocastico, inizialmente il numero di bit che memorizza sull’input rimane più o meno costante o aumenta leggermente man mano che le connessioni sono sintonizzate per codificare modelli nell’input e la rete ottiene buoni risultati nell’etichettarlo. Alcuni esperti hanno paragonato questa fase alla memorizzazione.

Quindi l'apprendimento passa alla fase di compressione. La rete inizia a comprimere le informazioni sui dati di input, monitorando solo le caratteristiche più salienti correlate all'etichetta di output. Ciò accade perché in ogni iterazione della discesa del gradiente si verificano correlazioni casuali, che dicono alla rete di fare cose diverse e rendere le connessioni più forti o più deboli. Questa randomizzazione è una compressione della rappresentazione del sistema dei dati di input. Ad esempio, alcune foto potrebbero mostrare cani in casa, mentre altre no. Quando la rete analizza queste foto, potrebbe “dimenticare” la correlazione tra case e cani in alcune foto, anche se altre foto resistono a questo. La comprensione dei concetti generali da parte del sistema si forma dimenticando alcune caratteristiche. Infatti, gli esperimenti hanno dimostrato che la capacità di generalizzazione di una rete neurale migliora durante la fase di compressione. (Una rete neurale profonda addestrata su foto di cani può essere testata su altre foto, con o senza cani.)

Resta da vedere se il collo di bottiglia delle informazioni governa tutte le modalità di deep learning o se esistono altri metodi di generalizzazione oltre alla compressione. Alcuni esperti di intelligenza artificiale considerano le idee di Tishby come alcune delle più importanti scoperte teoriche recenti sull'apprendimento profondo. Andrew Sachs, ricercatore di intelligenza artificiale e neuroscienziato dell’Università di Harvard, ha osservato che alcune grandi reti neurali non richiedono una lunga fase di compressione per generalizzarsi bene. Invece, i ricercatori programmano qualcosa chiamato arresto anticipato, che riduce il tempo di addestramento per evitare che la rete codifichi troppe correlazioni.

Tishby afferma che i modelli di rete analizzati da Sachs e dai suoi colleghi differiscono dall'architettura di rete neurale standard, ma la teoria del collo di bottiglia delle informazioni spiega le loro prestazioni meglio di altri metodi. Le domande sull'esistenza di un collo di bottiglia nelle reti neurali più grandi sono in parte affrontate nei recenti esperimenti di Tishby e Schwartz-Ziv, in cui addestrano reti neurali molto più grandi con 330.000 connessioni a riconoscere cifre scritte a mano sul database MNIST da 60.000 immagini, che è un noto punto di riferimento per la valutazione delle prestazioni degli algoritmi di deep learning. Gli scienziati hanno visto la stessa convergenza di reti; hanno anche osservato due fasi distinte di deep learning, separate da una transizione ancora più netta rispetto a quella precedente piccole reti. "Ora sono completamente convinto che questo sia un fenomeno generale", ha detto Tishby.

Persone e macchine

Il mistero di come il cervello filtra i segnali provenienti dai nostri sensi e li porta al livello di consapevolezza cosciente ha suscitato molto interesse tra i primi ricercatori sull'intelligenza artificiale che speravano di ricreare il processo di apprendimento del cervello. Per la maggior parte, hanno già abbandonato questo percorso di progresso tecnologico e hanno iniziato a migliorare la produttività piuttosto che perseguire la plausibilità biologica. Tuttavia, poiché le macchine pensanti raggiungono risultati sempre più grandi, suscitando addirittura il timore che l’intelligenza artificiale possa un giorno diventare una minaccia esistenziale, molti sperano che questi studi rivelino idee generali sull’apprendimento e sull’intelligenza.

Brenden Lake, che studia le differenze e le somiglianze tra l’apprendimento umano e quello automatico, ha affermato che i risultati di Tishby rappresentano “ passo importante all’apertura della scatola nera delle reti neurali”, ma ha sottolineato che il cervello è una scatola nera molto più complessa. Il nostro cervello adulto, che ha diverse centinaia di trilioni di connessioni tra 86 miliardi di neuroni, probabilmente utilizza una serie di trucchi per migliorare la generalizzazione oltre lo schema di base e le procedure di apprendimento del riconoscimento del suono che si verificano durante l’infanzia e che possono assomigliare in molti modi all’apprendimento profondo.

Ad esempio, Lake ha affermato che le due fasi dell’apprendimento profondo non sono simili al modo in cui i bambini imparano le lettere scritte a mano, che lui studia. I bambini non hanno bisogno di vedere migliaia di esempi e di comprimere la loro comprensione delle lettere per un lungo periodo di tempo per imparare altri esempi di quelle lettere e scriverli da soli. Possono impararlo da un esempio. I modelli di Lake e dei suoi colleghi suggeriscono che il cervello può decostruirsi nuova lettera come una serie di “battiti” – costrutti mentali preesistenti – che permettono di collegare il concetto di scrittura alla conoscenza pregressa. "Invece di pensare all'immagine di una lettera come una sequenza di pixel e apprendere il concetto come una rappresentazione di quelle caratteristiche", come negli algoritmi standard di apprendimento automatico, ha spiegato Lake, "sto cercando di costruire un semplice modello causale della lettera", ovvero creare una scorciatoia per la generalizzazione.

Tali idee sul cervello potrebbero essere utili alla comunità dell’intelligenza artificiale, facilitando lo scambio di informazioni tra queste aree. Tishby ritiene che la sua teoria si rivelerà utile in entrambe le discipline, anche se assumerà una forma più generale nell'apprendimento umano. La teoria ci permette già di capire quali tipi di problemi possono risolvere le reti neurali reali e artificiali. "Questo da descrizione completa problemi che possono essere studiati”, afferma Tishby. Questi sono “problemi in cui posso rimuovere il rumore dall’ingresso senza danneggiare la mia capacità di classificazione. Questi sono problemi di visione naturale e riconoscimento vocale. Questi sono esattamente i tipi di problemi che il nostro cervello può gestire”.

Tuttavia, sia le reti neurali reali che quelle artificiali non possono far fronte a problemi in cui ogni dettaglio è importante e una differenza di minuti può rovinare l'intero risultato. Ad esempio, molte persone non riescono a moltiplicare rapidamente due numeri grandi a mente. “Abbiamo una vasta gamma problemi simili, problemi logici che sono molto sensibili ai cambiamenti in una variabile. Classificazione, problemi discreti, problemi crittografici. Non credo che il deep learning mi aiuterà mai a decifrare i codici crittografici”.

Generalizzare, un collo di bottiglia dell'informazione, significa scartare alcuni dettagli. Non è adatto per calcoli mentali complessi, ma non sono il compito principale del cervello. Cerchiamo volti familiari nella folla, ordine nel caos, segnali evidenti in un mondo rumoroso.

Intelligenza artificiale, reti neurali, machine learning: cosa significano realmente tutti questi concetti attualmente popolari? Per la maggior parte delle persone non iniziate, come me, sono sempre sembrati qualcosa di fantastico, ma in realtà la loro essenza sta in superficie. Da tempo avevo l’idea di scrivere in un linguaggio semplice sulle reti neurali artificiali. Scoprilo tu stesso e racconta agli altri cos'è questa tecnologia, come funziona, considera la sua storia e le sue prospettive. In questo articolo, ho cercato di non entrare nel merito, ma di parlare in modo semplice e popolare di questa direzione promettente nel mondo dell'alta tecnologia.

Intelligenza artificiale, reti neurali, machine learning: cosa significano realmente tutti questi concetti attualmente popolari? Per la maggior parte delle persone non iniziate, come me, sono sempre sembrati qualcosa di fantastico, ma in realtà la loro essenza sta in superficie. Da tempo avevo l'idea di scrivere in un linguaggio semplice sulle reti neurali artificiali. Scoprilo tu stesso e racconta agli altri cos'è questa tecnologia, come funziona, considera la sua storia e le sue prospettive. In questo articolo, ho cercato di non entrare nel merito, ma di parlare in modo semplice e popolare di questa direzione promettente nel mondo dell'alta tecnologia.

Un po' di storia

Per la prima volta, il concetto di reti neurali artificiali (ANN) è nato nel tentativo di simulare i processi cerebrali. Il primo grande passo avanti in questo settore può essere considerato la creazione del modello di rete neurale McCulloch-Pitts nel 1943. Gli scienziati hanno sviluppato per la prima volta un modello di neurone artificiale. Hanno inoltre proposto la progettazione di una rete di questi elementi da eseguire operazioni logiche. Ma soprattutto, gli scienziati lo hanno dimostrato rete simile capace di apprendere.

Prossimo passo importante fu lo sviluppo da parte di Donald Hebb del primo algoritmo per il calcolo di una RNA nel 1949, che divenne fondamentale per diversi decenni successivi. Nel 1958 Frank Rosenblatt sviluppò il parceptron, un sistema che imita i processi cerebrali. Un tempo la tecnologia non aveva analoghi ed è ancora fondamentale nelle reti neurali. Nel 1986, quasi contemporaneamente, indipendentemente l'uno dall'altro, gli scienziati americani e sovietici migliorarono significativamente il metodo fondamentale per addestrare un percettrone multistrato. Nel 2007, le reti neurali hanno vissuto una rinascita. L’informatico britannico Geoffrey Hinton ha sviluppato per primo un algoritmo di deep learning per reti neurali multistrato, che ora viene utilizzato, ad esempio, per far funzionare le auto a guida autonoma.

Brevemente sulla cosa principale

Nel senso generale del termine, le reti neurali lo sono modelli matematici, lavorando secondo il principio delle reti di cellule nervose nel corpo animale. Le ANN possono essere implementate sia in soluzioni programmabili che hardware. Per rendere le cose più facili da capire, un neurone può essere pensato come una cellula che ha molti fori di input e un foro di output. Il modo in cui più segnali in ingresso vengono trasformati in un segnale in uscita è determinato dall'algoritmo di calcolo. A ciascun input neuronale vengono forniti valori effettivi, che vengono poi distribuiti lungo le connessioni interneuronali (sinossi). Le sinapsi hanno un parametro: il peso, a causa del quale le informazioni di input cambiano quando si spostano da un neurone all'altro. Il modo più semplice per immaginare il principio di funzionamento delle reti neurali è mescolare i colori. Hanno neuroni blu, verdi e rossi pesi diversi. L'informazione del neurone il cui peso è maggiore sarà dominante nel neurone successivo.

La stessa rete neurale è un sistema composto da molti di questi neuroni (processori). Individualmente, questi processori sono abbastanza semplici (molto più semplici del processore di un personal computer), ma se combinati insieme grande sistema i neuroni sono in grado di svolgere compiti molto complessi.

A seconda del campo di applicazione, una rete neurale può essere interpretata in diversi modi. Ad esempio, dal punto di vista dell'apprendimento automatico, una ANN è un metodo di riconoscimento di modelli. Da un punto di vista matematico, questo è un problema multiparametrico. Dal punto di vista della cibernetica: un modello di controllo adattivo della robotica. Per l’intelligenza artificiale, l’ANN è una componente fondamentale per modellare l’intelligenza naturale utilizzando algoritmi computazionali.

Il vantaggio principale delle reti neurali rispetto agli algoritmi informatici convenzionali è la loro capacità di apprendere. Nel senso generale del termine, l'apprendimento riguarda la ricerca dei coefficienti di accoppiamento corretti tra i neuroni, nonché il riepilogo dei dati e l'identificazione delle dipendenze complesse tra i segnali di ingresso e di uscita. Infatti, un addestramento di successo di una rete neurale significa che il sistema sarà in grado di identificare il risultato corretto sulla base di dati che non sono presenti nel set di addestramento.

Situazione attuale

E non importa quanto promettente possa essere questa tecnologia, le ANN sono ancora molto lontane dalle capacità del cervello e del pensiero umano. Tuttavia, le reti neurali sono già utilizzate in molti settori dell’attività umana. Finora non sono in grado di prendere decisioni altamente intelligenti, ma sono in grado di sostituire una persona dove prima era necessaria. Tra i numerosi ambiti di applicazione delle ANN si segnalano: la realizzazione di sistemi di autoapprendimento processi di produzione, veicoli senza pilota, sistemi di riconoscimento delle immagini, sistemi di sicurezza intelligenti, robotica, sistemi di monitoraggio della qualità, interfacce di interazione vocale, sistemi di analisi e molto altro. Questo ampio utilizzo delle reti neurali è dovuto, tra l’altro, all’emergere di diversi metodi per accelerare l’addestramento delle ANN.

Oggi il mercato delle reti neurali è enorme: miliardi e miliardi di dollari. Come dimostra la pratica, la maggior parte delle tecnologie di rete neurale nel mondo differiscono poco l'una dall'altra. Tuttavia, l’utilizzo delle reti neurali è un’attività molto costosa, che nella maggior parte dei casi può essere sostenuta solo da grandi aziende. Lo sviluppo, l’addestramento e il test delle reti neurali richiedono una grande potenza di calcolo, ed è ovvio che questa è disponibile in abbondanza. principali attori nel mercato informatico. Tra le principali aziende che guidano lo sviluppo in questo settore figurano la divisione Google DeepMind, la divisione Microsoft Research, IBM, Facebook e Baidu.

Certo, tutto questo va bene: le reti neurali si stanno sviluppando, il mercato sta crescendo, ma finora il compito principale ancora non risolto. L’umanità non è riuscita a creare una tecnologia che si avvicinasse nemmeno alle capacità del cervello umano. Diamo un'occhiata alle principali differenze tra il cervello umano e le reti neurali artificiali.

Perché le reti neurali sono ancora lontane dal cervello umano?

La differenza più importante, che cambia radicalmente il principio e l'efficienza del sistema, è marcia diversa segnali in reti neurali artificiali e in una rete biologica di neuroni. Il fatto è che in una ANN i neuroni trasmettono valori che sono valori reali, cioè numeri. IN cervello umano Vengono trasmessi impulsi con un'ampiezza fissa e questi impulsi sono quasi istantanei. Ciò porta ad una serie di vantaggi della rete umana di neuroni.

Innanzitutto, le linee di comunicazione nel cervello sono molto più efficienti ed economiche di quelle nella ANN. In secondo luogo, il circuito a impulsi garantisce la facilità di implementazione della tecnologia: è sufficiente utilizzare circuiti analogici invece di complessi meccanismi di calcolo. In definitiva, le reti pulsate sono immuni alle interferenze audio. I numeri reali sono soggetti a rumore, il che aumenta la probabilità di errori.

Linea di fondo

Naturalmente nell’ultimo decennio si è assistito ad un vero e proprio boom nello sviluppo delle reti neurali. Ciò è dovuto principalmente al fatto che il processo di formazione delle ANN è diventato molto più rapido e semplice. Hanno iniziato a svilupparsi attivamente anche le cosiddette reti neurali “pre-addestrate”, che possono accelerare notevolmente il processo di introduzione della tecnologia. E se è troppo presto per dire se un giorno le reti neurali saranno in grado di riprodurre appieno le capacità del cervello umano, la probabilità che nel prossimo decennio le ANN saranno in grado di sostituire l’uomo in un quarto delle professioni esistenti diventa sempre più reale .

Per chi vuole saperne di più

  • La Grande Guerra Neurale: cosa sta realmente facendo Google
  • Come i computer cognitivi potrebbero cambiare il nostro futuro

Oggi un grafico è uno dei modi più accettabili per descrivere i modelli creati in un sistema di apprendimento automatico. Questi grafici computazionali sono composti da vertici di neuroni collegati da bordi di sinapsi che descrivono le connessioni tra i vertici.

A differenza di una GPU scalare centrale o vettoriale, una IPU lo è nuovo tipo i processori progettati per l'apprendimento automatico consentono di creare tali grafici. Un computer progettato per gestire i grafici - macchina perfetta per modelli grafici computazionali generati dall'apprendimento automatico.

Uno dei modi più semplici per descrivere il processo dell’intelligenza artificiale è visualizzarlo. Il team di sviluppo di Graphcore ha creato una raccolta di tali immagini che vengono visualizzate sull'IPU. Era basato su Software Pioppo, che visualizza il lavoro dell'intelligenza artificiale. I ricercatori di questa azienda hanno anche scoperto perché le reti profonde richiedono così tanta memoria e quali soluzioni esistono per risolvere il problema.

Poplar include un compilatore grafico creato da zero per tradurre le operazioni di machine learning standard in codice applicativo IPU altamente ottimizzato. Ti consente di raccogliere insieme questi grafici utilizzando lo stesso principio con cui vengono raccolti i POPNN. La libreria contiene un set vari tipi vertici per primitive generalizzate.

I grafici sono il paradigma su cui si basa tutto il software. In Poplar, i grafici consentono di definire un processo di calcolo, in cui i vertici eseguono operazioni e gli spigoli descrivono la relazione tra loro. Ad esempio, se vuoi sommare due numeri insieme, puoi definire un vertice con due input (i numeri che desideri aggiungere), alcuni calcoli (una funzione per aggiungere due numeri) e un output (il risultato).

In genere, le operazioni con i vertici sono molto più complesse rispetto all'esempio sopra descritto. Spesso sono determinati piccoli programmi, chiamati codelet (nomi in codice). L'astrazione grafica è interessante perché non fa ipotesi sulla struttura del calcolo e suddivide il calcolo in componenti che l'IPU può utilizzare per funzionare.

Poplar utilizza questa semplice astrazione per costruire grafici molto grandi rappresentati come immagini. La generazione software del grafico ci consente di adattarlo ai calcoli specifici necessari per garantire il massimo utilizzo efficace Risorse dell'IPU.

Il compilatore traduce operazioni standard, utilizzato nei sistemi di apprendimento automatico, in codice applicativo IPU altamente ottimizzato. Il compilatore del grafico crea un'immagine intermedia del grafico computazionale, che viene distribuita su uno o più dispositivi IPU. Il compilatore può visualizzare questo grafico computazionale, quindi un'applicazione scritta a livello di framework di rete neurale visualizza un'immagine del grafico computazionale in esecuzione sull'IPU.


Grafico dell'intero ciclo di allenamento AlexNet nelle direzioni avanti e indietro

Il compilatore grafico Poplar ha trasformato la descrizione di AlexNet in un grafico computazionale di 18,7 milioni di vertici e 115,8 milioni di spigoli. Il clustering chiaramente visibile è il risultato di una forte comunicazione tra i processi in ogni livello della rete, con una comunicazione più semplice tra i livelli.

Un altro esempio è una semplice rete completamente connessa addestrata su MNIST - composizione semplice dati per la visione artificiale, una sorta di “Hello, world” nell’apprendimento automatico. Rete semplice esplorare questo set di dati aiuta a comprendere i grafici guidati dalle applicazioni Poplar. Integrando le librerie di grafici con framework come TensorFlow, l'azienda fornisce uno di modi semplici per l'utilizzo delle IPU nelle applicazioni di machine learning.

Dopo che il grafico è stato costruito utilizzando il compilatore, deve essere eseguito. Ciò è possibile utilizzando il motore grafico. L'esempio di ResNet-50 ne dimostra il funzionamento.


Grafico ResNet-50

L'architettura ResNet-50 consente la creazione di reti profonde da partizioni ripetute. Il processore deve definire queste sezioni solo una volta e richiamarle nuovamente. Ad esempio, il cluster di livello conv4 viene eseguito sei volte, ma mappato solo una volta sul grafico. L'immagine mostra anche la varietà di forme degli strati convoluzionali, poiché ognuno ha un grafico costruito secondo una forma naturale di calcolo.

Il motore crea e gestisce l'esecuzione di un modello di machine learning utilizzando un grafico generato dal compilatore. Una volta distribuito, il motore grafico monitora e risponde alle IPU, o dispositivi, utilizzati dalle applicazioni.

L'immagine ResNet-50 mostra l'intero modello. A questo livello è difficile identificare le connessioni tra i singoli vertici, quindi vale la pena guardare le immagini ingrandite. Di seguito sono riportati alcuni esempi di sezioni all'interno dei livelli della rete neurale.

Perché le reti profonde hanno bisogno di così tanta memoria?

Le grandi impronte di memoria sono una delle maggiori sfide delle reti neurali profonde. I ricercatori stanno cercando di combattere la larghezza di banda limitata dei dispositivi DRAM che devono essere utilizzati sistemi moderni per memorizzare un numero enorme di pesi e attivazioni in una rete neurale profonda.

Le architetture sono state progettate utilizzando chip processore progettati per l'elaborazione sequenziale e l'ottimizzazione DRAM per memoria ad alta densità. L'interfaccia tra questi due dispositivi rappresenta un collo di bottiglia che introduce limitazioni di larghezza di banda e aggiunge un notevole sovraccarico in termini di consumo energetico.

Anche se non abbiamo ancora una conoscenza completa del cervello umano e del suo funzionamento, è generalmente riconosciuto che non esiste un grande magazzino di memoria separato. Si ritiene che la funzione della memoria a lungo e breve termine nel cervello umano sia incorporata nella struttura dei neuroni + sinapsi. Anche organismi semplici come i vermi, con una struttura cerebrale neurale di poco più di 300 neuroni, hanno un certo grado di funzione di memoria.

Costruire memoria nei processori convenzionali è un modo per aggirare il problema colli di bottiglia memoria, sbloccando un'enorme larghezza di banda con un consumo energetico molto inferiore. Tuttavia, la memoria su chip è costosa e non è progettata per le grandi quantità di memoria collegate alle CPU e alle GPU attualmente utilizzate per addestrare e distribuire reti neurali profonde.

Quindi è utile osservare come viene utilizzata oggi la memoria nelle CPU e nei sistemi di deep learning basati su GPU e chiedersi perché hanno bisogno di tale memoria. dispositivi di grandi dimensioni memoria quando il cervello umano funziona bene senza di loro?

Le reti neurali necessitano di memoria per archiviare dati di input, pesi e funzioni di attivazione mentre l'input si propaga attraverso la rete. Nell'apprendimento, l'attivazione sull'input deve essere mantenuta finché non può essere utilizzata per calcolare gli errori nei gradienti di output.

Ad esempio, una rete ResNet a 50 livelli ha circa 26 milioni di parametri di peso e calcola 16 milioni di attivazioni in avanti. Se utilizzi un float a 32 bit per memorizzare ogni peso e attivazione, saranno necessari circa 168 MB di spazio. Usarne di più basso valore precisione per memorizzare questi pesi e attivazioni, potremmo dimezzare o addirittura quadruplicare questo requisito di archiviazione.

Un grave problema di memoria deriva dal fatto che le GPU si basano su dati rappresentati come vettori densi. Pertanto, possono utilizzare il thread di istruzione singola (SIMD) per ottenere un'elevata densità di elaborazione. La CPU utilizza unità vettoriali simili per il calcolo ad alte prestazioni.

Le GPU hanno una larghezza della sinapsi di 1024 bit, quindi utilizzano dati in virgola mobile a 32 bit, quindi spesso li dividono in mini-batch paralleli di 32 campioni per creare vettori di dati a 1024 bit. Questo approccio al parallelismo vettoriale aumenta il numero di attivazioni di 32 volte e la necessità di archiviazione locale con una capacità superiore a 2 GB.

Anche le GPU e altre macchine progettate per l'algebra delle matrici sono soggette al carico di memoria dovuto a pesi o attivazioni di reti neurali. Le GPU non possono eseguire in modo efficiente le piccole convoluzioni utilizzate nelle reti neurali profonde. Pertanto, una trasformazione chiamata "riduzione" viene utilizzata per convertire queste convoluzioni in moltiplicazioni matrice-matrice (GEMM), che le GPU possono gestire in modo efficiente.

È inoltre necessaria memoria aggiuntiva per memorizzare dati di input, valori temporanei e istruzioni di programma. Misurando l'utilizzo della memoria durante l'addestramento di ResNet-50 su una GPU di fascia alta è emerso che richiedeva più di 7,5 GB di DRAM locale.

Alcuni potrebbero pensare che una minore precisione computazionale possa ridurre la quantità di memoria richiesta, ma non è così. Cambiando i valori dei dati a metà precisione per pesi e attivazioni, riempirai solo metà della larghezza del vettore SIMD, sprecando metà delle risorse di calcolo disponibili. Per compensare ciò, quando si passa dalla precisione completa alla precisione parziale sulla GPU, sarà necessario raddoppiare la dimensione del mini-batch per forzare un parallelismo dei dati sufficiente a utilizzare tutto il calcolo disponibile. Pertanto, il passaggio a pesi e attivazioni di precisione inferiori sulla GPU richiede ancora più di 7,5 GB di memoria dinamica ad accesso libero.

Con così tanti dati da archiviare, è semplicemente impossibile inserirli tutti in una GPU. Ciascun livello della rete neurale convoluzionale deve memorizzare lo stato della DRAM esterna, caricare il livello di rete successivo e quindi caricare i dati nel sistema. Di conseguenza, l’interfaccia è già limitata dalla larghezza di banda e dalla latenza della memoria. memoria esterna soffre di oneri aggiuntivi riavvio costante pesi e funzioni di attivazione di memorizzazione e recupero. Ciò rallenta notevolmente i tempi di allenamento e aumenta significativamente il consumo energetico.

Esistono diversi modi per risolvere questo problema. Innanzitutto, operazioni come le funzioni di attivazione possono essere eseguite “sul posto”, consentendo la riscrittura dei dati di input direttamente sull’output. Così, memoria esistente può essere riutilizzato. In secondo luogo, l'opportunità di riutilizzo La memoria può essere ottenuta analizzando la dipendenza dei dati tra le operazioni sulla rete e l'allocazione della stessa memoria alle operazioni che in quel momento non la utilizzano.

Il secondo approccio è particolarmente efficace quando l’intera rete neurale può essere analizzata in fase di compilazione per creare una memoria allocata fissa, poiché il sovraccarico di gestione della memoria è ridotto quasi a zero. Si è scoperto che la combinazione di questi metodi può ridurre l'utilizzo della memoria di una rete neurale da due a tre volte.
Un terzo approccio significativo è stato recentemente scoperto dal team di Baidu Deep Speech. Hanno fatto domanda vari metodi risparmiando memoria per ottenere una riduzione di 16 volte nel consumo di memoria delle funzioni di attivazione, che ha permesso loro di addestrare reti con 100 livelli. In precedenza, con la stessa quantità di memoria, potevano addestrare reti a nove livelli.

La combinazione di memoria e risorse di elaborazione in un unico dispositivo ha un potenziale significativo per migliorare le prestazioni e l’efficienza delle reti neurali convoluzionali, così come di altre forme di apprendimento automatico. È possibile effettuare dei compromessi tra memoria e risorse di elaborazione per raggiungere un equilibrio tra funzionalità e prestazioni nel sistema.

Le reti neurali e i modelli di conoscenza in altri metodi di apprendimento automatico possono essere pensati come grafici matematici. C'è un'enorme quantità di parallelismo concentrato in questi grafici. Un processore parallelo progettato per sfruttare il parallelismo nei grafici non si basa sul mini-batch e può ridurre significativamente la quantità di spazio di archiviazione locale richiesto.

I risultati attuali della ricerca hanno dimostrato che tutti questi metodi possono migliorare significativamente le prestazioni delle reti neurali. Le GPU e le CPU moderne hanno una memoria integrata molto limitata, solo pochi megabyte in totale. Le nuove architetture dei processori progettate specificatamente per l’apprendimento automatico bilanciano la memoria e l’elaborazione su chip, offrendo miglioramenti significativi in ​​termini di prestazioni ed efficienza rispetto alle tecnologie attuali. processori centrali e acceleratori grafici.

Dall'articolo imparerai cos'è il deep learning. L'articolo contiene anche molte risorse che puoi utilizzare per padroneggiare quest'area.

IN mondo moderno Dall’assistenza sanitaria al settore manifatturiero, il deep learning viene utilizzato ovunque. Le aziende si rivolgono a questa tecnologia per risolvere problemi complessi come il riconoscimento vocale e di oggetti, la traduzione automatica e così via.

Uno dei risultati più impressionanti di quest'anno è stato che AlphaGo ha battuto il miglior giocatore di Go del mondo. Oltre al Go, le macchine hanno battuto le persone in altri giochi: dama, scacchi, reversi e Jeopardy.

Vincere un gioco da tavolo potrebbe non sembrare applicabile alla risoluzione dei problemi della vita reale, ma non è affatto così. Go è stato progettato per essere imbattibile dall'intelligenza artificiale. Per fare questo, dovrebbe imparare una cosa importante per questo gioco: l'intuizione umana. Ora, con l'aiuto di questo sviluppo, è possibile risolvere molti problemi che prima erano inaccessibili a un computer.

Ovviamente, il deep learning è ancora lungi dall’essere perfetto, ma è già vicino all’utilità commerciale. Ad esempio, queste auto a guida autonoma. Aziende rinomate come Google, Tesla e Uber stanno già cercando di introdurre auto autonome nelle strade cittadine.

Ford prevede un aumento significativo della quota di guida autonoma Veicolo entro il 2021. Il governo degli Stati Uniti è anche riuscito a sviluppare una serie di norme di sicurezza per loro.

Cos'è l'apprendimento profondo?

Per rispondere a questa domanda è necessario capire come interagisce con il machine learning, le reti neurali e l’intelligenza artificiale. Per fare ciò, utilizziamo il metodo di visualizzazione utilizzando cerchi concentrici:

Il cerchio esterno rappresenta l'intelligenza artificiale in generale (ad esempio i computer). Un po’ più avanti c’è il machine learning, e proprio al centro ci sono il deep learning e le reti neurali artificiali.

In parole povere, deep learning è semplicemente un nome più conveniente per le reti neurali artificiali. “Profondo” in questa frase si riferisce al grado di complessità (profondità) della rete neurale, che spesso può essere piuttosto superficiale.

I creatori della prima rete neurale si ispirarono alla struttura della corteccia cerebrale. Un livello base di rete, un percettrone, è essenzialmente un analogo matematico di un neurone biologico. E, come nel cervello, i perceptron che si intersecano tra loro possono apparire in una rete neurale.

Il primo strato della rete neurale è chiamato strato di input. Ciascun nodo in questo livello riceve alcune informazioni come input e le trasmette ai nodi successivi in ​​altri livelli. Molto spesso non ci sono connessioni tra i nodi di uno strato e l'ultimo nodo della catena emette il risultato della rete neurale.

I nodi al centro sono chiamati nodi nascosti perché non hanno connessioni con il mondo esterno come i nodi di output e di input. Vengono chiamati solo quando vengono attivati ​​i livelli precedenti.

Il deep learning è essenzialmente una tecnica di training della rete neurale che utilizza molti livelli per risolvere problemi complessi (come il riconoscimento vocale) utilizzando modelli. Negli anni ottanta la maggior parte delle reti neurali erano a strato singolo costo alto e limitazioni dei dati.

Se consideriamo l’apprendimento automatico come un ramo o una variante dell’intelligenza artificiale, allora il deep learning è un tipo specializzato di tale ramo.

L’apprendimento automatico utilizza l’intelligenza informatica che non fornisce immediatamente la risposta. Invece, il codice verrà eseguito sui dati di test e, in base alla correttezza dei risultati, regolerà il proprio progresso. Per il successo di questo processo, vengono solitamente utilizzate una varietà di tecniche, software speciali e informatica, che descrivono metodi statici e algebra lineare.

Metodi di apprendimento profondo

I metodi di deep learning si dividono in due tipologie principali:

  • Formazione tutorata
  • Apprendimento non supervisionato

Il primo metodo utilizza dati appositamente selezionati per ottenere il risultato desiderato. Richiede molto intervento umano, perché i dati devono essere selezionati manualmente. Tuttavia, è utile per la classificazione e la regressione.

Immagina di essere il proprietario di un'azienda e di voler determinare l'impatto dei bonus sulla durata dei contratti dei tuoi subordinati. Con i dati preraccolti, un metodo di apprendimento supervisionato sarebbe indispensabile e molto efficace.

Il secondo metodo non implica risposte pre-preparate e algoritmi di lavoro. Ha lo scopo di identificare modelli nascosti nei dati. Viene in genere utilizzato per attività di clustering e associazione, ad esempio raggruppare i clienti in base al comportamento. “Scelgono anche con questo” su Amazon è una variante del compito associativo.

Anche se l’apprendimento supervisionato è spesso abbastanza conveniente, lo è di più opzione difficile ancora meglio. Il deep learning ha dimostrato di essere una rete neurale che non richiede la supervisione umana.

L'importanza dell'apprendimento profondo

I computer utilizzano da tempo la tecnologia per riconoscere determinate caratteristiche di un'immagine. Tuttavia, i risultati furono lungi dall’essere positivi. La visione artificiale ha avuto un impatto incredibile sul deep learning. Sono queste due tecniche che questo momento risolvere tutti i problemi di riconoscimento.

In particolare, Facebook è riuscito a riconoscere i volti nelle fotografie utilizzando il deep learning. Non si tratta di un semplice miglioramento tecnologico, ma di un punto di svolta che cambia tutte le convinzioni precedenti: “Una persona può determinare con una probabilità del 97,53% se la stessa persona è mostrata in due fotografie diverse. Il programma sviluppato dal team di Facebook può farlo con una probabilità del 97,25%, indipendentemente dall’illuminazione o dal fatto che la persona guardi direttamente la telecamera o sia girata lateralmente verso di essa.”

Anche il riconoscimento vocale ha subito cambiamenti significativi. Il team di Baidu, uno dei principali motori di ricerca in Cina, ha sviluppato un sistema di riconoscimento vocale che è riuscito a superare gli umani nella velocità e nella precisione di scrittura del testo in inglese. dispositivi mobili. In inglese e mandarino.

Ciò che è particolarmente interessante è che scrivere una rete neurale comune per due lingue completamente diverse non ha richiesto molto lavoro: “Storicamente, le persone vedevano il cinese e l’inglese come due lingue completamente diverse. lingue differenti, quindi ognuno di essi richiedeva un approccio diverso”, afferma Andrew Ng, capo del centro di ricerca Baidu. “Gli algoritmi di apprendimento sono ormai così generalizzati che è possibile Appena Imparare."

Google utilizza il deep learning per gestire l'energia nei data center dell'azienda. Sono riusciti a ridurre i costi delle risorse di raffreddamento del 40%. Si tratta di un miglioramento del 15% circa nell'efficienza energetica e di un risparmio di milioni di dollari.

Microservizi di deep learning

Qui breve recensione servizi legati al deep learning.

Etichettatore di illustrazioni. Migliorato da Illustration2Vec, questo servizio consente di contrassegnare le immagini con la classificazione "protetto", "discutibile", "pericoloso", "copyright" o "generale" per comprendere in anticipo il contenuto dell'immagine.

  • Componente aggiuntivo Theano di Google
  • Modificabile in Python e Numpy
  • Spesso utilizzato per risolvere una gamma specifica di problemi
  • Non scopo generale. Focus sulla visione artificiale
  • Modificato in C++
  • C'è un'interfaccia in Python

Corsi online sul deep learning

Google e Udacity hanno collaborato per creare un corso gratuito sul deep learning, parte del corso Udacity Machine Learning. Questo programma è guidato da sviluppatori esperti che desiderano sviluppare il campo dell'apprendimento automatico e, in particolare, del deep learning.

Un’altra opzione popolare è il corso di machine learning di Andrew Ng, supportato da Coursera e Stanford.

  1. Apprendimento automatico - Stanford di Andrew Ng su Coursera (2010-2014)
  2. Apprendimento automatico - Caltech di Yaser Abu-Mostafa (2012-2014)
  3. Machine Learning - Carnegie Mellon di Tom Mitchell (primavera 2011)
  4. Reti neurali per l'apprendimento automatico – Geoffrey Hinton su Coursera (2012)
  5. Lezione sulle reti neurali– Hugo Larochelle dell'Università di Sherbrooke (2013)

Libri sull'apprendimento profondo

Mentre le risorse della sezione precedente attingono a una base di conoscenze abbastanza ampia, Grokking Deep Learning, al contrario, si rivolge ai principianti. Come dicono gli autori: "Se hai completato la terza media e hai una conoscenza approssimativa di come scrivere Python, ti insegneremo il deep learning".

Un'alternativa popolare a questo libro è un libro dal titolo autoesplicativo Deep Learning Book. È particolarmente utile perché copre tutti i calcoli di cui avrai bisogno per entrare in quest'area.

  1. "Apprendimento profondo" di Yoshua Bengio, Ian Goodfellow e Aaron Courville (2015)
  2. “Reti neurali e apprendimento profondo” di Michael Nielsen (2014)
  3. "Apprendimento profondo" da Microsoft Research (2013)
  4. “Tutorial di apprendimento profondo” del Laboratorio LISA, Università di Montreal (2015)
  5. “Parlare neurale” di Andrej Karpathy
  6. "Introduzione agli algoritmi genetici"
  7. "Approccio moderno all'intelligenza artificiale"
  8. "Panoramica sul deep learning e sulle reti neurali"

Video e conferenze

Deep Learning Simplified è un meraviglioso canale YouTube. Ecco il loro primo video:

E in parte, questa guida è destinata a chiunque sia interessato all'apprendimento automatico ma non sappia da dove cominciare. Il contenuto degli articoli è destinato a un vasto pubblico e sarà piuttosto superficiale. Ma a qualcuno importa davvero? Più persone si interessano al machine learning, meglio è.

Riconoscimento degli oggetti tramite deep learning

Potresti aver già visto questo famoso fumetto xkcd. La cosa divertente è che qualsiasi bambino di 3 anni può riconoscere la foto di un uccello, ma per far sì che un computer lo facesse ci sono voluti più di 50 anni ai migliori scienziati informatici. Negli ultimi anni abbiamo finalmente trovato un buon approccio per obiettare riconoscimento utilizzando reti neurali convoluzionali profonde. Sembrano parole inventate tratte da un romanzo di fantascienza di William Gibson, ma tutto ha senso quando le prendiamo una per una. Quindi facciamolo: scriviamo un programma che riconosca gli uccelli!

Cominciamo in modo semplice

Prima di imparare a riconoscere le immagini degli uccelli, impariamo a riconoscere qualcosa di molto più semplice: il numero "8" scritto a mano.

I migliori articoli sull'argomento