Apprendimento supervisionato: capiamo come identificare una classe.

Il modo migliore per parlare di apprendimento supervisionato è quello individuare un caso semplice, ovvero l’apprendimento di una classe dai suoi esempi positivi e negativi, e successivamente generalizzare per di più classi. Come ultimo step per trattare l’apprendimento supervisionato bisogna parlare di regressione, dove gli output sono continui.

Diciamo che vogliamo imparare la classe C che identifica tutte le “auto familiari“. Abbiamo una serie di esempi di auto e abbiamo un gruppo di persone a cui mostriamo queste auto. Le persone guardano le auto per etichettarle; per esempi positivi intendiamo le auto che credono siano auto di famiglia mentre per esempi negativi le altre auto che credono non siano auto familiari. 

L’apprendimento della classe consiste nel trovare una descrizione che sia condivisa da tutti gli esempi positivi e da nessuno degli esempi negativi.

Così facendo, possiamo fare una previsione: data un’auto che non abbiamo visto prima, verificando con la descrizione appresa, potremo dire se si tratta di un’auto di famiglia oppure no. Oppure possiamo estrarre della conoscenza e l’obiettivo potrebbe essere quello di capire cosa le persone si aspettano da un’auto di famiglia.

Dopo alcune discussioni con esperti del settore, diciamo che si arriva alla conclusione che tra tutte le caratteristiche che può avere un’auto, le caratteristiche che separano un’auto di famiglia dalle altre auto sono il prezzo e la potenza del motore.

Questi due attributi sono gli input per il riconoscitore di classe. 

Nota: Stiamo considerando gli altri attributi come irrilevanti.

Sebbene si possa pensare ad altri attributi come il numero di posti a sedere e il colore che potrebbero essere importanti per distinguere tra i tipi di auto, prenderemo in considerazione solo il prezzo e la potenza del motore per mantenere questo esempio semplice.

image

Ogni punto identificato dalla coppia (prezzo, motore) corrisponde ad un’auto di esempio. Il simbolo “+” denota un esempio positivo della classe mentre con “-” identifichiamo un esempio negativo ovvero un’auto non appartenente alla classe delle auto di famiglia.

Indichiamo il prezzo come primo attributo di input e la potenza del motore come secondo attributo (ad es. volume del motore in centimetri cubi), quindi rappresentiamo ciascuna auto utilizzando due valori numerici.

la sua etichetta ne denota il tipo.

Ogni auto è rappresentata da una tale coppia ordinata (x,r) e il training set contiene N di questi esempi

dove t rappresenta diversi esempi nell’insieme; non rappresenta il tempo o un ordine del genere

I nostri dati di allenamento possono ora essere tracciati nello spazio-bidimensionale :

dove ogni istanza t è un punto dati di coordinate

e il suo tipo, cioè positivo o negativo, è dato da

Dopo ulteriori analisi dei dati, potremmo avere motivo di ritenere che, affinché un’auto sia un’auto di famiglia, il suo prezzo e la potenza del motore dovrebbero rientrare in un determinato intervallo:

L’equazione assume quindi che C sia un rettangolo nello spazio bidimensionale di (Potenza Motore , Prezzo)

Inoltre, l’equazione, fissa l’ipotesi con cui descrivere C, cioè come l’insieme dei rettangoli.

L’ipotesi di classe, quindi, è corretta se per un input x, se e solo se h(x) = 1 per x positivo.

Supponiamo di avere un insieme di dati di addestramento X che è un sottoinsieme di tutti i possibili input, l’errore dell’ipotesi h dato il set di addestramento X è:

L’ ipotesi di classe H è l’insieme dei possibili rettangoli. Ogni quadrupla

definisce un‘ ipotesi H e quello che a noi serve è capire quali sono i valori migliori della quadrupla In altre parole, dobbiamo trovare i valori di questi 4 parametri partendo dall’insieme di dati di addestramento tale che:

il rettangolo risultante possa includere solo esempi positivi ed escludere quelli negativi.

L’output di un algoritmo di Reinforcement Learning è una sequenza di azioni.

In alcune applicazioni l’output è rappresentato da una sequenza di azioni, in tal caso una singola azione non è importante, ciò che conta è la policy ovvero la sequenza di azioni corrette per raggiungere l’ obiettivo:  un’azione è buona se fa parte di una buona politica.

In tal caso, il programma di Machine Learning dovrebbe essere in grado di valutare la bontà delle politiche e imparare dalle buone sequenze di azioni passate per essere in grado di generare una politica efficace.

Tali metodi di rinforzo dell’apprendimento sono chiamati algoritmi di apprendimento per rinforzo.

Un buon esempio è il gioco in cui una singola mossa di per sé non è così importante; è la sequenza di mosse giuste che è buona.

Una mossa è buona se fa parte di una buona politica di gioco.

Il gioco è una ricerca importante sia nell’intelligenza artificiale che nell’apprendimento automatico.

Questo perché i giochi sono facili da descrivere e, allo stesso tempo, sono piuttosto difficili da giocare bene.

Un gioco come gli scacchi ha un numero limitato di regole ma è molto complesso a causa del gran numero di mosse possibili in ogni stato e grande numero di mosse che un gioco contiene.

Una volta che abbiamo buoni algoritmi che possono imparare a giocare bene, possiamo applicarli anche ad applicazioni con utilità economica più evidente.

Un robot che naviga in un ambiente alla ricerca di una posizione obiettivo è un’altra area di applicazione dell’apprendimento per rinforzo.

In qualsiasi momento, il robot può muoversi in una delle numerose direzioni. Dopo una serie di prove, dovrebbe apprendere la corretta sequenza di azioni per raggiungere lo stato finale da uno stato iniziale, facendo questo il più rapidamente possibile e senza colpire nessuno degli ostacoli.

Un fattore che rende più difficile l’apprendimento per rinforzo è quando il sistema ha informazioni sensoriali inaffidabili e parziali. Ad esempio, un robot dotato di videocamera ha informazioni incomplete e quindi in qualsiasi momento si trova in uno stato parzialmente osservabile e dovrebbe decidere tenendo conto di questa incertezza ; ad esempio, potrebbe non conoscere la sua posizione esatta in una stanza, ma solo che c’è un muro alla sua sinistra. Un’attività può anche richiedere un’operazione simultanea di più agenti che dovrebbero interagire e cooperare per raggiungere un obiettivo comune.

Un esempio è una squadra di robot che giocano a calcio.

Tecniche di Apprendimento non supervisionato con clustering.

Nell’apprendimento supervisionato, l’obiettivo è apprendere un collegamento tra input e output grazie ai valori corretti (Training Set o dati di addestramento) forniti da un supervisore.

Nell’apprendimento non supervisionato, non esiste tale supervisore per cui abbiamo solo dati di input e l’obiettivo è quello di trovare una regolarità nell’input.  

C’è una struttura nello spazio di input tale che alcuni pattern (o gruppi) si verificano più spesso di altri e vogliamo identificarli al fine di vedere cosa succede generalmente e cosa no in determinate circostanze.

In statistica, questo si chiama stima della densità.

Un metodo per la stima della densità si chiama clustering il cui obiettivo è appunto quello di trovare cluster o raggruppamenti di input.

Vediamo un esempio di applicazione di clustering per l’apprendimento non supervisionato:

  • Nel caso di un’azienda i dati dei clienti contengono sia le informazioni demografiche che le transazioni, e si potrebbe voler vedere la distribuzione del profilo dei clienti, per identificare il tipo di clienti che è maggiormente presente. In tal caso, un modello di clustering raggruppa clienti simili in base ai loro attributi nello stesso gruppo, fornendo all’azienda raggruppamenti naturali dei suoi clienti, questo è chiamato segmentazione dei clienti. Una volta trovati tali gruppi, l’azienda può decidere strategie, ad esempio, servizi e prodotti, specifici per diversi gruppi, questo è noto come gestione delle relazioni con i clienti. Tale raggruppamento consente anche di identificare quelli che sono “outlier”, cioè quelli che sono diversi dagli altri clienti, il che può implicare una nicchia di mercato che può essere ulteriormente sfruttata dall’azienda.
  • Nel clustering di documenti, lo scopo è raggruppare documenti simili. Ad esempio, le notizie possono essere suddivise in quelle relative a politica, sport, moda, arte e così via. Comunemente, un documento è rappresentato come un insieme di parole, ovvero, predefiniamo un lessico di N parole e ogni documento è un vettore binario N-dimensionale il cui elemento i è 1 se la parola i appare nel documento parole come “Di”, “e” e così via, che non sono informativi, non vengono utilizzati. I documenti vengono quindi raggruppati in base al numero di parole condivise. Ovviamente qui è fondamentale come viene scelto il lessico.

Introduzione alla Regressione ed alle differenze con la Classificazione.

Supponiamo di voler realizzare un sistema in grado di prevedere il prezzo di un’auto usata con un sistema di apprendimento automatico.

Gli input sono gli attributi dell’auto (marca, anno, cilindrata, chilometraggio e altre informazioni) che riteniamo influenzino il valore di un’auto mentre l’output è il prezzo dell’auto.

Nota: I problemi in cui l’output è un numero sono problemi di regressione.

Siano X gli attributi dell’auto e Y il prezzo dell’auto.

Rilevando le transazioni passate, possiamo raccogliere dati di addestramento e con un programma di Machine Learning e possiamo adattare una funzione a questi dati per apprendere Y in funzione di X.

Un esempio è dato nella seguente figura dove la funzione adattata è della forma:

y = wx + w0 per opportuni valori di w e w0.

Modello e training set di previsione del prezzo di auto usate

Nota: L’immagine mostra un set di dati di addestramento delle auto usate. Per semplicità, il chilometraggio viene preso come unico attributo di input e viene utilizzato un modello lineare.

Sia la regressione che la classificazione sono problemi di apprendimento supervisionato in cui c’è un input, X, un output Y.

Il compito è imparare la mappatura dall’input all’output. L’approccio nell’apprendimento automatico consiste nell’ assumere un modello definito e un insieme di parametri:

y = g(x|θ)

dove g(·) è il modello e θ sono i suoi parametri.

Ma tra Classificazione e Regressione vi sono due differenze importanti relative all’output y e al modello g(·):

  1. In un problema di classificazione y è un codice di classe mentre in un problema di regressione è un valore numerico.
  2. In un problema di classificazione g(·) è la funzione discriminante che separa le istanze di classi diverse mentre in un problema di regressione è la funzione di regressione.

Il programma di machine learning ottimizza i parametri, in modo tale che l’errore di approssimazione sia ridotto al minimo, ovvero le nostre stime siano il più vicino possibile ai valori corretti forniti nell’addestramento. Ad esempio, nella figura 1.2, il modello è lineare e w e w0 sono i parametri ottimizzati per il miglior adattamento al training set.

Nei casi in cui il modello lineare è troppo restrittivo, si può usare ad esempio un modello quadratico  o un polinomio di ordine superiore, o qualsiasi altra funzione non lineare dell’input, questa volta ottimizzando i suoi parametri per il miglior adattamento.

Applicazioni di Pattern Recognition: scopriamo cosa accomuna il riconoscimento dei caratteri, il riconoscimento facciale, la diagnosi medica e le traduzioni.

L’ applicazione più semplice di Pattern Recognition consiste nel riconoscimento ottico dei caratteri partendo dalle loro immagini.

In questo esempio vi sono più classi, e precisamente tanti quanti sono i caratteri che vorremmo riconoscere.

Particolarmente interessante è il caso in cui i caratteri sono scritti a mano, in quanto le persone hanno stili di scrittura diversi: i caratteri possono essere scritti piccoli o grandi, inclinati, con una penna o una matita, e ci sono molte possibili immagini corrispondenti allo stesso carattere.

Sebbene la scrittura sia un’invenzione umana, non disponiamo di alcun sistema affidabile quanto un lettore umano, e non abbiamo una descrizione formale, ad esempio, di “A” che copra tutte le lettere “A” e nessuna delle non “A”.

In questo scenario, prendiamo campioni dagli scrittori (set di addestramento) e impariamo una definizione (regola) di “A” e delle “non A” da questi esempi. Anche se non sappiamo cosa rende un’immagine una “A”, siamo certi che tutte quelle “A” distinte hanno qualcosa in comune, che è ciò che vogliamo estrarre dagli esempi. Sappiamo che l’immagine di un carattere non è solo una raccolta di punti casuali, è una raccolta di tratti con una regolarità che possiamo catturare con un programma di Machine Learning.

Se stiamo leggendo un testo, un fattore di cui possiamo avvalerci è la ridondanza nei linguaggi umani. Una parola è una sequenza di caratteri e i caratteri successivi non sono indipendenti ma sono vincolati dalle parole della lingua. Questo ha il vantaggio che anche se non siamo in grado di riconoscere un carattere, possiamo comunque leggere la parola. Tali dipendenze contestuali possono verificarsi anche a livelli superiori, tra parole e frasi, attraverso la sintassi e la semantica della lingua. Esistono algoritmi di apprendimento automatico per apprendere sequenze e modellare tali dipendenze.

Riconoscimento Facciale

Il riconoscimento facciale è un problema più complesso rispetto al riconoscimento dei caratteri, in questo caso l’input è un’immagine e le classi sono persone da riconoscere, e il programma di apprendimento dovrebbe imparare ad associare le immagini dei volti alle identità.

Ma perché il riconoscimento facciale è più difficile rispetto al riconoscimento dei caratteri?

  • Nel riconoscimento facciale ci sono più classi, l’immagine in ingresso è più grande e un viso è tridimensionale, le differenze di posa e illuminazione causano cambiamenti significativi nell’immagine. Inoltre, potrebbe anche esserci l’eliminazione o la modifica di alcuni dettagli del volto; ad esempio, gli occhiali possono nascondere gli occhi e le sopracciglia e la barba può nascondere il mento.

Diagnosi Medica

Nella diagnosi medica, gli input sono le informazioni rilevanti che abbiamo sul paziente e le classi sono le malattie. Gli input contengono l’età, il sesso, l’anamnesi del paziente e i sintomi attuali.

Alcuni test potrebbero non essere stati applicati al paziente, e quindi questi input mancherebbero. I test richiedono tempo, possono essere costosi e possono disturbare il paziente; quindi, potrebbero non essere applicati a meno che non forniscano informazioni preziose. Nel caso di una diagnosi medica, un errore di decisione può portare a un trattamento sbagliato o nullo, e in caso di dubbio è preferibile che il classificatore rifiuti e rimandi la decisione a un esperto umano.

Riconoscimento vocale

Nel riconoscimento vocale, l’input è acustico e le classi sono parole che possono essere pronunciate, questa volta l’associazione da apprendere è da un segnale acustico a una parola di una lingua.

Persone diverse, a causa delle differenze di età, sesso o accento, pronunciano la stessa parola in modo diverso, il che rende il riconoscimento vocale piuttosto difficile, e alcune parole sono più lunghe di altre. Le informazioni acustiche aiutano solo fino a un certo punto e, come nel riconoscimento ottico dei caratteri, l’integrazione di un “modello linguistico” è fondamentale nel riconoscimento vocale e il modo migliore per elaborare un modello linguistico è di nuovo imparandolo da un ampio set di dati di esempio.

Traduzione

Dopo decenni di ricerca sulle regole di traduzione codificate a mano, è diventato evidente di recente che la tecnica più promettente consiste nel fornire un numero molto elevato di coppie di esempio di testi tradotti e fare in modo che un programma individui automaticamente le regole per mappare una stringa di caratteri su un’altra.

Biometria

La biometria è il riconoscimento o l’autenticazione di persone utilizzando le loro caratteristiche fisiologiche e/o comportamentali che richiede un’integrazione di input provenienti da diverse modalità. Esempi di caratteristiche fisiologiche sono le immagini del viso, delle impronte digitali, dell’iride e del palmo; esempi di caratteristiche comportamentali sono le dinamiche di firma, voce, andatura e colpo di chiave.

A differenza delle consuete procedure di identificazione – foto, firma stampata o password – quando ci sono molti input diversi (non correlati), le falsificazioni (spoofing) sarebbero più difficili e il sistema sarebbe più accurato, si spera senza troppi inconvenienti per gli utenti.

Il Machine Learning viene utilizzato sia nei riconoscitori separati per queste diverse modalità sia nella combinazione delle loro decisioni per ottenere una decisione generale di accettazione/rifiuto, tenendo conto dell’affidabilità di queste diverse fonti. L’apprendimento di una regola dai dati consente anche l’estrazione della conoscenza.

Conclusioni

La regola è un semplice modello che spiega i dati e una volta appreso il discriminante che identifica una specifica classe, abbiamo la conoscenza delle proprietà di quella specifica classe che ci permette di distinguerla dalle altre.

L’apprendimento della regola consente anche la compressione in quanto adattando una regola ai dati, otteniamo una spiegazione più semplice dei dati, che richiede meno memoria e meno calcoli. Una volta che hai le regole di addizione, non è necessario ricordare la somma di ogni possibile coppia di numeri.