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.
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):
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.