Gli scienziati sanno cosa sta accadendo all'interno delle reti neurali artificiali?


69

Scienziati o esperti di ricerca sanno dalla cucina cosa sta succedendo all'interno di una complessa rete neurale "profonda" con almeno milioni di connessioni attivate in un istante? Comprendono il processo alla base di ciò (ad es. Cosa sta accadendo all'interno e come funziona esattamente) o è oggetto di dibattito?

Ad esempio questo studio dice:

Tuttavia, non si comprende chiaramente il motivo per cui funzionano così bene o come potrebbero essere migliorati.

Quindi questo significa che gli scienziati in realtà non sanno quanto funzionano complessi modelli di rete convoluzionale?


" perché si esibiscono così bene " - in realtà non si esibiscono così bene. Come per la maggior parte delle nuove tecnologie, i guasti sono sottostimati.
Tomáš Zato

Risposte:


51

Ci sono molti approcci che mirano a rendere una rete neurale addestrata più interpretabile e meno simile a una "scatola nera", in particolare reti neurali convoluzionali che hai menzionato.

Visualizzazione delle attivazioni e dei pesi dei livelli

La visualizzazione delle attivazioni è la prima ovvia e diretta. Per le reti ReLU, le attivazioni di solito iniziano a sembrare relativamente gonfie e dense, ma man mano che l'addestramento progredisce le attivazioni di solito diventano più rare (la maggior parte dei valori sono zero) e localizzate. Questo a volte mostra su cosa si concentra esattamente un determinato livello quando vede un'immagine.

Un altro grande lavoro sulle attivazioni che vorrei menzionare è il deepvis che mostra la reazione di ogni neurone su ogni strato, compresi i livelli di pooling e normalizzazione. Ecco come lo descrivono :

In breve, abbiamo raccolto alcuni metodi diversi che ti consentono di "triangolare" quale caratteristica ha imparato un neurone, che può aiutarti a capire meglio come funzionano i DNN.

La seconda strategia comune è quella di visualizzare i pesi (filtri). Questi sono generalmente più interpretabili sul primo livello CONV che guarda direttamente i dati pixel grezzi, ma è anche possibile mostrare i pesi del filtro più in profondità nella rete. Ad esempio, il primo strato di solito apprende i filtri simili a gabor che sostanzialmente rilevano bordi e macchie.

filtri di primo strato

Esperimenti di occlusione

Ecco l'idea. Supponiamo che un ConvNet classifichi un'immagine come un cane. Come possiamo essere certi che sta effettivamente rilevando il cane nell'immagine rispetto ad alcuni spunti contestuali dallo sfondo o ad altri oggetti vari?

Un modo per indagare da quale parte dell'immagine proviene una previsione di classificazione è tracciare la probabilità della classe di interesse (ad esempio la classe del cane) in funzione della posizione di un oggetto occlusore. Se eseguiamo l'iterazione su regioni dell'immagine, la sostituiamo con tutti gli zeri e controlliamo il risultato della classificazione, possiamo costruire una mappa di calore bidimensionale di ciò che è più importante per la rete su una particolare immagine. Questo approccio è stato utilizzato nelle reti convoluzionali di visualizzazione e comprensione di Matthew Zeiler (a cui fai riferimento nella tua domanda):

esperimenti di occlusione

deconvoluzione

Un altro approccio è quello di sintetizzare un'immagine che fa scattare un neurone particolare, fondamentalmente ciò che il neurone sta cercando. L'idea è di calcolare il gradiente rispetto all'immagine, invece del solito gradiente rispetto ai pesi. Quindi scegli un livello, imposta il gradiente in modo che sia tutto zero tranne uno per un neurone e backprop all'immagine.

Deconv in realtà fa qualcosa chiamato backpropagation guidato per creare un'immagine più bella, ma è solo un dettaglio.

Approcci simili ad altre reti neurali

Consiglio vivamente questo post di Andrej Karpathy , in cui gioca molto con Recurrent Neural Networks (RNN). Alla fine, applica una tecnica simile per vedere cosa imparano effettivamente i neuroni:

Il neurone evidenziato in questa immagine sembra essere molto eccitato per gli URL e si spegne al di fuori degli URL. L'LSTM sta probabilmente usando questo neurone per ricordare se si trova all'interno di un URL o no.

Conclusione

Ho citato solo una piccola parte dei risultati in quest'area di ricerca. È piuttosto attivo e ogni anno compaiono nuovi metodi che fanno luce sui meccanismi interni della rete neurale.

Per rispondere alla tua domanda, c'è sempre qualcosa che gli scienziati non sanno ancora, ma in molti casi hanno una buona immagine (letteraria) di ciò che sta accadendo all'interno e possono rispondere a molte domande particolari.

Per me la citazione dalla tua domanda evidenzia semplicemente l'importanza della ricerca non solo del miglioramento della precisione, ma anche della struttura interna della rete. Come dice Matt Zieler in questo discorso , a volte una buona visualizzazione può portare, a sua volta, a una migliore precisione.


Visualizzazione è sapere? O è solo una soluzione di tendenza all'ignoranza? Forse lo sviluppo matematico è l'area che manca di rigore e sufficienza.
FauChristian,

1
@FauChristian Ti manca il punto qui. I pesi e tutte le operazioni matematiche all'interno di una rete neurale sono noti esattamente, proprio come il codice assembly. Questo è fuori discussione. La visualizzazione consente di capire perché si stanno verificando determinate operazioni e portare a buone prestazioni. Ancora una volta, proprio come i classici algoritmi informatici. Inoltre, ti incoraggio a leggere l'articolo di Zieler su Al, menzionato nella risposta.
Massimo

1
Non ho perso quei punti, dopo averli studiati come studente universitario. Ero pigro nel mio commento però. La griglia di B&W che rappresenta i kernel è interessante solo in quanto mostra una matrice alquanto caotica di stati del kernel di rilevamento dei bordi ondulati, indicando la necessità di caratterizzare il caos per comprenderlo. Quali sono la distribuzione delle dimensioni, la distribuzione angolare e la distribuzione obliqua? Queste distribuzioni indicano (a) un eccesso di adattamento specifico a determinati set di dati o (b) un modello generale che potrebbe essere sostituito da un blocco funzionale con maggiore efficienza computazionale. ~~ Una volta non si capisce dal punto di vista visivo.
FauChristian,

1
Bene, tutte queste distribuzioni (e molte altre) non vengono calcolate qui. Ciò non significa che non possano o non debbano essere calcolati. Inoltre, ciò non significa che l'interpretazione del modello non abbia nulla a che fare con la visualizzazione. Vi incoraggio ancora una volta a leggere "Visualizzazione e comprensione delle reti convoluzionali" di Zieler ad al, dove gli autori ne discutono in dettaglio.
Massimo

Lo abbiamo in laboratorio. Il mio socio ha esaminato alcuni degli esempi di codice. Lo guarderò dal lato delle statistiche. Grazie.
FauChristian,

27

Dipende da cosa intendi per "sapere cosa sta succedendo".

Concettualmente sì: ANN esegue una regressione non lineare. L'espressione effettiva rappresentata dalla matrice di peso / funzioni di attivazione di una ANN può essere esplicitamente espansa in forma simbolica (ad esempio contenente sottoespressioni come ).1/1+e1/1+e

Tuttavia, se per "sapere" si intende prevedere l'output di una RNA specifica (scatola nera) , con altri mezzi, l'ostacolo è la presenza di caos in una RNA che presenta alti gradi di libertà .

Ecco anche alcuni lavori relativamente recenti di Hod Lipson sulla comprensione delle ANN attraverso la visualizzazione .


13

La risposta breve è no .

L'interpretazione dei modelli è un'area iperattiva e iper-attiva della ricerca attuale (si pensi al Santo Graal, o qualcosa del genere), che è stata portata avanti ultimamente, non ultimo a causa del successo (spesso tremendo) dei modelli di apprendimento profondo in vari compiti; questi modelli sono attualmente solo scatole nere e naturalmente ci sentiamo a disagio al riguardo ...

Ecco alcune risorse generali (e recenti, a partire da dicembre 2017) sull'argomento:

E a un livello più pratico (codice ecc.):

Ultimamente, c'è stato un aumento di interesse per iniziare a costruire una base più teorica per le reti neurali di apprendimento profondo. In questo contesto, il famoso pioniere del rilevamento statistico e della compressione David Donoho ha iniziato molto recentemente (autunno 2017) a offrire un corso a Stanford, Theories of Deep Learning (STATS 385) , con quasi tutto il materiale disponibile online; è altamente raccomandato ...

AGGIORNAMENTI :


Ciao. Questa sembra essere una buona risposta, ma è necessario ripulirla e organizzarla un po '. Le prime risorse dovrebbero essere le più utili e generali. Quindi puoi elencare risorse più specifiche e documenti di ricerca, IMHO. E in seguito puoi elencare, ad esempio, le discussioni su Twitter o altro.
nbro,


8

Temo di non avere a portata di mano le citazioni specifiche, ma ho visto / sentito citazioni di esperti come Andrew Ng e Geoffrey Hinton in cui affermano chiaramente che non capiamo veramente le reti neurali. Cioè, capiamo qualcosa del modo in cui funzionano (ad esempio, la matematica dietro la propagazione della schiena) ma non capiamo davvero perché funzionano. È una specie di distinzione sottile, ma il punto è che no, non capiamo i dettagli più profondi di come esatti da un mucchio di pesi, per dire, riconoscere un gatto che gioca con una palla.

Almeno in termini di riconoscimento delle immagini, la migliore spiegazione che ho sentito è che i livelli successivi di una rete neurale apprendono caratteristiche più sofisticate, composte da caratteristiche più granulari di livelli precedenti. Vale a dire, il primo strato potrebbe riconoscere "spigoli" o "linee rette". Il livello successivo potrebbe quindi apprendere forme geometriche come "box", o "triangolo", e quindi un livello superiore potrebbe apprendere "naso" o "occhio" in base a quelle caratteristiche precedenti, e quindi un livello di livello superiore impara ancora "faccia" realizzata da "occhio", "naso", "mascella", ecc. Ma anche quello, per come lo capisco, è ancora ipotetico e / o non compreso in dettaglio.


2
Sarei interessato a leggere le citazioni effettive. A livello concettuale più ampio, il motivo è "Sono approssimatori di funzioni universali addestrati per ridurre l'errore in un problema di regressione".
NietzscheanAI,

Vedrò se riesco a rintracciarli. Sono abbastanza sicuro che la citazione di Geoffrey Hinton a cui sto pensando sia in un video .. dalla sua Coursera Class o da qualche video che ha su Youtube. Se riesco a trovarlo, modificherò la mia risposta e la collegherò.
mindcrime

Non l'ho dimenticato Proverò a trovarli quando avrò un po 'di tempo libero. Penso che almeno uno di quelli a cui sto pensando provenisse da un video che fa parte di un corso di Coursera.
mindcrime

Questo studio può aiutare a mettere gli stessi riferimenti: "Tuttavia non c'è una chiara comprensione del motivo per cui funzionano così bene o di come potrebbero essere migliorati".
Kenorb,

4

Ecco una risposta di Carlos E. Perez alla domanda Qual è la teoria alla base del deep learning?

[...]

La matematica di base del Deep Learning esiste da diversi decenni, tuttavia i risultati impressionanti che vediamo oggi sono in parte una conseguenza di hardware molto più veloce, più dati e miglioramenti incrementali nei metodi.

Il deep learning in generale può essere definito come un problema di ottimizzazione in cui l'obiettivo è una funzione dell'errore del modello. Questo problema di ottimizzazione è molto difficile da risolvere, considerando che lo spazio dei parametri del modello (ovvero i pesi della rete neurale) porta a un problema di dimensioni estremamente elevate. Un algoritmo di ottimizzazione potrebbe richiedere molto tempo per esplorare questo spazio. Inoltre, c'era una convinzione non verificata che il problema non fosse convesso e che il calcolo sarebbe rimasto bloccato per sempre nei minimi locali.

[...]

La teoria del perché le macchine convergono effettivamente in un attrattore o in altre parole impara a riconoscere schemi complessi è ancora sconosciuta.

Per riassumere: abbiamo alcune idee, ma non ne siamo abbastanza sicuri.


3

Gli scienziati sanno cosa sta accadendo all'interno delle reti neurali artificiali?

Scienziati o esperti di ricerca sanno dalla cucina cosa sta succedendo all'interno di una complessa rete neurale "profonda" con almeno milioni di connessioni attivate in un istante?

Immagino che "conoscere dalla cucina" significhi "conoscere in dettaglio"?

Lascia che ti dia una serie di analogie:

  1. Un ingegnere dell'aereo sa dalla cucina cosa succede dentro l'aereo?
  2. Un progettista di chip sa in dettaglio cosa succede nei chip che ha progettato?
  3. Un ingegnere civile sa tutto della casa che ha costruito?

Il diavolo è nei dettagli, ma un punto cruciale qui è che si tratta di strutture artificiali. Non compaiono casualmente. Hai bisogno di molte conoscenze per ottenere qualcosa di utile. Per Neural Networks, direi che ci sono voluti circa 40 anni dalla pubblicazione dell'idea chiave (Rosenblatt perceptron, 1957) alla prima applicazione (US Postal Service, 1989). E da lì ancora 13 anni di ricerca attiva su sistemi davvero impressionanti (ImageNet 2012).

Quello che sappiamo molto bene è come funziona la formazione . Perché deve essere implementato. Quindi su una struttura molto piccola, lo sappiamo in dettaglio.

Pensa ai computer. I progettisti di chip sanno benissimo come funzionano i loro chip. Ma probabilmente avranno solo un'idea molto approssimativa di come funziona il sistema operativo Linux.

Un altro esempio è la fisica e la chimica: la fisica descrive le forze fondamentali dell'universo. Significa che sanno tutto anche della chimica? Diavolo, no! Un fisico "perfetto" può spiegare tutto in chimica ... ma sarebbe praticamente inutile. Avrebbe bisogno di molte più informazioni, non sarebbe in grado di saltare le parti irrilevanti. Semplicemente perché ha "ingrandito" troppo - considera i dettagli che in pratica non sono né interessanti né importanti. Si prega di notare che la conoscenza del fisico non è sbagliata. Forse uno potrebbe persino dedurre la conoscenza dal chimico da esso. Ma manca questa comprensione "di alto livello" dell'interazione delle molecole.

L'intuizione chiave di questi due esempi sono i livelli di astrazione: puoi costruire complessità da semplici strutture .

Cos'altro?

Sappiamo bene cosa in linea di principio è realizzabile con le reti neurali che progettiamo:

  • Una rete neurale progettata per giocare a Go - non importa quanto sofisticata - non potrà nemmeno giocare a scacchi. Ovviamente puoi aggiungere un altro livello di astrazione attorno ad esso e combinare le cose. Ma questo approccio ha bisogno degli umani.
  • Una rete neurale progettata per distinguere i cani dai gatti che ha visto solo i pudel e i gatti persiani probabilmente funzionerà molto male quando dovrà decidere per gli Yorkshire Terrier.

Oh, e ovviamente abbiamo approcci analitici per le reti neurali. Ho scritto la tesi di laurea magistrale sull'analisi e l'ottimizzazione delle architetture di reti neurali convoluzionali . In questo contesto LIME (spiegazioni agnostiche del modello interpretabile locale) è bello:

inserisci qui la descrizione dell'immagine


1
La maggior parte di essi è influenzata da modelli biologici ... Quindi dire che gli scienziati hanno costruito le NN in funzione di un problema è un po 'difficile da credere ... Soprattutto quando nessuno ha idea del perché una particolare architettura o un particolare insieme di iperparametri funzioni bene per un dato problema ... Non sto parlando degli esatti iperparametri, ma nessuno sembra avere un senso generale di quali iperparametri approssimativi potrebbero funzionare per un dato problema (il problema è ben definito) .. Quindi nessuno scienziato non sa cosa sta accadendo dentro un NN.
Dutta,

Pensa ai primi ingegneri automobilistici / aeronautici. Diresti che non sanno cosa sta succedendo all'interno del loro aereo / automobile, perché non li hanno costruiti, perché la loro forma non era aerodinamica?
Martin Thoma,

1
Ofc ... Non sapere qualcosa a causa della mancanza di tecnologia ... È qualcosa di diverso dal non sapere teoricamente ... Credo che fosse la tecnologia nel caso degli aeroplani ... Mentre qui non siamo in grado di elaborare matematicamente ... Dimentica la tecnologia
DuttaA

1

Volevo solo aggiungere qualcosa:

dipende da cosa intendi per scienziato:

Sono uno studente di dottorato in ingegneria elettrica e ho visto così tanti ricercatori lavorare con ANN, in problemi come regressione, controllo di previsione, controllo adattativo e problemi di classificazione.

puoi notare chiaramente che la loro mancanza di capacità di codifica è un grosso svantaggio e non capiscono davvero cosa sta succedendo all'interno di una ANN, ora non sto nemmeno parlando di Deep , fanno fatica a capire cose semplici come ADALINE e ANFIS! tutto quello che li senti dire è: fornisci i dati e si adatterà!


1
Anche se probabilmente hai ragione concettualmente, puoi ottenere alcuni voti e possibilmente essere di aiuto costruttivo se riscrivi la tua risposta per presentarti come un'osservazione sociologica piuttosto che una tirata pedante.
FauChristian,
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.