30 ottobre 2018

Machine Learning, quando l’algoritmo pensante si avvicina all’uomo

Imparare dall’esperienza. Quante volte abbiamo sentito questa frase rivolta a noi. Un monito, uno sprone a migliorare le nostre scelte tentando di elaborare la nostra attività esperienziale. Ecco, alla base del concetto di Machine Learning c’è questo processo di apprendimento umano.

Gli uomini (non tutti), spesso, sono in grado di imparare dalle esperienze del passato. I computer, i software e le loro applicazioni, intesi in senso bidimensionale, no. Hanno bisogno di sapere cosa devono fare di volta in volta. Devono essere programmati e seguiranno le istruzioni.

La domanda dirimente è: siamo in grado, oggi, di rendere i computer sensibili alle esperienze del passato? La risposta è sì, siamo in grado. Ecco, questo breve ragionamento è alla base dell’apprendimento automatico: siamo entrati nel mondo del Machine Learning.

Le esperienze veloci, immediate, presenti rappresentano, per i computer, i data. Come possiamo rendere i computer “sensibili” a dati precedenti, già incontrati? Con degli algoritmi, oggi, semplici e facilmente intuibili. Niente di cui diffidare. Nel tempo il concetto di apprendimento automatico ha raggiunto un livello meno astratto e più tangibile.

1959: Arthur Samuel, informatico statunitense, pioniere nel campo dell’Artificial Intelligence (AI), conia il termine “Machine Learning”, identificandone due approcci distinti:

  • Approccio della rete neurale, che approda allo sviluppo di macchine ad apprendimento automatico per impiego generale attraverso una rete di commutazione connessa casualmente, a seguito di una routine di apprendimento basata su ricompensa e punizione (apprendimento per rinforzo);
  • Approccio specifico che, attraverso una rete altamente organizzata, approda allo sviluppo di macchine ad apprendimento automatico solo per attività specifiche. Una procedura che, solo attraverso la supervisione e la riprogrammazione, raggiunge la massima efficienza dal punto di vista computazionale.

Arthur Samuel, applicando alla pratica le sue intuizioni, creò con successo il primo programma di dama basato sull'apprendimento automatico, dando una dimostrazione precoce dei concetti fondamentali dell'AI (che troverà grande applicazione anche nei videogiochi) e del Machine Learning.

 

30 aprile 1986: Tom M. Mitchell, professore e informatico americano, pubblica Machine Learning, l’antesignano di tutti i manuali di approccio “moderno” all’argomento, e scrive:

«Si dice che un programma apprende dall'esperienza E con riferimento ad alcune classi di compiti T e con misurazione della performance P, se le sue performance nel compito T, come misurato da P, migliorano con l'esperienza E».

Mitchell riformula così “l’apprendimento per rinforzo” di Samuel, insistendo sull’assunto secondo cui un programma apprende se c'è un miglioramento delle prestazioni dopo un compito svolto.

Vediamo alcuni esempi tangibili. (Perdonate l'eventuale imprecisione o carenza di dettaglio, si tratta semplicemente di esempi esplicativi).

 

Mercato immobiliare

Supponiamo di trovarci ad esaminare il mercato immobiliare e che il nostro compito sia quello di predire il prezzo di una determinata casa conoscendone la sua dimensione. Abbiamo - come previous data - una casa piccola che costa 70000 euro e una casa grande che costa 160000 euro e dobbiamo stimare il prezzo di una casa di dimensioni medie.

Come farlo al meglio?

Posizioniamo la dimensione delle case in metri quadri sulle ascisse e il prezzo in dollari degli immobili sulle ordinate. Collochiamo, in questo grafico, i prezzi delle case che sappiamo, aggiungendo prezzi di esempi passati (fissati per case di altre dimensioni). Tracciando una linea che meglio si adatti ai data disponibili avremo la miglior risposta possibile in relazione al prezzo da fissare per la casa – incognita (metodo della linear regression).

Come può un computer arrivare a tracciare la linea migliore? Riducendo il margine di errore, attraverso tentativi e precisamente col metodo conosciuto come gradient discent che misurerà la combinazione migliore tra tutti i punti, ovvero la combinazione con la somma delle distanze minore tra tutti i punti presenti e la linea da tracciare. Nella vita reale un software non fa altro che applicare questo metodo (minimizzando ulteriormente l’errore attraverso il metodo least square).

 

Spam

Procediamo con un altro esempio, più vicino all’esperienza di (quasi) ognuno di noi. Come intercettare le decine di mail spam che giungono, ogni giorno, nella nostra casella di posta? Poniamo di aver già eseguito la seguente azione in passato: su un ventaglio di 100 mail arrivate, ne abbiamo flaggate 25, etichettandole come spam.

Concentriamoci sulle 25 collocate in spam.

Di queste 25, 20 contengono la parola cheap. Quindi lo split che si viene a creare è 80/20, ovvero: delle mail contenenti la parola cheap, l’80% configura una mail spam, il 20% no.

Combinando altri “filtri” di questo tipo, si arriva a decodificare mail contenenti spam con precisione ottimizzata.

Stiamo applicando un altro algoritmo di Machine Learning, conosciuto come Naive Bayes Algorithm, anch’esso utilizzato, oggi, per moltissime applicazioni.

Questi sono solo 2 esempi di algoritmi che permettono ad una “macchina” l’apprendimento automatico che, attraverso un set di dati pregresso, conduce alla scelta ottimale.

Il Machine learning (e l’AI) sono imprescindibili per le aziende. Dal mercato immobiliare, alla casella mail, da Google al marketing, dalla sanità alle istituzioni, i campi di applicazione abbracciano ogni settore.

I computer, apprendendo compiti specifici senza essere programmati per farlo, grazie al riconoscimento di schemi tra i dati, generano profitti incredibili per le aziende, in tutti gli aspetti di una “produzione”.

 

Serp

Pensiamo a questo articolo.

Sovente, per scrivere articoli, si attinge ai motori di ricerca, per verificare diverse informazioni. Digitando una o più parole chiave, Google e affini, offrono liste di risultati, le cosiddette Search Engine Results Page (Serp), ovvero algoritmi di Machine Learning. Essi forniscono come output informazioni ritenute attinenti alla ricerca effettuata e possono farlo in base all’analisi di data e di schemi, modelli e strutture presenti nei data stessi.

Imparare dall’esperienza, dicevamo. Spesso (non sempre) permette a noi, essere umani, di migliorare. Imparare dall’esperienza è, per una “macchina”, sinonimo di miglioramento perché una macchina è meno soggetta alle variabili esterne che spesso “disturbano” le scelte di una persona.

Alan Turing, famoso matematico britannico, già nel 1950, si chiedeva: “Le macchine possono pensare?” (nel famoso articolo “Computing Machinery and Intelligence”). Non ancora.

Le macchine possono fare quello che noi pensiamo di fare? Sì.

 

Danilo Stancato

 

Grafici e infografiche da > https://www.youtube.com/watch?v=IpGxLWOIZy4