Introduzione alle reti neurali

0

Qualcuno di voi ricorderà sicuramente che negli anni sessanta e settanta, si faceva un gran parlare di “Cervelli elettronici”. Facile che ancora oggi si possa sentire questa definizione pronunciata, soprattutto, fra gli over 50. Ovviamente era una definizione completamente sbagliata e frutto della insufficiente informazione dell’epoca, soprattutto fra i media. Le macchine dell’epoca erano sicuramente elettroniche ma ben poco spartivano con un “cervello”. Ma oggi? E’ forse arrivato il momento di rispolverare il termine?

Quando si parla di intelligenza artificiale, in realtà si parla di un insieme estremamente variegato e complesso di algoritmi. Quello che quasi tutti hanno in comune è che tentano di simulare, in modi più o meno precisi, il funzionamento delle reti di neuroni degli animali. Reti di neuroni che non esistono solo all’interno del cervello umano ma nel cervello di praticamente tutti gli animali. E’ evidentemente una caratteristica vincente, premiata da miliardi di anni di evoluzione.

Ma non solo, anche l’intestino ha una sua rete neurale di controllo, denominata ENS, che presiede al controllo di tutto l’apparato digerente. Se volete, un esempio lampante di rete neurale verticale, come molte delle reti neurali artificiali di cui parleremo. Anzi, da qui in poi parleremo solo di reti neurali artificiali, tralasciando quelle biologiche.

Ogni rete neurale è composta di quattro elementi principali: l’ingresso dei dati, l’uscita dell’elaborazione, i nodi ed i collegamenti fra i nodi. E’ nei nodi, simulatori dei nostri neuroni, dove avviene effettivamente l’elaborazione: quando il nodo è stimolato nel modo giusto, genera un impulso che giunge ai nodi del livello successivo. Uno strato di nodi (node layer) è una riga o un piano di nodi.

I nodi prendono il loro input dallo strato precedente ed inviano il loro output allo strato successivo. Quando una rete è composta da più di tre strati, allora stiamo parlando di “Deep Learning”, mentre una rete “tradizionale” è composta da tre strati: input, nodi di elaborazione ed output.

Nelle reti multilayer, ogni strato di nodi è pre-addestrato su un set distinto di caratteristiche che provengono dagli output dello strato precedente. Più ci si addentra nella rete neurale, più caratteristiche complesse i nodi sono in grado di riconoscere, in quella che possiamo definire come gerarchia delle caratteristiche. Che è anche una gerarchia della complessità.

Questo rende le reti Deep Learning in grado di gestire informazioni veramente complesse, con milioni di parametri, ed in grado di scoprire strutture e schemi latenti all’interno di dati non strutturati e non preorganizzati. Se volete, altri nomi per dati non strutturati possono essere immagini, fotografie, testi, video, registrazioni audio, sensori biomedici ecc.

E’ l’addestramento che consente alle reti DL di essere così performanti nello svolgere il loro compito. Durante la fase di addestramento, che deve essere condotta in modo estramamente rigoroso con dati supervisionati (denominato test set), ogni strato di nodi tenta di trovare un equilibrio in grado di ricostruire quanto più da vicino il test set. Questa minimizzazione dell’errore, ripetuta per migliaia di volte, consente ad ogni nodo di imparare il modo più corretto di trattare i dati in input, estraendone così le caratteristiche.

Nel complesso le reti neurali imparano a riconoscere correlazioni esplicite o implicite fra certe caratteristiche rilevanti, creando un collegamento fra alcuni segnali presenti nella caratteristiche analizzata e l’etichetta che vi è stata applicata. Non molto diverso da un bambino che correla il rumore dell’oggetto che fa cadere con la sua consistenza.

In questo contesto, più informazioni riusciamo a dare alle reti neurali DL, nella fase di addestramento, tanto più possiamo attenderci risultati affidabili. Questo però non deve trarre in inganno, la qualità dell’addestramento dipende in modo diretto dalla qualità dei dati che gli diamo in pasto. E qui conta l’esperienza e la rigorosità con la quale viene prodotto il Test Set e possiamo riportare il concetto anche a livello umano: cosa imparerà un bambino se diciamo sempre “gatto” davanti alla foto di una tigre?

Una rete DL termina con un layer di uscita, che classifica ed assegna una somiglianza ad una particolare etichetta con la quale la rete è stata addestrata. Quindi, per riportare all’esempio precedente, una rete addestrata con immagini categorizzate di felini, può darci in output una similitudine dell’85% che l’immagine che gli mostriamo rappresenti una tigre.

0%
0%
Awesome
  • User Ratings (2 Votes)
    8.6
Share.

About Author

Creativo, innovatore ed inventore (suo malgrado), co-founder ed ideatore del progetto LifeTip, ideatore dell’algoritmo Mygeopin e, seriamente, Development Director di Pragmasystems Ltd. Si occupa da sempre di sviluppare software per qualunque dispositivo sia programmabile, dai microprocessori allo sviluppo di soluzioni in cloud. E’ consulente e figura di riferimento per varie aziende italiane ed inglesi su aspetti legati alla gestione delle registrazioni audio, sicurezza ed alta affidabilità. Lavora rigorosamente in multitasking, implementa discutibili algoritmi di gestione degli eventi e il clock interno non gli fa mai saltare un pasto (sigh!). Il tempo libero è tutto dedicato, invano, alla riprogrammazione del suo terminator di 7 anni. Dal primo settembre ha ricevuto una nuovissima rete neurale sulla quale sperimentare… ma sua moglie lo fa avvicinare solo per cambiare i pannolini :-|

Leave A Reply