Reti neurali artificiali: quando l’IT si ispira al cervello biologico | Parte 2 | Come “addestrare” una rete neurale ad apprendere
Nell’articolo precedente sono state ampiamente analizzate le caratteristiche di una rete neurale artificiale. Riprendendo il concetto, una rete neurale artificiale, a somiglianza della mente umana, è in grado di elaborare grandi quantità di dati d’ingresso, apparentemente tra loro non correlati, e di produrre in uscita una decisione utilizzabile. Questa sua capacità di apprendimento è la caratteristica fondamentale che rende possibile scoprire nella massa dei dati la correlazione cercata.
La prima fase per creare il modello del sistema consiste nella raccolta di tutti i dati necessari e questa è certamente la fase che richiede più tempo perché vanno esplorate tutte le possibilità. La seconda fase consiste nel fare apprendere alla rete neurale, sulla base dei dati raccolti nella prima fase (training set), le relazioni esistenti tra i dati d’ingresso forniti dai sensori e gli output desiderati forniti dagli esperti umani. Anche questa fase di addestramento del sistema può richiedere molto tempo: il sistema deve scoprire ed imparare la relazione che esiste tra tutti i dati d’ingresso relativi alle grandezze tangibili e l’output corrispondente a quel determinato input.
Nello specifico, esistono diversi algoritmi di apprendimento in questa fase utilizzati per istruire le reti neurali e sono divisi in 3 categorie. La scelta di quale usare dipende dal campo di applicazione per cui la rete è progettata e dalla sua tipologia (feedforward o feedback).
Gli algoritmi sono:
- supervisionato;
- non supervisionato;
- di rinforzo.
APPRENDIMENTO SUPERVISIONATO
Nell’apprendimento supervisionato si fornisce alla rete un insieme di input ai quali corrispondono output noti (training set). Analizzandoli, la rete apprende il nesso che li unisce. In tal modo impara a generalizzare, ossia a calcolare nuove associazioni corrette input-output processando input esterni al training set.
Man mano che la macchina elabora output, si procede a correggerla per migliorarne le risposte variando i pesi. Ovviamente, aumentano i pesi che determinano gli output corretti e diminuiscono quelli che generano valori non validi. Questo tipo di machine learning viene utilizzato con reti finalizzate al riconoscimento di immagini e video, nell’elaborazione del linguaggio naturale (Natural Language Processing, NLP), nella visione artificiale, nella bioinformatica e nella sintesi vocale (text-to-speech).
APPRENDIMENTO NON SUPERVISIONATO
In una rete neurale ad apprendimento non supervisionato, la medesima riceve solo un insieme di variabili di input. Analizzandole, la rete deve creare dei cluster rappresentativi per categorizzarle. Anche in questo caso i valori dei pesi sono dinamici, ma sono i nodi stessi a modificarli. Questo tipo di apprendimento è molto impiegato per sviluppare tecniche di compressione dei dati.
APPRENDIMENTO PER RINFORZO
Nelle reti neurali che apprendono mediante l’algoritmo di rinforzo, non esistono né associazioni input-output di esempi, né un aggiustamento esplicito degli output da ottimizzare. I circuiti neurali imparano esclusivamente dall’interazione con l’ambiente. Su di esso, eseguono una serie di azioni. Dato un risultato da ottenere, è considerato rinforzo l’azione che avvicina al risultato; viceversa, la rete apprende di eliminare le azioni negative, ossia foriere di errore. Detto in altri termini, un algoritmo di apprendimento per rinforzo mira a indirizzare la rete neurale verso il risultato sperato con una politica di incentivi (azioni positive) e disincentivi (azioni negative). Usando tale algoritmo, una macchina impara a trovare soluzioni che non è esagerato definire creative. Una rete neurale così implementata, per esempio, è stata utilizzata per giocare ad Arcade Breakout. Risultato: dopo sole 4 ore di continuo miglioramento, i circuiti hanno individuato una strategia di gioco mai ideata da un essere umano in questo videogame. Le reti neurali che utilizzano il reinforcement learning trovano largo impiego nella robotica, nell’automazione dei processi, nella produzione industriali e nell’economia.
La terza fase, l’ultima, ha lo scopo di provare e convalidare il sistema completo su un insieme di dati (validation set). Ovviamente la prova sarà significativa se si sottoporranno all’esame del sistema campioni diversi da quelli usati nell’addestramento. È questo un criterio di verifica generale e fondamentale della fase di apprendimento sia degli esseri umani sia delle macchine.
Questo ultimo passaggio viene anche chiamato di generalisation set. Se gli output del sistema non corrispondono ai risultati forniti dagli esperti umani, può darsi che siano stati trascurati dei fattori d’influenza e quindi il sistema deve essere sottoposto ad un nuovo ciclo di addestramento. Solo quando i risultati del sistema e degli esperti umani risultano compatibili, il modello può essere sviluppato in un prodotto con i relativi hardware e software.