Machine Learning
Machine Learning Idea
- ML consente ai computer di acquisire conoscenza.
- La conoscenza viene acquisita attraverso algoritmi imparando e deducendo dai dati.
- La conoscenza è rappresentata mediante modelli
- Il modello verrà utilizzato per i dati futuri
Il Processo di Apprendimento
Tipi di Apprendimento
Apprendimento Supervisionato
L’apprendimento supervisionato è una tecnica di apprendimento automatico in cui il modello cerca di apprendere una mappatura tra gli input e gli output utilizzando un insieme di dati di addestramento etichettati. In altre parole, il modello viene addestrato utilizzando un insieme di dati di input e i rispettivi output attesi, in modo che possa fare predizioni accurate su nuovi dati.
Classificazione
Dato un seti di allenamento T = {(x1,y1),…,(xn,yn)} genera una funzione per predirre y dato x
La dimensione di x ed y potrebbero essere anche più di una.
In altre parole, l’obiettivo della classificazione è di trovare una funzione matematica che mappi gli input ai rispettivi output di classe (etichetta).
Ad esempio, un modello di classificazione potrebbe essere addestrato per identificare se una e-mail è spam o non spam, o se un’immagine contiene un gatto o un cane. Per addestrare un modello di classificazione, è necessario fornire algoritmi di apprendimento supervisionato un insieme di dati di addestramento etichettati, cioè dati di input con le relative etichette di classe corrispondenti (spam o non spam).
Durante la fase di addestramento, il modello cerca di apprendere i pattern e le relazioni tra i dati di input e le etichette di classe di output. Successivamente, durante la fase di test, il modello viene valutato su un insieme di dati di test separati che non sono stati utilizzati durante l’addestramento, per determinare quanto bene il modello è in grado di generalizzare e fare predizioni accurate su nuovi dati.
La classificazione viene utilizzata in molti campi, come la visione artificiale, il riconoscimento del linguaggio naturale, la bioinformatica e molti altri.
Regressione
È un tipo di algoritmo di apprendimento supervisionato che mira a stimare o prevedere un valore numerico continuo per una determinata istanza, basandosi sulla sua descrizione o sulle sue caratteristiche. In altre parole, l’obiettivo della regressione è di trovare una funzione matematica che mappi gli input ai rispettivi output numerici.
Ad esempio, un modello di regressione potrebbe essere addestrato per prevedere il prezzo di una casa in base alle sue caratteristiche, come il numero di stanze, la metratura, la posizione, ecc. Per addestrare un modello di regressione, è necessario fornire algoritmi di apprendimento supervisionato un insieme di dati di addestramento, cioè dati di input con i rispettivi valori di output numerici corrispondenti.
La regressione viene utilizzata in molti campi, come l’economia, la finanza, l’ingegneria, la fisica e molti altri.
Ranking
È un tipo di algoritmo che mira a ordinare un insieme di oggetti in base alla loro importanza o rilevanza, a seconda di una determinata metrica. In altre parole, l’obiettivo del ranking è di assegnare a ciascun oggetto un punteggio o un valore di rilevanza in modo che gli oggetti siano ordinati in modo decrescente o crescente in base a tale valore.
Ad esempio, un modello di ranking potrebbe essere addestrato per classificare i risultati di ricerca in base alla loro pertinenza rispetto alla query di ricerca dell’utente. Il modello assegnerà un punteggio di rilevanza a ciascun risultato di ricerca in base a vari fattori, come la presenza di parole chiave nella pagina, la posizione delle parole chiave, l’autorità del sito web, ecc. In questo modo, i risultati di ricerca saranno ordinati in base alla loro rilevanza per la query di ricerca.
Il ranking è una tecnica importante in diversi campi, come il recupero dell’informazione, il motore di ricerca, la raccomandazione di prodotti, il filtraggio collaborativo e molti altri.
Come avviene l’addestramento?
Apprendimento Non Supervisionato
L’apprendimento non supervisionato è una tecnica di apprendimento automatico in cui il modello cerca di trovare pattern e strutture nascoste all’interno di un insieme di dati non etichettati senza l’ausilio di alcuna supervisione esterna. Il modello cerca di identificare i pattern e le strutture all’interno dei dati in modo autonomo. Questo lo rende particolarmente utile quando si ha a che fare con dati complessi e non strutturati, in cui l’etichettatura manuale dei dati potrebbe essere troppo costosa o addirittura impossibile.
Poiché l’apprendimento non supervisionato cerca di trovare pattern autonomamente, è importante verificare la validità e l’affidabilità dei risultati ottenuti.
Clustering
Dato un seti di allenamento T = {x1,…,xn} trova strutture nascoste (se ci sono)
Il clustering è una tecnica di apprendimento non supervisionato in cui un algoritmo cerca di raggruppare insieme dati simili in gruppi o cluster. In altre parole, il clustering cerca di trovare pattern nascosti all’interno di un insieme di dati senza utilizzare alcuna informazione di etichetta esterna.
L’obiettivo del clustering è quello di identificare i gruppi di dati omogenei in modo che i dati all’interno di ogni gruppo siano il più simili possibile tra loro e il più diversi possibile rispetto agli altri gruppi. Ad esempio, si può utilizzare il clustering per raggruppare insieme clienti simili in base ai loro comportamenti di acquisto, o per raggruppare insieme immagini simili in base al loro contenuto.
Esistono diversi algoritmi di clustering, tra cui il k-means, il clustering gerarchico, il DBSCAN e molti altri. Ogni algoritmo ha i propri vantaggi e svantaggi a seconda del tipo di dati e dell’obiettivo specifico.
k-means
Il k-means è uno degli algoritmi di clustering più popolari, in cui si cerca di dividere un insieme di dati in un numero predefinito di cluster (k). L’algoritmo k-means inizia con una scelta casuale di k centroidi (punti rappresentativi di ogni cluster), poi assegna ogni punto di dati al centroide più vicino. A questo punto si genera un nuovo centro del gruppo che sarà tendenzialmente diverso dal precedente centro trovato casualmente. Vengono ricalcolate le distanze di ogni punto con ogni centroide e si assegna ogni punto al centro più vicino.
Questo processo viene ripetuto fino a quando i centroidi non cambiano o il numero massimo di iterazioni è stato raggiunto.
Utilizzo di clustering
Il clustering è utilizzato in diversi campi, come l’analisi dei dati, la segmentazione del mercato, la classificazione di immagini, la compressione, l’identificazione di similarità genetiche, l’analisi di reti sociali, la riduzione delle dimensioni di dei dati, l’identificazione di anomalie ed ovviamente tanti altri. Tuttavia, l’interpretazione dei risultati del clustering può essere soggettiva e richiede una comprensione attenta dei dati e dell’obiettivo del clustering.
Outlier
Un outlier è un punto dati che è significativamente diverso dagli altri punti dati nel dataset e che non appartiene a nessuno dei gruppi o cluster identificati dall’algoritmo di clustering.
Gli outlier possono essere causati da dati errati, errori di misurazione o dati provenienti da una popolazione diversa da quella rappresentata dal resto dei dati. In alcuni casi, gli outlier possono essere informazioni preziose, ad esempio quando si cercano anomalie o punti dati rari.
Tuttavia, la presenza di outlier può influenzare negativamente i risultati del clustering. Gli outlier possono influenzare la posizione dei centroidi e la forma dei cluster, portando ad una riduzione della coesione all’interno dei cluster e ad un aumento della separazione tra i cluster.
Per questo motivo, prima di applicare un algoritmo di clustering, è spesso utile eseguire una fase di pre-elaborazione dei dati per identificare e rimuovere gli outlier. Ci sono diverse tecniche per rilevare gli outlier, tra cui l’analisi dei dati multivariati, l’analisi della densità dei dati e la statistica univariata.
Apprendimento per Rinforzo
Nel reinforcement learning un algoritmo impara a compiere decisioni in un ambiente dinamico, interagendo con esso attraverso una serie di azioni e ricevendo un feedback positivo o negativo in base ai risultati ottenuti. L’obiettivo del reinforcement learning è quello di massimizzare una ricompensa a lungo termine in base alle azioni intraprese.
Il reinforcement learning si basa sul concetto di apprendimento per tentativi ed errori: l’algoritmo esplora l’ambiente e impara a migliorare le sue prestazioni attraverso l’esperienza. L’algoritmo di reinforcement learning è costituito da tre componenti principali:
- L’agente: l’algoritmo di reinforcement learning che esplora l’ambiente e intraprende le azioni.
- L’ambiente: il contesto in cui l’agente opera, composto da uno stato iniziale e una serie di possibili azioni che l’agente può intraprendere.
- La funzione di ricompensa: la funzione che indica la qualità delle azioni intraprese dall’agente in base ai risultati ottenuti.
L’algoritmo di reinforcement learning cerca di massimizzare la ricompensa a lungo termine dell’agente attraverso l’ottimizzazione della funzione di valore, che indica la ricompensa attesa in un determinato stato dell’ambiente. Ciò significa che l’agente impara a scegliere le azioni che massimizzano la ricompensa attesa in ogni stato dell’ambiente.
Il reinforcement learning è utilizzato in diversi campi, come i giochi, la robotica, l’automazione industriale e molti altri. Tuttavia, l’apprendimento per rinforzo può essere computazionalmente costoso e richiede un’attenta progettazione dell’ambiente e della funzione di ricompensa per evitare problemi di convergenza o di overfitting. Inoltre, il reinforcement learning può richiedere un lungo periodo di addestramento, in quanto l’agente deve acquisire esperienza attraverso le azioni intraprese nell’ambiente.
Google DeepMind’s Deep Q-learning playing Atari Breakout!
Bibliografia e Sitografia
- Lezioni professoressa Elisa Ricci UniTN
- Chat GPT per la produzione della traccia base
Cose in più utili:
- Dimensionality Reduction: Machine Learning - Dimensionality Reduction - Feature Extraction & Selection