Cos’è il Machine Learning? Caratteristiche ed applicazioni

Informazioni principali

Per Machine Learning si intende un sistema in grado di apprendere se, attraverso la sua attività, è in grado di migliorare le proprie prestazioni. Nell’IA il miglioramento delle prestazioni coincide in generale con l’acquisizione di nuove conoscenze. I metodi di apprendimento sono tre:

  • Apprendimento supervisionato;
  • Apprendimento non supervisionato;
  • Apprendimento per rinforzo.

 

Apprendimento supervisionato

supervised-learning.png

Richiede che si apprenda una funziona partendo da esempi di input e output. Un algoritmo per l’apprendimento (deterministico) supervisionato riceve in ingresso il valore corretto in alcuni punti di una funzione sconosciuta. In base a tali valori deve cercare di ricostruire la funzione nel modo più fedele possibile. Gli algoritmi di apprendimento supervisionato fanno previsioni in base a un set di esempi. Ad esempio, l’andamento storico dei titoli può essere utilizzato per azzardare ipotesi sui prezzi futuri. Ogni esempio utilizzato per l’addestramento viene etichettato con il valore di interesse: in questo caso, il prezzo dei titoli. Un algoritmo di apprendimento supervisionato cerca modelli ripetitivi nelle etichette dei valori. Può utilizzare tutte le informazioni che potrebbero essere rilevanti, ovvero il giorno della settimana, la stagione, i dati finanziari dell’azienda, il tipo di settore, la presenza di eventi geopolitici di disturbo, e ogni algoritmo cerca tipi diversi di modelli ripetitivi. Dopo che l’algoritmo ha trovato il modello ripetitivo migliore possibile, lo utilizza per eseguire stime per i dati di prova senza etichetta: i prezzi di domani. I problemi di apprendimento supervisionato sono divisi in problemi di regressione e classificazione.

Regressione

Nei problemi di regressione, si prova a predire i risultati all’interno di una uscita continua, il che significa che stiamo cercando di mappare variabili di input a qualche funzione continua. Esso comprende modellazione e analisi di diverse variabili (una variabile dipendente e una o più variabili indipendenti). Aiuta a capire in che modo la variabile dipendente varia in base a quella indipendente. Un esempio può essere: “Visti i dati relativi alle dimensioni delle case sul mercato immobiliare, cerca di prevedere il loro prezzo.” Il prezzo in funzione della dimensione è un uscita continua. Le tecniche più popolari di regressioni sono:

  • Regressione lineare;
  • Regressione ponderata localmente;
  • Regressione logistica;
  • Regressione non lineare.

 

Classificazione

In un problema di classificazione, stiamo cercando di prevedere i risultati di un’uscita digitale. In altre parole, stiamo cercando di mappare le variabili di input in categorie discrete sulla base dei dataset di addestramento. Un algoritmo che implementa la classificazione è noto come un classificatore. Esempio: Previsione se la casa “vende per più o meno il prezzo richiesto”, stiamo classificando le case in base al prezzo in due categorie distinte. Le principali tecniche di classificazione sono:

  • Albero di decisione;
  • Naive Bayes;
  • Random Forest;
  • Hidden Markov Model;
  • Percettrone multilivello;
  • K-nearest.

Apprendimento non supervisionato

unsupervised-learning.png

Richiede di imparare a riconoscere pattern o schemi nell’input senza alcuna indicazione specifica dei valori di uscita. Nell’apprendimento non supervisionato, ai punti dati non sono associate etichette. L’obiettivo di un algoritmo di apprendimento non supervisionato è invece l’organizzazione dei dati in un certo modo o la descrizione della loro struttura. Questo può significare il raggruppamento dei dati in cluster o l’individuazione di modi diversi con cui osservare dati complessi, in modo che appaiano più semplici o più organizzati. Questi problemi si divono in problemi di cluestering e collabroative filtering.

Clustering

Un gruppo (cluster) è una collezione di istanze tali che le istanze dello stesso cluster sono simili tra loro (alta somiglianza inter-classe) oppure le istanze di cluster diversi sono dissimili (bassa somiglianza intra-classe). L’analisi di raggruppamento rappresenta il processo di raggruppamento delle istanze in cluster ed è un apprendimento non supervisionato (le istanze di addestramento non hanno una classe nota a priori). La qualità del raggruppamento dipenderà dal parametro scelto per misurare la similarità inter e intra classe. Il cluster ha varie possibilità di utilizzo: analisi stand-alone; processo preliminare ad altre analisi di dati (ad esempio assegnare un’etichetta ad ognuno e poi utilizzare un algoritmo di classificazione); componente integrato di algoritmi per altri tipi di analisi; nella fase di pre-elaborazione dei dati (per esempio outlier mining e riduzione della numerosità).

Collaborative Filtering

L’idea principale degli approcci di collaborative recommendation è sfruttare informazioni riguardanti il passato comportamento o le opinioni di una esistente comunità di utenti per predire quali item più probabili potranno piacere, a cui potrà essere interessato, all’utente attuale del sistema. È l’approccio più importante per generare raccomandazioni; è usato da siti e-commerce in larga scala per personalizzare i contenuti ai need dello specifico cliente e così promuove ulteriori item e aumentare le vendite e quindi i propri ricavi. Ben compreso da punto di vista della ricerca scientifica, esistono vari algoritmi, valutato con successo sia su dati reali, sia artificiali; applicabile in molti domini. Come approccio sfrutta la wisdom of crowds per raccomandare item. I clienti che avevano gusti simili in passato, avranno gusti simili nel futuro. Gli utenti esprimono rating per item in catalogo. In output una predizione che indica il grado con il quale un certo item piacerà o no all’utente attuale; nella lista dei top-N item raccomandati. Ci sono due modalità:

User-Based Nearest-Neighbor Collaborative Filtering

 
 

L’idea di base è partire dai dati in input un database di rating e l’ID dell’utente attuale:

  1. Identificare altri utenti che hanno avuto in passato preferenze simili a quelle dell’utente attuale.
  2. Calcolare per ogni item p che l’utente attuale u non ha ancora visionato una predizione sulla base dei rating per p espressi dai peer user (neighbor) di u.
  3. Raccomandare i best-rated.

L’assunzione di base è che se gli utenti avevano gusti simili in passato, avranno gusti simili anche in futuro; le preferenze degli utenti rimangono stabili e coerenti nel corso del tempo.

ltem-Based Nearest-Neighbor Collaborative Filtering


Sebbene gli approcci User-Based CF siano stati applicati con successo in domini differenti, permangono alcune criticità quando si ha a che fare con siti di e-commerce in larga scala, nei quali occorre gestire decine di milioni di utenti e milioni di item in catalogo. In particolare, la necessità di analizzare un ampio numero di potenziali neighbor rende impossibile calcolare le predizioni in real time. I siti di e-commerce in larga scala implementano quindi una tecnica differente, detta ltem-Based Recommendation, che è più adatta per il preprocessing offline, Si pin tal modo è possibile il calcolo delle raccomandazioni in real time anche per matrici di rating di dimensioni assai ampie. L’idea di base degli algoritmi ltem-Based è calcolare le predizioni usando la similarità fra item e non la similarità fra utenti. Nell’approccio Content Based, è fondamentale trovare una misura di similarità affidabile che permetta di confrontare gli item. In generale, si assume di avere una matrice R dove ad ogni colonna corrisponde un oggetto e ad ogni riga un utente.

Apprendimento per rinforzo

L’agente apprende in base al rinforzo (ricompensa) ottenuta. Nell’apprendimento per rinforzo l’algoritmo arriva a scegliere un’azione in risposta a ogni punto dati. L’algoritmo di apprendimento riceve anche un segnale di ricompensa poco dopo, a indicare il livello di correttezza della decisione presa. In base a questo segnale, l’algoritmo modifica la propria strategia per ottenere la ricompensa maggiore. L’apprendimento per rinforzo è un approccio comune in robotica, in cui il set di letture del sensore in un certo momento è un punto dati e l’algoritmo deve scegliere l’azione successiva del robot. Questo approccio è ideale anche per applicazioni “Internet delle cose” (Internet of Things, IoT).