Nel 1997 Tom Mitchell definì il machine learning come: “un programma che apprende dall’esperienza E con riferimento a 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”. Quest’articolata definizione sta semplicemente a significare che si ha apprendimento automatico ogni qual volta un programma migliora le proprie prestazioni dopo aver svolto un compito.
Come abbiamo visto nell’articolo precedente (Come funziona una Rete Neurale?), gli algoritmi di apprendimento utilizzati per addestrare le reti neurali sono tre: apprendimento supervisionato, apprendimento non supervisionato, apprendimento per rinforzo.
QUALI SONO LE DIFFERENZE DI BASE TRA GLI ALGORITMI DI APPRENDIMENTO?
La differenza sostanziale tra queste tre tipologie di training del machine learning è il livello di disponibilità dei ground truth, ovvero le conoscenze preliminari di ciò che dovremmo ottenere dal modello con un determinato input.
Ma andiamo a vedere con più attenzione quali sono le differenze tra questi tre livelli di apprendimento automatico.
1) APPRENDIMENTO AUTOMATICO SUPERVISIONATO
L’apprendimento automatico supervisionato permette di istruire il programma ad elaborare autonomamente previsioni sui valori di output rispetto ai valori di input, sulla base di una serie di esempi che gli vengono precedentemente forniti.
Il programma viene quindi dotato di training data suddivisi tra dati di input e i rispettivi dati di output, detti target. In questa fase il modello impara a capire le relazioni tra input e target e si migliora per ogni coppia di dati forniti. Alla fine del processo abbiamo dunque un algoritmo in grado di stabilire un valore di output per un dato valore di input grazie a quanto appreso durante il training.
I dati verranno quindi “etichettati” attraverso due diversi metodi:
- Classificazione : si ha nel caso in cui la variabile output desiderata sia di natura categorica, ovvero qualitativa nominale o ordinale.
- Regressione : si ha nel caso in cui la variabile output desiderata sia di natura quantitativa.
Esempio di apprendimento supervisionato
Un caso in cui l’apprendimento supervisionato è particolarmente efficace si ha nello stabilire se una mail debba essere classificata come spam o meno. Il sistema elabora i miei esempi cercando di strutturare una regola generale, un modello in grado di decidere autonomamente dove indirizzare la mia mail.
Bisogna sempre tenere a mente che l’output “esatto” è determinato interamente dai dati di addestramento, quindi non sempre le etichette dei dati forniscono soluzioni corrette nelle situazioni del mondo reale. Infatti, la presenza di etichette “errate” ridurrà chiaramente l’efficacia del modello.
2) APPRENDIMENTO AUTOMATICO NON SUPERVISIONATO
Nell’apprendimento automatico non supervisionato abbiamo solamente dati di input, senza alcun output desiderato.
L’apprendimento non supervisionato consiste nel fornire al programma una serie di dati di input che egli riclassificherà e ed organizzerà sulla base di caratteristiche comuni così da poter effettuare ragionamenti e previsioni anche sugli input successivi.
In questo ambito i dati di input non devono essere “etichettati”, sarà infatti l’algoritmo a trovare relazioni esistenti tra gli stessi e attraverso l’allenamento migliorerà le sue prestazioni.
Esempio di apprendimento non supervisionato
Questa tecnica di riconoscimento di pattern è molto utilizzata sui siti online che propongono articoli consigliati come prodotti, video, ricerche e quant’altro. Il sito o il motore di ricerca allena l’algoritmo con enormi numeri di ricerche e impara a correlare gli interessi dei visitatori proponendo negli articoli consigliati quelli che ritiene più attinenti.
3) APPRENDIMENTO AUTOMATICO PER RINFORZO
L’apprendimento automatico per rinforzo punta a realizzare agenti autonomi in grado di scegliere azioni da compiere per il conseguimento di obiettivi tramite interazione con l’ambiente in cui sono immersi.
A differenza degli altri due paradigmi l’apprendimento per rinforzo si occupa di problemi di decisioni sequenziali in cui l’azione da compiere dipende dallo stato attuale del sistema e ne determina quello futuro. La qualità dell’azione viene definita da un sistema di premi e penalità, o meglio, l’algoritmo viene rinforzato con un premio numerico per ogni volta che compie un’azione corretta e viene penalizzato per le azioni sbagliate.
Esempio di apprendimento automatico per rinforzo
Un esempio comune di apprendimento per rinforzo si ha con videogiochi e simulatori, come il gioco degli scacchi. In questo particolare caso inizialmente le mosse saranno completamente casuali. Quando però il sistema riceverà dei feedback positivi, come ad esempio mangiare una pedina, allora tale mossa riceverà un peso maggiore e conseguentemente un rinforzo positivo. In caso di azione negativa invece il valore dei pesi su quell’azione andrà in decremento.
Dunque, in base a tali rinforzi, il sistema darà maggior peso alle mosse che gli hanno portato maggiori benefici e tenderà a replicare lo stesso comportamento su nuove mosse future. Quindi possiamo affermare, proprio come avviene nelle azioni umane, che più il sistema gioca, più diventerà bravo a giocare.