Cosa sono le reti neurali artificiali

fluid-img

Nel mondo delle intelligenze artificiali si parla spesso di un concetto che, agli occhi di un “non addetto ai lavori”, può assumere i contorni del fantascientifico: le reti neurali artificiali.

Cosa vuol dire questa terminologia? Siamo effettivamente arrivati a un punto dello sviluppo tecnologico in cui si è in grado di realizzare una versione artificiale delle connessioni che caratterizzano il cervello umano? L’espressione “reti neurali” (come anche la dicitura stessa di “intelligenza artificiale”) creano una suggestione che porta a ipotizzare qualcosa del genere.

Beh, è così… più o meno! Proviamo a fare chiarezza, affidandoci al libro di Michele Laurelli Dialoghi con una intelligenza artificiale. (Acquistabile a questo link)

Non proprio un’imitazione del cervello umano

Una rete neurale artificiale è una sorta di struttura che ricorda il meccanismo del nostro cervello ma che, in realtà, è molto più semplice.

Tra input e output bisogna infatti organizzare dei “neuroni”: non veri neuroni, ovviamente, ma una serie di numeri, che vanno da 0 a 1, e che vengono disposti in “layers” – cioè a “livelli”. Il primo livello è l’input, l’ultimo è l’output… e in mezzo ci sono tutti i livelli di “neuroni” all’interno dei quali la rete opererà.

Questi “neuroni”, essendo in effetti composti da un linguaggio numerico binario, permettono di tradurre nel linguaggio della macchina quello che le stiamo affidando: se si tratta di testi, la rete neurale assegnerà a ogni lettera (e poi a ogni parola, e poi a ogni frase ecc. seguendo i “livelli”) un numero; se si tratta di foto, i neuroni di input saranno i singoli pixel che compongono l’immagine, affiancando un numero a ogni gradazione di colore. E così via.

È per questo che, in matematica, la rete neurale altro non è che una funzione: una relazione tra un dato in entrata e uno in uscita. È un po’ come i distributori automatici: per ogni prodotto al loro interno c’è un codice da digitare. Così, in una rete neurale, tramite le funzioni, per ogni elemento presente nel dataset c’è un numero che lo associa al linguaggio della macchina.

In questo modo ogni “neurone” presente a ogni livello è collegato a tutti gli altri “neuroni” di un livello prima o di un livello dopo. Ognuno di questi collegamenti si traduce in un numero e prende il nome di “peso” - o “weight”. Così si crea una vera, intricatissima, rete.

Un “cervello” da allenare (un po’ come il nostro)

Per far sì che tutta questa enormità di numeri, congiunzioni e stratificazioni possa produrre qualcosa di sensato… beh, sarà necessario “allenare” la macchina: darle la possibilità di fare una vera e propria attività di “training” che le permetta di “comprendere” quale output è il più affine a quanto richiesto in principio.

Una rete neurale, iniziando a operare sostanzialmente in modo casuale, inizia a confrontare le risposte sbagliate che consegna con quelle giuste che avrebbe dovuto restituire: facendo questo passaggio tantissime volte la macchina imparerà. Questa azione di apprendimento della macchina cade sotto l’espressione di “Machine learning”.

Ed è da qui, poi, che comincia la vera “magia” che le intelligenze artificiali sono in grado di generare.