Nel cervello delle macchine: le reti neurali artificiali, le funzioni e le parole di D’Annunzio

fluid-img

Per ottenere dei risultati da un’intelligenza artificiale è necessario fornire una grande quantità di dati, creando un dataset quanto più ampio possibile: l’elaborazione di questi dati, in base all’input che noi daremo alla macchina, genererà un output, cioè il risultato che ci attendiamo.

Per far sì che questo avvenga bisogna creare “qualcosa” che faccia sì che da un input si crei un output. Se inseriamo in un dataset tutte le poesie scritte da Garbiele D’Annnunzio, e vogliamo che l’IA produca una poesia inedita a partire da quei testi, sarà necessario far passare tra input e output una rete neurale artificiale.

Una rete neurale artificiale è una sorta di struttura che ricorda il meccanismo del nostro cervello: ma 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è “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 dando: se si tratta di testi, la rete neurale affiderà 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.

Ed è così che ogni “neurone” presente ogni livello è collegato a tutti gli altri “neuroni” di un livello prima o di un livello dopo. E ognuno di questi collegamenti si traduce in un numero: prendendo il nome di «pesi» - o «weights». Creando una vera, intricatissima, rete.

Una parola di una poesia di D’Annunzio, nel linguaggio di una funzione si chiama «Variabile». Ogni «variabile» corrisponde a un “neurone” all’interno della rete neurale: ogni variabile è dunque connessa da un «peso» ad altre variabili. Così tutte le parole delle poesie di D’Annunzio caricate nel dataset sono in qualche modo connesse tra loro in una rete che le può elaborareripercorrereconnettere ecc.

Per far sì che tutta questa enormità di numericonnessioni 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 restituisce con quelle giuste che avrebbe dovuto restituire: facendo questo passaggio tantissime volte… la macchina imparerà. Ed è per questo che si parla di «machine learning»: l’argomento del prossimo articolo qui sul blog.