X
    Categories: blog

Machine Learning e Data Science: una storia di rivoluzioni

Il 31 ottobre del 1950 Alan Turing, ricercatore all’università di Manchester, ha appena pubblicato un articolo dal titolo ” Computing Machinery and Intelligence”.  Non lo ha pubblicato su una rivista di ingegneria, ma ha preferito un’importante rivista scientifica di ambito psicologico-filosofico: “Mind”. 
L’articolo si apre con una provocazione molto forte: “Can machines think?” Possono le macchine pensare?
Turing ha 37 anni e cinque anni prima, durante la guerra, ha decifrato i messaggi in codice dei nazisti  usando uno dei primi computer, Colossus. 

In quel periodo sta studiando le strategie di giochi come la dama e gli scacchi e ha intuito che le macchine potrebbero apprendere, memorizzare ed eseguire quelle strategie codificabili in regole. Nessun computer dell’epoca è in grado di farlo effettivamente, ma Turing lancia la sfida ai filosofi e agli psicologi, definendo le regole per capire quando una macchina simula l’umano (il  famoso Test di Turing) e iniziando così uno dei dibattiti più intriganti della storia.
Probabilmente Turing non si aspettava che i semi di quel dibattito avrebbero generato i primi risultati molto rapidamente.
Appena due anni dopo Arthur Samuel, giovane ingegnere che lavorava all’IBM, con i computer per l’epoca più potenti al mondo riesce a creare il primo algoritmo in grado di apprendere a giocare a dama partendo da una serie di istruzioni e mosse codificate. Il dibattito si scalda: la dama e gli scacchi sono considerati giochi in cui il pensiero è centrale, dunque apprendere questi giochi di certo richiede abilità cognitive.
L’attenzione si sposta ben presto sul cervello: forse se si potesse costruire un cervello artificiale si potrebbero studiare  e riprodurre artificialmente i meccanismi della cognizione. Mentre filosofi e psicologi dibattono sul tema, Marvin Minsky, giovane e promettente genio dell’ingegneria, viene assunto per lavorare ad un progetto segreto per l’Air Force Office of Scientific Research: il progetto SNARC.


Un neurone artificiale del progetto SNARC

Si tratta della prima rete neurale al mondo, 40 apparecchi collegati in maniera randomica, che simulano il funzionamento dei neuroni regolando la probabilità di far passare o inibire un segnale.  Il progetto fa capire che è possibile che una rete apprenda tramite una serie di tentativi, errori e ricompense dove il segnale deve passare per giungere ad attivare la parte del circuito desiderata. C’è solo un problema: non esiste ancora un modo per far sì che la rete apprenda in maniera autonoma.

Machine Learning: l’apprendimento diventa automatico

Ci vogliono alcuni anni prima che entri in gioco il primo dei protagonisti di questa storia: il Machine Learning (apprendimento automatico). Nel 1957 Frank Rosenblatt, uno psicologo che aveva appena finito il dottorato alla Cornell University, fu assunto ai Cornell Aeronautical Labs a lavorare in un gruppo di ricerca aerospaziale insieme a fisici e ingegneri. E’ in questi laboratori che Rosenblatt venne a sapere del progetto SNARC e elaborò l’idea che cambiò per sempre il corso della storia. Rosenblatt, da buon psicologo, sapeva che le regressioni lineari erano (e sono tuttora) lo strumento perfetto per formulare predizioni (output) in base a una serie di attributi predittori (input) e che questa configurazione era perfetta per simulare lo stato di un neurone automatico, il quale riceve una serie di segnali in input e genera una predizione della quantità di segnale da restituire in output. Questo neurone artificiale, detto percettrone (perceptron) era finalmente in grado  di prendere decisioni automaticamente.  L’invenzione del percettrone ebbe una grandissima risonanza nei media e accese l’entusiasmo di molte comunità di ricerca, soprattutto quelle al di fuori dell’ingegneria pura.

Segue un decennio di euforia nei confronti dell’intelligenza artificiale, un decennio in cui una macchina per la prima volta batte il test di Turing. Si tratta di ELIZA, un programma che simula uno psicologo rogeriano e viene scambiato per un umano dai pazienti che interagiscono con esso tramite chat. ELIZA è in realtà un programma molto semplice basato su regole e keywords, ma prende decisioni in maniera automatica su come rispondere agli input dei pazienti e funziona a meraviglia. L’euforia a metà degli anni ’60 è talmente alta  che vengono immaginate per la prima volta auto a guida autonoma e si stanziano un mucchio di soldi per progetti finalizzati allo sviluppo di General Problem Solvers, ovvero intelligenze artificiali che siano in grado di rispondere automaticamente a qualsiasi tipo di stimolo, in qualunque contesto .


illustrazione delle auto a guida autonoma, circa 1965

Ma nulla di tutto questo si realizza in quegli anni e il 1969, che segna il culmine del progresso per il settore aerospaziale,  inizia invece con una brusca frenata per l’apprendimento automatico e l’Intelligenza Artificiale in generale. In quell’anno esce un importantissimo  libro dal titolo “Perceptrons”. L’autore è Marvin Minsky, uno dei padri fondatori delle reti neurali, che insieme al matematico Seymour Papert dimostra che una rete direzionata di percettroni su3 livelli (feedforward neural perceptrons) non è in grado di produrre alcuni tipi di elaborazioni logiche. Questa dimostrazione fa crollare le speranze di molti ricercatori che speravano di poter produrre cervelli artificiali (la cosiddetta corrente dell’Intelligenza Artificiale forte) e una prima stagione si chiude.

L’arrivo dell’inverno: stop alle reti e via libera alle regole

Iniziano gli anni ’70 e l’entusiasmo intorno all’IA lentamente si placa. Si entra in una fase nuova per l’apprendimento automatico, una fase in cui gli obiettivi vengono ridimensionati e le tecniche ripensate: è il cosiddetto “inverno dell’Intelligenza Artificiale”. Ma nel 1967 era stato pubblicato un articolo, passato inosservato in un primo momento, che aveva il potenziale per aprire nuove frontiere nel campo dell’apprendimento automatico. Era un articolo scritto da Thomas Cover, un professore di Stanford ossessionato dall’idea di poter mettere in relazione la statistica e la teoria dell’informazione. L’articolo descriveva un nuovo metodo di apprendimento automatico in grado di classificare  basandosi sulla distanza degli esempi in uno spazio di attributi come il piano cartesiano. Era una maniera nuova di approcciare l’apprendimento automatico perché implicava che degli esempi prototipici potevano risultare particolarmente significativi nel riconoscimento di altri esempi.  Quando poi nel 1973 Eleanor Rosch dimostrò con alcuni esperimenti di psicologia cognitiva che la categorizzazione avveniva proprio per mezzo di esempi prototipici detti “categorie di base” il cammino del Machine Learning ripartì in direzioni nuove.  Rosch era professoressa di psicologia cognitiva all’università di Berkeley e veniva dalla controcultura e dalla beat generation. la sua ricerca verteva principalmente su come le persone categorizzano i concetti usando attributi e concetti prototipici, che posseggono quegli attributi. Ad esempio un uccello ha delle ali, un becco e vola, sapendo questo siamo in grado di dire che una gallina è più simile ad un uccello che ad un cane, perché ha delle ali e un becco, anche se non vola.

Era la seconda volta che la psicologia aiutava l’apprendimento automatico a fare dei passi in avanti. Anzi, ben presto si scoprì che la strada indicata dalla psicologia cognitiva stava portando nuovamente nella stessa direzione suggerita all’inizio da Turing: sistemi capaci di generalizzare attributi di oggetti noti in regole applicabili poi in nuove situazioni su oggetti ignoti, ma simili. Era il principio cardine degli organismi capaci di adattarsi all’ambiente. Quando nel 1976 uscì “Adaptation in Natural and Artificial Systems” la formalizzazione di questo concetto era avvenuta. L’autore del libro era John Holland, professore di psicologia all’università del Michigan, il quale sviluppò le prime applicazioni di questi sistemi di apprendimento per classificazione (Learning Classifier Systems o LCS) che chiamò Algoritmi Genetici. In realtà si trattava di algoritmi capaci di apprendere regole per prevedere dei risultati di azioni in un ambiente supervisionato,  e queste regole erano formalizzate come combinazioni di attributi del tipo “se l’attributo ha valore  1 allora il risultato sarà 0.5”.

Queste  regole erano elementari ma permettevano di generalizzare incredibilmente anche a partire da pochi esempi, inoltre mettevano in luce un aspetto tutto nuovo: erano comprensibili dagli operatori umani. 

Gli algoritmi a sistemi di apprendimento di classi estraevano conoscenza generalizzata dai dati in un formato perfetto per costruire dei dizionari (Knowldge Bases) applicabili poi in situazioni circoscritte, come i giochi di strategia tanto cari a Turing.  Con questo nuovo metodo di analisi dei dati si apre  negli anni ’80 una stagione caratterizzata da un forte interesse per lo studio dell’estrazione di rappresentazioni di conoscenza dai dati: è l’inizio di quella che diventerà la “data science“. Intanto l’Intelligenza Artificiale stava andando avanti alla grande grazie ai Learning Classifier Systems. Ad esempio nel 1979 degli studenti a Stanford avevano messo dei sensori su un robot a ruote, rendendolo in grado di girare in una stanza autonomamente senza sbattere contro le pareti.

Dalle regole agli alberi

Poi, nel 1984, uno statistico dell’università di Berkeley di nome Leo Breiman propose gli algoritmi ad alberi decisionali (decision trees). Si trattava di insiemi di regole simili a quelle dei Learning Classifier Systems, ma messe in fila dalla regola più predittiva (radice) a quelle meno predittive (foglie). Questo introdusse due concetti fondamentali  dal punto di vista della data science: la selezione degli attributi (attribute selection) e la potatura (pruning). La selezione degli attributi permette di quantificare e selezionare gli attributi più predittivi per la classificazione, mentre la potatura permette di eliminare le regole o gli attributi troppo specifici, agendo sulla qualità della generalizzazione del modello estratto dai dati. A metà degli anni ’80 il Machine Learning stava dunque andando alla grande anche senza le reti neurali.  Tuttavia l’interesse verso l’uso di Neural Networks non si era del tutto arrestato nemmeno dopo la frenata data dal libro di Minsky nel ’69. Già dal 1970 il matematico finlandese Seppo Linnainmaa stava lavorando ad una soluzione teorica per rendere le reti neurali artificiali capaci di propagare all’indietro il segnale, permettendo così alla rete di valutare eventuali errori di percorso. Nel 1986 questa soluzione viene messa in pratica da David Rumelhart, psicologo e matematico che all’epoca era all’università di Stanford e, in linea con lo spirito del tempo, stava studiando le rappresentazioni mentali. Rumelhart e il suo team riescono a creare la prima rete neurale con backpropagation (retroazione), reti capaci di memorizzare i passaggi di segnale tra percettroni e fare valutazioni sull’errore. Queste reti aprirono la strada al dibattito su come funzioni la memoria a breve termine e il loro impiego fu più per scopi speculativi che applicativi, vista la scarsa potenza di calcolo dei computer dell’epoca.

Il primo successo della Data Science

Nel 1989 la data science fa la sua prima rivoluzione. Christopher Watkins, un giovane studente di dottorato a Cambridge, sviluppa “Q-learning“, il primo algoritmo di apprendimento per rinforzo (reinforcement learning). Questo algoritmo è una novità assoluta perché permette di utilizzare la confidenza sulle predizioni del classificatore stesso per migliorare il proprio modello, senza richiedere più un modello dell’ambiente. Fino ad allora un algoritmo poteva apprendere solo se supervisionato, ovvero solo se c’era un risultato, un target score o una target class che l’algoritmo doveva apprendere. Ora non più. Così i primi anni ’90 si aprono all’insegna di un grande entusiasmo per l’ apprendimento non-supervisionato (unsupervised learning), ovvero la ricerca di patterns e regolarità all’interno di grosse quantità di dati, senza necessariamente forzare l’algoritmo ad apprendere una classe target. Nascono tipologie di algoritmi nuovi: gli algoritmi di clustering (raggruppamento) e quelli di associazione (association rule learning).

Gli algoritmi di clustering sono in grado di raggruppare esempi con attributi simili, definendo dei gruppi facili da classificare poi con gli algoritmi di classificazione o di regressione. Invece gli algoritmi di associazione permettono di trovare le regolarità all’interno di un insieme di dati e trovano subito applicazione commerciale. 

Nel 1993 due ricercatori indiani dell’IBM di san Josè, Rakesh Agrawal e Ramakrishan Srikant, applicano algoritmi di associazione su grandi database di acquisti nei supermarket e estraggono regole che associano l’acquisto di prodotti tra loro. Vendono subito consulenze alle grandi catene di supermaket statunitensi e questi cambiano l’ordine dei prodotti sugli scaffali per agevolare l’acquisto dei prodotti più associati o incentivare l’acquisto di quelli meno associati.

Le macchine funzionano meglio se non imitano il cervello

Nel 1995 avvengono quasi in contemporanea altri due passi avanti per il Machine Learning: vengono inventati i Support Vector Machines (SVMs) e le random forests. I  Support Vector Machines vengono introdotti da Corinna Cortes, una computer scientist che all’epoca lavora ad AT&T labs sotto la supervisione del matematico russo Vladimir Vapnik. L’algoritmo, che si basa su una teoria matematica di Vapnik messa abilmente in pratica dalla Cortes, permette di trovare la funzione più adatta a modellizzare i dati, permettendo l’ottimizzazione e la trasformazione dello spazio degli attributi rappresentato su un piano cartesiano multidimensionale. Anche il random forest rappresenta un’ottimizzazione, ma questa volta rispetto ai decision trees. Il primo a sviluppare un algoritmo di random forest è Tin Kam Ho, un computer scientist che lavorava al progetto Watson di IBM, ma ben presto Leo Breiman, già inventore dei decision trees, ne comprende e studia le rivoluzionarie implicazioni statistiche. Il random forest è di fatto il primo algoritmo di Ensemble Learning, ovvero un metaclassificatore che basa i propri modelli sui risultati selezionati da diversi decision trees. Sia i random forest che i Support Vector Machines permettono di fare una cosa nuova: osservare un oggetto da molti punti di vista differenti prima di prendere una decisione sulla sua classificazione. Detta in termini scientifici questi algoritmi permettono di modellizare funzioni non-lineari.

Poi, nel 1997, il programma Deep Blue di IBM batte l’allora campione del mondo di scacchi Garry Kasparov. L’interesse verso l’Intelligenza Artificiale si riaccende nei media e il dibattito iniziato quasi 50 anni prima da Turing prende una piega inaspettata: Deep Blue, a dispetto del nome, non è una rete neurale e non utilizza deep learning, ma piuttosto algoritmi basati su regole e una potente ottimizzazione degli attributi a base di attribute selection e di pruning, nonché di una memoria e una potenza di calcolo enormi per l’epoca.

In quel momento però l’Intelligenza Artificiale non è più la stessa di 40 anni prima. Non si cerca più di simulare il comportamento del cervello, ma si addestrano programmi a eseguire compiti specifici usando gli algoritmi più adatti per ciascun tipo di compito. In questa atmosfera si apre con il nuovo millennio un decennio di cose incredibili che hanno cambiato il mondo per sempre: Larry Page e Sergey Brin sviluppano Pagerank, l’algoritmo che calcola la popolarità delle pagine web e che sta alla base dell’enorme successo di Google.  Un fiume di finanziamenti viene investito in progetti che hanno come obiettivo l’applicazione di modelli di machine learning in tutti gli ambiti. In pochi anni vengono migliorati gli algoritmi di previsione basati su serie temporali e prodotti traduttori automatici, sistemi di Optical Character Recognitionspeech recognitionpersonality recognition e tanti altri. I dataset prodotti per scopi di ricerca vengono sempre più spesso condivisi e usati come benchmark, come MNIST, un database di cifre scritte a mano rilasciato da Yann Le Cun che diventa in poco tempo il riferimento per la ricerca sulla computer vision. Intanto nel mondo delle reti neurali non era stato fatto nessun grande passo avanti dopo il 1986. Almeno apparentemente.

Il ritorno delle reti

Nel 2009 esce un articolo dal titolo “Learning deep architectures for AI”. L’autore è Yoshua Bengio, un professore di ingegneria informatica all’università di Montreal, Canada. Bengio si occupa di reti neurali da almeno un decennio, se ne sta un po’ in disparte rispetto al vortice di innovazione che si sta vivendo  negli Stati Uniti in quegli anni, ma conosce bene la letteratura scientifica e in particolare due lavori del passato rimasti nell’ombra. Il primo è un lavoro del 1980 di Kunihiko Fukushima, il quale in Giappone era riuscito a sviluppare “Neocognitron”, una rete neurale con percettroni specializzati che, in maniera simile all’EnsembleLearning, era in grado di modellizzare una visione sul particolare e una sul generale, estraendo attributi complessi, ma molto utili nell’Optical Character Recognition. Il secondo lavoro rimasto nell’ombra era uscito nel 1997 ad opera di Sepp Hochreiter, un ingegnere Tedesco che aveva  introdotto un algoritmo di long short-term memory (LSTM) potenzialmente in grado di ottimizzare la gestione della backpropagation nelle reti neurali ricorsive e ottimizzare così le risorse di calcolo. Bengio si trovò nella situazione perfetta: aveva messo insieme gli ingredienti giusti e disponeva di computer con una potenza di calcolo adeguata. Sperimentò il Deep Learning. Era il primo passo in avanti delle reti neurali dopo 20 anni, ma ha aperto la strada a una rivoluzione epocale. Il Deep Learning è per la prima volta un processo veramente autonomo, perché è in grado di generare automaticamente non solo un modello predittivo per una classe target, ma anche gli attributi stessi che meglio definiscono quella classe. Le applicazioni del Deep Learning lasciano subito tutti a bocca aperta: nel 2011 il progetto Google Brain riesce a riconoscere immagini dei gatti senza supervisione dalle immagini di Youtube, nel 2014 il progetto DeepFace di Facebook riconosce i volti e altri oggetti nelle immagini con il 97% di accuratezza, e infine nel 2016 AlphaGo di Google batte un umano nel complesso gioco cinese “Go”.

Si è aperta una nuova “estate dell’Intelligenza Artificiale”, una nuova stagione di euforia verso i successi dell’IA, ma soprattutto verso la possibilità di rendere l’IA uno strumento utilizzabile senza avere controllo sugli attributi degli oggetti che si analizzano. 

Questa è un’arma a doppio taglio, che rende l’IA sempre più autonoma nelle sue funzioni, ma meno utile per estrarre conoscenza dai dati. Tutto ciò che è successo attorno nei primi anni 2000, Google compreso, è figlio della ricerca sull’estrazione di conoscenza portata avanti con perseveranza negli anni ’80 e ’90.

La data science si è emancipata dall’intelligenza artificiale. Oggi l’intelligenza artificiale va sempre più verso il deep learning e l’automazione, mentre la data science si concentra sull’estrazione di conoscenza dai dati con algoritmi trasparenti all’analisi da parte di umani. Nei prossimi post vedremo meglio come avvengono le analisi nella data science.

Approfondimenti

[1] Timeline of machine learning

[2] A. M. Turing (1950)Computing Machinery and IntelligenceMind.

[3] T. Cover and P. HartNearest neighbor pattern classificationIEEE Transactions on Information Theory

[4] Ryan J. Urbanowicz and Jason H. MooreLearning Classifier Systems: A Complete Introduction, Review, and RoadmapJournal of Artificial Evolution and Applications

[5] Rakesh Agrawal and Ramakrishnan SrikantFast Algorithms for Mining Association Rules

[6] Tin Kam HoRandom decision forests3rd International Conference on Document Analysis and Recognition

[7] Larry Page and Sergej Brin (1999)The Pagerank citation ranking: bringing order to the webStanford preprint archive

[8] Yoshua BengioLearning Deep Architectures for AI

Fabio Celli: Dopo un dottorato in Natural Language Processing ho fatto ricerca sul riconoscimento automatico di personalità all’università di Trento, per poi approdare a Maggioli nel 2018. Mi occupo di Data Science e Machine Learning da prima che fossero al centro dell’attenzione.
Related Post