Oggi si sente sempre più spesso parlare di applicazioni delle reti neurali artificiali ai problemi connessi all’intelligenza artificiale ed al machine learning. Vediamo in breve, ed in maniera molto semplificata, di cosa si tratta e come queste tecnologie possano effettivamente aiutarci a risolvere problemi di natura ingegneristica.
Le reti neurali artificiali
Una Rete Neurale Artificiale costituisce un modello matematico adattivo il cui scopo è quello di simulare il funzionamento delle reti neurali biologiche all’interno di un sistema informatico. Tale modello viene rappresentato come un grafo orientato con nodi (neuroni artificiali) ed archi (pesi sinaptici) e, in linea di massima, è schematizzabile mediante tre livelli (o macrocategorie):
- Strato di ingresso: che riceve ed elabora i segnali in input adattandoli alle richieste dei neuroni della rete;
- Strato nascosto: che esegue il processo di elaborazione e può anche essere strutturato con più colonne-livelli di neuroni;
- Strato di uscita: che raccoglie i risultati dell’elaborazione dello strato nascosto e li trasferisce alle richieste di eventuali successivi strati/livelli.
Affinché tale sistema possa svolgere il ruolo per il quale è stato progettato, è necessario che venga “addestrato” ovvero che “apprenda”, attraverso l’utilizzo di dati empirici, come comportarsi nel momento in cui sarà utilizzato nella risoluzione del problema stesso. Esistono diverse tipologie di apprendimento, applicabili a seconda dei casi di interesse e/o dei dati a disposizione:
- Supervisionato: vengono forniti dei dati di esempio in input ed i “corrispondenti” dati di esempio in output in modo tale che il sistema inferisca il legame tra questi due insiemi e ne estrapoli una regola generale riutilizzabile per risolvere problemi dello stesso tipo;
- Non supervisionato: vengono forniti solo set di dati in input senza alcuna indicazione del risultato desiderato. Il sistema, in autonomia, dovrà individuare eventuali cluster di dati ed esplicitare schemi e modelli nascosti avvalendosi, in genere, di metodi topologici e/o probabilistici.
- Per rinforzo: interagendo con l’ambiente circostante (da dove verranno acquisiti dati di input), il sistema deve cercare di raggiungere un obiettivo che gli consenta di ricevere una “ricompensa” – in caso di obbiettivo in target con le aspettative – ed una “punizione” in caso contrario.
- Semi-supervisionato: vengono forniti al sistema sia set di input con i corrispondenti output (come nell’apprendimento supervisionato) che set di input privi dei corrispondenti output (come nell’apprendimento non supervisionato) sempre con l’obiettivo di identificare regole, funzioni e modelli utili nella risoluzione dei problemi.
Applicazione delle reti neurali artificiali nel campo dell’IA
Come si è anticipato all’inizio, le reti neurali artificiali sono spesso utilizzate nel campo dell’intelligenza artificiale per affrontare e tentare di risolvere determinate categorie di problemi. Nonostante la loro dimostrata utilità, non si può dire che queste reti siano effettivamente “intelligenti” (nell’accezione standard del termine): l’intelligenza, per come la conosciamo noi, risiede essenzialmente nel programmatore che, dopo aver analizzato il problema da risolvere, ha scritto del codice, progettato un algoritmo o implementato un’applicazione dedicata a questo compito.
Ad un certo livello di astrazione, possiamo considerare una rete neurale artificiale come una black box in grado di fornire dei risultati affidabili ed attendibili a partire da una serie di dati di ingresso senza avere una esaustiva spiegazione del perché e di come tali dati siano stati ottenuti. E’ fondamentale tener presente che la bontà e la precisione dei dati di output sarà comunque fortemente legata alla qualità e soprattutto qualità dei dati in input.
Puntualizzati questi brevi, ma fondamentali concetti, possiamo affermare che una rete neurale trova un produttivo campo di applicazione in tutte quelle problematiche dove si richiede una classificazione di dati, dove si vogliono individuare dei modelli e degli schemi all’interno di una grande mole di dati, effettuare previsioni ed addirittura migliorare dei risultati ottenuti con altri metodi.
Da qui si evince facilmente che le aree di applicazione di una rete neurale artificiale possono includere moltissime delle tematiche strettamente correlate all’Intelligenza Artificiale come controllo di veicoli e processi, simulatori di giochi, riconoscimento di features e pattern (radar, object detection, image recognition, face detection, ecc.), riconoscimenti di testi o di audio, diagnosi medica, applicazioni finanziarie, data mining e molte altre.
Concludendo questa panoramica sulle reti neurali artificiali, possiamo dire che queste possono essere viste come un sistema statistico molto robusto che, a partire da un contesto “noto” (o quasi), avendo a diposizione una grossa quantità di dati di buona qualità ed un elevata potenza di calcolo (e qui ci verrebbe in aiuto il concetto di Big Data pensando alle innovative piattaforme ed ai performanti servizi cloud come AWS di Amazon, Azure di Microsoft, GCP di Goolge e simili), che, correttamente addestrati, sono in grado di trarre conclusioni utili per situazioni “nuove” o non ancora esplorate.
Redatto da Marco Pirrone e Lucia D’Adamo