Machine Learning: cos’è e come funziona
Quando si vuole analizzare una grande mole di dati o sviluppare algoritmi molto complessi, si può ricorrere al Machine Learning, in italiano 'apprendimento automatico": la branca dell'Intelligenza Artificiale (Artificial Intelligence, AI) che permette alle macchine di imparare, senza che siano state programmate apposta per farlo. La macchina apprende partendo da degli esempi, da cui vengono estratti degli schemi (pattern) per la loro classificazione, che vengono poi usati per fare previsioni. In questo blog abbiamo affrontato spesso il tema dei Big Data che, raccolti attraverso sensori IoT, nell'ambito di un sistema per l'Internet of Things, ci aiutano a compiere analisi predittive grazie a 'logiche di Machine Learning". Nei prossimi paragrafi cercheremo di spiegare in modo semplice: cos'è l'apprendimento automatico e come funziona.
Machine Learning non è sinonimo di AI (Artificial Intelligence)
A volte i termini Machine Learning e Artificial Intelligence vengono usati come sinonimi, ma in realtà sono due aree distinte, seppur connesse, dell'elaborazione dati. L'obiettivo dell'AI è realizzare macchine in grado di emulare la mente umana. Quindi, il presupposto perchè questo sia possibile, è che siano macchine in grado (anche) di apprendere. Tuttavia, l'AI non si limita all'apprendimento, perchè include anche il ragionamento, la rappresentazione della conoscenza ed il pensiero astratto. Al contrario, il Machine Learning si limita a far sì che la macchina apprenda dall'esperienza passata. Quindi, è una disciplina molto più legata al Data Mining (cioè l'analisi delle informazioni per prendere decisioni) e alla Statistica che non all'Intelligenza Artificiale.
La definizione di ML
La definizione più nota di Machine Learning è quella proposta da Tom Mitchel, professore al Carnegie Mellon University (CMU):'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". Spiegato con parole semplici: se un programma (o una macchina) migliora il modo in cui esegue un'attività usando l'esperienza acquisita in precedenza, si può dire che ha imparato. Questo avviene senza che la macchina sia stata programmata. Nella programmazione, infatti, è l'uomo che a monte definisce i parametri e i dati necessari per eseguire l'attività e che quindi può stabilire come migliorare le performance della macchina nell'eseguire un compito. Nel Machine Learning, invece, la macchina impara sulla base dell'esperienza. Per capire meglio, ecco un esempio: un computer può giocare a dama e vincere, perchè il programmatore ha scritto il codice che contiene i comandi necessari ad ottenere sempre una strategia vincente. Nel ML, invece, il computer ha poche regole da seguire, ma non ha una strategia a monte, quindi, mossa dopo mossa, impara, finchè non riesce a vincere.
La macchina apprende grazie alla classificazione
E' dalla classificazione che la macchina riesce a riconoscere e categorizzare le cose. Partendo da un panel di dati a sua disposizione, poi, riesce a 'indovinare" (predire) il valore di qualcosa, grazie ai valori che ha registrato precedentemente (storicizzazione delle informazioni). Più dati riceve, più la macchina riesce ad apprendere. Per esempio, sulla base dei parametri di funzionamento principali di un'attrezzatura, è possibile prevedere quando questa avrà bisogno di manutenzione (manutenzione predittiva)
Quindi, il Machine Learning serve ad estrapolare 'conoscenza" dai dati. Ecco un video realizzato dall'Università di Oxford che presenta in modo chiaro e semplice cos'è e come funziona il Machine Learning:
Tre tipi di Machine Learning
Esistono tre tipi di 'apprendimento automatico":
1) Apprendimento supervisionato
Si allena la macchina affinchè usi solo dati che sono stati ben classificati. In questo caso i dati sono già stati contrassegnati con la risposta corretta. Più set di dati ci sono, più la macchina può conoscere l'argomento. Una volta che la macchina è stata addestrata, le vengono mostrati nuovi dati, che non ha mai visto prima. Usando l'algoritmo di apprendimento e sulla base delle conoscenze acquisite in precedenza, la macchina riesce a dare un risultato.
2) Apprendimento non supervisionato
In questo caso la macchina viene allenata usando set di dati non classificati. La macchina non ha valori di riferimento. Esamina i dati a ripetizione finchè non riconosce dei modelli. Quando le viene proposta una classificazione, apprende e restituisce risultati molto velocemente.
3) Apprendimento rinforzato
E' simile all'apprendimento non supervisionato, ma in questo caso vengono classificate le risposte date dalla macchina. Per capire, pensiamo ad un computer che gioca ad una partita a scacchi, se vince, può ricostruire le mosse che hanno portato alla vittoria. Applicando questo modello a milioni di partire, per accumulazione, il computer ottiene una strategia vincente.
Internet of Things, Big Data e Machine Learning
Il Machine Learning è fondamentale se si devono analizzare ed elaborare quantità gigantesche di dati, come i Big Data raccolti grazie agli oggetti connessi ad un sistema IoT, che altrimenti sarebbero impossibili da processare. Grazie al ML, quindi, è possibile selezionare le informazioni che ci servono, per predire eventi futuri e prendere decisioni di conseguenza.