1. Introduzione
Il Machine Learning è una branca dell’Intelligenza Artificiale che si occupa di sviluppare algoritmi e modelli che consentano ai computer di apprendere e migliorare le prestazioni in un compito specifico senza essere esplicitamente programmato. Attualmente, il machine learning è utilizzato ovunque. Quando per esempio interagiamo con le banche, acquistiamo online o utilizziamo i social media, sono gli algoritmi di Machine Learning che rendono la nostra esperienza efficiente, facile e sicura. Questa nuova tecnologia si sta sviluppando sempre di più ed è importante capirne bene le potenzialità!
2. Tipologie di Machine Learning
L’apprendimento automatico supervisionato permette di istruire il programma a fornire determinati output a seguito di certi input, sulla base di una serie di esempi forniti precedentemente. Il programma viene dotato di training data (dati di allenamento) suddivisi tra dati di input e i rispettivi dati di output, detti anche 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 si ottiene un algoritmo in grado di stabilire un valore di output per un dato valore di input grazie a quanto appreso durante il training. Un esempio di apprendimento supervisionato lo troviamo nello stabilire se una mail debba essere classificata come spam o meno. Il sistema elabora le email già classificate come non spam cercando una regola generale, un modello in grado di decidere autonomamente dove indirizzare la mia mail.
Nell’apprendimento automatico non supervisionato ci sono solamente dati di input, senza alcun output desiderato. Questo processo consiste nel fornire al programma una serie di dati di input che egli riclassificherà e ed organizzerà sulla base di caratteristiche comuni. Una volta fatto ciò, potrà 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. Questo tipo di apprendimento automatico è molto utilizzato 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.
L’apprendimento semi-supervisionato si trova a metà strada tra l’apprendimento supervisionato e quello non supervisionato. Questo tipo di modello mira a utilizzare una piccola quantità di dati di allenamento etichettati insieme a una grande quantità di dati di allenamento senza etichetta. Le etichette sono le informazioni che indicano la corretta risposta o l’output atteso associato a ciascun esempio nei dati di addestramento. Ad esempio, se stessimo cercando di rilevare messaggi inappropriati in un social network, non c’è modo di ottenere informazioni etichettate a mano su ogni messaggio, poiché ce ne sono troppe. Invece, possiamo etichettare a mano un sottoinsieme di essi e sfruttare le tecniche semi-supervisionate per utilizzare questo piccolo set di dati etichettati per aiutarci a comprendere il resto del contenuto dei messaggi appena arrivano.
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 esterno. Si occupa di problemi di decisioni sequenziali in cui l’azione da compiere dipende dallo stato attuale del sistema e ne determina quello futuro. L’algoritmo viene rinforzato con un premio numerico per ogni volta che compie un’azione corretta, mentre viene penalizzato per le azioni sbagliate. Un esempio comune di apprendimento per rinforzo si ha con il gioco degli scacchi simulato. In questo caso inizialmente le mosse saranno completamente casuali. Quando però il sistema riceverà dei feedback positivi, 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. Alla fine, il sistema darà maggiore peso alle mosse che gli hanno portato maggiori benefici e tenderà a replicare lo stesso comportamento su nuove mosse future.
3. Processo di Machine Learning
Il processo di Machine Learning è composto da diverse fasi:
1. Raccolta e preparazione dei dati: vengono raccolti i dati necessari per addestrare il modello facendo attenzione alla loro qualità e quantità. Essi potrebbero non essere direttamente utilizzabili, perciò può essere necessario eseguire diverse operazioni di miglioramento. I dati vengono poi divisi in due insiemi: il “training set” per l’addestramento del modello e il “test set” per la valutazione delle prestazioni.
2. Scelta del modello: in questa fase, bisogna selezionare, in base al tipo di problema e hai dati a disposizione, il miglior tipo di Machine Learning da utilizzare. Dopodichè, il modello viene esposto ai dati di addestramento e impara da essi per fornire l’output desiderato.
3. Validazione del modello e tuning dei parametri: dopo l’addestramento, il modello viene testato con i dati di validazione (test set) per valutare le sue prestazioni. Questa fase aiuta a capire, tra le altre cose, se il modello generalizza bene su dati mai visti prima e se i parametri impostati sono corretti.
4. Valutazione e manutenzione del modello: infine, il modello viene valutato con dati completamente nuovi (set di test) per misurare le sue prestazioni in condizioni del mondo reale e vengono apportate le opportune modifiche.
È importante monitorare il modello per garantire che continui a funzionare correttamente. Potrebbe essere necessario aggiornarlo periodicamente con nuovi dati per mantenere le sue prestazioni nel tempo.
4. Applicazioni del Machine Learning
Motori di ricerca e pubblicità online
Prevenzioni di frodi e furti nel settore della finanza
Ricerca medica
Sicurezza bancaria
Trasporti e guida autonoma
Gestione risorse energetiche
5. Differenze con il Deep Learning
Deep Learning e Machine Learning sono entrambi branche dell’Intelligenza Artificiale e anche se possono sembrare molto simili, tra esse c’è una grande differenza. Vediamo in cosa differiscono:
- Dati: il Machine Learning utilizza dati strutturati racchiusi in un database ristretto, mentre il Deep Learning utilizza dati non strutturati racchiusi in un enorme database
- Intervento dell’uomo: il Machine learning richiede l’intervento dell’uomo mentre il Deep learning, essendo più complesso, richiede un intervento minimo.
- Tempo: il Machine learning, una volta impostato, funziona rapidamente ma la potenza dei dati è limitata. Invece il Deep learning richiede più tempo nell’impostazione ma i risultati sono istantanei.
- Metodo: il Machine Learning utilizza algoritmi tradizionali per analizzare i dati, apprende da essi e prende delle decisioni. Il Deep learning struttura gli algoritmi in modo da generare una rete neurale artificiale che apprende dai dati e prende decisioni in autonomia.
- Ambiti applicativi: il Machine learning viene usato per la posta elettronica, il riconoscimento vocale, il riconoscimento delle immagini e nella diagnosi delle malattie. Il Deep learning viene utilizzato in ambiti più complicati come l’auto a guida autonoma, robot chirurgici e traduzioni.
6. Conclusioni
Il Machine Learning ha rivoluzionato molti settori, consentendo a sistemi e dispositivi di apprendere, adattarsi e migliorare le prestazioni in modo autonomo. Con ulteriori sviluppi e attenta considerazione delle implicazioni etiche, il futuro del Machine Learning appare promettente e carico di opportunità per migliorare la nostra società.