Che cos’è una rete neurale artificiale?

Ciao. Purtroppo nemmeno oggi ho accesso ad un computer. Ho comunque voglia di spendere qualche parola sulle reti neurali artificiali e propongo qualche cenno introduttivo ed un link dove troverai un’applicazione di image recognition.

L’obiettivo degli algoritmi di apprendimento automatico basati su reti neurali è di imitare il comportamento del cervello umano. A partire da un set di dati si può giungere a vari tipi di previsioni utili o addirittura essenziali. Le reti neurali vengono usate per estrarre modelli e rilevare tendenze. Proprio come un cervello umano, le reti sono formate da “neuroni collegati” atti ad eseguire compiti legati ai dati. Permettono di riconoscere qualcosa o trovare corrispondenze tra parti di informazioni e quindi rispondere a domande di vario genere. I risultati vengono passati di neurone in neurone e l’informazione può quindi essere processata da diversi strati o layer di neuroni. I diversi strati possono eseguire diversi tipi di trasformazione sui relativi input. Gli strati che non sono direttamente legati agli input o agli output sono detti nascosti o hidden. Quando gli strati sono più di un determinato numero si parla di rete profonda. L’apprendimento basato su reti profonde è noto come deep learning.

Dal momento che la rete è in grado di cambiare e di adattarsi in base ai dati che passano dall’input all’output, le connessioni tra neurone e neurone vengono ottimizzate al fine di produrre predizioni via via più precise. È per questo che si parla di un vero e proprio “apprendimento” o training della rete che imita il nostro cervello. Puoi pensare che una rete nuova di zecca è un po’ come il cervello di un bambino pronto ad imparare.

Dal punto di vista tecnico, alla base della rete artificiale c’è in genere un sistema di equazioni lineari in cui alle variabili indipendenti (x di input) corrispondono le variabili dipendenti (y di output); i coefficienti detti pesi e i termini noti vanno opportunamente selezionati sulla base di un qualche criterio. Quando si parla dell’ottimizzazione delle connessioni neurali ci si riferisce alla ricerca dei valori ottimali per i pesi di queste equazioni.

Le reti neurali vengono utilizzate per molti scopi come il riconoscimento vocale, le traduzioni automatiche e la medicina. A proposito delle diagnosi mediche, infatti, l’apprendimento automatico che si basa sulle reti neurali artificiali viene sempre più adottato.

Immagina per esempio di fare un test di gravidanza a dei pazienti. Il valore di y_output può essere 0 (test con esito negativo) oppure 1 (test con esito positivo). Ora i tuoi pazienti possono fidarsi della tua diagnosi? Se hai detto ad un uomo che è incinto, puoi essere confidente che si tratti di un falso positivo (errore di tipo I) e che quindi la tua previsione è sbagliata. Infatti per lui y_reale è di sicuro 0! Invece se dichiari non incinta una donna all’ottavo mese con una pancia che non lascia spazio a dubbi hai che y_output è 0 mentre y_reale è 1 ed hai un falso negativo (errore di tipo II).

Bisogna quindi riconoscere i veri positivi e i veri negativi e discriminare invece i falsi positivi e i falsi negativi. Le percentuali dei risultati relativi a queste previsioni vengono tipicamente illustrati in una cosiddetta matrice 2×2 detta di confusione.

Non tutti i predittori si basano sulle reti neurali, ma hanno comunque un ruolo sempre più importante nell’intelligenza artificiale.

Se vuoi approfondire subito le reti neurali, ti suggerisco questo articolo molto più tecnico (in inglese) sulle reti neurali convoluzionali in R. Spero che sia di tuo interesse. Buona lettura. A presto!