Blog.

Supervised, Unsupervised, Semisupervised e Reinforcement Learning


Autore
Andrea Provino
Data
Tempo di lettura
5 minuti
Categoria
machine-learning

supervised-learning-system-unsupervised-semisupervsied-reinforcemente-learning-system-guida-italiano-spiegazione-esami

Approfondiamo il concetto di Supervised Learning, Unsupervised Learning, Semisupervised Learning e Reinforcement Learning in questa guida tutta in italiano!

Esistono differenti sistemi di machine learning: per distinguerli è comodo dividerli in ampie categorie usando diversi criteri.

Ne vedremo 3.

Il primo è l’ammontare di supervisione umana richiesta nella fase di training.

Sulla base di questo criterio di classificazione distinguiamo:

  • Supervised learning systems
  • Unsupervised learning systems
  • Semisupervised learning systems
  • Reinforcement learning systems

Struttura dati

Prima di vedere ciascuna categoria nel dettaglio, facciamo chiarezza su alcuni termini tecnici.

Un esempio di dati che vengono forniti ad un algoritmo di machine learning, dopo essere stati accuratamente gestiti, è il seguente:

Si tratta di una tabella, in cui ciascuna riga viene definita observation, osservazione.

La colonna rossa è la nostra variabile target, o label chiamata anche Criterion o Dependent Variable.

E’ il valore che intendiamo prevdere, per risolvere il nsotro problema.

Il nome delle colonne verdi è detto Attribute o attributo, e il binomio attributo-valore Feature, chiamato anche Predictor o Indipedent Variable. Quindi, per ulteriore chiarezza:

L’attributo è “departmnet”, la feature è “department = support”.

Comunque, molte persone usano questi due termini come sinonimi.

Il presupposto è che le features contengano una relazione nascosta con le labels. Compito del machine learning è individuare questa relazione nascosta.

Supervised Learning Systems

Nei sistemi supervisionati, i dati forniti all’algoritmo scelto contengono la soluzione desiderata, quindi la label.

I due principali task di supervised learning sono:

  • classification tasks, il cui obiettivo è prevedere il valore di una variabile discreta classificando un’osservazione in due o più classi. (Es, un dato impiegato vuole licenziarsi? True / False)
  • regression tasks, il cui obiettivo è prevedere il valore di una variabile continua (Es, prezzo di un’azione in borsa)

Un esempio generale di questo metodo, è l’impiego di un modello predittivo per determinare il numero di utenti che si iscriveranno alla piattaforma del nostro cliente il mese prossimo. (Regression Task)

Unsupervised Learning Systems

Intuitivamente, nei sistemi non supervisionati la label è assente. Il sistema apprende senza alcun riferimento.

Inizialmente potrebbe sembrarti una definizione astrusa, ma con il tempo la farai tua.

I princiapli task si unsupervised learning sono:

  • clustering tasks, con l’obiettivo di suddividere i dati in grandi gruppi o cluster in base a somiglianze più o meno evidenti (Es, clienti di un supermercato in base a preferenze d’acquisto). In problemi simili, possiamo solo usare tecniche di visualizzazione per esaminare la qualità della soluzione.
  • visualization tasks, gli algoritmi sono in grado di rappresentare su grafici 2D o 3D complessi set di unlabelled data preservando quanta più struttura possibile. Così facendo è possibile individuare pattern nascosti.
  • dimensionality reduction tasks, il cui obiettivo è semplificare la struttura dati senza perdere informazioni. (Es, ridurre il numero di features attraverso il merging of correlated predictors: età di un’auto e km percorsi => indice usura. Questa operazione è detta di features extraction)
  • anomaly detection tasks, in cui il sistema è allenato su dati “normali” e quando individua un nuovo dato è in grado di stabilire la sua anomalità (Es, individuazione frodi, eliminazione outliers)
  • association rule learning, il cui compito è scavare a fondo nei dati per individuare relazioni utili tra le features. (Es, acquisti dei clienti mostrano che chi acquista salsa barbecue e patatine, compra anche carne)
  • pattern search / recognition,

Un venditore potrebbe essere interessato a dividere i propri prodotti in gruppi accomunati da una o più caratteristiche simili, senza specificarle a priori. (Clustering)

Semi Supervised Learning Systems

Questi sistemi sono in grado di gestire dati parzialmente labellati. Un esempio, il sistema di analisi delle foto per il riconoscimento dei volti.

Dapprima un algoritmo di clustering (unsupervised learning) riconosce e raggruppa volti simili.

Interviene quindi la componente umana che procede alla creazione delle label attribuendo a ciascun volto un nome.

Il set di dati parzialmente labellato è ora pronto ad un semisupervised learning task: il modello sviluppato consentirà in futuro di riconsocere i volti noti.

Reinforcement Learning Systems

Rispetto ai precedenti sistemi, quelli di reinforcement learning hanno una struttura e funzionamento differente.

Esiste un learning system, chiamato Agent che osserva l’ambiente, seleziona e compie azioni ottenendo rewards in cambio. (o penalities, sotto forma di premi negativi).

Diagram from Berkeley’s CS 294: Deep Reinforcement Learning by John Schulman & Pieter Abbeel

L’obiettvo è che l’agente impari autonomamente la best strategy per massimizzare il rewards over time. Questa strategia è chiamata policy

La policy definisce quale azione l’agente dovrebbe compiere quando si trova in una specifica situazione.

Il caso lampante è quello di Alpha Go.

È necessario disporre di un ambiente di test funzionante (working testing environment) affinché l’agente possa essere allenato efficacemente e in tempi relativamente brevi (a seconda della sua complessità).

Per risolvere questo problema possiamo fare ricorso a libreria come OpenAI Gym, che mettendo a disposizione ambienti come il CartPole, con molti parametri usufruibili, consente lo sviluppo, la ricerca e la comparazione ai algoritmi di Reinforcement Learning.

Ti ho comunque spiegato cos’è il reinforcement learning in questo post.

Salutiamoci con questa conclusione.

In questa breve guida abbiamo introdotto il concetto di Supervised Learning, Unsupervsied Learning, Semisupervsied Learning e Reinforcemet Learning.

Nel prossimo post esploreremo la differenza tra Batch Learning Systems e Online Learning Systems.

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea

Taggedguidamachine learning


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum