L’intelligenza artificiale e le reti neurali attirano oggi un interesse enorme. Sempre più persone cercano su un motore di ricerca come funzionano le reti neurali, che cosa sono e su quali principi si basano.
Il tema è popolare, ma anche complesso: dietro questi sistemi ci sono algoritmi di apprendimento automatico usati per scopi diversi, dalla classificazione dei dati alla stima del rischio in scenari decisionali.
Che cosa sono le reti neurali e quali tipi esistono?
Una rete neurale, nella definizione classica, è una sequenza di neuroni collegati tra loro da sinapsi. È una rappresentazione semplificata dei corrispondenti sistemi biologici.
Un programma strutturato come rete neurale analizza i dati in ingresso e memorizza il risultato ricavato da determinati esempi. Se in seguito incontra un insieme di dati simile nei cicli di apprendimento, può recuperare dalla memoria il risultato più coerente con il caso corrente.
Molti immaginano una rete neurale come una sorta di cervello umano. L’idea è in parte corretta, ma il cervello umano è un sistema troppo complesso per essere riprodotto da una macchina anche solo in minima misura. Una rete neurale è prima di tutto un programma ispirato al funzionamento del cervello, non un suo vero equivalente.
Una rete neurale è formata da neuroni collegati tra loro: ciascun neurone riceve informazioni, le elabora e le passa a un altro neurone. Il singolo neurone tratta il segnale sempre nello stesso modo.
Da dove nasce allora un risultato diverso? Dalle sinapsi, cioè dai collegamenti tra neuroni. Un neurone può avere un numero molto elevato di sinapsi, capaci di rafforzare o indebolire il segnale; inoltre le loro caratteristiche possono cambiare nel tempo.
La scelta corretta dei parametri delle sinapsi permette di ottenere in uscita una trasformazione adeguata dei dati in ingresso.
Una volta chiarito il concetto generale, le reti neurali possono essere classificate secondo alcuni criteri principali. Il primo riguarda la struttura degli strati. Ogni rete ha uno strato iniziale di neuroni, chiamato strato di input.
Questo strato non esegue calcoli né trasformazioni. Ha un solo compito: ricevere i segnali in ingresso e distribuirli agli altri neuroni. È l’unico strato comune a tutti i tipi di reti neurali; la struttura successiva è il criterio principale con cui vengono suddivise.
- Rete neurale a singolo strato. In questa struttura, dopo l’arrivo dei dati nel primo strato di input, l’informazione passa subito allo strato che produce il risultato finale. Lo strato di input non viene conteggiato, perché riceve e distribuisce soltanto i segnali. Il secondo strato esegue i calcoli necessari e restituisce direttamente l’output finale. I neuroni di input sono collegati allo strato principale da sinapsi con pesi differenti, che determinano la qualità delle connessioni.
- Rete neurale multistrato. Oltre agli strati di input e output, questo tipo di rete include strati intermedi. Il loro numero dipende dalla complessità del modello. La struttura ricorda più da vicino una rete neurale biologica. Questi modelli sono stati sviluppati più di recente; prima molti processi venivano implementati con reti a singolo strato. Una rete multistrato offre quindi più possibilità rispetto al modello precedente. Durante l’elaborazione, ogni strato intermedio rappresenta una fase di trattamento e distribuzione dell’informazione.
In base alla direzione con cui l’informazione passa da un neurone all’altro attraverso le sinapsi, le reti possono essere divise anche in due categorie.
- Reti feedforward, o unidirezionali. In questa struttura il segnale si muove solo dallo strato di input verso quello di output. Il movimento inverso non è possibile. Soluzioni di questo tipo sono molto diffuse e vengono usate con successo per attività come riconoscimento, previsione e clustering.
- Reti con retroazione, o ricorrenti. In queste reti il segnale può muoversi sia in avanti sia all’indietro. L’output può tornare all’ingresso; di conseguenza, l’uscita di un neurone dipende dai pesi, dai segnali in ingresso e dagli output precedenti che rientrano nel sistema. Queste reti hanno una forma di memoria a breve termine, grazie alla quale i segnali vengono ricostruiti e integrati durante l’elaborazione.
Questi non sono gli unici modi per classificare le reti.
Le reti possono essere suddivise in omogenee e ibride in base ai tipi di neuroni che le compongono. Possono inoltre essere eteroassociative o autoassociative, a seconda del metodo di apprendimento, supervisionato o non supervisionato. Un’ulteriore classificazione riguarda lo scopo per cui la rete viene progettata.
Dove si usano le reti neurali?
Le reti neurali vengono impiegate per risolvere problemi molto diversi. Per le attività più semplici basta un normale programma informatico; per problemi un po’ più complessi, come previsioni elementari o soluzioni approssimate di equazioni, si usano programmi basati anche su metodi statistici.
I problemi di livello superiore richiedono invece un approccio diverso. È il caso del riconoscimento di immagini, del riconoscimento vocale o delle previsioni complesse. Nel cervello umano questi processi avvengono spesso in modo inconsapevole: quando una persona riconosce e memorizza un’immagine, non percepisce il meccanismo con cui lo fa e quindi non può controllarlo direttamente.
Le reti neurali aiutano proprio in questi casi: sono pensate per eseguire processi di cui non conosciamo un algoritmo esplicito.
Le reti neurali trovano quindi applicazione in diversi ambiti:
- riconoscimento, oggi uno degli ambiti più estesi;
- previsione dell’andamento successivo, utile nel trading e nei mercati finanziari;
- classificazione dei dati in ingresso in base a parametri specifici, come fanno i sistemi automatici di valutazione del credito quando decidono se approvare un prestito sulla base di vari indicatori.
Le capacità delle reti neurali le rendono molto richieste. Possono essere addestrate a svolgere molte attività: giocare, riconoscere una voce specifica e altro ancora. Poiché le reti artificiali sono costruite prendendo spunto da quelle biologiche, possono essere addestrate a eseguire processi che l’essere umano svolge in modo non consapevole.
Che cosa sono neurone e sinapsi?
Nel contesto delle reti neurali artificiali, un neurone è un’unità di calcolo. Riceve informazioni dallo strato di input, svolge operazioni semplici e trasmette il risultato al neurone successivo.
In una rete esistono tre tipi di neuroni: di input, nascosti e di output. Se la rete è a singolo strato, non contiene neuroni nascosti. Esistono anche unità particolari, chiamate neuroni di bias e neuroni di contesto.
Ogni neurone gestisce due tipi di dati: input e output. Nel primo strato, i dati in ingresso coincidono con quelli in uscita. Negli altri casi il neurone riceve la somma delle informazioni provenienti dagli strati precedenti; poi i valori vengono normalizzati, cioè quelli fuori dall’intervallo desiderato vengono trasformati tramite una funzione di attivazione.
Come già detto, una sinapsi è un collegamento tra neuroni, e ogni collegamento ha un proprio peso. È questa caratteristica a modificare l’informazione durante la trasmissione. Durante l’elaborazione, il dato passato da una sinapsi con peso maggiore avrà più influenza sul risultato.
Il risultato dipende quindi soprattutto dalle sinapsi, che attribuiscono pesi diversi ai dati in ingresso, mentre i neuroni eseguono ogni volta lo stesso tipo di calcolo.
All’inizio, i pesi vengono impostati in modo casuale.
Schema di funzionamento di una rete neurale
Per capire il principio di funzionamento di una rete neurale non servono competenze particolari. Una certa informazione arriva allo strato di input. Attraverso le sinapsi viene trasmessa allo strato successivo; ogni sinapsi ha il proprio coefficiente di peso e ogni neurone successivo può ricevere più sinapsi in ingresso.
L’informazione ricevuta dal neurone successivo è quindi la somma di tutti i dati, ciascuno moltiplicato per il proprio coefficiente di peso. Il valore ottenuto passa nella funzione di attivazione e produce un output, che viene trasmesso oltre finché non raggiunge l’uscita finale. Al primo avvio la rete non restituisce risultati corretti, perché non è ancora addestrata.
La funzione di attivazione serve a normalizzare i dati in ingresso. Esistono molte funzioni di questo tipo, ma alcune sono particolarmente diffuse. La differenza principale tra loro è l’intervallo di valori in cui operano.
- Funzione lineare f(x) = x. È la più semplice in assoluto e viene usata soprattutto per testare una rete neurale appena creata o per trasferire i dati senza modificarli.
- La sigmoide è considerata la funzione di attivazione più comune e ha la forma f(x) = 1 / 1+e-×. Il suo intervallo di valori va da 0 a 1. Viene chiamata anche funzione logistica.
- Per includere anche valori negativi si usa la tangente iperbolica. F(x) = e²× - 1 / e²× + 1 - questa è la sua forma, con un intervallo da -1 a 1. Se la rete neurale non deve gestire valori negativi, non conviene usarla.
Per fornire alla rete i dati su cui dovrà lavorare, servono set di addestramento.
Un’iterazione è un contatore che aumenta a ogni set di addestramento.
Un’epoca è un passaggio completo sull’intero set di addestramento. Il conteggio aumenta ogni volta che la rete completa quel ciclo.
Per addestrare correttamente la rete bisogna quindi eseguire i set in sequenza, aumentando progressivamente il numero di epoche.
Durante l’addestramento emergono errori. Si tratta della differenza percentuale tra il risultato ottenuto e quello desiderato. Questo valore dovrebbe diminuire man mano che aumentano le epoche; se non accade, probabilmente c’è un errore nella progettazione o nell’implementazione.
La SEO black hat può dare risultati rapidi, ma poco affidabili.
La lunghezza di un articolo dipende dal settore e dal tema del sito. Scopri qui quale formato è più adatto a un negozio online.
I robot giornalisti possono sostituire i giornalisti umani? Leggi il nostro articolo.
Che cos’è un neurone di bias e a che cosa serve?
Nelle reti neurali esiste anche un altro tipo di neurone: il neurone di bias. Si distingue dai neuroni principali perché il suo input e il suo output valgono sempre uno. Inoltre, questi neuroni non hanno sinapsi in ingresso.
Di solito se ne inserisce al massimo uno per strato e non possono essere collegati tra loro tramite sinapsi. Non è utile posizionarli nello strato di output.
A che cosa servono? In alcune situazioni una rete neurale non riesce a trovare la soluzione corretta perché il punto necessario si trova fuori dall’area raggiungibile. I neuroni di bias servono proprio a spostare l’area di definizione.
Il peso della sinapsi modifica la curvatura del grafico della funzione, mentre il neurone di bias consente uno spostamento lungo l’asse X, così che la rete possa raggiungere un’area altrimenti non accessibile. Lo spostamento può avvenire sia verso destra sia verso sinistra. Negli schemi, i neuroni di bias spesso non vengono rappresentati: il loro peso viene considerato automaticamente nel calcolo del valore in ingresso.
I neuroni di bias permettono inoltre di ottenere un risultato quando tutti gli altri neuroni restituiscono 0 come parametro di output. In quel caso, indipendentemente dal peso della sinapsi, proprio quel valore verrebbe trasmesso a ogni strato successivo.
La presenza di un neurone di bias può correggere questa situazione e produrre un risultato diverso. L’utilità dei neuroni di bias si valuta testando la rete con e senza di essi e confrontando i risultati.
Per ottenere risultati non basta però creare una rete neurale. Bisogna anche addestrarla, e questo richiede metodi specifici e algoritmi dedicati. Non è un processo semplice: per implementarlo servono conoscenze tecniche e lavoro accurato.
LIVEsurf
IT
RU


.bf739e4e9fd1c7bfdfa4.png)








