Magazine Informatica

Cosa sono le reti neurali artificiali

Creato il 30 maggio 2012 da Hnikarr
Tra una scossa di terremoto e l’altra, condizione non certo ottimale per lavorare, vediamo di passare a un argomento più leggero: le reti neurali artificiali.
Le reti neurali artificiali, più spesso abbreviate in “reti neurali”, sono un comune strumento utilizzato nel campo della programmazione di intelligenze artificiali, per affrontare e possibilmente risolvere determinate categorie di problemi, che sarebbero molto più complessi o impossibili da risolvere adeguatamente attraverso strategie tradizionali. Come gli algoritmi genetici, le reti neurali appartengono anche a quella branca dell’intelligenza artificiale che ricorre a meccanismi importati dal mondo della natura, cercando di simularli in forma digitale: se gli algoritmi genetici e la programmazione genetica in generale si appoggiano alle teorie darwiniane dell’evoluzione e della sopravvivenza del più adatto, le reti neurali cercano invece di emulare il funzionamento di quella cosa che si trova dentro il nostro cranio e che ogni tanto ci ricordiamo di utilizzare. In altri termini, una rete neurale artificiale emula il funzionamento di quella rete neurale biologica che siamo soliti chiamare cervello. L’obiettivo di fondo sarebbe quello di realizzare un computer che sappia pensare e, per poterlo raggiungere, si è tentato di utilizzare l’unico modello a disposizione, ossia il cervello umano. Vista la complessità eccessiva di un cervello normale, il passaggio seguente è stato quello di semplificare al massimo il modello biologico, per ottenere qualcosa di sufficientemente primitivo da poter essere implementato con facilità e in tempi ragionevoli: così è nato Renzo Bossi. Scherzi a parte, una rete neurale artificiale si propone come rappresentazione semplificata della rete che collega i neuroni del nostro cervello e determina il nostro funzionamento. Vediamo come. I neuroni sono le cellule che compongono la base di un cervello. Ogni neurone è circondato da un reticolo di dendriti, attraverso cui riceve impulsi dagli altri neuroni a cui è collegato: quando la somma degli impulsi ricevuti supera una determinata soglia, il neurone si “accende” e invia un impulso lungo il suo assone. L’assone è una specie di coda del neurone, alla cui estremità sono collegati i dendriti di altri neuroni, attraverso le sinapsi: un impulso trasmesso lungo l’assone si trasferisce così a migliaia di altri dendriti, che a loro volta lo trasmetteranno ai rispettivi neuroni e così via. I punti importanti da ricordare, per passare alle reti neurali artificiali, sono questi: -i neuroni hanno porte di ingresso, da cui ricevono impulsi; -i neuroni hanno una soglia di attivazione; -i neuroni hanno una porta di uscita, da cui trasmettono impulsi; -i neuroni trasmettono impulsi sono quando hanno superato la propria soglia di attivazione. Per ulteriori dettagli, rivolgetevi al vostro neurologo di fiducia. Una rete neurale artificiale cerca di simulare tutto questo all’interno di un computer o, più precisamente, all’interno di un programma: il suo scopo è di processare i dati che inseriamo nella rete, filtrandoli attraverso una serie di neuroni, per arrivare a produrre un certo risultato. I cosiddetti neuroni, in questo caso, non sono ovviamente cellule ma nodi di una rete. Ogni nodo/neurone è collegato a un certo numero di nodi/neuroni, sia in entrata che in uscita. Dai collegamenti in entrata il nostro neurone riceverà un certo impulso, che corrisponde a un valore numerico: quando la somma dei valori numerici ricevuti è superiore a un determinato numero, che corrisponde alla soglia di attivazione di quel neurone, il neurone si “accende” e invia un impulso attraverso tutte le sue porte di uscita. Anche questo impulso, ovviamente, è numerico e sarà trasmesso a tutti gli altri neuroni connessi alle sue porte di uscita. Otteniamo così una struttura di questo tipo: Cosa sono le reti neurali artificiali I cerchi rappresentano i neuroni e le frecce rappresentano i collegamenti tra i neuroni, il numero all'interno di un cerchio rappresenta la soglia di attivazione di quel neurone e il numero accanto a una freccia rappresenta il valore di input di quella freccia. Se un neurone con una soglia 3 riceve un input 2 e un input 0, il neurone non si accenderà, perché la somma degli input è inferiore alla soglia (2 + 0 è inferiore a 3). Se invece riceve un input 2 e un input 2, il neurone si accenderà (2 + 2 è superiore a 3) e invierà a propria volta un input a tutti i neuroni a cui sono collegate le sue porte di uscita. Unica eccezione a questo schema sono i due livello di ingresso e di uscita, ossia le estremità della rete neurale. Il livello di ingresso, infatti, riceve i dati che noi forniamo alla rete, anziché un impulso, e sulla base di questi dati determinerà il tipo di impulso da inviare ai neuroni del livello successivo. Il livello di uscita, invece, riceverà normalmente gli input dai neuroni del livello precedente, ma sulla base di questi ci fornirà il risultato dell’analisi dei dati, invece di inviare input a un successivo livello di neuroni. L’aspetto più interessante delle reti neurali è che il loro funzionamento interno non è stabilito da noi, ma è costruito autonomamente (o quasi) durante una fase di addestramento della rete stessa. Al momento della creazione, infatti, la soglia di ogni neurone e il valore di output trasmesso agli altri neuroni è assegnato a caso; in seguito, attraverso l’analisi di un quantitativo più o meno grande di dati che noi abbiamo preparato come allenamento, la rete regolerà e bilancerà la propria struttura interna, per calibrarla sulla base del compito che noi le richiediamo di svolgere. La fase di allenamento può essere parecchio lunga e dispendiosa, in termini di calcolo, perché la rete dovrà imparare a processare e catalogare montagne di dati, fino a che non avrà raggiunto una soglia di errore sufficientemente bassa (proprio come succede per gli algoritmi genetici, insomma), ma è anche la fase più affascinante del lavoro, perché è qui che la rete impara a estrarre le regole dalla massa dei dati che le sono sottoposti. Alla fine del processo, se tutto si è svolto correttamente, la rete neurale saprà dare risultati anche sorprendenti, quando messa alla prova con dati reali e non solo coi modelli di allenamento. Una cosa, però, nessuna rete neurale sa dare, al momento: una spiegazione del proprio funzionamento. Per sua natura, una rete neurale funziona come un black box: può fornire risposte molto precise a certi problemi e può anche effettuare previsioni su come potrebbe evolversi una situazione (reti neurali sono spesso utilizzate proprio per prevedere l’andamento dei mercati finanziari), ma non sa dire perché e come ha ottenuto un certo risultato. Funziona, ma non chiedetele spiegazioni su come sia arrivata a quella risposta: una rete neurale sa vedere qualcosa, perché è stata allenata a vederlo, ma non sa spiegare quali tappe abbia seguito per trovare la risposta. Anche per questo motivo, una rete neurale non è la soluzione migliore per qualsiasi problema, ma solo per alcuni problemi. Vediamo quali. Possiamo indicare quattro categorie di problemi, per cui una rete neurale è indicata ed è tipicamente utilizzata. Classificare dati in vari gruppi è un tipico problema da rete neurale: in questo caso, la rete riceverà come input i dati da catalogare e la sua risposta sarà la categoria in cui inserire il dato in questione. Un filtro antispam potrebbe utilizzare una rete neurale per dividere le e-mail in arrivo e separare lo spam dalle e-mail “buone”, imparando anche a riconoscere lo spam in base al contenuto dei messaggi. Riconoscere modelli e schemi all’interno di una grande massa di dati è un altro problema tipico per una rete neurale. Riconoscere una foto o il contenuto di una foto, per esempio, è un compito parecchio complicato per un computer, in condizioni normali, ma una rete neurale può imparare a distinguere, per esempio, la struttura di una fotografia e cercare altre foto simili (con esiti più o meno felici): è l’idea su cui si basa la ricerca per immagini, ossia localizzare i motivi generali nel contenuto di una foto e cercarli in altre foto. Non che i risultati finora ottenuti siano entusiasmanti, ma questo è un altro discorso. Effettuare predizioni sulla base dell’andamento dei dati in suo possesso è un altro lavoro per una rete neurale. Se i dati forniti seguono un ordine cronologico, e la rete è in grado di individuare tendenze di massima nel loro cambiamento, sarà anche in grado di tentare previsioni su come potrebbe proseguire la sequenza di dati. Come è ovvio, l’accuratezza delle previsioni dipende da parecchi elementi, non ultima la quantità e qualità dei dati che le forniamo: predire l’andamento dei mercati finanziari è alla portata di una rete neurale, se i suoi sviluppatori possono fornirle montagne di dati precisi, ma la psicostoriografia appartiene ancora alla fantascienza, perché nessuno dispone di tutti i dati necessari a descrivere con precisione l’andamento dell’intera umanità. Infine, le reti neurali possono essere utilizzare per ottimizzare un risultato già ottenuto con altri mezzi o per trovare soluzioni a problemi complessi, che non si potrebbero risolvere in tempi decenti con altri metodi. L’esempio più tradizionale è quello di trovare percorsi ottimali all’interno di uno spazio di ricerca, da intendersi nel senso più ampio possibile: si va dal semplice trovare la strada più breve su una mappa, alla progettazione di transistor. Alla fine, resta sempre aperta la questione se una rete neurale sia da considerarsi intelligente o meno, questione che coinvolge tutto il campo della cosiddetta “intelligenza artificiale”, ma il dibattito in merito non finirebbe mai. Una rete neurale può fornire autonomamente risposte non prevedibili e non deterministiche, imparando e migliorandosi col suo stesso funzionamento, e questo è sufficiente per poterla considerare “intelligente”, almeno nel senso in cui il termine è usato in questo campo. Da un certo punto di vista, è più di quanto sappiano fare molte persone...

Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :