Le reti neurali sono un sistema d’elaborazione distribuito progettato per emulare il funzionamento delle strutture neuronali del cervello per ottenere prestazioni cognitive in qualche modo paragonabili a quelle umane. Una tecnologia d’intelligenza artificiale (AI) oggi apprezzata in un numero sempre maggiore di applicazioni, utilizzabile attraverso i processi dell’addestramento delle reti neurali e l’adattamento delle connessioni.
I neuroni artificiali operano associando i dati in ingresso con dei pesi, ricavando una somma e quindi producendo il risultato in uscita. Le informazioni che raggiungono il primo strato della rete neurale, lo strato d’ingresso, sono costituite da una serie di valori contenuti in un record. Quanto viene prodotto in uscita dal primo strato di neuroni artificiali fa da input allo strato successivo e così via. Lo strato successivo è detto “livello nascosto” e possono esservi molteplici livelli nascosti in una rete neurale.
Lo strato finale della rete neurale, d’uscita, è quello in cui si consolida la corrispondenza tra nodi e classi, ossia dove viene prodotto il risultato. Ogni singolo passaggio dei dati attraverso la rete produce l’assegnazione di un valore a ogni nodo in uscita e il risultato finale è assegnato alla classe che ha ottenuto la somma con più alto valore.
Come avviene l’addestramento delle reti neurali
L’acquisizione della conoscenza consiste nella regolazione di una serie di parametri corrispondenti ai differenti pesi da assegnare alle varie connessioni della rete. L’addestramento della rete neurale si traduce nel compito di aggiustare i pesi attraverso l’effettuazione di un gran numero di comparazioni dell’iniziale classificazione (all’inizio del tutto arbitraria) con quanto suggerito dall’apprendimento.
Nella fase d’addestramento delle reti neurali con training supervisionato, a ogni record di dati presentato in ingresso c’è associato un valore come risultato. Per esempio, per un sistema di riconoscimento d’immagine, gli oggetti che devono essere identificati. Dal confronto tra i valori calcolati dalla rete e i valori corretti, è possibile stabilire il livello d’errore per ogni nodo che serve per aggiustare i pesi nei livelli nascosti della rete neurale in modo che i risultati siano quelli attesi.
Una caratteristica delle reti neurali è supportare processi d’apprendimento iterativo, in cui la presentazione dei record di dati che descrivono le situazioni è accompagnata dalla regolazione dei pesi associati con i valori forniti in input. Ripetendo il processo più e più volte, la rete impara ad aggiustare i pesi per produrre il corretto output.
I segreti nell’addestramento delle reti neurali
L’addestramento delle reti neurali è una fase chiave per renderle utilizzabili, processo che richiede set di dati efficaci, scelti in funzione della specifica applicazione. A questo scopo, esistono librerie compatibili con i differenti framework di machine learning e per ambiti d’applicazione.
Se la rete neurale dimostra di non apprendere nel modo atteso, allora è probabile che i dati forniti non contengano le informazioni realmente rilevanti per il risultato che si vuole ottenere. Il risultato sarà analogamente insoddisfacente anche nel caso in cui non si siano forniti abbastanza dati per completare l’addestramento della rete neurale. In generale, serve avere molti dati a disposizione sia per l’addestramento sia per ricavarne una quota da utilizzare come set di dati di validazione.
La relazione tra data-set e dimensioni della rete neurale
Il numero di neuroni artificiali che compongono i singoli strati della rete neurale e gli strati utilizzati determinano la capacità complessiva del sistema di rilevare relazioni complesse. Se il processo risulta separabile in stadi multipli, può esserci un vantaggio ad aggiungere ulteriori strati alla rete neurale rispetto a processi che non hanno questa caratteristica.
La quantità di dati d’addestramento della rete neurale è in relazione con il numero degli elementi di processo che sono utilizzati negli strati nascosti della rete neurale. Per calcolarle il rapporto più efficace, gli esperti suggeriscono di partire dal numero dei casi previsti nel data-set d’addestramento della rete neurale e di dividerlo per la somma dei nodi presenti negli strati d’ingresso e d’uscita della rete. Quindi dividere il risultato ottenuto per un fattore di scala tra 5 e 10 a seconda del livello di rumore atteso nei dati (5 più rumore, 10 meno).
L’uso di un numero esagerato di neuroni rispetto ai casi su cui avviene l’addestramento si traduce in una memorizzazione completa del data-set, che non permette di raggiungere il livello di generalizzazione utile per l’interpretazione dei nuovi data-set.