Machine learning
Il machine learning (ML) è una disciplina della computer science che studia gli algoritmi di apprendimento automatico di una macchina. E' considerata una branca dell'intelligenza artificiale.
A partire da un insieme di dati di esempio detto training data ( dataset o training set ), gli algoritmi di ML costruiscono un modello decisionale che gli permette di classificare correttamente degli oggetti o prendere decisioni razionali su un determinato problema.
Uno dei vantaggi del machine learning è che non coinvolge direttamente il progettista. Il modello decisionale viene costruito dalla macchina tramite gli esempi e dall'esperienza. Non è sviluppato dal programmatore. L'addestramento è automatico, quindi è meno costoso, più rapido e con minore rischio di errore.
Le applicazioni pratiche del machine learning. Gli algoritmi di machine learning sono usati in molte attività. Ad esempio, sono usati nei filtri anti-spam delle email, nel riconoscimento dei caratteri e delle immagini, nella visione artificiale, ecc.
Esistono diverse tipologie di algoritmi di machine learning.
Le principali sono le seguenti:
- Supervised learning. Nel machine learning supervisionato il training data contiene degli esempi con etichette che indicano la corretta classificazione di ogni singolo esempio. Fanno parte dell'apprendimento supervisionato: la classificazione, (ad esempio, distinguere tra immagini di gatti e cani) e la regressione (ad esempio, prevedere i prezzi delle case).
- Semi-supervised learning. Nel machine learning semi-supervised il training data contiene alcuni esempi con l'etichetta della soluzione e altri esempi non risolti (senza etichetta).
- Unsupervised learning. Nel machine learning non supervisionato il training set contiene gli esempi senza etichette. Non ci sono le risposte corrette. L'algoritmo cerca degli schemi nei dati. Ad esempio, può essere utilizzato per segmentare i clienti in diversi gruppi basati su comportamenti simili.
- Reinforcement learning. Nel reinforcement learning ( apprendimento per rinforzo ) la macchina prende le decisioni che massimizzano una funzione di ricompensa. In questo tipo, un agente impara a prendere decisioni ottimizzando una ricompensa. Viene spesso utilizzato in scenari come i giochi o la navigazione di robot, dove l'agente deve esplorare e sperimentare per trovare la strategia migliore.
Oltre a queste tipologie ne esistono altre, come l'apprendimento semi-supervisionato, l'auto apprendimento (self learning), feature learning ecc.
- Feature Engineering
È il processo di selezione e trasformazione delle variabili di input per migliorare le prestazioni del modello di machine learning. - Apprendimento Profondo (Deep Learning)
È una sottocategoria di machine learning che usa reti neurali profonde. Ha guadagnato popolarità per la sua capacità di gestire grandi quantità di dati e per la sua efficacia in compiti complessi. Le reti neurali sono modelli ispirati al funzionamento del cervello umano, costituiti da strati di nodi ("neuroni") che elaborano i dati. Le reti neurali profonde hanno molti strati e sono potenti nello svolgere compiti complessi come il riconoscimento di immagini o il linguaggio naturale.
Le fasi del machine learning
Un processo di machine learning è suddiviso in fasi:
- Raccolta dati
Nel machine learning, la raccolta dati è un processo cruciale che implica l'assemblaggio di un insieme di dati che rappresentano accuratamente il problema da affrontare. Questi dati, che possono essere immagini, testi, numeri o altri tipi, sono utilizzati per addestrare e testare gli algoritmi di apprendimento automatico. È fondamentale che questi dati siano di una quantità sufficiente e di qualità, per garantire che il modello impari in modo efficace e possa generalizzare bene su nuovi dati non visti durante l'addestramento. - Preparazione e pulizia dei dati
Questa fase implica la correzione, l'organizzazione e la trasformazione dei dati grezzi in un formato adatto all'analisi. E' un processo che include attività come la rimozione di dati errati o irrilevanti, la gestione di valori mancanti, la normalizzazione, e la codifica dei dati, in modo che possano essere efficacemente elaborati dai modelli di machine learning. Questo step è fondamentale per garantire l'accuratezza e l'efficacia dei modelli predittivi. - Addestramento (training)
L'addestramento si riferisce al processo di creazione di un modello in grado di interpretare e processare i dati. Durante l'addestramento, il modello analizza un set di dati noti (chiamati "dati di addestramento" o "training set") per apprendere da essi. In questo modo, il modello può poi fare previsioni o prendere decisioni basate su nuovi dati, utilizzando le conoscenze acquisite durante l'addestramento. - Test del modello
E' la valutazione delle prestazioni di un modello su un nuovo set di dati, diverso da quello usato nell'addestramento, noto come "set di test" o "testing set". Questo processo verifica la capacità del modello di generalizzare e fare previsioni accurate su nuovi dati, diversi da quelli usati per addestrarlo, permettendo di valutare l'efficacia reale del modello in scenari realistici. Se il modello interpreta bene anche i nuovi dati, allora viene promosso e può essere utilizzato. In caso contrario, è necessario ripartire dal primo step (raccolta dati) e addestrare nuovamente il modello usando altri dati di training. - Utilizzo del modello
Si tratta dell'applicazione vera e propria del modello precedentemente addestrato per fare previsioni o interpretazioni su nuovi dati. Solo i modelli che superano la fase precedente di test possono essere utilizzati. L'utilizzo del modello può consistere in una operazione di classificazione dei dati, di formulazione di una previsione o altre forme di analisi utili in vari contesti. Ad esempio, un modello può essere usato per fare le previsioni meteorologiche, un altro modello per il riconoscimento dei testi (OCR) o il riconoscimento vocale, ecc.