Regolare i piroli: approccio alle reti neurali
7 min readGli esseri umani raccolgono dati da tantissimo tempo, come saprà bene chiunque studi statistica. Negli ultimi dieci anni, però, l’uomo ha generato più dati di quanti ne ha prodotti in tutta la storia umana (Shakespeare e Divina Commedia compresi), dando il via alla nuova epoca: l’era dell’informazione e quindi dell’intelligenza artificiala (AI).
Tali dati possono assumere una varietà apparentemente infinita di forme – video girati da un’auto in corsa, rapporti di visite al pronto soccorso, temperature di superficie nell’Artide, likes su Facebook, registri di nascite, click su pubblicità online, transazioni effettuate con carte di credito, oscuramenti di stelle causate dal transito di pianeti, scambi commerciali, telefonate, biglietti acquistati, trascrizioni procedimenti legali, cinguettii di veri uccelli o su twitter – pressoché qualsiasi cosa possa essere catturata, registrata e rappresentata in forma digitale.
L’apprendimento, invece, si presuma derivi principalmente dall’esperienza, dalla pratica, dall’allenamento e non solo dal ragionamento sebbene quest’ultimo rappresenti una componente fondamentale. Dire che qualcosa è stato appreso non significa solo che quel qualcosa è stato afferrato e immagazzinato, come accade ai dati di un database, bensì deve essere rappresentato in qualche modo che possa essere messo in uso. In linea generale si può dire che i sistemi in grado di apprendere lo fanno estraendo schemi (pattern) dai dati.
Cosa c’è di nuovo quindi?
La vasta scala e alcune nuove tecnologie computazionali che sembrano imitare certi aspetti del cervello umano, danno l’idea che forse siamo davvero ad un passo dallo scoprire almeno alcuni dei segreti più nascosti circa il funzionamento della mente. Il nuovo approccio all’AI, incentrato sui dati, viene chiamato machine learning, apprendimento automatico delle macchine. Una tecnica specifica (sotto categoria) del machine learning è il deep learning: approccio alle reti neurali.
Una rete neurale artificiale è un programma ispirato da determinati ipotetici principi organizzativi di una vera rete neurale (come il nostro cervello). La relazione tra reti neurali artificiali e reali esprime perlopiù un’aspirazione. Alcuni ricercatori, nel campo delle neuroscienze computazionali, sono impegnati nel tentativo esplicito di capire come è davvero strutturato il cervello umano e di simularlo al computer, con lo scopo di capirne il funzionamento. Ad altri ricercatori, appartenenti al mainstream dell’IA, non interessa tanto capire se i loro programmi riproducono il cervello quanto se risolvono problemi pratici di qualche interesse.
L’aspetto interessante riguarda il fatto che sappiamo abbastanza circa la struttura del cervello; ossia che è composto da una massa di cellule omogenee chiamate “neuroni”, interconnesse tra di loro per mezzo di sinapsi e che si scambiano segnali elettrochimici. Quando i segnali eccedono un certo livello o formano un certo schema, i neuroni “si attivano”, cioè lo segnalano agli altri neuroni a cui sono connessi.
E ne sappiamo un bel po’ anche a proposito della struttura generale del cervello: quali strati e quali regioni sono di solito coinvolte in determinate attività, quali alla vista, alla sensazione di fame, al fare calcoli aritmetici, al regolare il battito cardiaco, al riconoscere volti e muovere l’alluce.
Sorprendentemente, tuttavia, si è capito ben poco della struttura, come fanno cioè i neuroni a connettersi per svolgere questi compiti. In altre parole, sappiamo poco di come il cervello è cablato (metaforicamente parlando). Ed è precisamente questa l’area di interesse dei ricercatori di AI che tentano di costruire reti neurali. Nei loro programmi, essi cercano di simulare il comportamento dei neuroni come elementi individuali, per poi sviluppare tecniche di connessione tra di loro e studiarne i risultati.
In una rete neurale artificiale, i neuroni sono di solito organizzati in una serie di strati o livelli; i neuroni appartenenti a ciascun livello sono connessi solo a quelli dei livelli immediatamente superiore ed inferiore; le interconnessioni hanno normalmente la forma di pesi numerici, come ad esempio, la rappresentazione dello stato “non connesso” e quello “saldamente connesso”.
Il livello più basso, in realtà, riceve input dall’esterno. Per esempio, ogni neurone di basso livello potrebbe processare informazioni relative ad uno specifico punto (pixel) proveniente da un’immagine. I neuroni ai livelli più alti (chiamati “livelli nascosti”) ricevono input solo dai neuroni sottostanti. L’intera struttura riceve quindi una serie di esempi, come immagini di gatti, e i pesi salgono verso l’alto (e spesso di nuovo verso il basso) finché il tutto non è “accordato” per riconoscere i gatti, la qual cosa è indicata da un particolare pattern di neuroni, che si attivano di solito al livello più alto.
Se ne potrebbe desumere che il modo di allenare una rete neurale artificiale a riconoscere i gatti sia mostrare immagini con e senza gatti, specificando quali sono quelle “con”. Il vantaggio delle reti neurali artificiali risiede nella possibilità di saltare uno dei due passaggi: si possono mostrare alla rete solo le foto con i gatti e poi non serve aggiungere altro. Questo è ciò che viene chiamato “apprendimento supervisionato”. Com’è possibile che la rete apprenda cosa sia un gatto senza sapere nulla del mondo, né tantomeno di gatti?
Le immagini di gatti, di per sé, contengono schemi — ossia tutto ciò che viene riconosciuto come i musi, i baffi, le zampe dei gatti e così via — in una apparentemente inesauribile varietà di posizioni, colori e angolature. Ma ciò che in effetti una rete neurale artificiale individua sono correlazioni incredibilmente sofisticate e complesse tra le varie immagini, indipendentemente dal fatto che esse siano capovolte, deformate, parzialmente oscurate o simili. Dopo un allenamento svolto su qualcosa come milioni e milioni di immagini, una rete neurale artificiale sviluppa la capacità di individuare schemi simili in immagini mai viste in precedenza.
In altre parole, impara da sola a riconoscere i gatti (o in casi più seri i tumori in una radiografia). La domanda se questo abbia o meno a che fare con il modo in cui noi umani impariamo a riconoscere i gatti rimane aperta. Ciò che è indiscutibile, invece, è che questo metodo funziona, e funziona anche piuttosto bene. L’ultima generazione di sistemi di questo tipo è in effetti di gran lunga superiore agli esseri umani in numerosi compiti che riguardano il riconoscimento.
Ora, immaginate di suonare una chitarra ad alto volume e per un po’ di tempo, musica in chiave di Fa diesis. Le corde, come è ovvio, vibreranno “per simpatia”. A quel punto, inizierete ad allentare o a stringere lentamente il pirolo di ciascuna corda, badando a quanto ognuna di esse sta vibrando, e lasciandole nella posizione in cui ciascuna di esse vibra di più: un processo laborioso perché, ovviamente, le corde non rispondono solo alla musica che risuona nella stanza ma anche alle vibrazioni delle altre corde (risonanza).
Dovrete perciò aspettarvi di ripetere l’intero processo numerose volte prima che le cose inizino ad assestarsi al punto in cui girare i piroli significhi solo diminuire la vibrazione della corda corrispondente. Dopo ciò, suonerete una serie di brani musicali in chiavi diverse, facendo caso a quanto vibrano le corde. Noterete probabilmente che la vibrazione sarà più forte quando suonerete canzoni in chiave di Fa diesis senza che nessuna se ne accorga.
Ecco, avete appena costruito un riconoscitore in chiave di Fa diesis utilizzando un processo automatizzato che non richiede conoscenza della musica né di cosa significhi suonare in Fa diesis piuttosto che in Re bemolle o in qualsiasi altra chiave.
Decidete tuttavia che, sebbene questo processo abbia funzionato, esso ha richiesto troppo tempo. Così, per far prima, la volta successiva muovete i piroli con opportuni aggiustamenti (“attivare” più o meno i piroli) ricavati nella fase precedente (“addestramento”) partendo da posizioni diverse, cioè da un’accordatura diversa da quella standard.
Qualcosa di molto simile avviene nel campo della ricerca sulle reti neurali artificiali, dove gran parte degli sforzi consiste nel capire come regolare al meglio (“girare i piroli”) le condizioni iniziali, propagare il peso delle connessioni neurali e far sì che convergano verso la migliore – o la più accettabile – delle soluzioni secondo un criterio che minimizzi un’opportuna funzione di “costo”, o come dicono gli anglosassoni “di perdita” (loss function).
Riassumendo, le reti neurali artificiali possono essere pensate come costruzioni che risuonano con modelli arbitrariamente complessi presenti nei loro input. Sono specchi della loro stessa esperienza. In tal senso, esse non “imparano a fare qualcosa” nel senso comunemente espresso da questa frase, cioè non sviluppano una comprensione di principio delle relazioni e delle proprietà del “mondo”.
Piuttosto, esse somigliano a imitatori incredibilmente talentuosi, capaci di trovare le correlazioni e a rispondere ai nuovi input come se dicessero “questo mi ricorda di…” e, nel fare ciò, di imitare le migliori strategie distillandole da un gran numero di esempi.
Una domanda apertamente filosofica è: questo approccio equivale a comprendere le relazioni di causa-effetto? Gli esseri umani fanno esattamente la stessa cosa oppure c’è di più nel modo in cui impariamo e interagiamo con il mondo? E se alla fine il risultato (il comportamento) è lo stesso, questa distinzione ha senso?
LINK UTILI:
What Are Neural Nteworks – IBM
A Beginner’s Guide to NNs and Deep Learning
Rubrica: “Il Pensiero Artificiale“
Sono un ricercatore presso Co.Mac – CFT, un importante gruppo italiano che opera nell’ambito degli impianti industriali. Laureato in ingegneria Meccanica con specializzazione in Meccatronica al Polimi. Attualmente studio automazione con particolare focus verso gli algoritmi di intelligenza artificiale e le sue applicazioni nel mondo reale.
Comunicare significa donare parte di noi stessi, ed è questo il motivo per cui la divulgazione scientifica è una delle mie più grandi passioni.