• Non ci sono risultati.

4. Gestione del traffico e IA

4.3 Reti neurali artificiali

Le reti neurali artificiali sono una classe di tecniche di apprendimento automatico ispirate ai cervelli biologici: l’idea è quella di simulare il funzionamento del cervello umano e animale per ottenere comportamenti intelligenti. Il modello di neurone più diffuso è chiamato neurone sigmoidale ed è costituito da un’unità con n ingressi numerici e un’uscita numerica.

34

4.3.1 Cenni sulle reti neurali artificiali

Una rete neurale artificiale (ANN, Artificial Neural Network) è un modello di

computazione composto da “neuroni” artificiali, che hanno il compito di riprodurre un comportamento intelligente nei sistemi su cui sono state impiegate: l’idea è quella di simulare un cervello umano, cioè capace di prendere decisioni autonome attraverso un processo di apprendimento che aiuta a rispondere a determinati input (che essa

riceve) con determinati output. La capacità che ha la rete di rispondere a questi input è data dal numero dei neuroni di cui è composta e dalle connessioni che li collegano e che definiscono, quindi, la modalità di avviamento del loro funzionamento. Le principali caratteristiche che le contraddistinguono sono:

• Resistenza al rumore: la rete è in grado di produrre una risposta corretta anche se gli vengono forniti dei segnali di ingresso (input) “disturbati”, quindi la capacità del sistema rimane intatta (o quasi completamente).

• Flessibilità d’uso: le ANN possono essere impiegate in molti sistemi, anche se non conoscono i relativi domini su cui sono applicate, poiché il loro processo automatico di apprendimento le rende capaci di adattarsi facilmente a qualsiasi contesto;

• Generalizzazione: anche se la rete riceve una quantità limitata di input o di informazioni a lei sconosciute, è in grado di produrre lo stesso un output attraverso un processo di “somiglianza” che associa gli input ricevuti a risultati già elaborati precedentemente;

• Recupero di memoria: partendo da dati di input incompleti, è possibile fornire comunque una risposta poiché basta un suggerimento per dirigere il processo di elaborazione dell’output e l’intera attivazione del sistema nella direzione giusta.

4.3.2 Struttura di una rete neurale artificiale

Le reti neurali sono strutture semplici costituite da elementi connessi tra loro. Può essere vista come un grafo G = (V, A), i cui nodi V rappresentano gli elementi di processo e gli archi A rappresentano le connessioni tra i vari elementi.

I nodi sono collegati tra loro tramite gli archi, possono ricevere più connessioni e inviare tramite essi dei segnali identici per tutte le connessioni che si intendono utilizzare. Ogni elemento è costituito da una memoria locale, che viene usata da una specifica funzione dell’elemento stesso, in grado di produrre un segnale di output.

Alcuni nodi che hanno le stesse caratteristiche possono essere raggruppati tra loro,

35

andando così a formare lo strato della rete: ad esempio, solitamente, si ha uno strato di ingresso, i cui nodi hanno lo scopo di passare i segnali agli altri elementi del grafo.

Una rete neurale artificiale viene anche chiamata solo “rete neurale”, è un modello matematico e/o informatico di calcolo basato su reti neurali biologiche.

Si tratta di un sistema adattivo, ovvero che cambia la propria struttura in base a informazioni interne o esterne che attraversano la rete stessa e che tramite algoritmi di apprendimento riesce a comprendere.

Ci sono tre principali metodi di apprendimento:

• Apprendimento supervisionato: dispone di un insieme di dati (training set) in cui si comprendono degli esempi riguardo specifici ingressi e relative uscite in modo che la rete possa imparare la relazione e il procedimento che portano ad avere un determinato output, dato il corrispondente input. La rete viene

“addestrata” tramite un opportuno algoritmo, di solito l’algoritmo di “back-propagation”: si tratta di un algoritmo di apprendimento usato nelle reti neurali, confronta il valore di uscita del sistema con il valore da raggiungere (obiettivo) calcolando, tramite una differenza tra i due valori, l’errore rilevato e, basandosi su esso, modifica i parametri della rete facendo convergere i risultati ottenuti verso l’obiettivo desiderato. Se l’apprendimento ha successo, la rete riesce ad individuare la corretta relazione tra gli input e output, ed è anche capace di fare previsioni sul risultato finale. Questo rappresenta l’obiettivo che si pone questa tecnica, cioè calcolare il valore di uscita partendo da determinati valori di ingresso e coppie di valori input- output da cui prendere esempio.

• Apprendimento non supervisionato: si basa su algoritmi che forniscono al sistema una serie di input che esso riorganizzerà sulla base delle caratteristiche in comune che si evidenziano tra loro, per cercare di effettuare ragionamenti e fare previsioni sugli input successivi utilizzando anche metodi probabilistici.

• Apprendimento per rinforzo: l’algoritmo utilizzato prende in considerazione l’ambiente esterno, poiché ogni azione ha un impatto sull’ambiente, il quale risponde in una certa maniera, indirizzando l’algoritmo verso il processo di apprendimento. Questa tecnica differisce dall’apprendimento supervisionato in quanto non vengono considerati degli esempi iniziali, ma si sfrutta una

conoscenza attuale per affrontare situazioni ancora sconosciute.

36

4.3.3 La rete neurale Feedforward

Le reti neurali si basano sulla simulazione di neuroni artificiali opportunamente collegati.

Ci sono molti tipi di reti neurali che si differenziano per la loro tipologia, ovvero il particolare modo di come le sue parti vengono organizzate e interconnesse. Quella più semplice ed utilizzata è la rete neurale Feedforward (Figura 3), costituita da più di due strati di neuroni: oltre lo strato di input e di output se ne aggiungono altri nascosti.

I neuroni ricevono degli stimoli e li elaborano: i valori di ingresso vengono moltiplicati per un certo parametro detto “peso” ed il risultato delle varie moltiplicazioni viene sommato. Se la somma supera un certo valore il neurone si attiva producendo un certo output. Il peso serve a quantificare l’importanza del corrispondente valore di ingresso, cioè un ingresso importante avrà un peso elevato e viceversa. Più neuroni possono connettersi tra loro tramite determinati percorsi che acquisteranno una maggiore importanza se maggiormente utilizzati, tuttavia anche altre combinazioni possono essere considerate con il relativo peso.

Figura 3: Illustrazione di una rete neurale artificiale Feedforward.

In questo tipo di rete ogni neurone è connesso con tutti i neuroni dello strato successivo ma non ha connessioni con i neuroni del suo stesso strato e il segnale si propaga dall’input all’output attraverso queste connessioni, sfruttando anche gli strati nascosti. In particolare, una rete è formata da tre strati principali: lo strato d’ingresso (I), lo strato nascosto (H) e lo strato d’uscita (O). Lo strato d’ingresso si occuperà di trattare gli ingressi calcolando le eventuali operazioni, lo strato nascosto si occupa

37

dell’elaborazione delle informazioni e lo strato di uscita si preoccupa di raccogliere i vari risultati.

Documenti correlati