Sei sulla pagina 1di 93

STATISTICAL LEARNING

Appunti di Statistical Learning


A.A. 2021/2022

Università degli Studi di Napoli Federico II


Corso di Laurea Magistrale in Informatica LM-18
Dipartimento di Ingegneria Elettrica e Tecnologie dell’Informazione

A cura di
MARCO ROMANO
Indice

1 Un modello formale: il framework dello Statistical Learning 1


1.1 Empirical Risk Minimization . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Overfitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 ERM con bias induttivo . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Classi di ipotesi finite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Predittori lineari 11
2.1 Semispazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Programmazione lineare per semispazi . . . . . . . . . . . . . . 15
2.1.2 Perceptron per semispazi . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Regressione lineare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Least Squares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2 Regressione lineare applicata alla regressione polinomiale . . . . 21
2.3 Logistic Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Model Selection e Validation 25


3.1 Validation for Model Selection . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1 Curva della selezione del modello . . . . . . . . . . . . . . . . . 26
3.2 k-Fold Cross Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Test set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

i
3.4 Analisi dell’errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.1 Scomposizione dell’errore attraverso la validation . . . . . . . . 29
3.4.2 Curve di apprendimento . . . . . . . . . . . . . . . . . . . . . . 30
3.4.3 Cosa fare se l’apprendimento fallisce . . . . . . . . . . . . . . . 31
3.5 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4 Stochastic Gradient Descent 33


4.1 Discesa del gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Sottogradienti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Stochastic Gradient Descent . . . . . . . . . . . . . . . . . . . . . . . . 35

5 Classificatori multiclasse 36
5.1 Classificazione multiclasse utilizzando la classificazione binaria . . . . . 36
5.1.1 One-versus-All . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1.2 All-Pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2 Limitazioni delle operazioni di riduzione . . . . . . . . . . . . . . . . . 38
5.3 Predittori lineari multiclasse . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.1 Classe delle ipotesi . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.2 Come costruire Ψ . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.3 TF-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Neural Networks 44
6.1 Funzionamento di un neurone . . . . . . . . . . . . . . . . . . . . . . . 46
6.2 Organizzazione in livelli . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3 Caratteristiche di una rete neurale . . . . . . . . . . . . . . . . . . . . . 48
6.4 Reti neurali fully connected . . . . . . . . . . . . . . . . . . . . . . . . 48
6.5 Reti neurali e logistic regression . . . . . . . . . . . . . . . . . . . . . . 49
6.6 Parametri di una rete neurale . . . . . . . . . . . . . . . . . . . . . . . 50

ii
7 Natural Language Processing 51
7.1 Natural Language Processing: problemi di classificazione . . . . . . . . 51
7.2 Rappresentazione delle feature . . . . . . . . . . . . . . . . . . . . . . . 52
7.2.1 Codifica one-hot . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.2.2 Feature embedding (codifica densa) . . . . . . . . . . . . . . . . 54
7.2.3 Rappresentazioni one-hot vs vettori densi . . . . . . . . . . . . . 54
7.3 Classificatori basati su reti neurali feed-forward . . . . . . . . . . . . . 55
7.4 Word-in-context: Named Entity Recognition . . . . . . . . . . . . . . . 56
7.5 Costruzione dei word embeddings . . . . . . . . . . . . . . . . . . . . . 57
7.5.1 Ipotesi distributiva . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.5.2 Out-of-vocabulary word embedding . . . . . . . . . . . . . . . . 59
7.6 Usare pre-trained embeddings . . . . . . . . . . . . . . . . . . . . . . . 60

8 Clustering 61
8.1 Formalizzazione del problema . . . . . . . . . . . . . . . . . . . . . . . 62
8.2 Tipologie di clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.1 Clustering gerarchico agglomerativo . . . . . . . . . . . . . . . . 64
8.2.2 k-means e altri cost minimization clustering . . . . . . . . . . . 66
8.3 Clustering vs Classificazione . . . . . . . . . . . . . . . . . . . . . . . . 69

9 Assessment 70
9.1 Classificazione binaria bilanciata . . . . . . . . . . . . . . . . . . . . . . 70
9.2 Classificazione binaria non bilanciata . . . . . . . . . . . . . . . . . . . 72
9.2.1 Precision e Recall . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.3 Classificazione multiclasse . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.4 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.4.1 Senza test set etichettato . . . . . . . . . . . . . . . . . . . . . . 75

iii
9.4.2 Con test set etichettato . . . . . . . . . . . . . . . . . . . . . . . 77

10 Feature Selection and Manipulation 80


10.1 Feature Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
10.1.1 Approccio brute force . . . . . . . . . . . . . . . . . . . . . . . . 81
10.1.2 Approccio filter . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
10.1.3 Approccio greedy . . . . . . . . . . . . . . . . . . . . . . . . . . 82
10.2 Manipolazione delle feature . . . . . . . . . . . . . . . . . . . . . . . . 82
10.2.1 Normalizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

11 Preservare la privacy nel machine learning 84


11.1 GDPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
11.2 Rischi per la privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
11.3 Differential privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
11.3.1 Randomized mechanisms . . . . . . . . . . . . . . . . . . . . . . 86
11.4 Raggiungimento della privacy . . . . . . . . . . . . . . . . . . . . . . . 86

12 Python 87

iv
Capitolo 1

Un modello formale: il framework


dello Statistical Learning

Il framework dello Statistical Learning è costituito dalle seguenti parti principali:

• Input del predittore: nel framework dello Statistical Learning, il predittore ha


accesso a quanto segue

– Domain Set: denotato con X , indica l’insieme degli oggetti da etichettare;


nel problema di apprendimento della papaia, il domain set X è l’insieme
di tutte le papaie. I punti del dominio sono rappresentati da un vettore di
feature (come il colore e la morbidezza della papaia).

– Insieme delle etichette: denotato con Y, per la discussione corrente tale


insieme è {0, 1} o {−1, 1}, dove 1 rappresenta l’essere gustoso e −1 l’essere
non gustoso.

– Training Set: denotato con S = ((x1 , y1 ) . . . (xm , ym )), indica una sequen-
za finita di coppie in X × Y, ovvero una sequenza di punti del dominio
etichettati. Questo è l’input del predittore.

1
• Output del predittore: al predittore viene richiesto di produrre una regola di
previsione h : X → Y. Questa funzione è anche chiamata predittore, ipotesi o
classificatore. Il predittore può essere utilizzato per prevedere l’etichetta di nuovi
punti del dominio. Si usa la notazione A(S) per denotare l’ipotesi restituita da
un algoritmo di apprendimento A dopo aver ricevuto il training set S.

• Modello di generazione dei dati: assumiamo che le istanze del dominio siano
generate da una distribuzione di probabilità D arbitraria (che rappresenta l’am-
biente) su X . Per quanto riguarda le etichette, si assume che ci sia una funzione
di etichettatura "corretta" f : X → Y e che ∀i, yi = f (xi ). La distribuzione
di probabilità D e la funzione di etichettatura f sono sconosciute al predittore
(f è esattamente ciò che il predittore vuole simulare). In sintesi, per ogni coppia
di elementi del training set S, viene campionato prima un punto xi secondo D e,
successivamente, viene etichettato con f .

• Misure di errore: si definisce errore di un classificatore come la probabilità


che non preveda l’etichetta corretta su un punto dati casuale generato dalla di-
stribuzione di probabilità D. Cioè, l’errore di h è la probabilità di campionare
un’istanza casuale x, secondo la distribuzione D, tale che h(x) ̸= f (x). Formal-
mente, dato un sottoinsieme di dominio A ⊂ X, la distribuzione di probabilità
D assegna un numero D(A) che determina la probabilità di osservare un punto
x ∈ A. In molti casi, ci riferiamo ad A come un evento e lo esprimiamo utilizzando
una funzione π : X → {0, 1}, ovvero A = {x ∈ X : π(x) = 1} . In quel caso,
usiamo anche la notazione Px∼D [π(x)] per esprimere D(A). Definiamo l’errore
vero di un predittore h : X → Y:

def def
LD,f (h) = P [h(x) ̸= f (x)] = D({x : h(x) ̸= f (x)}) (1.1)
x∼D

2
Il pedice (D, f ) indica che l’errore è misurato rispetto alla distribuzione di proba-
bilità D e alla funzione di etichettatura corretta f . Si usa la lettera L per l’errore,
poiché consideriamo questo errore come la perdita (loss) del predittore.
Poiché il learner non sa cosa sono D ed f , l’errore vero non è direttamente dispo-
nibile per il learner. Un altro tipo di errore che può essere calcolato dal learner
è il rischio empirico, ovvero l’errore che il classificatore commette nel training
set:
def |{i ∈ [m] : h (xi ) ̸= yi }|
LS (h) = (1.2)
m

dove [m] = {1, ..., m}. Poiché il training set è l’istantanea del mondo a dispo-
sizione del learner, ha senso cercare una soluzione che funzioni bene su quei
dati.

1.1 Empirical Risk Minimization

L’ERM è un paradigma di apprendimento che fornisce un predittore h che minimizza


il rischio empirico LS (h).

1.1.1 Overfitting

L’overfitting è il fenomeno che si verifica quando l’ipotesi si adatta "troppo bene" ai


dati del training set, ma non è in grado di generalizzare sugli elementi che non sono
presenti nel training set. Si consideri il seguente predittore:



y i se ∃ i ∈ [m] t.c. xi = x
hS (x) = (1.3)


0 altrimenti

3
Pur essendo piuttosto artificiale, questo predittore può essere scelto da un algoritmo
ERM , dal momento che LS (hS ) = 0 (rischio empirico minimo, nessun classificatore può
avere errori minori). D’altra parte, l’errore vero di qualsiasi classificatore che predice
l’etichetta 1 solo su un numero finito di istanze è 1/2. Dunque, abbiamo trovato un
predittore le cui prestazioni sul training set sono eccellenti, ma la sue prestazioni nel
"mondo reale" sono piuttosto scarse.

1.2 ERM con bias induttivo

Il paradigma ERM può portare a overfitting. Piuttosto che rinunciare a tale paradigma,
si cerca di correggerlo, ovvero si cercano le condizioni in base alle quali vi sia la garanzia
che ERM non si adatti eccessivamente: condizione in cui, quando il predittore ERM
ha buone prestazioni rispetto al training set, è anche molto probabile che funzioni bene
su altri elementi del dominio. Una soluzione comune è applicare ERM su uno spazio
di ricerca limitato. Formalmente, il learner dovrebbe scegliere in anticipo (prima di
vedere i dati) un insieme di predittori. Tale insieme è chiamato hypothesis class ed
è indicato con H. Ogni h ∈ H è una funzione da X a Y. Per una data classe H e un
training set S, il learner ERMh seleziona il predittore h ∈ H con il rischio empirico
minimo su S. Formalmente,

ERMH (S) ∈ argmin LS (h) (1.4)


h∈H

Limitando il learner a scegliere un predittore da H, lo orientiamo verso un particolare


insieme di predittori. Tali restrizioni sono chiamate bias induttivi. Poiché la scelta
di tale restrizione è determinata prima che il learner veda i dati di training, si basa su
una conoscenza preliminare del problema da apprendere.
Una questione fondamentale nella teoria dell’apprendimento è su quali classi di ipote-

4
si l’apprendimento ERMH non si tradurrà in overfitting (studieremo queste cose più
avanti).
Intuitivamente, scegliere una classe di ipotesi più ristretta ci protegge meglio dall’over-
fitting, ma allo stesso tempo potrebbe comportare un bias induttivo più forte.

1.3 Classi di ipotesi finite

Il tipo più semplice di restrizione su una classe di ipotesi è l’imposizione di un limite


superiore alla sua dimensione (ovvero il numero di predittori h in H). In questa sezione,
mostriamo che se H è una classe finita, ERMH non andrà in overfitting, a condizione
che si basi su un training set sufficientemente ampio (questo requisito sulla dimensione
dipenderà dalla dimensione di H). Limitare il learner a regole di previsione all’interno
di una classe di ipotesi finita può essere considerata una restrizione ragionevole. Ad
esempio, H può essere l’insieme di tutti i predittori che possono essere implementati da
un programma C++ scritto in un massimo di 109 bit di codice. Sebbene questa classe
sia infinita, se rendiamo discreta la rappresentazione in virgola mobile a 64 bit, la classe
delle ipotesi diventa una classe finita.
Analizziamo ora le prestazioni di ERMH assumendo che H sia una classe finita. Per
un training set S, etichettato secondo alcune f : X → Y, hS denoti un risultato
dell’applicazione di ERMH a S, ovvero:

hS ∈ argmin LS (h) (1.5)


h∈H

In questo capitolo, formuliamo la seguente ipotesi esemplificativa (che sarà attenuata


nel prossimo capitolo).

5
Definizione 1.3.1 (The Realizability Assumption).
Esiste un h∗ ∈ H tale che L(D,f ) (h∗ ) = 0. Si noti che questa assunzione implica che
LS (h∗ ) = 0, dove le istanze di S sono campionate secondo D ed etichettate secondo f .

L’assunzione di realizzabilità implica che, per ogni ipotesi ERM , LS (hS ) = 0. Ad ogni
modo, siamo interessati all’errore vero (true risk ) di hS , L(D,f ) (hS ), piuttosto che al
rischio empirico (empirical risk ).
Chiaramente, ogni garanzia sull’errore rispetto alla distribuzione sottostante D, per un
algoritmo che ha accesso ad un solo campione S, dovrebbe dipendere dalla relazione
che intercorre tra D e S. L’assunzione comune, nel campo della Statistical Machine
Learning, è che il training set S sia generato campionando punti dalla distribuzione D
indipendenti l’uno dall’altro. Formalmente,

• L’assunzione i.i.d: Le istanze del training set sono indipendenti e identicamente


distribuite secondo D. Ciò vuol dire che ogni xi in S è campionato secondo D e,
successivamente, etichettato secondo la funzione di etichettatura f . Denotiamo
questa assunzione con S ∼ Dm , dove m è la dimensione di S e Dm denota la pro-
babilità sulle m-tuple indotta applicando D di estrarre ogni elemento della tupla,
indipendentemente dagli altri elementi estratti.
Intuitivamente, il training set S è una finestra attraverso la quale il learner ot-
tiene informazioni parziali sulla distribuzione D nel mondo e sulla funzione di
etichettatura f . Maggiore è il campione, più è probabile che rifletta in modo più
accurato la distribuzione e l’etichettatura utilizzate per generarlo.

Poiché L(D,f ) (hS ) dipende dal training set S, il quale viene scelto in modo casuale, è
presente casualità anche nella scelta del predittore hS e, di conseguenza, nel rischio
L(D,f ) (hS ). Formalmente, diciamo che L(D,f ) (hS ) è una variabile aleatoria. Non è
realistico aspettarsi che, con piena certezza, S sia sufficiente per indirizzare il learner

6
verso un buon classificatore (dal punto di vista di D), poiché c’è sempre qualche proba-
bilità che i training data campionati non siano molto rappresentativi della distribuzione
D. Tornando all’esempio della degustazione delle papaie, c’è sempre qualche (piccola)
possibilità che tutte le papaie che abbiamo assaggiato non fossero gustose, nonostante
che il 70% delle papaie della nostra isola siano gustose. In tal caso, ERMH (S) può
essere la funzione costante che etichetta ogni papaia come non gustosa (e quindi ha il
70% di errore sulla vera distribuzione delle papaie dell’isola). Affrontiamo la probabilità
di campionare un training set per il quale L(D,f ) (hs ) non è molto grande.
Consideriamo i seguenti parametri:

• δ: rappresenta la probabilità di ottenere un training set non rappresentativo della


distribuzione D e (1 − δ) è il parametro di confidenza del training set.

• ε: parametro che indica la qualità della previsione, denominato parametro di


accuratezza. Tale parametro viene introdotto dal momento che non è possibile
garantire una previsione perfetta delle etichette.

Interpretiamo l’evento L(D,f ) (hS ) > ε come un fallimento del learner, al contrario se
L(D,f ) (hS ) ≤ ε consideriamo l’output dell’algoritmo come un predittore approssimati-
vamente corretto. Pertanto (fissando alcune funzioni di etichettatura f : X → Y), ci
interessa limitare superiormente la probabilità di campionare m-tuple di istanze che
porteranno al fallimento del learner. Formalmente, siano S|x = (x1 , . . . , xm ) le istanze
del training set. Vorremmo il limite superiore come segue:

Dm ({S|x : L(D,f ) (hS ) > ε}) (1.6)

Sia HB l’insieme delle ipotesi "non buone", cioè:

HB = {h ∈ H : L(D,f ) (h) > ε} (1.7)

7
Inoltre, sia:
M = {S|x : ∃ h ∈ HB , LS (h) = 0} (1.8)

l’insieme dei training set fuorvianti (misleading): cioè, per ogni S|x ∈ M , c’è una
"cattiva" ipotesi, h ∈ HB , che sembra un’ipotesi "buona" su S|x . Ora, si ricordi che
vorremmo limitare la probabilità dell’evento L(D,f ) (hS ) > ε. Ma, dal momento che
l’ipotesi di realizzabilità implica che LS (h) = 0, ne segue che l’evento L(D,f ) (hS ) > ε
può avvenire solo se per qualche h ∈ HB abbiamo LS (h) = 0. In altre parole, questo
evento si verificherà solo se il nostro training set è nell’insieme dei training set fuorvianti
M . Formalmente, abbiamo dimostrato che:

{S|x : L(D,f ) (hS ) > ε} ⊆ M (1.9)

Nota che possiamo riscrivere M come

[
M= { S|x : LS (h) = 0} (1.10)
h∈HB

Quindi:
!
[
Dm ({S|x : L(D,f ) (hS ) > ε}) ≤ Dm (M ) = Dm {S|x : LS (h) = 0} (1.11)
h∈HB

Successivamente, limitiamo superiormente il lato destro dell’equazione precedente uti-


lizzando l’union bound, una proprietà di base delle probabilità.

8
Lemma 1.3.0.1 (Union Bound). Dati due insiemi A,B e una distribuzione D abbiamo

D(A ∪ B) ≤ D(A) + D(B) (1.12)

Applicando l’union bound al lato destro dell’Equazione 1.11 si ottiene:

X
Dm ({S|x : L(D,f ) (hS ) > ε}) ≤ Dm ({S|x : LS (h) = 0}) (1.13)
h∈HB

Quindi, limitiamo ogni somma del lato destro della disuguaglianza precedente. Risol-
viamo alcune ipotesi "cattive" h ∈ HB . L’evento LS (h) = 0 è equivalente all’evento
∀i, h (xi ) = f (xi ). Poiché i training set sono i.i.d otteniamo

Y
m
m m
D ({S|x : LS (h) = 0}) = D ({S|x : ∀i, h(xi ) = f (xi )}) = D({xi : h(xi ) = f (xi )})
i=1
(1.14)
Per ogni singolo campionamento di un elemento del training set abbiamo

D ({xi : h (xi ) = yi }) = 1 − L(D,f ) (h) ≤ 1 − ε (1.15)

dove l’ultima disuguaglianza segue dal fatto che h ∈ HB . Combinando la precedente


equazione con l’Equazione 1.14 e usando la disuguaglianza 1 − ε ≤ e−ε otteniamo che
per ogni h ∈ HB ,

Dm ({S|x : LS (h) = 0}) ≤ (1 − ε)m ≤ e−εm (1.16)

Combinando questa equazione con l’Equazione 1.13 possiamo concludere che

Dm ({S|x : L(D,f ) (hS ) > ε}) ≤ |HB |e−εm ≤ |H|e−εm (1.17)

9
to the event ∀i, h(xi ) = f (xi ). Since the examples in the training set are sampled
i.i.d. we get that

Dm ({S|x : LS (h) = 0}) = Dm ({S|x : ∀i, h(xi ) = f (xi )})


m
Y
= D({xi : h(xi ) = f (xi )}). (2.8)
i=1

For each individual sampling of an element of the training set we have

D({xi : h(xi ) = yi }) = 1 − L(D,f ) (h) ≤ 1 − ,

where the last inequality follows from the fact that h ∈ HB . Combining the
previous equation with Equation (2.8) and using the inequality 1 −  ≤ e− we
obtain that for every h ∈ HB ,

Un’illustrazione grafica che spiegaD come abbiamo usato


m
({S| : L (h) = 0}) ≤ (1 − ) ≤ e
x S .
l’union
(2.9)
bound è fornita nella
m −m

Combining this equation with Equation (2.7) we conclude that

Figura 1.1.
Dm ({S|x : L(D,f ) (hS ) > }) ≤ |HB | e−m ≤ |H| e− m .

A graphical illustration which explains how we used the union bound is given in
Figure 2.1.

Figure 2.1 Each point in the large circle represents a possible m-tuple of instances.

Figura 1.1: Ogni punto del cerchio grande rappresenta una delle possibili m-tuple di
Each colored oval represents the set of “misleading” m-tuple of instances for some
“bad” predictor h ∈ HB . The ERM can potentially overfit whenever it gets a

istanze. Ogni ovale colorato rappresenta l’insieme di m-tuple di istanze "fuorvianti" per
misleading training set S. That is, for some h ∈ HB we have LS (h) = 0.
Equation (2.9) guarantees that for each individual bad hypothesis, h ∈ HB , at most
(1 − )m -fraction of the training sets would be misleading. In particular, the larger m

alcuni predittori "cattivi" h ∈ HB . L’ERM può potenzialmente andare in overfitting


is, the smaller each of these colored ovals becomes. The union bound formalizes the
fact that the area representing the training sets that are misleading with respect to
some h ∈ HB (that is, the training sets in M ) is at most the sum of the areas of the
ogni volta che ottiene un training set fuorviante S. Cioè, per alcuni h ∈ HB abbiamo che
colored ovals. Therefore, it is bounded by |HB | times the maximum size of a colored
oval. Any sample S outside the colored ovals cannot cause the ERM rule to overfit.

LS (h) = 0. L’Equazione 1.16 garantisce che per ogni singola ipotesi negativa h ∈ HB
corollary 2.3 Let H be a finite hypothesis class. Let δ ∈ (0, 1) and  > 0
al massimo la frazione (1 − ε)m del training set sarebbe fuorviante. In particolare,
più è grande m, minore diventa ciascuno di questi ovali colorati. Il vincolo di unione
formalizza il fatto che l’area che rappresenta i training set che sono fuorvianti rispetto
ad alcuni h ∈ HB (cioè i training set in M ) è al massimo la somma delle aree degli ovali
colorati. Pertanto, è limitato da |HB | volte la dimensione massima di un ovale colorato.
Qualsiasi campione S al di fuori degli ovali colorati non può causare l’overfitting di
ERM .

Corollario 1.3.0.1. Sia H una classe di ipotesi finite. Siano δ ∈ (0, 1), ε > 0 e sia m
un intero che soddisfa
ln(|H|/δ)
m≥ (1.18)
ε

Quindi, per ogni funzione di etichettatura, f , e per ogni distribuzione D, per la quale
vale l’ipotesi di realizzabilità (cioè, per qualche h ∈ H, L(D,f ) (h) = 0), con probabilità
di almeno 1 − δ sulla scelta di un campione S i.i.d di dimensione m, abbiamo che per
ogni ipotesi ERM , hS , vale che

L(D,f ) (hS ) ≤ ε (1.19)

Il corollario precedente ci dice che per un m sufficientemente grande, ERMH su una


classe di ipotesi finite sarà probabilmente (con confidenza 1 − δ) approssimativamente
corretto.

10
Capitolo 2

Predittori lineari

I predittori lineari sono una delle famiglie di predittori più utilizzate: molti algoritmi
di apprendimento si basano sui predittori lineari, in primo luogo per la loro capacità di
apprendere in modo efficiente; inoltre, i predittori lineari sono intuitivi, facili da inter-
pretare e si adattano bene ai dati in molti problemi di apprendimento naturali. Questo
capitolo è focalizzato sull’apprendimento dei predittori lineari utilizzando l’approccio
ERM ; tuttavia esistono paradigmi alternativi per l’apprendimento di queste classi di
ipotesi.
In primo luogo, definiamo la classe delle funzioni affini come:

Ld = {hw,b : w ∈ Rd , b ∈ R} (2.1)

dove: !
X
d
hw,b (x) = ⟨w, x⟩ + b = wi xi +b (2.2)
i=1

Sarà conveniente usare anche la seguente notazione:

Ld = {x 7→ ⟨w, x⟩ + b : w ∈ Rd , b ∈ R} (2.3)

11
che si legge come segue: Ld è un insieme di funzioni, dove ogni funzione è parametriz-
zata da w ∈ Rd e da b ∈ R, e ciascuna di queste funzioni prende come input un vettore
x e restituisce come output lo scalare ⟨w, x⟩ + b.
Le diverse classi di ipotesi dei predittori lineari sono composizioni di una funzione
ϕ : R → Y su Ld . Ad esempio, nella classificazione binaria, possiamo scegliere ϕ come
funzione segno, e per i problemi di regressione, dove Y = R, ϕ è semplicemente la
funzione identità.
Talvolta, potrebbe essere più conveniente utilizzare la notazione omogenea: si incor-
pora b, chiamato bias, in w come coordinata extra e si aggiunge un’ulteriore coordinata
extra con valore 1 (nella stessa posizione associata al bias b in w) a tutti gli x ∈ X ; cioè,
poniamo w′ = (b, w1 , w2 , . . . , wd ) ∈ Rd+1 e poniamo x′ = (1 , x1 , x2 , . . . , xd ) ∈ Rd+1 .
Pertanto:
hw,b (x) = ⟨w, x⟩ + b = ⟨w′ , x′ ⟩ (2.4)

Ne consegue che ogni funzione affine in Rd può essere riscritta come un funzione lineare
omogenea in Rd+1 applicata sulla trasformazione che aggiunge la costante 1 ad ogni
vettore in ingresso. Quindi, ogni volta che viene semplificata la notazione, si omette il
termine noto (bias) e si fa riferimento a Ld come la classe delle funzioni lineari omogenee
della forma hw (x) = ⟨w, x⟩.
Si noti che usiamo spesso il termine generico "funzioni lineari" sia per funzioni affini
che per funzioni lineari (omogenee).

12
118 Linear Predictors

Rd+1 . Therefore,
hw,b (x) = hw, xi + b = hw0 , x0 i.
2.1 Semispazi
It follows that each affine function in Rd can be rewritten as a homogenous linear
function in Rd+1 applied over the transformation that appends the constant 1
I semispazi sonoinput
to each una vector.
classe di ipotesi whenever
Therefore, progettata per problemi
it simplifies di classificazione
the presentation, we will binaria,
omitd the bias term and refer to Ld as the class of homogenous linear functions
cioè, X =ofRthe eform
Y =h{−1, +1}. La classe dei semispazi è definita come segue:
w (x) = hw, xi.
Throughout the book we often use the general term “linear functions” for both
affine functions and (homogenous) linear functions.
HSd = sign ◦ Ld = {x 7→ sign(hw,b (x)) : hw,b ∈ Ld } (2.5)

9.1 Halfspaces
In altre parole, ogni ipotesi del semispazio in HSd è parametrizzata da w ∈ Rd e b ∈ R
The first hypothesis class we consider is the class of halfspaces, designed for
e, dopo aver ricevuto
binary un vettore
classification x, l’ipotesi
problems, = R and Yl’etichetta
namely, Xrestituisce
d
= {−1, +1}.sign(⟨w,
The classx⟩
of + b).
halfspaces is defined as follows:
Per illustrare geometricamente questa classe di ipotesi, è istruttivo considerare il caso in
HSd = sign ◦ Ld = {x 7→ sign(hw,b (x)) : hw,b ∈ Ld }.
cui d = 2.InOgni
otheripotesi
words, forma un iperpiano
each halfspace che èinperpendicolare
hypothesis al vettore
HSd is parameterized by ww ∈e interseca
Rd and b ∈ R and upon receiving a vector x the hypothesis returns the label
l’asse verticale
sign(hw,nel punto
xi + b). (0, −b/w2 ). Le istanze che sono "sopra" l’iperpiano, cioè che
To illustrate this hypothesis class geometrically, it is instructive to consider
condividono un angolo acuto con w, sono etichettate positivamente. Le istanze che
the case d = 2. Each hypothesis forms a hyperplane that is perpendicular to the
vector
sono "sotto" w and intersects
l’iperpiano, the vertical
cioè che axis at un
condividono the angolo −b/w2 ).con
point (0,ottuso Thew,instances
sono etichettate
that are “above” the hyperplane, that is, share an acute angle with w, are labeled
negativamente.
positively. Instances that are “below” the hyperplane, that is, share an obtuse
angle with w, are labeled negatively.

w +


+

In Figura 2.1:weEsempio
Section 9.1.3 will showdithat
etichettatura
VCdim(HSd )con = dsemispazio in that
+ 1. It follows R2 we
can
 learn halfspaces
 using the ERM paradigm, as long as the sample size is
d+log(1/δ)
Ω  . Therefore, we now discuss how to implement an ERM procedure
Nelle sezioni successive si mostra come implementare ERM per semispazi attraverso
for halfspaces.
We introduce below two solutions to finding an ERM halfspace in the realiz-
due soluzioni differenti
able case. In the nel casoofrealizzabile
context (programmazione
halfspaces, the lineare
realizable case is often e perceptron).
referred to as
the “separable” case, since it is possible to separate with a hyperplane all the
Nel contesto dei examples
positive semispazi,fromsi all
hathe
che:negative examples. Implementing the ERM rule

H realizzabile ⇐⇒ S linearmente separabile

13
Definizione 2.1.1 (Training set S linearmente separabile).
Un training set S è linearmente separabile se è possibile separare con un iperpiano
tutti i campioni con etichetta positiva da tutti quelli con etichetta negativa.

Si noti che se un training set S è linearmente separabile, allora esistono infiniti iperpiani
che separano i campioni positivi dai negativi.

Figura 2.2: (Sinistra) Caso linearmente separabile, si notino gli infiniti iperpiani.
(Destra) Caso non linearmente separabile.

È noto che l’implementazione di ERM nel caso non separabile (cioè il caso agnostico)
è computazionalmente costoso. Esistono diversi approcci per l’apprendimento di dati
non separabili. Ad esempio, descriveremo l’approccio della logistic regression, che
può essere implementata in modo efficiente anche nel caso non separabile.

14
2.1.1 Programmazione lineare per semispazi

I programmi lineari (LP) sono problemi che possono essere espressi come massimizza-
zione di una funzione lineare soggetta a disuguaglianze lineari, cioè:

max ⟨u, w⟩
w∈Rd
(2.6)
soggetto a Aw ≥ v

dove w ∈ Rd è il vettore delle variabili che vogliamo determinare, A è una matrice m×n
e v ∈ Rm , u ∈ Rd sono vettori. I programmi lineari possono essere risolti in modo effi-
ciente, vale a dire, in tempo polinomiale in m, d e nella dimensione di rappresentazione
dei numeri reali.
Di seguito, si mostra che il problema ERM per semispazi nel caso realizzabile può es-
sere espresso come un programma lineare. Per semplicità assumiamo il caso omogeneo.
Sia S = {(xi , yi )}m
i=1 un training set di dimensione m. Poiché assumiamo il caso realiz-

zabile, un predittore ERM dovrebbe avere zero errori sul training set.
Cioè, stiamo cercando un vettore w ∈ Rd per il quale

sign (⟨w, xi ⟩) = yi , ∀i = 1, . . . , m (2.7)

Equivalentemente, stiamo cercando un vettore w per il quale

yi ⟨w, xi ⟩ > 0, ∀i = 1, . . . , m (2.8)

Sia w∗ un vettore che soddisfi questa condizione (deve esistere per l’ipotesi di realizza-
w∗
bilità). Definiamo γ = min (yi ⟨w∗ , xi ⟩) con γ > 0 e sia w̄ = γ
.

15
Pertanto, per ogni i abbiamo che

yi ⟨w∗ , xi ⟩ ≥ γ (2.9)

dal momento che γ è il minimo. Dunque, dividendo entrambi i membri per γ, si ha che:

1
yi ⟨w, xi ⟩ = yi ⟨w∗ , xi ⟩ ≥ 1 (2.10)
γ

Abbiamo così mostrato che esiste un vettore che soddisfa

yi ⟨w, xi ⟩ ≥ 1, ∀i = 1, . . . , m (2.11)

E chiaramente, tale vettore è un predittore ERM .


Per trovare un vettore che soddisfi l’Equazione 2.11 possiamo fare affidamento su un
risolutore LP come segue. Poniamo A come la matrice m × d le cui righe sono le istanze
moltiplicate per yi . Cioè, Ai,j = yi xi,j dove xi,j è il j-esimo elemento del vettore xi . Sia
v il vettore (1, . . . , 1) ∈ Rm . Allora, l’Equazione 2.11 può essere riscritta come

Aw ≥ v (2.12)

La forma LP richiede un obiettivo di massimizzazione, tuttavia tutti i w che soddisfano i


vincoli sono egualmente candidati come ipotesi di output. Quindi, fissiamo un obiettivo
"stupido", u = (0, . . . , 0) ∈ Rd .

16
2.1.2 Perceptron per semispazi

Il Perceptron è un algoritmo iterativo che parte da una soluzione iniziale e la migliora


ad ogni iterazione fino a farla convergere ad una soluzione finale.
L’obiettivo del Perceptron per semispazi è trovare un vettore w tale che yi ⟨w, xi ⟩ > 0 per
ogni i. Si ricordi che trovare il vettore w è equivalente a trovare il predittore (nel caso
lineare). Affinché il Perceptron converga, è necessario che S sia linearmente separabile,
in caso contrario, la convergenza non si può ottenere (si può applicare un upper bound
al numero di iterazioni).
Il Perceptron costruisce una sequenza di vettori w(1) , w(2) , . . . , w(t) . Inizialmente, w(0)
è un vettore di tutti zeri. All’iterazione t, il Perceptron trova un campione i che è
etichettato erroneamente da w(t) , cioè, un campione per il quale sign(⟨w(t) , xi ⟩) ̸= yi .
Quindi, il Perceptron aggiorna w(t) aggiungendo ad esso l’istanza xi moltiplicata per
l’etichetta yi . Cioè, w(t+1) = w(t) + yi xi . Notiamo che:

yi ⟨w(t+1) , xi ⟩ = yi ⟨w(t) + yi xi , xi ⟩ = yi ⟨w(t) , xi ⟩ + yi ⟨yi xi , xi ⟩ =

= yi ⟨w(t) , xi ⟩ + yi2 ⟨xi , xi ⟩ = yi ⟨w(t) , xi ⟩ + ||xi ||2

Si ricordi che noi vogliamo che yi ⟨w, xi ⟩ > 0, ma se lo stiamo considerando è perché
è minore di 0, dunque, aggiungendo la quantità sempre positiva ||xi ||2 , la soluzione
migliora sempre di più.
Quindi, l’aggiornamento del Perceptron porta la soluzione ad essere "più corretta"
sull’i-esimo campione.

17
Perceptron updates w by adding to it the instance xi scaled by the label yi .
That is, w(t+1) = w(t) + yi xi . Recall that our goal is to have yi hw, xi i > 0 for
all i and note that
yi hw(t+1) , xi i = yi hw(t) + yi xi , xi i = yi hw(t) , xi i + kxi k2 .
Hence, the update of the Perceptron guides the solution to be “more correct” on
the i’th example.
Batch Perceptron
input: A training set (x1 , y1 ), . . . , (xm , ym )
initialize: w(1) = (0, . . . , 0)
for t = 1, 2, . . .
if (∃ i s.t. yi hw(t) , xi i ≤ 0) then
w(t+1) = w(t) + yi xi
else
output w(t)

The following theorem guarantees that in the realizable case, the algorithm
stops with all sample points correctly classified.
La convergenza può essere lenta se i vettori soluzione w hanno una norma grande: in
theorem 9.1 Assume that (x1 , y1 ), . . . , (xm , ym ) is separable, let B = min{kwk :
questo caso
∀i può convenire
∈ [m], yi hw, xi ila≥programmazione lineare.
1}, and let R = max i kxi k. Then, the Perceptron al-
gorithm stops after at most (RB)2 iterations, and when it stops it holds that
Il seguente∀i teorema
∈ [m], yigarantisce che nel caso realizzabile, l’algoritmo si ferma con
hw(t) , xi i > 0. tutti i
campioni Proof By the definition of the stopping condition, if the Perceptron stops it
classificati correttamente.
must have separated all the examples. We will show that if the Perceptron runs
for T iterations, then we must have T ≤ (RB)2 , which implies the Perceptron
Teoremamust
2.1.1. afterAssumiamo
stop9.1 at most (RB)che
2
(x1 , y1 ), . . . , (xm , ym ) sia separabile, sia
iterations.
?
Let w be a vector that achieves the minimum in the definition of B. That is,
B = min{∥w∥ : ∀i ∈ [m], yi ⟨w, xi ⟩ ≥ 1}, e sia R = maxi ∥xi ∥. Quindi, l’algoritmo
Perceptron si ferma dopo al massimo (RB)2 iterazioni e quando si ferma si ha che
∀i ∈ [m], yi ⟨w(t) , xi ⟩ > 0.

2.2 Regressione lineare

La regressione lineare è uno strumento statistico utilizzato per ricostruire una relazione
lineare tra d variabili e un output reale. L’obiettivo è apprendere una funzione lineare
h : Rd → R che meglio approssima la relazione tra le variabili (ad esempio, prevedere
il peso di un bambino in funzione della sua età e del suo peso alla nascita). Quindi,
X ⊆ Rd e Y = R.

18
9.2 Linear Regression 123

r r
r r
r r
r
r
r
r r

FigureRegressione
Figura 2.3: lineare
9.1 Linear regression forper
d = 1.d For
= 1. Per esempio,
instance, l’ascissa
the x-axis may denote può indicare
the age of l’età
del bambino e l’ordinata
the baby, il suoherpeso.
and the y-axis weight.

9.2 Linear Regression


La classe di ipotesi dei predittori di regressione lineare è semplicemente l’insieme delle
Linear regression is a common statistical tool for modeling the relationship be-
funzioni affini:
tween some “explanatory” variables and some real valued outcome. Cast as a
learning problem, the domain set X is a subset of Rd , dfor some d, and the la-
bel set Y is Hthe = {x
=ofLdreal
regset 7→ ⟨w,We
numbers. + b : wlike∈ to
x⟩ would , b ∈ aR}linear function (2.13)
R learn
h : R → R that best approximates the relationship between our variables (say,
d

for example, predicting the weight of a baby as a function of her age and weight
Bisogna definire una funzione costo per la regressione. Mentre nella classificazione la
at birth). Figure 9.1 shows an example of a linear regression predictor for d = 1.
definizione del
Thecosto è semplice,
hypothesis class of in quanto
linear regression y)) indica
predictors
ℓ(h, (x, semplicemente
is simply se h(x) pre-
the set of linear
functions,
dice correttamente y o no,
Hregnella
= Ld regressione,
= {x 7→ hw, xise+ il
b :peso
w ∈ Rdel
d bambino è di 3 kg, entrambi
, b ∈ R}.

le previsioniNext
3.00001 kgtoedefine
we need 4 kg asono "sbagliate",
loss function ma chiaramente
for regression. preferiremmo
While in classification the il pri-
definition of the loss is straightforward, as `(h, (x, y)) simply indicates whether
mo rispetto alcorrectly
h(x) secondo. Dobbiamo
predicts quindi
y or not, definireif quanto
in regression, saremo
the baby’s weight "penalizzati"
is 3 kg, both per la
the predictions 3.00001 kg and 4 kg are “wrong,” but we would clearly prefer
discrepanza
thetra e y.theUnlatter.
h(x)over
former modo Wecomune
thereforeè need
quello
to di utilizzare
define la funzione
how much we shall bedi costo
“penalized” for the discrepancy between h(x) and y. One common way is to use
quadratico (squared-loss), ovvero,
the squared-loss function, namely,

`(h, (x, y)) = (h(x) − y)2 .


ℓ(h,
For this loss function, the (x, y)) risk
empirical = (h(x) − y)is called the Mean Squared (2.14)
function
2

Error, namely,
m
1 X
Si usa il quadrato e non il valore Sassoluto
L (h) = poiché yi )2 . è sia continuo che derivabile,
(h(xi )il−primo
m i=1

mentre il secondo è continuo, ma non derivabile.

19
Per questa funzione costo, la funzione di rischio empirico è chiamata errore quadratico
medio (Mean Squared Error), vale a dire,

1 X
m
LS (h) = (h(xi ) − yi )2 (2.15)
m i=1

Nella prossima sottosezione vedremo come implementare la regola ERM per la regres-
sione lineare rispetto al costo quadratico. Naturalmente, ci sono una varietà di altre
funzioni costo che si possono usare, come ad esempio la funzione costo in valore assoluto
ℓ(h, (x, y)) = |h(x) − y|. Con la funzione costo in valore assoluto si ottiene un problema
di programmazione lineare.

2.2.1 Least Squares

L’algoritmo dei minimi quadrati risolve il problema ERM per la classe di ipotesi dei
predittori di regressione lineare rispetto al costo quadratico (squared loss). Dato un
training set S e utilizzando la versione omogenea di Ld , il problema ERM rispetto a
questa classe è trovare

1 X
m
argmin LS (hw ) = argmin (⟨w, xi ⟩ − yi )2 (2.16)
w w m i=1

Per risolvere il problema, si calcola il gradiente della funzione obiettivo e lo si confronta


con zero. Cioè, dobbiamo risolvere

2 X
m
(⟨w, xi ⟩ − yi )xi = 0 (2.17)
m i=1

Possiamo riscrivere il problema come il problema Aw = b dove


!
X
m X
m
A= xi x⊤
i e b= yi xi (2.18)
i=1 i=1

20
Oppure, in forma matriciale:

  ⊤
.. .. .. ..
 . .  . . 
  
A= 
 x1 . . . xm   x1 . . . xm
 ,

 . ..   .. .. 
.. . . .
   (2.19)
.. ..
 . .   y1 
  . 
b=  . 
x
 1 . . . x m  . 
 . ..   
.. . ym

Se A è invertibile, la soluzione al problema ERM è

w = A−1 b (2.20)

Il caso in cui A non è invertibile richiede alcuni strumenti standard dell’algebra lineare.

2.2.2 Regressione lineare applicata alla regressione polinomiale

Alcuni task di apprendimento richiedono predittori non lineari, come i predittori po-
linomiali. Si consideri una funzione polinomiale unidimensionale di grado n, cioè:

p(x) = a0 + a1 x + a2 x2 + · · · + an xn (2.21)

dove (a0 , . . . , an ) è un vettore di coefficienti di dimensione n + 1. Di seguito descriviamo


un training set che si adatta meglio utilizzando un predittore polinomiale di 3◦ grado
rispetto all’uso di un predittore lineare.

21
Ci concentreremo sulla classe dei predittori di regressione polinomiale unidimensionali,
di grado n, vale a dire,
n
Hpoly = {x 7→ p(x)} (2.22)

dove p è un polinomio unidimensionale di grado n, parametrizzato da un vettore di


coefficienti (a0 , . . . , an ). Si noti che X = R, poiché si tratta di un polinomio unidimen-
sionale, e Y = R, in quanto problema di regressione.
Un modo di apprendere questa classe è ricondurla al problema di regressione lineare,
che abbiamo già mostrato come risolvere. Per tradurre un problema di regressione po-
linomiale in un problema di regressione lineare, definiamo la funzione ψ : R → Rn+1
tale che ψ(x) = (1, x, x2 , . . . , xn ). Allora abbiamo che

p(ψ(x)) = a0 + a1 x + a2 x2 + · · · + an xn = ⟨a, ψ(x)⟩ (2.23)

e possiamo trovare il vettore ottimale dei coefficienti a usando l’algoritmo dei minimi
quadrati come mostrato in precedenza.

2.3 Logistic Regression

Nella Logistic Regression, implementabile anche nel caso in cui S non sia linearmente
separabile, si apprende una famiglia di funzioni h : Rd → [0, 1]. Tuttavia, la logistic
regression è utilizzata per problemi di classificazione: si può interpretare h(x) come
h(x) = P(y = 1 | x). La classe di ipotesi associata alla logistic regression è la composi-

22
zione di una funzione sigmoide ϕsig : R → [0, 1] rispetto alla classe delle funzioni affini
Ld . In particolare, la funzione sigmoide utilizzata nella logistic regression è la logistic
function, definita come:
1
ϕsig (z) = (2.24)
1 + e−z

Il nome "sigmoide" significa "a forma di S", riferendosi al grafico di questa funzione,
mostrato nella seguente figura:

0.8

0.6

0.4

0.2

−4 −2 0 2 4

Figura 2.4: Funzione sigmoide

La classe di ipotesi è quindi (dove per semplicità usiamo funzioni lineari omogenee):

Hsig = ϕsig ◦ Ld = {x 7→ ϕsig (⟨w, x⟩) : w ∈ Rd } (2.25)

Quindi P(y = +1 | x) = ϕsig (⟨w, x⟩), pertanto si ha che:

⟨w, x⟩ >>> 0 =⇒ ϕsig (⟨w, x⟩) ≈ 1 =⇒ y = 1

⟨w, x⟩ <<< 0 =⇒ ϕsig (⟨w, x⟩) ≈ 0 =⇒ y = −1

⟨w, x⟩ ≈ 0 =⇒ ϕsig (⟨w, x⟩) ≈ 0.5 =⇒ y = ??

23
Dunque, quando i due vettori hanno la stessa direzione, semispazi e regressione logistica
si comportano allo stesso modo. Al contrario, quando w ⊥ x (approssimativamente)
e quindi ⟨w, x⟩ ≈ 0, allora la regressione logistica restituisce 1 con probabilità intorno
a 0.5: si ha bassa confidenza. Invece, il semispazio restituisce sempre la predizione
deterministica sign(⟨w, x⟩) senza alcun indizio che la classificazione sia incerta. Quindi
si ha che:

1
hw (x) =
1 + e−⟨w,x⟩
1 e−⟨w,x⟩ e−⟨w,x⟩ e+⟨w,x⟩ 1
1 − hw (x) = 1 − = = · =
1 + e−⟨w,x⟩ 1 + e−⟨w,x⟩ 1 + e−⟨w,x⟩ e+⟨w,x⟩ 1 + e+⟨w,x⟩

Pertanto, vogliamo 1
1+e−y⟨w,x⟩
grande (uniformiamo mettendo y davanti a ⟨w, x⟩), quindi
la funzione costo deve crescere con 1 + e−y⟨w,x⟩ . Siccome l’esponenziale cresce troppo
velocemente, conviene considerare il logaritmo che è una funzione monotona crescente;

dunque, la funzione costo deve crescere con log 1 + e−y⟨w,x⟩ . Quindi:


ℓ(hw (x, y)) = log 1 + e−y⟨w,x⟩ (2.26)

Dato un training set S, la formulazione ERM del problema di logistic regression è:

1 X
m
argmin log(1 + e−yi ⟨w,xi ⟩ ) (2.27)
w∈Rd m i=1

Il vantaggio della funzione costo della logistic regression è che si tratta di una funzione
convessa rispetto a w, dunque ha un solo minimo; pertanto, il problema ERM può
essere risolto in modo efficiente.

24
Capitolo 3

Model Selection e Validation

La selezione del modello è il processo di scelta di un modello di apprendimento da un


insieme di modelli candidati come modello finale che risolve il problema.

3.1 Validation for Model Selection

Il modo più semplice per stimare l’errore vero di un predittore h consiste nel campionare
un insieme aggiuntivo, indipendente dal training set, utilizzando l’errore empirico su
questo validation set come nostro stimatore. Formalmente, V = (x1 , y1 ) , . . . , (xmv , ymv )
è un insieme di nuovi mv elementi campionati secondo D, indipendentemente dagli m
campioni del training set. La validation viene utilizzata per la selezione del modello
come segue:

1. si addestrano algoritmi diversi (o lo stesso algoritmo con parametri diversi) sul


training set S;

2. sia H = {h1 , . . . , hr } l’insieme di tutti i predittori dei diversi algoritmi. Ad


esempio, nel caso dell’addestramento di regressori polinomiali, avremmo ogni hr
come l’output della regressione polinomiale di grado r;

25
3. si considera un nuovo insieme, detto validation set;

4. si sceglie il predittore che minimizza l’errore rispetto al validation set.

Teorema 3.1.1. Sia H = {h1 , . . . , hr } un insieme arbitrario di predittori e assumiamo


che la funzione costo sia in [0, 1]. Assumiamo che un validation set V di dimensione
mv sia campionato indipendentemente da H. Allora, con probabilità di almeno 1 − δ
sulla scelta di V abbiamo
s
log(2|H|/δ)
∀h ∈ H, |LV (h) − LD (h)| ≤ (3.1)
2mv

Questo teorema ci dice che l’errore sul validation set approssima l’errore vero fintan-
to che H non è troppo grande. Se |H| è troppo grande rispetto alla dimensione del
validation set, si rischia l’overfitting. Si noti che il limite del teorema non dipende
dall’algoritmo o dal training set utilizzato per costruire h.

3.1.1 Curva della selezione del modello

Per la selezione del modello, è consigliabile considerare la curva di selezione del modello,
la quale mostra il training error e il validation error in funzione della complessità del
modello considerato. Infatti, sull’asse x vi è un parametro che controlla la complessità
del modello, crescente da sinistra a destra (ad esempio, il grado polinomiale d), mentre
sull’asse y vi è l’errore (training error e validation error). Il training error, di solito,
diminuisce con la complessità del modello: più il modello è complesso, meglio si adatta
ai dati (da un certo punto in poi, troppo); il validation error, invece, prima diminuisce,
poi aumenta, segnalando una situazione di overfitting.
Ad esempio, per il problema di adattamento polinomiale menzionato in precedenza, la
curva sarà simile alla seguente:

26
11.2 Validation 149

0.4 train
validation

0.3
error
0.2

0.1

2 4 6 8 10
d

As can be shown, the training error is monotonically decreasing as we increase


the polynomial degree (which is the complexity of the model in our case). On
3.2 k-Fold Cross Validation
the other hand, the validation error first decreases but then starts to increase,
which indicates that we are starting to suffer from overfitting.
Plotting such curves can help us understand whether we are searching the
In alcune applicazioni,
correct regime ofi dati sono pochi
our parameter e non
space. li vogliamo
Often, there may "sprecare"
be more thanper la validation.
a single
parameter to tune, and the possible number of values each parameter can take
La tecnicamight
di k-fold cross
be quite validation
large. è progettata
For example, in Chapter per13fornire una stima
we describe accurata
the concept of dell’er-
regularization, in which the parameter of the learning algorithm is a real number.
rore vero In
senza
such sprecare troppi
cases, we start dati.
with a rough grid of values for the parameter(s) and plot
the corresponding model-selection curve. On the basis of the curve we will zoom
Nella k-fold
in tocross validation
the correct regime il
andtraining
employ aset
fineroriginale è partizionato
grid to search in k sottoinsiemi
over. It is important to
verify that we are in the relevant regime. For example, in the polynomial fitting
(fold) di dimensione m/k (per
problem described, semplicità,
if we start searchingassumiamo
degrees fromche
the m/k sia un{1,
set of values intero).
10, 20} Per ogni
and do not employ a finer grid based on the resulting curve, we will end up with
sottoinsieme, l’algoritmo viene addestrato sull’unione degli altri sottoinsiemi e quindi
a rather poor model.
l’errore del suo output viene stimato utilizzando il sottoinsieme. Infine, la media di
11.2.4questi
tutti k-Fold Cross
errori è la Validation
stima dell’errore vero. Il caso speciale k = m, dove m è il numero
The validation procedure described so far assumes that data is plentiful and that
di campioni, è chiamato
we have leave-one-out
the ability (LOO).
to sample a fresh validation set. But in some applications,
data is scarce and we do not want to “waste” data on validation. The k-fold
La k-fold cross validation viene spesso utilizzata per la selezione del modello (o l’otti-
cross validation technique is designed to give an accurate estimate of the true
error
mizzazione deiwithout wastinge,too
parametri) much
una data.
volta scelto il parametro migliore, l’algoritmo viene
In k-fold cross validation the original training set is partitioned into k subsets
riaddestrato utilizzando
(folds) of size m/kquesto parametro
(for simplicity, sull’intero
assume that m/k training set. For
is an integer). Di each
seguito
fold,viene for-
the algorithm is trained on the union of the other folds and then the error of its
nito uno output
pseudocodice della
is estimated k-fold
using cross
the fold. validation
Finally, per of
the average la all
selezione delismodello.
these errors the La
procedura riceve in input un training set, S, un insieme di possibili valori dei parametri

27
150 Model Selection and Validation

estimate of the true error. The special case k = m, where m is the number of
examples, is called leave-one-out (LOO).
k-Fold cross validation is often used for model selection (or parameter tuning),
Θ, un intero k, che rappresenta il numero di sottoinsiemi, e un algoritmo di apprendi-
and once the best parameter is chosen, the algorithm is retrained using this
mento A, parameter
che riceveonintheinput
entire training set. A pseudocode of k-fold cross validation
un training set oltre ad un parametro θ ∈ Θ. Fornisce
for model selection is given in the following. The procedure receives as input a
in output training
il parametro
set, S, amigliore e l’ipotesi
set of possible addestrata
parameter values, Θ,da questo k,
an integer, parametro sull’intero
representing
the number of folds, and a learning algorithm, A, which receives as input a
training set.
training set as well as a parameter θ ∈ Θ. It outputs the best parameter as well
as the hypothesis trained by this parameter on the entire training set.

k-Fold Cross Validation for Model Selection


input:
training set S = (x1 , y1 ), . . . , (xm , ym )
set of parameter values Θ
learning algorithm A
integer k
partition S into S1 , S2 , . . . , Sk
foreach θ ∈ Θ
for i = 1 . . . k
hi,θ = A(S \ Si ; θ)
Pk
error(θ) = k1 i=1 LSi (hi,θ )
output
θ? = argminθ [error(θ)]
hθ? = A(S; θ? )

The cross validation method often works very well in practice. However, it
might sometime fail, as the artificial example given in Exercise 1 shows. Rig-
Il metodoorously
della understanding
cross validation spessobehavior
the exact funziona molto
of cross bene nella
validation is stillpratica,
an open tuttavia,
problem. Rogers and Wagner (Rogers & Wagner 1978) have shown that for k
potrebbe local
a volte
rulesfallire. La comprensione
(e.g., k Nearest rigorosa19)dell’esatto
Neighbor; see Chapter comportamento
the cross validation proce- della
dure gives a very good estimate of the true error. Other papers show that cross
cross validation è ancora un problema aperto.
validation works for stable algorithms (we will study stability and its relation to
learnability in Chapter 13).

3.3
11.2.5 Test set
Train-Validation-Test Split
In most practical applications, we split the available examples into three sets.
Nella maggior parte
The first setdelle applicazioni
is used for trainingpratiche, si dividono
our algorithm and thei campioni disponibili
second is used as a in tre
validation set for model selection. After we select the best model, we test the
set: il primo viene utilizzato
performance per addestrare
of the output predictor onl’algoritmo e ilwhich
the third set, secondo viene
is often utilizzato
called the come
“test set.” The number obtained is used as an estimator of the true error of the
validationlearned
set perpredictor.
la selezione del modello. Dopo aver selezionato il modello migliore, si
testano le prestazioni del predittore sul terzo set, spesso chiamato test set. Il numero
ottenuto viene utilizzato come stimatore dell’errore vero del predittore appreso.

28
3.4 Analisi dell’errore

In fase di validation, si considerano principalmente due tipologie di errori:

• errore di approssimazione: LD (h∗ ) dove h⋆ ∈ argminh∈H LD (h), ovvero h∗ è


il miglior predittore della classe H. Dunque, LD (h∗ ) è l’errore vero del miglior
predittore della classe H. In altri termini, LD (h∗ ) rappresenta l’errore vero minimo
che si commette scegliendo la classe di ipotesi H. Tale errore non dipende né da
S né dall’algoritmo considerato, ma solo dalla distribuzione D e dalla classe di
ipotesi H.

• errore di stima: LD (hS ) − LD (h∗ ), è la differenza tra l’errore vero sul predittore
costruito a partire dal training set S e l’errore di approssimazione. Ovviamente,
tale errore, differentemente dall’errore di approssimazione, dipende da S. L’errore
di stima rappresenta l’errore che il predittore costruito a partire da S commette
rispetto al miglior errore che si può ottenere con H.

Pertanto, se l’errore di approssimazione è alto, bisogna lavorare sulla classe delle ipotesi
H: si può allargarla o cambiarla (restringerla farebbe aumentare l’errore di approssi-
mazione); non aiuterebbe aumentare la dimensione del training set. Quando l’errore di
stima è alto, è necessario avere più dati per l’addestramento, dunque bisogna allargare
il training set; se non è possibile, si può provare a ridurre H.

3.4.1 Scomposizione dell’errore attraverso la validation

Capire se il problema è dovuto all’errore di approssimazione o all’errore di stima è molto


utile per trovare il rimedio migliore. Sfortunatamente, non è facile decomporre l’errore
empiricamente.
Consideriamo una scomposizione differente producendo parti diverse da quelle conside-

29
rate prima, ma più facili da determinare:

LD (hS ) = (LD (hS ) − LV (hS )) + (LV (hS ) − LS (hS )) + LS (hS ) (3.2)

Il primo termine, (LD (hS ) − LV (hS )), può essere limitato usando il Teorema 3.1.1.
Intuitivamente, quando il secondo termine, (LV (hS ) − LS (hS )), è grande, diciamo che
l’algoritmo soffre di overfitting, mentre quando il termine di rischio empirico, LS (hS ),
è grande, diciamo che l’algoritmo soffre di underfitting. Si noti che questi due termini
non sono necessariamente buone stime degli errori di stima e di approssimazione.

3.4.2 Curve di apprendimento

Le curve di apprendimento sono uno strumento diagnostico ampiamente utilizzato nel-


l’apprendimento automatico per algoritmi che apprendono da un dataset in modo in-
crementale. Solitamente, sull’asse x vi è la dimensione parziale del training set m e
sull’asse y l’errore (training error e validation error). Nello specifico, si procede nel
seguente modo:

1. si addestra il modello sul primo x% dei dati (10%, 20% e così via);

2. per ogni prefisso si calcola il training error (sul prefisso su cui viene addestrato
l’algoritmo) e il validation error (su un validation set predefinito).

All’aumentare della dimensione del training set, ci si aspetta che:

• gli errori sul training set aumentano poiché è più difficile tenere conto di un insieme
di dati più ampio;

• gli errori sul validation set diminuiscono in quanto il modello è meglio stimato;

• i due errori dovrebbero convergere asintoticamente.

30
Dunque, se si osserva che LS (hS ) è piccolo mentre il validation error è grande, allora in
ogni caso sappiamo che la dimensione del training set non è sufficiente per apprendere
la classe H. Possiamo, quindi, tracciare una curva di apprendimento: se vediamo che
il validation error progressivamente diminuisce, la soluzione migliore è aumentare il
numero di campioni o, se non è possibile aumentare il numero dei dati, si può ridurre la
complessita della classe di ipotesi H. Al contrario, se il validation error rimane costante
intorno a 1/2, allora l’errore di approssimazione di H probabilmente non è buono e,
11.3 What to Do If Learning Fails 153
dunque, aumentare la dimensione del training set non aiuterebbe affatto.

error error
validation error vali
da tion
erro
r

train error
train error
m m

Figure 11.1 Examples of learning curves. Left: This learning curve corresponds to the
scenario in which the number of examples is always smaller than the VC dimension of
the class. Right: This learning curve corresponds to the scenario in which the
3.4.3 Cosa fare seerror
approximation l’apprendimento
is zero and the number of fallisce
examples is larger than the VC
dimension of the class.
Bisogna effettuare i seguenti passaggi:
approximation error of the class is zero. In both cases LS (hS ) = 0. How can we
distinguish between the two cases?
1. Se l’apprendimento implica la regolazione dei parametri, tracciare la curva di sele-
Learning
zione del Curves
modello per assicurarsi di aver regolato i parametri in modo appropriato.
One possible way to distinguish between the two cases is by plotting learning
curves. To produce a learning curve we train the algorithm on prefixes of the
2. Se il training error è eccessivamente
data of increasing grande,
sizes. For example, we can considerare di algorithm
first train the ampliare on la the
classe di
first 10% of the examples, then on 20% of them, and so on. For each prefix we
ipotesi,calculate
modificarla completamente
the training o modificare
error (on the la rappresentazione
prefix the algorithm delle
is being trained on)feature
and the validation error (on a predefined validation set). Such learning curves
dei dati.
can help us distinguish between the two aforementioned scenarios. In the first
scenario we expect the validation error to be approximately 1/2 for all prefixes,
3. Se il training error
as we didn’t è piccolo,
really tracciare
learn anything. le curve
In the second di apprendimento
scenario the validatione error
provare a
will start as a constant but then should start decreasing (it must start decreasing
dedurreonce
da esse se il problema
the training set size isè larger
un errore
than di
thestima o un erroreAndiillustration
VC-dimension). approssimazione.
of
the two cases is given in Figure 11.1.
In general, as long as the approximation error is greater than zero we expect
the training error to grow with the sample size, as a larger amount of data points
makes it harder to provide an explanation
31 for all of them. On the other hand,
the validation error tends to decrease with the increase in sample size. If the
VC-dimension is finite, when the sample size goes to infinity, the validation and
train errors converge to the approximation error. Therefore, by extrapolating
the training and validation curves we can try to guess the value of the approx-
4. Se l’errore di approssimazione sembra essere abbastanza piccolo, provare a otte-
nere più dati. Se ciò non è possibile, considerare di ridurre la complessità della
classe di ipotesi.

5. Se anche l’errore di approssimazione sembra essere grande, prova a cambiare


completamente la classe di ipotesi o la rappresentazione delle feature dei dati.

3.5 Riepilogo

La selezione del modello ha il compito di selezionare un modello appropriato per l’atti-


vità di apprendimento in base ai dati stessi. Abbiamo mostrato come questo può essere
fatto usando l’approccio pratico della validation. Se il nostro algoritmo di apprendi-
mento fallisce, dovrebbe essere eseguita una scomposizione dell’errore dell’algoritmo
utilizzando le curve di apprendimento, in modo da trovare il miglior rimedio.

32
Capitolo 4

Stochastic Gradient Descent

Si pone l’attenzione sull’importante famiglia dei problemi di apprendimento convessi


e si fa riferimento alle ipotesi come vettori w che provengono da una classe di ipotesi
convessa H.

4.1 Discesa del gradiente

Il gradiente di una funzione differenziabile f : Rd → R in w, indicato con ∇f (w), è il


 
vettore delle derivate parziali di f , cioè ∇f (w) = ∂f (w)
∂w[1]
, . . . , ∂f (w)
∂w[d]
.
La discesa del gradiente è un algoritmo iterativo:

1. si inizia con un valore iniziale di w, ad esempio w(1) = (0, 0, . . . , 0);

2. ad ogni iterazione, si effettua un passo nella direzione del negativo del gradiente
nel punto corrente, ovvero,


w(t+1) = w(t) − η∇f w(t) (4.1)

33
dove η > 0. Poiché il gradiente punta nella direzione della massima velocità di
incremento di f intorno a w(t) , l’algoritmo compie un piccolo passo nella direzione
opposta, diminuendo così il valore della funzione.

Alla fine, dopo T iterazioni (condizione di halt), l’algoritmo può restituire:

PT
• vettore medio, w = 1
T t=1 w(t) ;

• l’ultimo vettore, w(T ) ;


• il vettore più performante, argmint∈[T ] f w(t) .

Fare la media risulta piuttosto utile, soprattutto quando si generalizza la discesa del
gradiente alle funzioni non differenziabili e al caso stocastico.

4.2 Sottogradienti
14.2 Subgradients 189
Si definisce sottogradiente ogni vettore v per cui: ∀ u, f (u) ≥ f (w) + ⟨u − w, v⟩.
)i
w
f(

f (u)
,∇
w

hu
)+
w

f (w)
f(

w u
Figura 4.1: Illustrazione di diversi sottogradienti di una funzione convessa non diffe-
Figure 14.2renziabile
Left: The right-hand side of Equation (14.7) is the tangent of f at w. For
a convex function, the tangent lower bounds f . Right: Illustration of several
subgradients of a nondifferentiable convex function.
Per le funzioni scalari, un sottogradiente di una funzione convessa f in w è una retta
14.2.1 Calculating Subgradients
tangente ad f in w che non si trova mai al di sopra sopra f . Quando la funzione è
How do we construct subgradients of a given convex function? If a function is
differenziabile,
differentiable at a point w,l’unico sottogradiente
then the differential set corrisponde allafollowing
is trivial, as the tangente e quindi al gradiente.
claim shows.
L’algoritmo di discesa del gradiente richiede che la funzione f sia differenziabile. Se si
claim 14.5 If f is differentiable at w then ∂f (w) contains a single element –
the gradient of f at w, ∇f (w).
Example 14.1 (The Differential Set of the Absolute Function) 34 Consider the
absolute value function f (x) = |x|. Using Claim 14.5, we can easily construct
the differential set for the differentiable parts of f , and the only point that
requires special attention is x0 = 0. At that point, it is easy to verify that the
vuole applicare tale algoritmo ad una funzione non differenziabile, bisogna utilizzare il
sottogradiente di f (w) in w(t) .

4.3 Stochastic Gradient Descent


Figure 14.3 An illustration of the gradient descent algorithm (left) and the stochastic
L’obiettivogradient
dello SGD
descentè algorithm
minimizzare
(right).LThe
D (w) utilizzando
function la discesa
to be minimized is del gradiente, la quale
1.25(x + 6)2 + (y − 8)2 . For the stochastic case, the black line depicts the averaged
è una procedura di ottimizzazione iterativa in cui ad ogni passo si migliora la soluzione
value of w.

effettuando un passo lungo il negativo del gradiente della funzione da minimizzare


14.3 Stochastic Gradient Descent (SGD)
nel punto corrente. Poiché la distribuzione D è ignota, non si conosce nemmeno il
In stochastic gradient descent we do not require the update direction to be based
gradiente exactly
di LD (w).
on the SGD aggira
gradient. questo
Instead, problema
we allow effettuando
the direction un passo
to be a random lungo una
vector
and only require that its expected value at each iteration will equal the gradient
direzione casuale,
direction. purché
Or, moreilgenerally,
valore atteso dellathat
we require direzione sia ilvalue
the expected negativo
of the del gradiente.
random
vector will be a subgradient of the function at the current vector.

Stochastic Gradient Descent (SGD) for minimizing


f (w)
parameters: Scalar η > 0, integer T > 0
initialize: w(1) = 0
for t = 1, 2, . . . , T
choose vt at random from a distribution such that E[vt | w(t) ] ∈ ∂f (w(t) )
update w(t+1) = w(t) − ηvt
PT
output w̄ = T1 t=1 w(t)

An illustration of stochastic gradient descent versus gradient descent is given


in Figure 14.3. As we will see in Section 14.5, in the context of learning problems,
Il vantaggio
it isdello SGD,
easy to find anel contesto
random vector dei problemi
whose di apprendimento
expectation is a subgradient of convesso,
the risk è che
function.
è un algoritmo efficiente che può essere implementato in poche righe di codice. La
14.3.1
semplicitàAnalysis of SGD
dello SGD for Convex-Lipschitz-Bounded
consente di utilizzarlo anche inFunctions
situazioni in cui non è possibile
Recall the bound we achieved for the GD algorithm in Corollary 14.2. For the
applicare metodi basati sul rischio empirico.
stochastic case, in which only the expectation of vt is in ∂f (w(t) ), we cannot
directly apply Equation (14.3). However, since the expected value of vt is a

35
Capitolo 5

Classificatori multiclasse

La classificazione multiclasse è un’attività di apprendimento automatico con supervi-


sione che viene usata per stimare la classe di un’istanza di dati.
L’obiettivo è apprendere un predittore h : X → Y, dove Y è un insieme finito di classi.
Si possono adottare diversi approcci al problema:

• Riformulazione del problema sfruttando la classificazione binaria

• Predizione lineare multiclasse

5.1 Classificazione multiclasse utilizzando la classifi-

cazione binaria

L’approccio più semplice per affrontare i problemi di classificazione multiclasse è la


riduzione alla classificazione binaria. L’operazione di riduzione consiste nel far de-
generare la classificazione multiclasse in quella binaria. Si individuano due approcci
principali: One-versus-All e All-Pairs.

36
5.1.1 One-versus-All

Nel metodo One-versus-All si addestrano k classificatori binari, ognuno dei quali di-
scrimina tra una classe e il resto delle classi. Nello specifico, dato un training set
S = (x1 , y1 ), . . . , (xm , ym ), si costruiscono k training set binari S1 , . . . , Sk , uno per ogni
classe. In particolare, in Si , gli elementi sono etichettati con 1 se la loro etichetta in S
era i, e −1 altrimenti.
Successivamente, si costruiscono k predittori per cui hi : Si → {±1}.
Dato un elemento x, si applicano k predittori sperando che solo uno produca +1.
In generale, si ha che:
h(x) ∈ argmax hi (x) (5.1)
i∈[k]

Nel caso in cui più predittori restituiscano +1, è necessario adottare una strategia:
si può scegliere l’indice minimo, il massimo o uno casuale. Tuttavia, se i predittori
restituiscono informazioni aggiuntive, come un punteggio che può essere interpretato
come livello di confidenza, allora si possono adottare strategie migliori. Ad esempio,
questo è il caso dei semispazi, dove la previsione effettiva è sign(⟨w, x⟩), ma ⟨w, x⟩ può
essere interpretato come la confidenza nella previsione.

5.1.2 All-Pairs

Nel metodo All-Pairs tutte le coppie di classi vengono confrontate tra loro.

Dato un training set S, si costruiscono k2 = k(k−1)
2
training set Si,j , per ogni 1 ≤ i <
j ≤ k, ciascuno contente tutti gli elementi della classe i, etichettati con +1, e tutti gli
elementi della classe j, etichettati con −1.
Dopodiché, si costruisce un predittore hi,j per ogni training set, ciascuno con il compito
di distinguere tra la classe i e la classe j.

37
17.1 One-versus-All and All-Pairs 229

Il predittore finale assegna all’elemento x la classe con il maggior numero di "vittorie"


All-Pairs
!
input: X
∈ argmax
h(x) set
training , (xm , ym−
S = (x1 , y1 ), . . . sign(j ) i) hi,j (x) (5.2)
i∈Y
algorithm for binary classification A
j∈Y
foreach i, j ∈ Y s.t. i < j
initialize Si,j to be the empty sequence
5.2 Limitazioni delle operazioni di riduzione
for t = 1, . . . , m
If yt = i add (xt , 1) to Si,j
If yt = j add (xt , −1) to Si,j
Il learner binario nonletèhi,j
consapevole
= A(Si,j ) del fatto che le sue ipotesi vengano utilizzate per
output:
costruire un predittore multiclasse
the multiclass e questo
hypothesis potrebbe
defined by portare

a risultati non ottimali
P
h(x) ∈ argmaxi∈Y j∈Y sign(j − i) hi,j (x)
come mostrato nell’esempio seguente.
Although reduction methods such as the One-versus-All and All-Pairs are
simple and easy to construct from existing algorithms, their simplicity has a
Esempio: One-versus-All
price. The binary learner is not aware of the fact that we are going to use its
output hypotheses for constructing a multiclass predictor, and this might lead
Si consideri un problema
to suboptimal results,diasclassificazione
illustrated in themulticlasse in cui lo spazio delle
following example. istanze
Example 17.1 Consider a multiclass categorization problem in which the in-
e l’insieme
X = R2 stance delle etichette Y = {1, 2, 3}. Supponiamo che le istanze delle
space is X = R2 and the label set is Y = {1, 2, 3}. Suppose that instances
of the different classes are located in nonintersecting balls as depicted in the fol-
diverse classi si trovino in sfere non intersecanti come illustrato di seguito.
lowing.

1 2 3

Suppose that the probability masses of classes 1, 2, 3 are 40%, 20%, and 40%,
respectively. Consider the application of One-versus-All to this problem, and as-
Supponiamo che le probabilità delle classi 1, 2, 3 siano rispettivamente 40%, 20%,
sume that the binary classification algorithm used by One-versus-All is ERM
with respect
40%. Si consideri to the hypothesis
l’applicazione class of halfspaces.
di One-versus-All Observe problema
a questo that for thee prob-
si assuma che
lem of discriminating between class 2 and the rest of the classes, the optimal
l’algoritmo di classificazione
halfspace would be thebinaria utilizzato
all negative da Therefore,
classifier. One-versus-All sia ERM
the multiclass rispetto alla
predic-
tor constructed by One-versus-All might err on all the examples from class 2
classe di (this
ipotesi
willdei
be semispazi. Ditieseguito
the case if the in the si mostraofilh(x)
definition predittore
is brokenlineare
by the che
nu- distingue
merical value of the class
 label). In contrast, if we
 choose h
 i (x) = hw i xi,
,
la classe 1where
dallewaltre:
1 = − √12 , √12 , w2 = (0, 1), and w3 = √1 , √1 , then the classi-
2 2
fier defined by h(x) = argmaxi hi (x) perfectly predicts all the examples. We see

38
Predittore lineare per distinguere la classe 3 dalle altre:

Il predittore ottimale per la classe 2 è quello che restituisce sempre −1. Il predittore
One-versus-All etichetta correttamente tutti i campioni della classe 1 e 3, ma sbaglia
tutti quelli della classe 2, etichettandoli con una delle altre due classi.

Esempio: scelta ottimale

Consideriamo tre predittori: hi (x) = ⟨wi , x⟩

   
1 1 1 1
w1 = −√ , √ w2 = (0, 1) w3 = √ ,√
2 2 2 2

Si ricordi che
h(x) = argmax hi (x) (5.3)
i∈[k]

39

x = (−1, 1) : h1 (x) = 2, h2 (x) = 1, h3 (x) = 0; h(x) = 1
1 1
x = (0, 1) : h1 (x) = √ , h2 (x) = 1, h3 (x) = √ ; h(x) = 2
2 2

x = (1, 1) : h1 (x) = 0, h2 (x) = 1, h3 (x) = 2; h(x) = 3

Pertanto, tutti i punti vengono classificati correttamente.

5.3 Predittori lineari multiclasse

Alla luce dell’inadeguatezza dei metodi di riduzione, in questa sezione si adotta un ap-
proccio più diretto per l’apprendimento dei predittori multiclasse. Di seguito si descrive
la famiglia dei predittori lineari multiclasse. Per motivare la costruzione di questa fami-
glia, si ricordi che un predittore lineare per la classificazione binaria (cioè un semispazio)
assume la forma:
h(x) = sign (⟨w, x⟩) (5.4)

Equivalentemente:
h(x) = argmax (y⟨w, x⟩) (5.5)
y∈{±1}

Questa rappresentazione porta ad una generalizzazione dei semispazi a problemi mul-


ticlasse. Sia Ψ : X × Y → Rd la funzione chiamata class-sensitive feature mapping.
Ψ prende in input una coppia (x, y) e la mappa in un vettore di feature di dimensione d.
Intuitivamente, possiamo pensare agli elementi di Ψ(x, y) come funzioni di punteggio
che valutano quanto bene l’etichetta y si adatti all’istanza x.
Dato Ψ e un vettore w ∈ Rd , possiamo definire un predittore multiclasse, h : X → Y,

40
nel seguente modo:
h(x) = argmax (⟨w, Ψ(x, y)⟩) (5.6)
y∈Y

Cioè, la previsione di h per l’input x è l’etichetta che ottiene il punteggio pesato più
alto, dove la pesatura è secondo il vettore w.

5.3.1 Classe delle ipotesi



Sia W un insieme di vettori in Rd , per esempio W = w ∈ Rd : ∥w∥ ≤ B , con B > 0
scalare. Ogni coppia (Ψ, W ) definisce una classe di ipotesi di predittori multiclasse:

HΨ,W = {x 7→ argmax⟨w, Ψ(x, y)⟩ : w ∈ W } (5.7)


y∈Y

Si noti che se Y = {±1} e impostiamo Ψ(x, y) = yx e W = Rd , allora HΨ,W diventa la


classe di ipotesi di predittori di semispazi omogenei per la classificazione binaria.

5.3.2 Come costruire Ψ

Il ruolo degli elementi in Ψ è valutare quanto l’etichetta y si adatta all’oggetto x. Di


seguito vengono forniti due esempi di costruzioni utili.

Costruzione multivettore

Sia Y = {1, . . . k} e sia X = Rn . Definiamo Ψ : X × Y → Rd dove d = nk, come segue

Ψ(x, y) = [0, . . . , 0, x1 , . . . , xn , 0, . . . , 0] (5.8)


| {z } | {z } | {z }
∈R(y−1)n ∈Rn ∈R(k−y)n

Cioè, Ψ(x, y) è composto da k vettori, ognuno dei quali è di dimensione n, in cui


impostiamo tutti i vettori come tutti zeri tranne il j-esimo vettore, che è impostato a
x. Ne consegue che possiamo pensare a w ∈ Rnk come composto da k vettori di pesi in

41
The Multivector Construction:
Let Y = {1, . . . , k} and let X = Rn . We define Ψ : X × Y → Rd , where d = nk,
as follows

Ψ(x, y) = [ 0, . . . , 0 , x1 , . . . , xn , 0, . . . , 0 ]. (17.2)
| {z } | {z } | {z }
∈R(y−1)n ∈Rn ∈R(k−y)n

Rn , cioè That
w = is,
[wΨ(x,
1 ; . . .y)
;w ], da cui ofil knome
iskcomposed dieach
vectors, costruzione of dimension n,Per
of which ismultivettore. costruzione
where
we set all the vectors to be the all zeros vector except the y’th vector, which is
abbiamo set
cheto⟨w,
be Ψ(x,
x. It y)⟩ = ⟨w
follows we ecan
y , x⟩,
that quindi
think la
of previsione
w ∈ Rnk as multiclasse diventa
being composed of k
weight vectors in Rn , that is, w = [w1 ; . . . ; wk ], hence the name multivec-
tor construction. By the construction we have that hw, Ψ(x, y)i = hwy , xi, and
therefore the multiclass prediction
h(x) =becomes
argmax ⟨w , x⟩ (5.9)
y
y∈Y
h(x) = argmax hwy , xi.
y∈Y

Di seguito
A viene fornita
geometric un’illustrazione
illustration geometrica
of the multiclass della
prediction over previsione multiclasse
X = R2 is given in the su K.
following.
w2
w1

w3 w4

TF-IDF:
The previous definition of Ψ(x, y) does not incorporate any prior knowledge
about the problem. We next describe an example of a feature function Ψ that
does incorporate prior knowledge. Let X be a set of text documents and Y be a
set of possible topics. Let d be a size of a dictionary of words. For each word in the
dictionary, whose corresponding index is j, let T F (j, x) be the number of times
the word corresponding to j appears in the document x. This quantity is called
Term-Frequency. Additionally, let DF (j, y) be the number of times the word
corresponding to j appears in documents in our training set that are not about
topic y. This quantity is called Document-Frequency and measures whether word
j is frequent in other topics. Now, define Ψ : X × Y → Rd to be such that
 
Ψj (x, y) = T F (j, x) log DFm (j,y) ,

where m is the total number of documents in our training set. The preced-
ing quantity is called term-frequency-inverse-document-frequency or TF-IDF for

42
5.3.3 TF-IDF

Sia X un insieme di documenti di testo, Y un insieme di possibili argomenti e d la


dimensione del dizionario delle parole. Definiamo:

• Term-Frequency: numero di volte in cui la parola j-esima compare nel docu-


mento x; indicata con T F (j, x).

• Document-Frequency: numero di volte in cui la parola j-esima appare nei do-


cumenti del training set che non riguardano l’argomento y. Tale quantità misura
se la parola j è frequente in altri argomenti; indicata con DF (j, y).

Definiamo Ψ : X × Y → Rd , chiamata TF-IDF:

 
m
Ψj (x, y) = T F (j, x) log (5.10)
DF (j, y)

dove m è il numero totale di documenti nel nostro training set. La quantità precedente
è chiamata term-frequency-inverse-document-frequency.
Intuitivamente, Ψj (x, y) dovrebbe essere grande se la parola corrispondente a j appare
molto nel documento x ma non compare affatto in documenti che non sono sull’ar-
gomento y. Se questo è il caso, è probabile che il documento x sia sull’argomento
y.

43
Capitolo 6

Neural Networks

Una rete neurale artificiale è un modello computazionale ispirato alla struttura del cer-
vello umano. Secondo modelli semplificati del cervello, esso è costituito da un gran
numero di unità computazionali di base, dette neuroni, che sono collegate tra loro me-
diante una complessa rete di comunicazione.
Una rete neurale è descritta da un grafo orientato G = (V, E) in cui i nodi costi-
tuiscono i neuroni e gli archi le sinapsi. Nello specifico, si pone l’attenzione sulle reti
neurali feedforward in cui il grafo è aciclico.
In una rete neurale feedforward, ad ogni arco è associato un peso mediante una funzione
peso w : E → R. Ogni singolo neurone è modellato come una semplice funzione scalare
σ : R → R, dove σ è la funzione di attivazione del neurone.
Le più comuni funzioni di attivazione sono:

44
• Funzione segno 



 1 se a > 0



σ1 (a) = sign(a) =
 0 se a = 0





−1 altrimenti

• Funzione soglia (threeshold)





1 se a > 0
σ2 (a) = 1[a>0] =


0 altrimenti

• Funzione sigmoidale
1
σ3 (a) =
1 + e−a

• Tangente iperbolica




 1 se a > 1



hardtan(x) =
 −1 se a < −1





a altrimenti

• Rectifier 


0 se a < 0
ReLU (a) = max(0, a) =


a altrimenti

45
6.1 Funzionamento di un neurone

Ogni arco del grafo collega l’output di un neurone all’input di un altro neurone. L’input
di un neurone si ottiene effettuando una somma pesata degli output di tutti i neuroni
ad esso collegati, dove il peso è secondo w.

𝜎 ෍ 𝑤𝑖 𝑥𝑖
𝑖=1

𝒘𝟏 𝒘𝟐 𝒘𝒌

𝒙𝟏 𝒙𝟐 𝒙𝒌

In generale, considerando il j-esimo neurone del livello t + 1:

X
at+1,j (x) = w ((vt,r , vt+1,j )) ot,r (x)
r:(vt,r ,vt+1,j )∈E

ot+1,j (x) = σ (at+1,j (x))

6.2 Organizzazione in livelli

Assumiamo che la rete neurale feedforward sia organizzata in livelli (layer ), ovvero
viene effettuato un partizionamento dell’insieme dei vertici.
S
Dunque, si ha che V = · Tt=0 Vt , in modo tale che ogni arco in E colleghi un nodo in
Vt−1 a qualche nodo in Vt , con t ∈ [T ]

46
We refer to T as the number of layers in the network (excluding V0 ), or the
“depth” of the network. The size of the network is |V |. The “width” of the
network is maxt |Vt |. An illustration of a layered feedforward neural network of
depth 2, size 10, and width 5, is given in the following. Note that there is a
neuron in the hidden layer that has no incoming edges. This neuron will output
the constant σ(0).

Input Hidden Output


layer layer layer
(V0 ) (V1 ) (V2 )

v1,1
x1 v0,1
v1,2
x2 v0,2
v1,3 v2,1 Output
x3 v0,3
v1,4
constant v0,4
v1,5

Figura 6.1: Rete neurale feedforward a livelli


20.2 Learning Neural Networks
Si individuano tre tipologie principali di layer:
Once we have specified a neural network by (V, E, σ, w), we obtain a function
hV,E,σ,w : R|V0 |−1 → R|VT | . Any set of such functions can serve as a hypothesis
• input layer:
class costituito
for learning. dalweprimo
Usually, define alivello V0 che
hypothesis classcontiene + 1 neuroni,
of neural nnetwork predic- dove n
tors by fixing the graph (V, E) as well as the activation function σ and letting
è la the
dimensione
hypothesis dell’input. L’inputoflayer
class be all functions compie
the form un for
hV,E,σ,w mirroring
some w : (copia)
E → R. dei dati
The triplet (V, E, σ) is often called the architecture of the network. We denote
in ingresso: ∀ i ∈ [n], o0,i (x) = xi . Inoltre, l’ultimo neurone in V0 è il neurone
the hypothesis class by
"costante", cheHdà sempre in output 1, quindi, si ha che o0,n+1 (x) = 1. Tale
V,E,σ = {hV,E,σ,w : w is a mapping from E to R}. (20.1)
neurone rappresenta il bias e può anche essere omesso.

• hidden layer: livelli compresi tra l’input layer V0 e l’output layer VT , ovvero
V1 , . . . , VT −1 . Se un neurone del livello nascosto non ha archi in entrata, allora
fornisce in output la costante σ(0).

• output layer: costituito dall’ultimo livello VT e fornisce in output un vettore


y ∈ Rdout

– se dout = 1, allora viene restituito un unico scalare che può essere utilizzato
sia per la classificazione binaria che per la regressione;

– se dout = k > 1, allora mediante tale output è possibile modellare soluzioni


anche per classificazione multiclasse.

47
6.3 Caratteristiche di una rete neurale

Una rete neurale è caratterizzata dai seguenti parametri:

• depth: numero di livelli T della rete (escluso V0 );

• width: massimo numero di nodi tra i livelli: maxt |Vt |;

• size: numero di nodi |V | della rete.

La rete della Figura 6.1 ha profondità 2, ampiezza 5 e dimensione 10.

6.4 Reti neurali fully connected

Se ogni neurone di un livello è connesso a tutti i neuroni del livello successivo, allora il
livello 42
è chiamato fully connected
4. FEED-FORWARD NEURAL layer o affine layer. Se tutti i livelli della rete neurale
NETWORKS
the input to the network. e top-most layer has no outgoing arrows, and is the output of the
sono fully connected, allora la rete neurale è detta fully connected.
network. e other layers are considered “hidden.” e sigmoid shape inside the neurons in the
middle layers represent a nonlinear function (i.e., the logistic function 1=.1 C e x /) that is applied
to the neuron’s value before passing it to the output. In the figure, each neuron is connected to all
of the neurons in the next layer—this is called a fully connected layer or an affine layer.

Output layer y1 y2 y3

Hidden layer ∫ ∫ ∫ ∫ ∫

Hidden layer ∫ ∫ ∫ ∫ ∫ ∫

Input layer x1 x2 x3 x4

Figure 4.2: Feed-forward neural network with two hidden layers.

While the brain metaphor is sexy and intriguing, it is also distracting and cumbersome
Figura 6.2:
to manipulate mathematically. Rete neurale
We therefore fully
switch back connected
to using more concise mathematical
notation. As will soon become apparent, a feed-forward network as the one in Figure 4.2 is simply
a stack of linear models separated by nonlinear functions.
e values of each row of neurons in the 48network can be thought of as a vector. In Figure 4.2
the input layer is a 4-dimensional vector (x ), and the layer above it is a 6-dimensional vector (h1 ).
e fully connected layer can be thought of as a linear transformation from 4 dimensions to 6
dimensions. A fully connected layer implements a vector-matrix multiplication, h D xW where
the weight of the connection from the i th neuron in the input row to the j th neuron in the output
row is W .² e values of h are then transformed by a nonlinear function g that is applied to
Un livello completamente connesso implementa una moltiplicazione vettore matri-
ce: ⟨x, W (t) ⟩ = xW (t) , dove il peso della connessione dell’i-esimo neurone del livello
t al j-esimo neurone del livello t + 1 è Wi,j . I valori di h vengono, successivamente,
trasformati dalla funzione non lineare σ che viene applicata a ciascun valore del vettore
prima che venga passato come input al livello successivo. Questa è detta notazione
matriciale e viene utilizzata per semplificare la notazione del calcolo per ogni livello.1
Si può applicare tale notazione sono se il livello è completamente connesso.
Pertanto, data una rete neurale completamente connessa con profondità 3, si ha che:

h1 = σ1 (xW (1) )

h2 = σ2 (h1 W (2) )

y = h2 W (3)

Supponendo di avere la stessa funzione di attivazione σi su tutti i vertici di un livello i.

6.5 Reti neurali e logistic regression

Se si considera come funzione di attivazione la funzione sigmoide logistica σ : R → [0, 1]


definita come:
1
σ(z) =
1 + e−z

allora si degenera in un problema di logistic regression. Si può applicare, dunque, la


funzione di attivazione ai vertici in input e ottenere un output coerente coi risultati
di una logistic regression. Si può applicare anche direttamente un regressore logistico
evitando la soluzione con la rete neurale, ma va ricordato che la rete neurale tiene conto
del bias nascosto.
1
Tale prodotto non tiene in considerazione il bias che può essere aggiunto ad un livello introducendo
un neurone che non ha connessioni in entrata, il cui output è sempre 1.

49
𝒚𝟏

1
𝜎 𝑧 =
1 + 𝑒 −𝑧

𝒙𝟏 𝒙𝟐 … 𝒙𝒏

Figura 6.3: Rete neurale applicata alla logistic regression

6.6 Parametri di una rete neurale

I parametri di una rete neurale, per ogni livello t, sono:

• la matrice dei pesi W (t) ∈ Rdt−1 ×dout ;

• il bias b.

L’insieme dei parametri di una rete neurale è indicato con Θ. Tali parametri sono
stimati durante la fase di training mediante lo SGD, ma poiché la funzione obiettivo
non è convessa, è possibile ottenere solo ottimi locali. Scegliere altri algoritmi per
la stima dei parametri è un problema computazionalmente hard indipendentemente
dall’algoritmo di ottimizzazione scelto. Da un punto di vista euristico, comunque, è
importante la scelta del punto iniziale w(1) : se è più vicino ad un ottimo locale, è più
facile da raggiungere.

50
Capitolo 7

Natural Language Processing

Il Natural Language Processing (NLP) è il processo di trattamento automatico me-


diante calcolatore elettronico delle informazioni scritte o parlate in una lingua naturale.
Questo processo è particolarmente complesso a causa delle caratteristiche intrinseche
di ambiguità del linguaggio umano.

7.1 Natural Language Processing: problemi di classi-

ficazione

I problemi di classificazione nel linguaggio naturale sono di varie categorie a seconda


dell’oggetto che deve essere elaborato. Le principali categorie sono:

• Singole parole: in questi tipi di problemi si ha in input una parola e occorre


fornire informazioni su di essa: denota una cosa vivente? In che lingua è scritta?
Quanto è comune? Quanto è simile ad altre parole? Contiene errori ortografici? E
così via. Questi tipi di problemi sono piuttosto rari, dal momento che raramente
una parola è isolata dal contesto.

51
• Testi: in questi problemi si ha in input un testo. È relativo alla politica o
allo sport? È sarcastico? Chi l’ha scritto? È affidabile? È spam? Potrebbe
piacere dagli adolescenti? E così via. Questi tipi di problemi sono molto comuni
e prendono il nome di problemi di document classification.

• Coppie di testi: in questi problemi viene data una coppia di testi e bisogna
determinare qualcosa su questa coppia: A è una traduzione di B? Sono scritte
dalla stessa persona? E così via.

• Parola in un contesto: viene dato un testo ed una particolare parola e bisogna


classificare la parola nel contesto del testo. Ad esempio, la parola "apple" si
riferisce alla frutta o al brand di Steve Jobs? E così via.

• Una relazione tra due parole: vengono date due parole in un contesto di un
documento più grande e bisogna dire qualcosa sulla relazione che c’è tra A e B.
La parola A è soggetto del verbo B? E così via.

7.2 Rappresentazione delle feature

L’obiettivo è costruire un vettore che rappresenti l’informazione da usare come input


per il predittore. Nel NLP le feature sono spesso categoriali, ovvero possono assumere
solo un numero finito di valori possibili. Dal momento che la disposizione delle
parole in un testo è un’informazione utile per l’elaborazione, non si utilizza il modello
bag-of-words poiché esso la ignorerebbe.
Si considerano due codifiche principali per il NLP: la codifica one-hot e la codifica
feature embedding.

52
7.2.1 Codifica one-hot

La codifica delle feature one-hot è utilizzata in diversi settori del Machine Learning, in
particolare è ampiamente diffusa nel NLP. Nella codifica one-hot applicata al NLP, ogni
parola che fa parte del testo dato in input viene codificata in un vettore i cui elementi
sono solo 0 e 1. Ogni parola è codificata con un unico vettore one-hot. In questo
modo, la parola viene identificata in modo univoco dal suo vettore one-hot. In altri
termini, non ci sono due parole associate allo stesso vettore one-hot. Essendo una parola
rappresentata con un vettore, l’elenco delle parole in un testo viene rappresentato come
un array di array o una matrice.
Si consideri la seguente frase: "I ate an apple and played the piano". Possiamo iniziare
indicizzando la posizione di ogni parola nel vocabolario (insieme di parole) dato.

Figura 7.1: Posizione di ogni parola nel vocabolario

La parola "I" è in posizione 1, quindi la sua rappresentazione vettoriale one-hot è


[1, 0, 0, 0, 0, 0, 0, 0]. Allo stesso modo, la parola "ate" è in posizione 2, quindi il suo unico
vettore one-hot è [0, 1, 0, 0, 0, 0, 0, 0]. Il numero di parole nel vocabolario di partenza
indica la dimensione: qui ne abbiamo otto. La matrice (array di vettori) one-hot per il
testo di esempio sarebbe simile a questa:

Figura 7.2: Rappresentazione vettoriale one-hot di ogni parola nel vocabolario

53
7.2.2 Feature embedding (codifica densa)

Un embedding è una mappatura di un insieme di feature categoriali su un vettore di


numeri reali v ∈ Rd con d < k, dove k è il numero di feature. Di conseguenza, non si
rappresenta ogni feature con un vettore di dimensione k (come nella codifica one-hot),
ma con un vettore di dimensione d < k. La dimensione d è solitamente molto più
piccola del numero di feature k. Nell’ambito del NLP, si parla di word embedding.
In questo contesto, ad esempio, ogni elemento in un vocabolario di 40 000 elementi può
essere rappresentato come vettore di poche centinaia di dimensioni.

7.2.3 Rappresentazioni one-hot vs vettori densi

Le caratteristiche principali della codifica one-hot sono:

• la dimensione di un vettore one-hot è pari al numero di feature distinte k;

• le feature sono completamente indipendenti l’una dall’altra. La parola "cane" è


tanto diversa da "gatto" quanto da "casa".

Le caratteristiche principali della codifica densa sono:

• la dimensione di un vettore è d < k;

• i vettori sono costruiti in modo che feature simili abbiano vettori simili.

Un vantaggio significativo dell’utilizzo di vettori densi e a bassa dimensione è com-


putazionale: le reti neurali funzionano peggio con vettori sparsi e di dimensioni molto
elevate. Inoltre, un ulteriore vantaggio è la capacità di generalizzazione: se riteniamo
che alcune feature possano essere simili, è giusto che la rappresentazione sia in grado
di cogliere queste somiglianze. In aggiunta, sono disponibili embedding pre-addestrati,
ottenuti da un ampio corpus di testi. Viceversa, se le feature non hanno correlazioni

54
tra loro (sono indipendenti) e k è relativamente piccolo, allora potrebbe convenire la
rappresentazione one-hot.

7.3 Classificatori basati su reti neurali feed-forward

I problemi di classificazione per il NLP vengono modellati usualmente mediante reti


neurali feed-forward. La struttura generale è la seguente.

1. Si estrae un insieme di feature linguistiche rilevanti per la previsione dell’output.

2. Per ogni feature, si costruisce il vettore corrispondente.

3. Si combinano i vettori (o per concatenazione, o per somma, o per una combina-


zione di entrambi) in un unico vettore di input x.

4. Si inserisce x in un classificatore non lineare (rete neurale feed-forward).

55
7.4 Word-in-context: Named Entity Recognition
7.5. WORD-IN-CONTEXT: NAMED ENTITY RECOGNITION 81
La 7.5
NamedWORD-IN-CONTEXT:
Entity Recognition (NER) è una tecnica del
NAMED Natural Language Processing che
ENTITY
RECOGNITION
ha lo scopo di identificare correttamente le entità nominali presenti in un documento
In the named-entity recognition (NER) task we are given a document and need to find named
e classificarle
entities such in
as categorie
Milan, Johnpredefinite comeIndustries
Smith, McCormik persone,, and
luoghi,
Paris,organizzazioni e altro.them
as well as to categorize I suoi
into a nella
utilizzi pre-defined set of
pratica categories
sono such as basti
molteplici: L, O,
pensare, P,
ad esempio, or O.
che la maggiorNote
parte
that this task is context dependent, as Milan can be a location (the city) or an organization (a sports
deiteam,
testi “Milan
presenti sulleagainst
played pagine webWednesday
Barsa o sui social media and
evening”), sonoParis
in un
canformato nonofstrutturato
be the name a city or
a person.
e risultano priviinput
A typical di touno
the schema organizzativo;
problem would ciò as:
be a sentence such rende difficile l’identificazione
delle informazioni
John contenute
Smith , president in essi. Industries visited his niece Paris in Milan , reporters
of McCormik
say .
Un tipico input per il problema sarebbe una frase come:
and the expected output would be:
Marco Romano è uno studente della Federico II di Napoli
[PER John Smith ] , president of [ORG McCormik Industries ] visited his niece [PER Paris ]
e l’output atteso], sarebbe:
in [LOC Milan reporters say .

Marco/B-PER Romano/I-PER
While NER is a sequenceè/O uno/O studente/O
segmentation della/O
task—it assigns Federico/B-ORG
labeled II /I-
brackets over non-
overlapping sentence spans—it is often modeled as a sequence tagging task, like POS-tagging.
ORG
edi
use/O tagging/B-LOC
of Napoli ./O
to solve segmentation tasks is performed using BIO encoded tags.⁴ Each word
is assigned one of the following tags, as seen in Table 7.1:
Ad ogni parola viene assegnata un’etichetta BIO (beginning, interior, other):
Table 7.1: BIO tags for named entity recognition

Tag Meaning
O Not part of a named entity
B-PER First word of a person name
I-PER Continuation of a person name
B-LOC First word of a location name
I-LOC Continuation of a location name
B-ORG First word of an organization name
I-ORG Continuation of an organization name
B-MISC First word of another kind of named entity
I-MISC Continuation of another kind of named entity

⁴Variants Figura tagging Etichette


on the BIO 7.3: BIOin per
scheme are explored il riconoscimento
the literature, and some perform di entità
somewhat nominali
better than it. See Lample
et al. [2016], Ratinov and Roth [2009].

56
7.5 Costruzione dei word embeddings

Supponiamo di voler costruire dei word embedding per il task A. La costruzione dei
word embeddings può avvenire in tre modi, a seconda dei dati disponibili per il task A.

Approccio con inizializzazione pseudo-casuale

Quando ci sono dati sufficienti per il task A, allora è possibile effettuare un’inizializza-
zione pseudo-aleatoria dei vettori e lasciare che sia la rete a raffinarli successivamente.
L’inizializzazione è detta pseudo-casuale perché è effettuata campionando numeri
 1 1
casuali distribuiti uniformemente nell’intervallo − 2d , 2d , dove d è la dimensione dei
vettori delle feature. Questo approccio è quello seguito da Word2Vec.

Approccio con supervisione

Se i dati per il task A non sono sufficienti, ma esiste un task ausiliario B con molti dati,
è possibile addestrare i vettori per B e usarli successivamente per A. Quindi,

1. si addestrano i word embeddings per il task B, ad esempio tramite una rete neurale
i cui primi livelli costruiscono tali embeddings;

2. si applicano gli embeddings così ottenuti al task A.

Supponiamo, ad esempio, di voler costruire un parser che associa un albero sintattico


ad ogni frase in ingresso. Il task in questione è molto complesso, sono necessari molti
dati che spesso non sono disponibili. Consideriamo un task collegato a questo: il POS
tagging, che associa ad ogni parola un’etichetta che indica la sua funzione grammaticale.

57
Figura 7.4: Albero sintattico

Pertanto, abbiamo un task associato al parsing più semplice; ciò implica che servono
meno dati ed è più facile ottenerne tanti. Pertanto,

1. si addestra un classificatore per il POS tagging;

2. si applicano gli embeddings così ottenuti al parsing.

Approccio senza supervisione

Il caso comune è che non abbiamo un task ausiliario con quantità sufficientemente grandi
di dati etichettati. In questi casi, ricorriamo a task ausiliari "senza supervisione", in cui
l’etichettatura può essere costruita automaticamente dal testo (ad esempio, mediante
un crawler per Wikipedia). Questa strategia viene chiamata senza supervisione perché
non richiede un’etichettatura manuale. Il vantaggio è che potendo etichettare dati
automaticamente, non c’è limite alla dimensione del training set che è possibile ottenere.
Si noti che per il resto si ricade nell’approccio supervisionato, visto che si costruiscono
i word embeddings utilizzando un task.

58
7.5.1 Ipotesi distributiva

Il criterio alla base della creazione degli embeddings è chiamato ipotesi distributiva.
Tale ipotesi asserisce che due parole sono simili se appaiono in contesti simili, cioè se i
loro vettori densi sono vicini nello spazio vettoriale.

7.5.2 Out-of-vocabulary word embedding

Uno dei principali vantaggi del word embedding è la capacità di generalizzazione.


Ad esempio, se vogliamo costruire un word embedding per una parola che non compare
nel dizionario (out-of-vocabolary word), allora possiamo costruire l’embedding sulla
base di parole ad essa collegate che appaiono nel training set, sfruttando operazioni
algebriche tra i vettori. Ad esempio, se la parola queen non compare nel dizionario,
può essere ricavata tramite un’espressione aritmetica tra i vettori king, man e woman,
se essi appartengono al dizionario, ovvero queen = king - man + woman.
Inoltre, se nel training set sono presenti n parole simili a quella di cui si deve costruire
l’embedding, è possibile fare la media degli embedding di ciascuna parola, oppure prendo
l’embedding della parola ad essa più simile. Se la costruzione dell’embedding non è
accurata, non è un grave problema dal momento che le decisioni vengono prese a livello
di frase e non a livello della singola parola. Si tenga, comunque, conto che la scelta del
task ausiliario è più importante, in termini di prestazioni, dell’algoritmo di learner.

59
7.6 Usare pre-trained embeddings

Quando si utilizzano embedding di parole pre-addestrati, ci sono alcune scelte che do-
vrebbero essere prese. La prima scelta riguarda la pre-elaborazione: i vettori di
parole pre-addestrati dovrebbero essere usati così come sono oppure ogni vettore do-
vrebbe essere normalizzato alla lunghezza dell’unità? Questo dipende dal task. Per
molti algoritmi di embedding di parole, la norma del vettore di parole è correlata alla
frequenza della parola. La normalizzazione delle parole alla lunghezza dell’unità ri-
muove le informazioni sulla frequenza, il che potrebbe essere una rilevante perdita di
informazioni per qualche task.
La seconda scelta riguarda la messa a punto dei vettori pre-addestrati per il task. Si
consideri una matrice di embedding E ∈ R|V |×d che associa parole del vocabolario V a
vettori di dimensione d. Un approccio comune consiste nel trattare E come parametro
del modello e modificarlo con il resto della rete. Sebbene funzioni bene, ha il potenziale
effetto indesiderato di modificare solo gli embedding presenti nel dizionario, ma non
quelli a loro vicini non presenti nel training set, perdendo quindi l’ipotesi distribu-
tiva. Ciò potrebbe danneggiare le proprietà di generalizzazione che miriamo a ottenere
dalla procedura di pre-addrestramento. Un’alternativa è lasciare fissi i vettori E pre-
addestrati. Ciò mantiene la generalizzazione, ma impedisce al modello di adattare le
rappresentazioni per il task dato. Una via di mezzo è mantenere E fisso, ma usare una
matrice aggiuntiva T ∈ Rd×d . Invece di guardare le righe di E, osserviamo le righe di
una matrice trasformata E ′ = ET , in modo che E sia costante e T possa cambiare.

60
Capitolo 8

Clustering

Il clustering è un insieme di tecniche volte al raggruppamento di oggetti in modo tale


che oggetti simili finiscano nello stesso gruppo e oggetti diversi siano separati in gruppi
diversi. Tale definizione risulta piuttosto imprecisa e ambigua, ma è difficile fornire una
definizione più rigorosa.
Le principali problematiche da affrontare sono le seguenti:

• la somiglianza non è una relazione di equivalenza: infatti, la somiglianza


non rispetta la proprietà transitiva. Più concretamente, può darsi che esista una
lunga sequenza di oggetti x1 , . . . , xm tale che ogni xi è molto simile ai suoi vicini
xi−1 e xi + 1, ma x1 e xm sono molto diversi. Pertanto, se volessimo assicurarci
che ogni volta che due elementi sono simili condividano lo stesso cluster, allora
tutti gli elementi della sequenza dovrebbero essere collocati nello stesso cluster.
Tuttavia, in tal caso, si avrebbero elementi diversi (x1 e xm ) nello stesso cluster,
violando il secondo requisito.

• il clustering è un problema di apprendimento senza supervisione: infatti,


risulta complesso stimare l’errore dal momento che non sono presenti etichette su
cui basarsi.

61
• non esiste un’unica soluzione corretta: potrebbero esistere diverse soluzioni
di clustering molto diverse tra loro ugualmente valide; pertanto, esiste un’ampia
varietà di algoritmi di clustering che, su alcuni dati di input, produrrano clustering
molto diversi.

8.1 Formalizzazione del problema

Di seguito, si definiscono input e output di un problema di clustering.

• Input: un domain set X e una funzione di distanza d : X × X → R+ su di esso.


La funzione d ha le seguenti proprietà:

– d(x, x) = 0;

– d(x, y) = d(y, x), ∀x, y ∈ X , ovvero è simmetrica;

– soddisfa la disuguaglianza triangolare, la quale stabilisce che in un triangolo


la somma delle lunghezze di due suoi lati è maggiore del terzo lato.

In alternativa, si può utilizzare una funzione di similarità che soddisfa solo le


prime due condizioni. Inoltre, alcuni algoritmi di clustering richiedono anche un
parametro di input k, che determina il numero di cluster richiesti.

Sk
• Output: una partizione di X , ovvero C = (C1 , . . . , Ck ) dove i=1 Ci = X e
∀ i ̸= j, Ci ∩ Cj = ∅. In alcuni casi, il clustering è soft, ovvero la partizione di X
è probabilistica. In altri termini, l’output è una funzione che assegna a ciascun
punto del dominio x ∈ X un vettore (p1 (x), . . . , pk (x)), dove pi (x) = P [x ∈ Ci ]
è la probabilità che x appartenga al cluster Ci . Un altro possibile output è un
dendrogramma (dal greco dendron = albero, gramma = disegno) di cluster, che
è un albero gerarchico di sottoinsiemi del dominio, con i singleton nelle sue foglie
e l’intero dominio come radice.

62
8.2 Tipologie di clustering

Si distinguono due tipologie principali di clustering:

• clustering piatto: produce una partizione, ovvero C = (C1 , . . . , Ck ) dove


Sk
i=1 Ci = X e ∀ i ̸= j, Ci ∩ Cj = ∅.

• clustering gerarchico: costruisce una gerarchia di cluster. Tale gerarchia viene


formalizzata, talvolta, mediante un dendrogramma, che è un albero binario in
cui:

– le foglie corrispondono ai singleton;

– ogni punto di diramazione corrisponde ad un’unione tra due cluster;

– la radice corrisponde all’intero dataset.

Figura 8.1: A sinistra: un clustering gerarchico. A destra: il suo dendrogramma

Il dendrogramma, se tagliato orizzontalmente a qualsiasi livello, fornisce una pos-


sibile soluzione di clustering. Se n rappresenta il numero di elementi da raggrup-
pare in k cluster, allora il clustering gerarchico ha complessità di tempo O(kn2 ).
Il clustering gerarchico può essere:

– agglomerativo (HAC) se i cluster alle foglie (singleton) sono uniti dal basso
verso l’alto (bottom-up);

– divisivo se il cluster in radice viene diviso dall’alto verso il basso (top-down).

63
8.2.1 Clustering gerarchico agglomerativo

Il clustering gerarchico agglomerativo (HAC) parte dai singleton del dataset (ogni ele-
mento è un cluster) e continua a costruire cluster sempre più grandi mediante l’unione
di cluster più piccoli (bottom - up). Per definire completamente una strategia HAC,
è necessario specificare, oltre alla distanza tra i punti richiesta dalla definizione del
problema, le seguenti cose:

• distanza tra cluster: necessario per decidere quali coppie di cluster devono
essere unite in un unico cluster al passo successivo;

• criterio di arresto: per decidere quando l’algoritmo deve fermarsi.

Distanza tra cluster

Le strategie HAC più utilizzate per determinare la distanza tra i cluster sono:

• Single Linkage clustering, in cui la distanza tra i cluster è definita dalla


distanza minima tra i membri dei due cluster, vale a dire,

def
D(A, B) = min{d(x, y) : x ∈ A, y ∈ B} (8.1)

• Average Linkage clustering, in cui la distanza tra due cluster è definita come
la distanza media tra un punto in uno dei cluster e un punto nell’altro, vale a
dire,
def 1 X
D(A, B) = d(x, y) (8.2)
|A||B| x∈A,y∈B

• Max Linkage clustering, in cui la distanza tra due cluster è definita come la
distanza massima tra i loro elementi, vale a dire,

def
D(A, B) = max{d(x, y) : x ∈ A, y ∈ B} (8.3)

64
Criterio di arresto

I criteri di arresto comuni sono:

• numero fisso di cluster: si fissa il parametro k e si interrompe l’unione dei


cluster non appena il numero di cluster è k;

• limite superiore alla distanza: si fissa un r ∈ R+ per cui si interrompe il


raggruppamento non appena tutte le distanze tra i cluster sono maggiori di r.

Clustering Linkage-Based

L’algoritmo di clustering gerarchico agglomerativo più semplice è il clustering linkage-


based. Tale algoritmo prevede che inizialmente ogni punto è un singolo cluster. Dopo-
diché, ripetutamente, i cluster "più vicini" secondo la funzione di distanza d vengono
raggruppati fintantoché non si raggiunge il criterio di arresto. Di conseguenza, il nu-
mero di cluster diminuisce ad ogni passo. Senza criterio di arresto, tale procedura
porterebbe al raggruppamento di tutti gli elementi del dominio in un unico cluster di
grandi dimensioni.

65
8.2.2 k-means e altri cost minimization clustering

Il k-means è uno degli algoritmi di clustering piatto più utilizzati nel machine learning.
Tale approccio si basa sulla definizione di una funzione costo e l’obiettivo dell’algorit-
mo è trovare un partizionamento di costo minimo. Pertanto, il clustering diventa un
problema di ottimizzazione.
La funzione obiettivo G : ((X , d) , C) → R associa ad una coppia (X , d) e ad una pos-
sibile soluzione di clustering C = C1 , . . . Ck un numero reale positivo. Data una tale
funzione obiettivo, dunque, l’obiettivo del k-means è trovare, per un dato input (X , d),
un clustering C tale da minimizzare G.
É necessario scegliere il numero di cluster k in cui partizionare il dataset. Ogni cluster
Ci è rappresentato dal suo centroide:

X
µi (Ci ) = argmin d(x, µ)2 (8.4)
µ∈X ′
x∈Ci

Si presume che l’insieme di input X sia immerso in uno spazio metrico più ampio (X ′ , d)
in modo che X ⊆ X ′ e i centroidi siano membri di X ′ . Quindi, la funzione obiettivo del
k-means è
X
k X
Gk−means ((X , d), (C1 , . . . , Ck )) = d (x, µi (Ci ))2 (8.5)
i=1 x∈Ci

Questa può anche essere riscritta come

X
k X
Gk− means ((X , d), (C1 , . . . , Ck )) = min d (x, µi )2 (8.6)
µ1 ,...µk ∈X ′
i=1 x∈Ci

La funzione obiettivo del k-means misura la distanza al quadrato tra ciascun punto in
X e il centroide del suo cluster.

66
Teorema 8.2.1. Il centroide µi minimizza la funzione obiettivo Gk−means ((X , d), C)

Dimostrazione
Si assuma che l’insieme X sia immerso in uno spazio metrico più ampio (X ′ , d) in modo
che X ⊆ X ′ e i centroidi siano membri di X ′ . Sia d la distanza euclidea. Allora

X
µi (Ci ) = argmin d(x, µ)2 =
µ∈X ′
x∈Ci
X
= argmin (x − µ)2 = (distanza euclidea)
µ∈X ′
x∈Ci
XX
m
= argmin (xj − µi )2
µ∈X ′
x∈Ci j=1

Essendo il problema di minimizzazione NP-difficile, quando si parla di k-means spesso


ci si riferisce ad un algoritmo di approssimazione comune piuttosto che alla corrispon-
dente soluzione esatta del problema. Tale algoritmo non garantisce l’individuazione
dell’ottimo globale, ma solo di soluzioni sub-ottime.

Funzionamento algoritmo

L’algoritmo del k-means è iterativo ed è costituito dalle seguenti fasi:

1. si sceglie il numero di cluster k in cui partizionare il dataset X ;

2. si scelgono k seed, ovvero i punti iniziali da cui partire, in maniera pseudocasuale


(non devono coincidere necessariamente con punti del dataset);

3. si costruiscono i cluster attorno ai seed e si individuano i centroidi;

4. si calcola la distanza di ogni punto del dataset rispetto ad ogni centroide;

5. ogni punto del dataset viene associato al centroide (e quindi al cluster) più vicino;

67
i=1 x,y∈Ci

and the MinCut objective that we shall discuss in Section 22.3 are not center-
based objectives.

22.2.1 The k-Means Algorithm


The k-means objective function is quite popular in practical applications of clus-
6. si ricalcola la posizione
tering. However, di out
it turns ognithat
centroide facendo
finding the la k-means
optimal media delle posizioni
solution is of- di tutti
ten computationally infeasible (the problem is NP-hard, and even NP-hard to
i punti del cluster
approximate associato;
to within some constant). As an alternative, the following simple
iterative algorithm is often used, so often that, in many cases, the term k-means
Clustering refers to the outcome of this algorithm rather than to the cluster-
7. si itera dal punto 4 fino alla condizione di arresto.
ing that minimizes the k-means objective cost. We describe the algorithm with
respect to the Euclidean distance function d(x, y) = kx − yk.

k-Means
input: X ⊂ Rn ; Number of clusters k
initialize: Randomly choose initial centroids µ1 , . . . , µk
repeat until convergence
∀i ∈ [k] set Ci = {x ∈ X : i = argminj kx − µj k}
(break ties in some arbitrary manner)
P
∀i ∈ [k] update µi = |C1i | x∈Ci x

lemma 22.1 Each iteration of the k-means algorithm does not increase the
k-means objective function (as given in Equation (22.1)).

68
8.3 Clustering vs Classificazione

Il clustering:

• problema senza supervisione: sono dati in input solo gli x senza le etichette,
infatti, in contesti di big data analysis vengono analizzati così tanti dati che
risulterebbe estremamente costoso etichettarli tutti;

• le classi emergono dai dati e dall’algoritmo: il risultato finale dipende in


gran parte dal dataset e dal tipo di algoritmo impiegato.

La classificazione

• problema con supervisione: sono dati in input coppie (x, y) ∈ X × Y;

• le classi sono definite a priori: le classi sono predeterminate a partire dal


problema e non dipendono dall’algoritmo scelto.

Dato un problema, bisogna scegliere se applicare clustering o classificazione. Bisogna


fare diverse scelte: se il problema è senza supervisione si applica il clustering, altrimenti
la classificazione. Inoltre, se le etichette sono poche o assenti, utilizzare il clustering
potrerbbe farle emergere in maniera "automatica", senza la necessità che uno o più
utenti effettuino l’etichettatura. Infine, se l’obiettivo è trovare proprietà comuni di
alcuni elementi (cellule, animali ecc), il clustering potrebbe far emergere tali similarità.

69
Capitolo 9

Assessment

Per assessment si intende la valutazione di un modello di apprendimento. Tale valuta-


zione non deve dipendere dalla soluzione del problema, ma deve essere definita a priori
in base al problema. Quindi, nella maggior parte dei casi, il metodo di valutazione viene
definito prima della formulazione della soluzione del problema. Pertanto, il metodo di
valutazione fa parte della formalizzazione del problema. Talvolta, il protocollo seguito
dall’assessment potrebbe coincidere con la procedura ERM .

9.1 Classificazione binaria bilanciata

Un problema di classificazione può essere bilanciato se tutte le classi hanno più o meno
la stessa cardinalità, altrimenti viene definito non bilanciato.
Uno dei parametri di valutazione più importanti è l’accuratezza, definita come il
rapporto tra il numero di classificazioni corrette e quelle totali. Formalmente:

nc
A= (9.1)
n

70
con 0 ≤ A ≤ 1; si noti che A = 1 è il caso migliore, A = 0 è il caso peggiore.
La matrice di confusione è uno strumento che riassume le prestazioni di un algoritmo
di classificazione e viene utilizzata spesso in fase di assessment.

- Y N
1 TP FP
0 FN TN

Tabella 9.1: Matrice di confusione binaria

Le colonne Y e N rappresentano i valori della gold function f , mentre le righe 1 e 0


rappresentano i valori predetti dal classificatore in esame. Inoltre:

• TP: veri positivi, è il numero di elementi classificati positivamente dalla gold


function e dal predittore

• FP: falsi positivi, è il numero di elementi classificati negativamente dalla gold


function ma positivamente dal predittore

• FN: falsi negativi, è il numero di elementi classificati positivamente dalla gold


function ma negativamente dal predittore

• TN: veri negativi, è il numero di elementi classificati negativamente dalla gold


function e negativamente dal predittore

Il successo si registra quando il classificatore produce un output coincidente a quello


della gold function e si concretizza nei valori di TP e TN. Di conseguenza, il fallimento
si registra negli altri due casi. L’accuratezza si esprime, quindi, come:

nc TP + TN
A= = (9.2)
nt TP + FP + FN + TN

71
9.2 Classificazione binaria non bilanciata

Nel caso in cui le classi non siano bilanciate, il calcolo dell’accuratezza fallisce. Ad
esempio, se il numero dei positivi nY è molto minore del numero di negativi n − nY e
viene restituita sempre la classe 0 (negativi), allora si avrebbe la seguente matrice di
confusione:

- Y N
1 0 0
0 nY n − nY

Quindi, calcolando l’accuratezza si ha che:

TP + TN n − ny
A= = ≈1
TP + FP + FN + TN n

essendo nY <<< n. Dunque, pur applicando un pessimo classificatore (quello che resti-
tuisce sempre la classe dei negativi), l’accuratezza risulta ottima. Pertanto, è necessario
introdurre altri parametri per la valutazione nel caso in cui le classi non siano bilanciate.

9.2.1 Precision e Recall

La precision (precisione) e il recall (sensibilità) sono due indicatori utilizzati per valutare
la qualità di un modello di apprendimento.
Per comodità, si forniscono le definizioni nell’ambito dell’information retrieval.
La precision è il numero di documenti pertinenti recuperati diviso il numero totale di
documenti recuperati (vengono recuperati solo documenti pertinenti, dunque il numero
di documenti recuperati è minore uguale del numero di documenti esistenti).

|docRec ∩ docP ert| TP


P = = (9.3)
docRec TP + FP

72
Ad esempio, un antifurto è molto preciso se ogni volta che suona c’è un ladro in casa;
non suona se passa un gatto o un topo. Dunque, i falsi positivi sono pochi. Tuttavia,
potrebbe non prevedere tutti gli eventi, ovvero si potrebbero avere tanti falsi negativi
anche se il modello è preciso. Nel nostro esempio, l’antifurto potrebbe non suonare
quando c’è un ladro in casa (falso negativo); il suo livello di precisione resterebbe
comunque elevato poiché la precisione non tiene conto dei falsi negativi.
Il recall è il numero di documenti pertinenti recuperati diviso il numero totale di
documenti pertinenti esistenti.

|docRec ∩ docP ert| TP


R= = (9.4)
docP ert TP + FN

Nel nostro esempio, un antifurto è sensibile se suona ogni volta che c’è un ladro in casa.
Potrebbe, però, suonare anche se passa un gatto o un topo. Dunque, i falsi positivi
potrebbero essere molti.
Molto spesso precision e recall si studiano congiuntamente attraverso il calcolo
della media armonica. La media armonica di n numeri è hm = Pn n 1 . Il calcolo
i=1 xi

della media armonica di P e R tiene conto di un parametro di peso α, quindi:

1
Fα = α (9.5)
P
+ 1−α
R

dove α è il peso di P e 1 − α è il peso di R. In diversi casi (ad esempio, per semplicità


negli esercizi), non si vuole tenere conto dei pesi e si assume α = 0.5. Pertanto si ha
che:
1 2P R
F1 = 0.5 1−0.5 = (9.6)
P
+ R P +R

73
9.3 Classificazione multiclasse

Nella classificazione multiclasse, in maniera analoga alla classificazione binaria non bi-
lanciata, il calcolo dell’accuratezza non risulta efficace. Pertanto, si ridefiniscono i
parametri di precision e recall per la classificazione multiclasse. Si distinguono due
metodologie:

• macro-average: tutte le classi hanno la stessa rilevanza, indipendentemente dal


numero degli elementi. Sia K il numero delle classi, allora si ha che:

1 X
P = Pk
K k

1 X
R= Rk
K k

e sulla base di queste si calcola la media armonica, la cui formula è sempre F1 =


2P R
P +R
.

• micro-average: tutti gli elementi (di tutte le classi) hanno la stessa importanza.
Questo porta a considerare in maniera più pesante ciascun errore rispetto all’ap-
proccio precedente. La matrice di confusione della micro-average è la somma di
tutte le matrici di confusione di tutte le classi:

- PY PN
1 Pk TPk P k FPk
0 k FNk k TNk

Le formule di precision, recall e media armonica rimangono le stesse del caso


binario.

74
9.4 Clustering

La fase di assessment del clustering, in maniera analoga alla classificazione, fa parte


della definizione del problema e deve essere definita prima della ricerca delle soluzioni
(assessment-driven development). Sebbene il clustering sia un problema senza
supervisione, può esserci o meno un test set di dati etichettati (supervisionati) che
vengono utilizzati solo per la fase di valutazione.

9.4.1 Senza test set etichettato

Se non si ha a disposizione il test set etichettato, gli unici parametri che si possono
usare per valutare una soluzione di clustering sono la Residual Sum of Squares (RSS)
e la Silhouette.

Residual Sum of Squares (RSS)

La RSS è una misura che valuta la compattezza dei cluster. Tale misura considera un
elemento rappresentativo per ogni cluster ω chiamato centroide definito come segue:

X
µω = argmin d(x, µ)2 (9.7)
µ∈X ′ x∈ω

Si presume che l’insieme di input X sia immerso in uno spazio metrico più ampio (X ′ , d)
in modo che X ⊆ X ′ e i centroidi siano membri di X ′ . Dopodiché, per ogni cluster,
viene sommata la distanza di ciascun elemento x dal centroide:

X
RSSω = |d(x, µω )2 | (9.8)
x∈ω

75
Infine, viene sommato il contributo di tutti i cluster:

X
RSS = RSSω (9.9)
ω∈Ω

Dal momento che un cluster non può essere vuoto, la RSS è una quantità non negativa.
In particolare, è nulla quando un cluster è un singleton, cioè |ω| = 1. Quanto più lo
RSS è piccolo, migliore è il clustering. Come si è visto in sottosezione 8.2.2, la RSS
coincide con la funzione obiettivo del k-means.

Silhouette

La silhouette è una misura nell’intervallo [−1; 1] che valuta quanto sono simili gli ele-
menti all’interno di un cluster (coesione del cluster) e quanto sono differenti dagli
elementi degli altri cluster (separazione del cluster). Può essere utilizzata qualsia-
si metrica di distanza d(·, ·) come quella euclidea o di Manhattan. Dunque, per ogni
coppia di punti distinti x, x′ ∈ ω, sono definite le seguenti quantità non negative:

1 X
ax = d(x, x′ ) coesione
|ω| − 1 x̸=x′
1 X
bx = min d(x, x′ ) separazione
′ω ̸=ω |ω ′ |
x′ ∈ω ′

Tali quantità vengono utilizzate per calcolare la silhouette:





 bx −ax
se |ω| > 1
max{ax ,bx }
sx =


0 se |ω| = 1

76
Dunque, si ha che:

|ω| = 0 =⇒ sx = 0

bx <<< ax =⇒ sx → −1 pessima silhouette

bx >>> ax =⇒ sx → +1 ottima silhouette

La coesione ax valuta quanto sono simili gli elementi a due a due distinti di uno stesso
cluster, mentre la separazione bx valuta quanto sono dissimili gli elementi in cluster
diversi calcolando quanto x è diverso dal cluster più vicino: se è molto separato da esso,
a maggior ragione è separato da quelli più lontani.
La silhouette viene applicata ad ogni punto, cluster per cluster. Per una misura com-
plessiva si può considerare la silhouette media di tutti i punti del dataset oppure la
massima silhouette (detta coefficiente di silhouette).
Il calcolo della silhouette è costoso poiché quadratico sul numero degli elementi del
dataset. Il calcolo di RSS, invece, è lineare, dal momento che effettua i calcoli sui
centroidi. Di conseguenza, l’analisi basata sulla silhouette è poco usata.

9.4.2 Con test set etichettato

Se si ha a disposizione un test set etichettato, è possibile usare i parametry Purity e


RandIndex.

Purity

La purity è una misura nell’intervallo (0; 1] che valuta la purezza della soluzione di
clustering. Sia c il numero di classi e k il numero di cluster. Per confrontare la classi-
ficazione multiclasse con la soluzione di clustering è necessario avere c = k. La purity
assegna a ciascun cluster la classe con il maggior numero di elementi all’interno di quel

77
cluster, contando il numero di punti di quella classe nel cluster. Si definisce purity della
soluzione di clustering Ω = {ω1 , . . . , ωk } rispetto alle classi C = {c1 , . . . , cc } la seguente
quantità:
1 X
k
purity(Ω, C) = max |ωi ∩ cj | (9.10)
N i=1 j

• Ad esempio, si immagini di avere la seguente soluzione di clustering, con |C| = 3 classi


e K = 3. Allora purity(Ω, C) = 5+4+3
17
≈ 0.71 contando gli elementi rappresentativi in
ciascun cluster, cioè i 5 rossi nel primo, i 4 verdi nel secondo e i 3 blu nell’ultimo.

• Un’altra soluzione di clustering è data nella seguente figura, con |C| = 3 classi e
K = 3 cluster. L’indice di purezza risulterebbe essere migliore rispetto alla soluzione
precedente purity(Ω, C) = 6+4+4
17
= 14
17
≈ 0.82.

• Quando il numero di cluster K è grande, risulta più facile isolare le varie classi C, ma
non sarebbe fair. Per convincerci di ciò supponiamo, a partire dalla figura precedente,
di costruire un cluster in più. Avrei quindi |C| = 3 e K = 4 cluster:

Risulta effettivamente più semplice isolare i punti, aumentando l’indice di purezza che
sarebbe purity(Ω, C) = 4+2+4+2+4
17
= 16
17
≈ 0.94. Per questo motivo non è possibile

78
confrontare soluzioni con un numero di cluster diverso rispetto alle classi, poiché non
sarebbe fair. In generale i parametri studiati fino ad ora non si prestano alla valutazione
di soluzioni di clustering Ω su un numero di cluster diversi.

RandIndex

Il RandIndex è una misura nell’intervallo [0; 1] che considera tutte le coppie di punti
del dataset e valuta quanto sono simili in base all’etichetta gold fornita dal test set
etichettato: se i due punti hanno la stessa etichetta, allora devono stare nello stesso
cluster. Si può, quindi, costruire una matrice di confusione e calcolare il RandIndex
sotto forma di accuratezza (sezione 9.1), condividendo con essa tutte le proprietà, tra
cui l’essere nell’intervallo [0; 1].

- stessa classe classi diverse


stesso cluster TP FP
cluster diversi FN TN

Tabella 9.2: Matrice RandIndex

Ad esempio, TP è il numero di coppie di elementi che stanno nella stessa classe e nello
stesso cluster. Quindi si ha che:

TP + TN TP + TN
RI = A = = n
 (9.11)
TP + FP + FN + TN 2

79
Capitolo 10

Feature Selection and Manipulation

Un aspetto fondamentale del machine learning è codificare gli oggetti del mondo reale
come spazio di istanze di X , rappresentando ogni oggetto attraverso un feature vector.
I processi di feature selection, feature reduction, feature manipulation e feature norma-
lization servono a questo specifico scopo.
Scegliere tra feature selection e feature reduction dipende dalla natura del proble-
ma: quando si fa feature reduction si perdono informazioni sull’oggetto rappresentato.
Ad esempio, nel caso del tf-idf, ogni feature corrisponde ad una parola; pertanto, se
si fa feature reduction (in cui, ad esempio, una feature rappresenta una combinazione
lineare di parole) si perde la corrispondenza tra parola e feature (ed il valore semantico
di tale corrispondenza).

80
10.1 Feature Selection

Sia d la dimensione del vettore delle feature dello spazio delle istanze: X = Rd . L’obiet-
tivo della feature selection è costruire un predittore che lavori su un numero k << d di
feature. I vantaggi di tale operazione sono i seguenti:

• minor occupazione di memoria;

• costruzione delle feature più veloce e meno costosa in termini di risorse computa-
zionali;

• l’errore di stima, e quindi l’overfitting, può essere ridotto

In generale, un predittore che utilizza solo un numero limitato di feature è auspicabile


anche a costo di un piccolo degrado delle prestazioni, rispetto ad un predittore che
utilizza troppe feature (dove "troppe" dipende dal problema considerato).

10.1.1 Approccio brute force

L’idea dell’approccio brute force è provare tutti i possibili sottoinsiemi di k feature e,


successivamente, scegliere quello che porta alla predizione migliore. Tale approccio, pur
essendo il migliore, risulta troppo costoso dal punto di vista computazionale. Pertanto,
nella pratica si adottano altre strategie.

10.1.2 Approccio filter

L’approccio brute force è troppo costoso dal punto di vista computazionale, pertanto,
si accetta di avere soluzioni sub-ottime. L’approccio filter rappresenta un ottimo
compromesso per ottenere una soluzione sub-ottima con prestazioni computazionali
accettabili.
Tale approccio consiste nel considerare ogni feature indipendentemente dalle altre: ogni

81
feature viene valutata mediante uno score di qualità come l’indice F1 o l’errore ottenuto
da un predittore addestrato solo con quella feature. Dopodiché, si può procedere in due
modi:

1. si scelgono le k feature con lo score più alto;

2. si scelgono tutte le feature il cui score è maggiore di una determinata soglia;


dunque, k è scelto a posteriori.

10.1.3 Approccio greedy

L’approccio greedy tiene conto dell’algoritmo di apprendimento che verrà utilizzato con
l’insieme ridotto di feature. Tale approccio può funzionare sia forward che backward;
consideriamo il forward:

1. si inizia con un insieme vuoto di feature;

2. ad ogni passo, viene aggiunta una della restanti feature, ovvero quella con il rischio
più basso sul training set o sul validation set;

3. la procedura viene interrotta non appena si raggiungono k feature oppure quando


si raggiunge una sufficiente accuratezza sul validation set.

Il backward funziona in maniera analoga, ma si inizia con l’insieme completo di feature


e ad ogni passo la feature meno performante viene eliminata.

10.2 Manipolazione delle feature

Le operazioni di manipolazione delle feature sono operazioni facoltative che possono


essere applicate alle singole feature solo se il problema lo richiede.

82
10.2.1 Normalizzazione

A volte, alcune feature hanno range di valori completamente diversi le une dalle altre.
L’effetto sarebbe che alcune delle feature avrebbero un’influenza maggiore nel processo
di apprendimento rispetto alle altre. Per evitare tale problema, le feature vengono
portate tutte allo stesso range di valor, di solito [−1, 1]. Le trasformazioni avvengono
sul training set, ma vengono applicate a tutti gli oggetti forniti in input al predittore.

Esempi di normalizzazione

• centering: fa sì che la feature abbia media nulla impostando fi ← fi − f¯

• scelta del range: fa sì che il valore di ogni feature sia in [0; 1]. Formalmente fi ←
fi −fmin
fmax −fmin
dove fmin = mini fi e fmax = maxi fi . Similmente possiamo forzare che
le feature siano nel range [−1; 1] applicando la trasformazione fi ← 2 fmax
fi −fmin
−fmin
−1.
In generale, modificando opportunamente questa traslazione, possiamo modificare
il range [0; b] o [−b; b] dove b è un parametro specificato.

• standardizzazione: fa sì che ogni feature abbia media nulla e varianza unitaria.


P ¯2
Formalmente sia ν = m1 mi=1 (fi − f ) la varianza della feature. Allora si imposta
¯
fi ← i −f
f√
ν
.

• clipping: taglia valori troppo alti o troppo bassi per la feature. Ad esempio
fi ← sign(fi ) max{b, |fi |} dove b è un parametro specificato.

• trasformazione sigmoidale: applica la funzione sigmoidale alla feature. Ad


esempio fi ← 1
1+ebfi
dove b è un parametro specificato dall’utente. Questa
trasformazione è la versione leggera del clipping.

• trasformazione logaritmica: applica la funzione logaritmica alla feature. Ad


esempio fi ← log(b + fi ) dove b è un parametro specificato.

83
Capitolo 11

Preservare la privacy nel machine


learning

I sistemi di machine learning risultano performanti quando la qualità dei dati a loro
disposizione è buona. Tali sistemi richiedono abbondanti quantità di dati per costruire
training set validi per l’apprendimento. Dunque, la privacy delle persone all’interno
del training set è a rischio. Le informazioni estratte dal training set devono fornire
informazioni generali sulla popolazione, non specifiche di un singolo utente. Si vuole
essere in grado di garantire la sicurezza degli utenti per:

• persuadere gli utenti a fornire i loro dati;

• rispettare la legge (le infrazioni del GDPR sono molto costose).

84
11.1 GDPR

Il GDPR (General Data Protection Regulation) è un regolamento europeo che disciplina


il modo in cui le aziende e le altre organizzazioni trattano i dati personali. L’obiettivo
principale del GDPR è dare ad ogni individuo il controllo sull’utilizzo dei propri dati.
Ogni organizzazione deve documentare e monitorare le attività di trattamento dei dati
personali. Il GDPR è stato adottato il 14 aprile 2016 ed è diventato esecutivo dal
25 maggio 2018. Diversamente da una direttiva, il GDPR non richiede ai governi
nazionali di approvare alcuna legislazione abilitante e quindi è direttamente vincolante
e applicabile.

11.2 Rischi per la privacy

In generale, i rischi per la privacy derivano da:

• side information;

• attacchi che compromettono il training set (ad esempio, se si conoscono tutti i


punti del training set, è facile ricavare quale sia il nuovo dato inserito).

Ad esempio, un problema classico per la privacy nel machine learning è quello degli
outliers: i valori anomali possono suggerire informazioni sugli individui che hanno
caratteristiche con grandi differenze rispetto agli altri, soprattutto in calcoli come la
media.
Con il processo di anonimizzazione, le informazioni identificative vengono rimosse.
Tuttavia, sulla base dei dati rimanenti e delle conoscenze pregresse, è spesso possibile
recuperare informazioni non intenzionali sugli individui, soprattutto se si ha accesso a
diversi database.

85
11.3 Differential privacy

La differential privacy è una tecnica che consiste nell’aggiungere "rumore" ai dati per-
sonali rendendoli anonimi già al momento della raccolta, garantendo, in questo modo,
la privacy degli utenti.

11.3.1 Randomized mechanisms

Mediante i randomized mechanisms, si forniscono risposte approssimative in modo tale


che la risposta ha ancora un’utilità, poiché probabilmente abbastanza vicina alla rispo-
sta vera, ma non è possibile risalire alle informazioni specifiche degli utenti all’interno
del training set. Nello specifico, si vuole che la probabilità di ottenere un dato predit-
tore sia approssimativamente la stessa quando si considerano due training set T e T ′
che differiscono in un solo punto

P(M (T ) = y) ≤ eε P(M (T ′ ) = y) (11.1)

M indica un meccanismo randomizzato, ovvero, nel nostro caso, una risposta con
rumore.

11.4 Raggiungimento della privacy

Si ritene che la privacy sia soddisfatta quando è possibile eliminare un singolo punto
dal training set senza che il predittore fornito in output cambi. Pertanto, l’aggiunta o
l’eliminazione di quel punto non deve cambiare il risultato. In linea di principio, è una
buona idea, ma impossibile da soddisfare, poiché dovrebbe valere per tutti i punti del
training set.

86
Capitolo 12

Python

Python è un linguaggio di programmazione interpretato, interattivo e object oriented,


ha una sintassi semplice ed è general purpose. Nasce come linguaggio di scripting, ma si
è evoluto rapidamente nel corso degli anni. Il codice sorgente di Python viene "compi-
lato" in un bytecode, che viene successivamente interpretato da una macchina virtuale;
tale caratteristica lo rende un linguaggio di programmazione multi-piattaforma. Se
confrontato con linguaggi compilati con tipizzazione statica, come ad esempio il C, la
velocità di esecuzione non è uno dei suoi punti di forza, soprattutto nel calcolo matema-
tico. Python è ampiamente utilizzato nell’ambito dei big data e del machine learning,
infatti esistono numerose librerie che semplificano il lavoro del programmatore in tali
contesti.

87
Bibliografia

[1] Yoav Goldberg e Graeme Hirst. Neural Network Methods in Natural Language
Processing. Morgan & Claypool Publishers, 2017. isbn: 1627052984.

[2] Shai Shalev-Shwartz e Shai Ben-David. Understanding Machine Learning: From


Theory to Algorithms. USA: Cambridge University Press, 2014. isbn: 1107057132.

88

Potrebbero piacerti anche