Un metodo per progettare reti neurali ottimalmente adatte per determinati compiti

A method for designing neural networks optimally suited for specific tasks.

Con i giusti blocchi di costruzione, i modelli di apprendimento automatico possono eseguire compiti come la rilevazione di frodi o la filtrazione dello spam in modo più accurato.

MIT researchers have found that neural networks can be designed so they minimize the probability of misclassifying a data input.

Le reti neurali, un tipo di modello di apprendimento automatico, vengono utilizzate per aiutare gli esseri umani a completare una vasta gamma di compiti, dalla previsione se il punteggio di credito di qualcuno è sufficientemente alto per ottenere un prestito alla diagnosi se un paziente ha una certa malattia. Ma i ricercatori hanno ancora una conoscenza limitata di come funzionano questi modelli. Se un dato modello è ottimale per un determinato compito rimane una domanda aperta.

I ricercatori del MIT hanno trovato alcune risposte. Hanno condotto un’analisi delle reti neurali e dimostrato che possono essere progettate in modo da essere “ottimali”, il che significa che minimizzano la probabilità di classificare erroneamente i mutuatari o i pazienti nella categoria sbagliata quando le reti vengono fornite con molti dati di addestramento etichettati. Per raggiungere l’ottimalità, queste reti devono essere costruite con un’architettura specifica.

I ricercatori hanno scoperto che, in determinate situazioni, i blocchi di costruzione che consentono a una rete neurale di essere ottimale non sono quelli che i programmatori usano nella pratica. Questi blocchi di costruzione ottimali, derivati attraverso la nuova analisi, sono non convenzionali e non sono mai stati considerati prima, affermano i ricercatori.

In un documento pubblicato questa settimana nelle Proceedings of the National Academy of Sciences, descrivono questi blocchi di costruzione ottimali, chiamati funzioni di attivazione, e mostrano come possano essere utilizzati per progettare reti neurali che ottengono una migliore performance su qualsiasi insieme di dati. I risultati resistono anche quando le reti neurali diventano molto grandi. Questo lavoro potrebbe aiutare i programmatori a selezionare la funzione di attivazione corretta, consentendo loro di costruire reti neurali che classificano i dati in modo più accurato in una vasta gamma di aree di applicazione, spiega l’autore senior Caroline Uhler, professore nel Dipartimento di Ingegneria Elettrica e Informatica (EECS).

“Anche se si tratta di nuove funzioni di attivazione che non sono mai state usate prima, sono funzioni semplici che qualcuno potrebbe effettivamente implementare per un problema specifico. Questo lavoro mostra davvero l’importanza di avere dimostrazioni teoriche. Se si cerca una comprensione fondamentale di questi modelli, questo può portare effettivamente a nuove funzioni di attivazione che altrimenti non avresti mai pensato”, dice Uhler, che è anche co-direttore del Centro Eric e Wendy Schmidt presso il Broad Institute del MIT e di Harvard, e ricercatore presso il Laboratorio per Informazione e Sistemi di Decisione (LIDS) del MIT e l’Istituto per i Sistemi e la Società dei Dati (IDSS).

Adityanarayanan Radhakrishnan, uno studente di dottorato di EECS e un Eric e Wendy Schmidt Center Fellow, e Mikhail Belkin, professore presso l’Istituto di scienze dei dati Halicioğlu all’Università della California a San Diego, hanno collaborato con Uhler per la scrittura del documento.

Indagine sull’attivazione

Una rete neurale è un tipo di modello di apprendimento automatico che si basa vagamente sul cervello umano. Molti strati di nodi interconnessi, o neuroni, elaborano i dati. I ricercatori addestrano una rete a completare un compito mostrandole milioni di esempi da un insieme di dati.

Ad esempio, una rete che è stata addestrata per classificare le immagini in categorie, come cani e gatti, viene fornita con un’immagine che è stata codificata come numeri. La rete esegue una serie di complesse operazioni di moltiplicazione, strato per strato, fino a quando il risultato è solo un numero. Se quel numero è positivo, la rete classifica l’immagine come un cane, e se è negativo, come un gatto.

Le funzioni di attivazione aiutano la rete a imparare schemi complessi nei dati di input. Fanno questo applicando una trasformazione all’uscita di uno strato prima che i dati siano inviati allo strato successivo. Quando i ricercatori costruiscono una rete neurale, selezionano una funzione di attivazione da utilizzare. Scelgono anche la larghezza della rete (quanti neuroni ci sono in ogni strato) e la profondità (quanti strati ci sono nella rete).

“Risulta che, se si prendono le funzioni di attivazione standard che le persone usano nella pratica e si continua a aumentare la profondità della rete, si ottiene una performance davvero terribile. Mostriamo che se si progetta con diverse funzioni di attivazione, man mano che si ottengono più dati, la rete diventerà sempre migliore”, afferma Radhakrishnan.

Lui e i suoi collaboratori hanno studiato una situazione in cui una rete neurale è infinitamente profonda e ampia, il che significa che la rete è costruita continuamente aggiungendo più strati e più nodi, ed è addestrata per eseguire compiti di classificazione. Nella classificazione, la rete impara a inserire gli input in dati in categorie separate.

“Un quadro chiaro”

Dopo aver condotto un’analisi dettagliata, i ricercatori hanno determinato che ci sono solo tre modi in cui questo tipo di rete può imparare a classificare gli input. Un metodo classifica un input in base alla maggioranza degli input nei dati di addestramento; se ci sono più cani che gatti, deciderà che ogni nuovo input è un cane. Un altro metodo classifica scegliendo l’etichetta (cane o gatto) del punto di dati di addestramento che assomiglia di più al nuovo input.

Il terzo metodo classifica un nuovo input in base ad una media ponderata di tutti i punti di dati di training che gli sono simili. La loro analisi mostra che questo è l’unico metodo dei tre che porta ad una performance ottimale. Hanno identificato un insieme di funzioni di attivazione che utilizzano sempre questo metodo di classificazione ottimale.

“Questa è stata una delle cose più sorprendenti – non importa quello che si sceglie per una funzione di attivazione, sarà sempre uno di questi tre classificatori. Abbiamo delle formule che ti diranno esplicitamente quale di questi tre sarà. E’ un quadro molto chiaro”, dice.

Hanno testato questa teoria su diverse attività di benchmarking di classificazione e hanno scoperto che ha portato ad un miglioramento delle performance in molti casi. I costruttori di reti neurali potrebbero utilizzare le loro formule per selezionare una funzione di attivazione che produca una migliore performance di classificazione, dice Radhakrishnan.

In futuro, i ricercatori vogliono utilizzare ciò che hanno imparato per analizzare situazioni in cui hanno una quantità limitata di dati e per reti che non sono infinite in larghezza o profondità. Vogliono anche applicare questa analisi a situazioni in cui i dati non hanno etichette.

“Nell’apprendimento profondo, vogliamo costruire modelli teoricamente fondati in modo da poterli affidabilmente impiegare in qualche ambiente critico. Questo è un approccio promettente per ottenere qualcosa del genere – costruire architetture in modo teoricamente fondato che si traducono in migliori risultati in pratica”, dice.

Questo lavoro è stato sostenuto, in parte, dalla National Science Foundation, dall’Office of Naval Research, dal MIT-IBM Watson AI Lab, dallo Schmidt Center di Eric e Wendy presso il Broad Institute e da un Simons Investigator Award.