Che cos’è il Machine Learning? Una delle definizioni più utilizzate è quella coniata dall’informatico americano Tom M. Mitchell autore del libro “Machine Learning” (1997): “Si dice che un programma apprende dall’esperienza E con riferimento a 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”.
Come prima cosa occorre (banalmente) sottolineare che la traduzione italiana per Machine Learning è Apprendimento Automatico. Considerando anche la definizione precedente, un programma si dice che “apprende” (impara) quando riesce a svolgere un compito meglio di prima avendo tratto esperienza (magari dai propri errori) proprio come farebbe un essere umano. L’attività principale dell’apprendimento automatico è pertanto lo sviluppare modelli (algoritmi) capaci di apprendere dai dati, quindi dare l’opportunità alle macchine di imparare così come farebbe un essere umano. In pratica, parliamo di un ramo dell’intelligenza artificiale: l’utilizzo del machine learning, pertanto, permette di ottenere quella che viene chiamata I.A Debole contrapposta a quella che viene chiamata I.A Forte:
I.A Debole sono le macchine che hanno la capacità di svolgere compiti riconducibili all’intelligenza e che non hanno una coscienza.
I.A Forte sono le macchine che sono una vera e propria replica dell’intelligenza umana, che hanno una reale coscienza di se stesse.
I campi di applicazione
L’applicazione del machine learning sta diventando un’abitudine consolidata. Colossi come Facebook, Netflix, Google, Amazon, Apple e tanti altri fanno ricerca e sviluppo su tematiche di machine learning e ne fanno un uso massiccio per i loro sistemi. Addirittura oggi ci sono processori, come gli ARM basati sul Project Trillium, che integrano il machine learning internamente. Ma quali sono gli approcci utilizzati? Si possono considerare principalmente due standard, quello Supervisionato e Non Supervisionato.
Apprendimento Supervisionato (Supervised Learning)
Nell’apprendimento supervisionato la macchina apprende da quello che viene chiamato Training Set che contiene la relazione tra input e output. Per avere un buon training set occorre anche una buona fase di data mining e pre-processing sui dati. Una volta addestrato il modello si può valutarne l’accuratezza utilizzando un Testing Set. Quest’ultimo è simile al Training Set, ma la finalità non è quella di addestrare l’algoritmo di machine learning ma di valutare il modello ottenuto con la precedente fase di addestramento.
Apprendimento non Supervisionato (Unsupervised Learning)
Con l’apprendimento non supervisionato viene sempre usato un Training Set, ma senza fornire alcuna relazione tra input e output. La mancanza di relazione è dovuta al fatto che non si ha conoscenza, a priori, di quale sia. Detto in altri termini non abbiamo un target di riferimento (un output noto) per i dati in input. Pertanto in questo caso si lascia che lo specifico modello trovi le relazioni intrinseche nella struttura dei dati. Dato un nuovo target si ottiene il valore associato a quel target (una probabilità o l’identificativo di un cluster).
Si fa un giusto utilizzo del termine?
Il primo problema del machine learning, però, finisce per essere l’utilizzo dei media di questo termine. Troppo spesso ne parlano come se fosse una blackbox o come se dietro ci fosse qualcosa di “magico”. Spesso viene usato come sinonimo di Intelligenza Artificiale, sebbene sia una branca di quest’ultima. Conoscere le potenzialità di una tecnologia è un passo fondamentale per poterla utilizzare al meglio: per avere maggiori dettagli basta cercare in maniera più approfondita sul web dove si possono trovare libri, articoli scientifici ed esempi tecnici e sicuramente esaustivi.