Ora che il machine learning è una cosa mainstream tutti ne parlano e moltissimi lo citano. Ma quello che diciamo del machine learning è corretto? E ci aiuta a capirne le potenzialità e i limiti. Proviamo a cercare le giuste metafore per parlarne.
Sono ormai quattro o cinque anni che l'industria dell'IT ha dato luogo a un esplosione nel machine learning - abbreviato ML -. Quello che prima era una parola per iniziati diviene oggi un termine comune e praticamente tutti ne hanno sentito parlare. Inoltre ogni giorno si assiste alla nascita di nuove startup che propongono risultati mirabolanti e disruptive del mercato grazie al ML.
Anche le grandi aziende stanno ricostruendo tutto il loro business intorno al ML. Questa tecnologia è diventata talmente mainstream e ha così tanto invaso l'orizzonte sociale da meritare le cover story dell'Economist e di BusinessWeek. Ci hanno convinto che il ML è the next big think. Tuttavia se ne sente parlare spesso in modo confuso, irrealistico o con ambiguità che lo fanno equivalere in toto o in parte ad altre tecnologie come il deep learning o alle intelligenze artificiali in senso lato. Proviamo a cercare di capire come si può o si dovrebbe parlare di ML per evitare confusioni.
Chi vuole fare un passo avanti, dovrebbe cercare di capire cosa siano le reti neurali, in teoria, e arrivare così a capire che tutto questo riguarda modelli e dati. Il ML ci permette di trovare modelli o strutture in dati impliciti e probabilistici (quindi "dedotti") piuttosto che espliciti, che in precedenza solo le persone e non i computer potevano trovare. Affrontano una classe di domande che in precedenza erano "difficili per i computer e facili per le persone" o, forse più correttamente, "difficili da descrivere per i computer". E abbiamo seguito interessanti (o preoccupanti, a seconda della prospettiva) dibattiti e demo visive.
Non penso, tuttavia, che abbiamo ancora un solido senso di ciò che significa ML: che cosa significherà per le società tecnologiche o per le imprese in generale, come pensare strutturalmente il ML, quali nuove cose potrebbe realizzare, o cosa significa realmente ML e quali problemi importanti potrebbe effettivamente essere in grado di risolvere.
Tutto questo non è facilitato da un altro termine: "intelligenza artificiale" che tende a terminare qualsiasi conversazione non appena è iniziata. Non appena diciamo 'AI', è come se il monolite nero degli inizi di 2001 Odissea nello spazio appaia al centro della discussione e tutti noi diventiamo scimmie che ci urlano e scuotono i pugni. Non si riesce ad analizzare con sufficiente oggettività il mondo delle 'AI'.
In effetti, penso che si possa proporre un'intera lista di modi inutili di parlare degli attuali sviluppi nell'apprendimento automatico. Per esempio:
I dati sono il nuovo petrolio
Google e la China (o Facebook, o Amazon o ogni altra big company) hanno tutti i dati
L'AI prenderà il posto di tutti i lavoratori
E, naturalmente, dicendo AI e basta come se fosse un termine jolly.
Invece dei modi maggiormente utili con cui parlare di ML, forse, potrebbero essere:
Automazione
Abilitare i livelli di tecnologia
Database relazionali
Perché i database relazionali? Questi sono stati un nuovo livello di capacità fondamentale che modificava ciò che un computer poteva fare. Prima che i database relazionali apparissero alla fine degli anni '70, se si desidera che il proprio database mostrasse, ad esempio, "tutti i clienti che hanno acquistato questo prodotto e vivono in questa città", era normalmente necessario un progetto ingegneristico personalizzato. I database non erano costruiti con una struttura tale che qualsiasi interrogazione arbitraria con riferimenti incrociati fosse una cosa facile da fare, cioè una routine. Se si voleva fare una domanda, qualcuno avrebbe dovuto progettarla, implementarla con un software adeguato e customizzarla per il set di dati in questione. I database erano sistemi di registrazione; i database relazionali hanno trasformato queste raccolte di dati in sistemi di business intelligence.
Questa evoluzione ha cambiato il modo in cui i database potevano essere utilizzati in modo radicale, creando così nuovi scenari e possibilità d'uso e nuove aziende da miliardi di dollari. I database relazionali ci hanno fornito Oracle, ma ci hanno dato anche SAP. SAP e i suoi pari ci hanno fornito catene di approvvigionamento globali just-in-time - ci hanno dato Apple e Starbucks. Negli anni '90, praticamente tutti i software aziendali erano un database relazionale - PeopleSoft, CRM, SuccessFactors e dozzine di altri giravano si database relazionali. Nessuno ha guardato a SuccessFactors o a Salesforce e ha detto "questi prodotti non funzioneranno mai perché Oracle ha tutto il database" - piuttosto, questa tecnologia è diventata un livello abilitante a nuove funzioni della che ha pervaso tutto.
Quindi, questo precedente secondo me è un buon modo per pensare all'oggi: il ML è un cambiamento in quello che possiamo fare con i computer, e questo farà parte di molti prodotti diversi per molte aziende diverse. Alla fine, praticamente tutto avrà del ML da qualche parte al suo interno e nessuno si preoccuperà.
Tuttavia una differenza c'è. Sebbene i database relazionali avessero effetti di economia di scala, esistevano network limitati e pochi effetti del tipo "winner takes all". Il database utilizzato dalla società A non migliora se la società B acquista lo stesso software di database dello stesso fornitore: il database di Safeway non migliora se Caterpillar compra lo stesso prodotto. Lo stesso vale in realtà per l'apprendimento automatico: l'apprendimento automatico riguarda esclusivamente i dati, ma i dati sono altamente specifici per determinate applicazioni. Più dati di scrittura a mano renderanno migliore il riconoscimento della scrittura a mano e più dati sulla turbina a gas renderanno migliore un sistema che predice meglio i guasti nelle turbine a gas, ma uno non aiuta l'altro. I dati non sono intercambiabili.
Questo diventa il cuore del malinteso più comune che emerge parlando del ML - come quando si sente dire che il ML è una singola unica tecnologia general purpose o che un modo pere realizzare HAL 9000 o che Google o Microsoft ne hanno costruito ciascuno * uno * o che Google "ha tutti i dati" o che IBM ha una cosa reale chiamata "Watson". In realtà, questo è l'errore di sempre nel guardare all'automazione: con ogni ondata di automazione, immaginiamo di creare qualcosa di antropomorfo o qualcosa con intelligenza generale. Negli anni '20 e '30 immaginavamo uomini d'acciaio che giravano per le fabbriche con martelli, e negli anni '50 immaginavamo robot umanoidi che giravano per la cucina a fare le faccende domestiche. Non abbiamo ottenuto servitori robotici, abbiamo lavatrici.
Le lavatrici sono robot, ma non sono "intelligenti". Non sanno cosa sia l'acqua o i vestiti. Inoltre, non sono di uso generale nemmeno nel ristretto settore del lavaggio - non puoi mettere i piatti in lavatrice, né i vestiti in lavastoviglie (o meglio, tecnicamente potresti, ma non otterresti il risultato desiderato). Sono solo un altro tipo di automazione, non concettualmente diversa da un nastro trasportatore o una macchina pick-and-place. Allo stesso modo, l'apprendimento automatico ci consente di risolvere classi di problemi che i computer non avrebebro potuto affrontare in precedenza in modo efficace, ma ognuno di questi problemi richiederà un'implementazione diversa e diversi dati, un diverso percorso di commercializzazione e spesso una società diversa. Ognuno di loro è un pezzo di automazione. Ognuno di loro è una lavatrice.
Quindi, una delle sfide nel parlare del machine learning o è trovare una via di mezzo tra una spiegazione meccanicistica della matematica da una parte e le fantasie sull'AI generale dall'altra. Il ML non creerà HAL 9000 - o almeno solo poche persone nel campo pensano che lo farà presto -, ma non è neanche utile chiamarlo "solo statistiche". Tornando ai paralleli con i database relazionali, questo potrebbe essere un po 'come parlare di SQL nel 1980 - come si passa dalla spiegazione della funzione join sulle tabelle all'idea di un prodotto come Salesforce.com? Certo è vero questo significa dire che possiamo chiedere nuovi tipi di domande, ma non è sempre molto evidente quali domande. Puoi fare incredibili dimostrazioni di riconoscimento vocale e riconoscimento delle immagini, ma di nuovo, cosa se ne farebbe una normale azienda?
Quali sono, allora, l'equivalenti delle lavatrici per il machine learning, per le aziende reali? Penso che ci siano due set di strumenti per pensarci.
Il primo è pensare in termini di una processione di tipi di dati e tipi di domande.
L'apprendimento automatico può fornire risultati migliori per le domande che stiamo già facendo sui dati che abbiamo già, semplicemente come una tecnica analitica o di ottimizzazione.
L'apprendimento automatico consente di fare nuove domande sui dati che già si hanno. In terzo luogo, l'apprendimento automatico consente di includere nuovi tipi di dati all'analisi: i computer non erano in grado di capire il contenuto dell'audio, delle immagini o dei video prima e ora, sempre di più, ciò sarà possibile. All'interno di questo panorama, trovo che l'imaging sia un campo molto interessante. I computer sono stati in grado di elaborare testo e numeri fin dall'inizio del loro sviluppo, ma le immagini (e il video) sono state per lo più opache. Ora saranno in grado di 'vedere' nello stesso senso in cui possono 'leggere'. Ciò significa che i sensori di immagine (e microfoni) diventano un meccanismo di input completamente nuovo: una "fotocamera" diviene un nuovo sensore potente e flessibile che genera un flusso di dati (potenzialmente) leggibili dalla macchina. Tutti i tipi di cose si trasformeranno in problemi di di computer vision che oggi non sembrano problemi di questo tipo.
Non si tratta di riconoscere le immagini di gatti. Recentemente ho incontrato una società che fornisce sedili all'industria automobilistica, che ha messo una rete neurale su un economico chip DSP con un economico sensore di immagine per smartphone, per rilevare se c'è una grinza nel tessuto (dovremmo aspettarci ogni genere di usi simili per machine learning in widget molto piccoli ed economici, in grado di fare solo un compito).
Il ML allora Non è utile descriverlo come "intelligenza artificiale": è l'automazione di un'attività che non poteva essere automatizzata in precedenza. Una persona doveva guardare e fare quel compito per ottenere il risultato.
Questo senso di automazione è il secondo strumento per pensare all'apprendimento automatico. Individuare se c'è una grinza nel tessuto non ha bisogno di 20 anni di esperienza - ha davvero bisogno solo di un cervello di mammifero. Infatti, uno dei miei colleghi ha suggerito che l'apprendimento automatico sarà in grado di fare qualsiasi cosa che possa essere fatta anche da un cane addestrato. Questo è anche un modo utile per pensare a dei bias dell'AI (cosa esattamente ha imparato il cane? Cosa c'era nei dati di allenamento? Sei sicuro? Come lo chiedi al cane?). Ma ci dice anche il limite perché i cani non hanno intelligenza generale e buon senso, a differenza di qualsiasi rete neurale che sappiamo costruire. Andrew Ng ha suggerito che il ML sarà in grado di fare qualsiasi cosa ciascuno di noi possa fare in meno di un secondo.
Di fatto sembra che parlare di ML sia una sorta di caccia alle metafore.
Cinque anni fa se si dava a un computer una pila di foto da processare, non poteva fare molto di più che ordinarle per dimensione. Un bambino di dieci anni poteva dividerli in uomini e donne, un quindicenne riconosceva se ritraevano un ambiente fresco o selvaggio e un dottorando poteva dire "questo è davvero interessante". Oggi, con il ML, il computer può svolgere un lavore che corrisponde a quello fatto da un ragazzo di dieci anni e forse addirittura di quindici.
Bisogna essere consapevoli che potrebbe non arrivare mai al livello del dottorando. Ma cosa potremmo fare se avessimo un milione di quindicenni per esaminare i dati? Quali chiamate ascolteresti, quali immagini guarderesti e quali trasferimenti di file o pagamenti con carta di credito controlleresti?
In altre parole, l'apprendimento automatico non deve necessariamente eguagliare esperti o decenni di esperienza o giudizio. Non stiamo automatizzando gli esperti. Piuttosto, stiamo chiedendo "ascolta tutte le telefonate e trova quelli arrabbiate". "Leggi tutte le email e trova quelle ansiose". "Guarda centomila foto e trova le persone bellissime (o almeno quelle strane)".
In un certo senso, questo è ciò che l'automazione fa da sempre; Excel non ci ha dato ragionieri artificiali, Photoshop e Indesign non ci hanno dato designer grafici artificiali così come i motori a vapore non ci davano cavalli artificiali - ci hanno però insegnato a misurare la potenza in cavalli vapore quando questa diventava in quantità molto maggiore di quella di un cavallo.
(Se volessimo forzare la metafora potremmo anche dire che con la precedente ondata di "intelligenza artificiale", i computer di scacchi non ci hanno dato uno scontroso russo di mezza età in una scatola).
Piuttosto, abbiamo automatizzato un compito discreto, su vasta scala.
Dove questa metafora si infrange - come fanno tutte le metafore - è in quei campi dove grazie al ML non solo troviamo cose che possiamo già riconoscere, ma troviamo cose che gli umani non possono riconoscere, o troviamo livelli di pattern, inferenze o implicazione che nessun bambino di dieci anni - o adulto di 50 anni - riconoscerebbe.
Questo è il modo migliore di vedere AlphaGo. AlphaGo non gioca nel modo in cui i computer hanno giocato a scacchi fin'ora, analizzando, cioè, ogni possibile albero di mosse in sequenza. Piuttosto, gli sono state fornite le regole e un consiglio e ha iniziato a cercare di elaborare strategie da solo, giocando più giochi contro se stesso di quanto un umano possa fare in molte vite. Quindi, quali campi di applicazione sono abbastanza stretti da poter essere sfruttati dando a un sistema di ML le regole - o dargli un punteggio, che è una cosa piuttosto equivalente - così che analizzando tutti i dati, come nessun essere umano potrebbe mai fare, potrebbe produrre nuovi risultati?
Mi sembra che sia molto importante iniziare a comunicare in maniera adeguata cosa sia il ML per almeno due motivi. In primo luogo per non creare falsi miti che di fatto possono bloccare i processi di sviluppo o limitarne la comprensione. In secondo luogo perché come in tutti i processi innovativi abbiamo bisogno che una tecnologia diventi diffusa perché possa dare luogo a delle profonde trasformazioni sociali.
Iniziare a trovare modalità esplicative efficaci per il machine learning sembra quanto mai urgente e importante.