Risposte:
Questo sta andando indietro, ma in qualche modo segue la logica degli argomenti.
In termini di efficienza, posso vedere alcuni problemi importanti con le reti neurali classiche.
Le grandi reti neurali richiedono molti dati per la formazione. L'importo può variare a seconda delle dimensioni della rete e della complessità dell'attività, ma di norma è generalmente proporzionale al numero di pesi. Per alcune attività di apprendimento supervisionato, semplicemente non ci sono abbastanza dati etichettati di alta qualità. La raccolta di grandi quantità di dati di formazione specializzata può richiedere mesi o addirittura anni e l'etichettatura può essere ingombrante e inaffidabile. Questo può essere parzialmente mitigato dall'aumento dei dati, il che significa "sintetizzare" più esempi da quelli che hai già, ma non è una panacea.
Il tasso di apprendimento è generalmente piuttosto piccolo, quindi i progressi dell'allenamento sono lenti. Un modello di grandi dimensioni che potrebbe richiedere settimane per allenarsi su una CPU desktop può essere addestrato, per esempio, a due ore utilizzando un cluster GPU che consuma diversi kW di energia. Questo è un compromesso fondamentale a causa della natura della procedura di formazione. Detto questo, le GPU stanno diventando sempre più efficienti - ad esempio, la nuova architettura GPU nVidia Volta consente 15.7 TFLOP consumando meno di 300 W.
In questo momento, praticamente ogni diverso problema richiede una rete neurale personalizzata per essere progettata, addestrata e distribuita. Mentre la soluzione spesso funziona, è in qualche modo bloccata in quel problema. Ad esempio, AlphaGo è brillante su Go, ma sarebbe senza speranza nel guidare un'auto o fornire consigli sulla musica - non è stato progettato proprio per tali compiti. A mio avviso, questa schiacciante ridondanza rappresenta un grave svantaggio delle reti neurali ed è anche un grave ostacolo al progresso della ricerca sulle reti neurali in generale. C'è un'intera area di ricerca chiamata transfer learningche si occupa di trovare modi per applicare una rete addestrata su un'attività a un'attività diversa. Spesso ciò si riferisce al fatto che potrebbero non esserci dati sufficienti per addestrare una rete da zero sul secondo compito, quindi essere in grado di utilizzare un modello pre-addestrato con qualche ottimizzazione aggiuntiva è molto interessante.
La prima parte della domanda è più complicata. Lasciando da parte i modelli puramente statistici, non ho visto alcun approccio di spicco all'apprendimento automatico radicalmente diverso dalle reti neurali. Tuttavia, ci sono alcuni sviluppi interessanti che vale la pena menzionare perché affrontano alcune delle inefficienze di cui sopra.
Prima un po 'di background.
Le reti neurali spigolose hanno un potenziale enorme in termini di potenza computazionale. In effetti, è stato dimostrato che sono rigorosamente più potenti delle reti neurali classiche con attivazioni sigmoidi.
In aggiunta a ciò, le reti neurali spigolose hanno una presa intrinseca del tempo - qualcosa che è stato un grande ostacolo per le reti classiche sin dal loro inizio. Non solo, ma le reti di spiking sono guidate dagli eventi , il che significa che i neuroni funzionano solo se c'è un segnale in arrivo. Ciò è in contrasto con le reti classiche, in cui ogni neurone viene valutato indipendentemente dal suo input (di nuovo, questa è solo una conseguenza della procedura di valutazione che viene solitamente implementata come una moltiplicazione di due matrici dense). Quindi le reti a spillo utilizzano uno schema di codifica sparsa , il che significa che solo una piccola frazione dei neuroni è attiva in un dato momento.
Ora, la codifica basata su sparse spike e il funzionamento guidato da eventi sono adatti per implementazioni basate su hardware di reti di spiking chiamate chip neuromorfi . Ad esempio, il chip TrueNorth di IBM può simulare 1 milione di neuroni e 256 milioni di connessioni assorbendo in media solo circa 100 mW di potenza. Si tratta di ordini di grandezza più efficienti delle attuali GPU nVidia. I chip neuromorfi possono essere la soluzione del tempo di allenamento / compromesso energetico che ho menzionato sopra.
Inoltre, i memristor sono uno sviluppo relativamente nuovo ma molto promettente. Fondamentalmente, un memristor è un elemento circuitale fondamentale molto simile a un resistore ma con resistenza variabile proporzionale alla quantità totale di corrente che lo ha attraversato per tutta la sua vita. In sostanza, ciò significa che mantiene una "memoria" della quantità di corrente che l'ha attraversata. Una delle interessanti applicazioni potenziali dei memristor è la modellazione delle sinapsi nell'hardware in modo estremamente efficiente.
Penso che valga la pena menzionarli perché sono candidati promettenti per affrontare il problema della non trasferibilità. Questi non sono limitati alle reti neurali - essendo guidati dalla ricompensa, RL ed evoluzione sono teoricamente applicabili in un ambiente generico a qualsiasi attività in cui è possibile definire una ricompensa o un obiettivo da raggiungere per un agente. Questo non è necessariamente banale da fare, ma è molto più generico del solito approccio basato sugli errori, in cui l'agente di apprendimento cerca di minimizzare la differenza tra il suo output e una verità fondamentale. Il punto principale qui riguarda l'apprendimento del trasferimento: idealmente, applicare un agente addestrato a un compito diverso dovrebbe essere semplice come cambiare l'obiettivo o la ricompensa (non sono ancora del tutto a quel livello, però ...).
In particular it is shown that networks of spiking neurons are, with regard to the number of neurons that are needed, computationally more powerful than these other neural network models.
max(0, x)
) è molto in pericolo di rimanere bloccati a x < 0
causa di neuroni morti. Ad ogni modo, il punto riguarda la potenza computazionale delle reti a spillo e la loro implementazione hardware ultra efficiente in termini di consumo energetico.
Sostituzione delle reti neurali
Potrebbero esistere nuovi algoritmi che hanno il potenziale per sostituire le reti neurali. Tuttavia, una delle caratteristiche delle reti neurali è che impiegano elementi semplici, ognuno con basse esigenze di risorse informatiche in motivi geometrici.
I neuroni artificiali possono essere eseguiti in parallelo (senza condivisione del tempo della CPU o loop) mappando i calcoli su dispositivi DSP o altro hardware di calcolo parallelo. Che i molti neuroni siano essenzialmente uguali è quindi un grande vantaggio.
Cosa sostituiremmo?
Quando consideriamo le sostituzioni algoritmiche alle reti neurali, intendiamo che un progetto di rete neurale è un algoritmo. Non è.
Una rete neurale è un approccio alla convergenza su un circuito in tempo reale per eseguire una trasformazione non lineare di input in output basata su una formulazione di ciò che è ottimale. Tale formulazione può essere la minimizzazione di una misura di errore o disparità da un ideale definito. Può essere una misura di benessere che deve essere massimizzata.
La fonte della determinazione della forma fisica per ogni dato comportamento di rete può essere interna. Noi chiamiamo questo apprendimento incustodito. Può essere esterno, che chiamiamo supervisionato quando le informazioni sull'idoneità esterna sono associate a vettori di input sotto forma di valori di output desiderati, che chiamiamo etichette.
La forma fisica può anche originare esternamente come uno scalare o un vettore non accoppiato con i dati di input ma piuttosto in tempo reale, che chiamiamo rinforzo. Ciò richiede algoritmi di apprendimento rientranti. L'idoneità comportamentale netta può in alternativa essere valutata da altre reti all'interno del sistema, nel caso di reti sovrapposte o di altre configurazioni come le gerarchie lapponiche.
La selezione degli algoritmi ha poco a che fare con l'intelligenza comparata una volta selezionati i progetti matematici e di processo. Il design dell'algoritmo è più direttamente correlato alla riduzione al minimo delle richieste di risorse informatiche e alla riduzione dei tempi. Questa minimizzazione dipende anche dall'hardware e dal sistema operativo.
Viene indicata una sostituzione?
Sicuro. Sarebbe meglio se le reti fossero più simili ai neuroni dei mammiferi.
Per segnalazione regionale si intendono i molti segnali chimici oltre la trasmissione del segnale attraverso le sinapsi.
Possiamo anche considerare di andare oltre la neurologia dei mammiferi.
Neural Net Efficiency
L'efficienza non può essere quantificata in una scala universale in quanto la temperatura può essere quantificata in gradi Kelvin. L'efficienza può essere quantificata solo come quoziente di un valore misurato su un ideale teorico. Si noti che è un ideale, non un massimo, nel denominatore. Nei motori termodinamici, l'ideale è il tasso di input di energia, che non può mai essere trasferito completamente all'output.
Allo stesso modo, le reti neurali non possono mai imparare in zero tempo. Nemmeno una rete neurale può raggiungere zero errori per un tempo arbitrariamente lungo in produzione. Pertanto, l'informazione è in qualche modo come l'energia, un concetto studiato da Claude Shannon dei Bell Labs durante l'alba dell'automazione digitale e il rapporto tra entropia dell'informazione ed entropia termodinamica è ora una parte importante della fisica teorica.
Non ci può essere una cattiva efficienza di apprendimento o una buona efficienza di apprendimento. Non ci possono essere né cattive prestazioni né buone prestazioni, se vogliamo pensare in termini logici e scientifici - solo un miglioramento relativo di una configurazione di sistema rispetto ad altre configurazioni di sistema per una serie molto specifica di scenari di prestazioni.
Pertanto, senza una specifica inequivocabile delle due configurazioni hardware, sistema operativo e software e una suite di test completamente definita utilizzata per la valutazione relativa, l'efficienza non ha senso.
Abbiamo qualche speranza in agguato in quel fronte. A partire da ora abbiamo reti di capsule di J.Hinton che usano una diversa attivazione non lineare chiamata funzione 'squash'.
Le reti di capsule stesse presentano alcune carenze. Quindi c'è stato un lavoro nella direzione di guardare oltre le reti neurali. Puoi leggere questo blog per una buona comprensione prima di leggere l'articolo di J.Hinton.
Le reti neurali richiedono molti dati e formazione. Per la maggior parte dei set di dati in formato tabulare è molto meglio utilizzare modelli basati su alberi decisionali. Il più delle volte, sono sufficienti modelli semplici per garantire una buona precisione. Tuttavia le reti neurali hanno avuto la loro prova del tempo. Sono passati solo 5-6 anni da quando è iniziata la rivoluzione del deep learning, quindi non conosciamo ancora la vera potenza del deep learning.