Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A cura di
MARCO ROMANO
Indice
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
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
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
12 Python 87
iv
Capitolo 1
– 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 .
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.1 Overfitting
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.
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,
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.
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,
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:
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:
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:
[
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
8
Lemma 1.3.0.1 (Union Bound). Dati due insiemi A,B e una distribuzione D abbiamo
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
9
to the event ∀i, h(xi ) = f (xi ). Since the examples in the training set are sampled
i.i.d. we get that
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 ,
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
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
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
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
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
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)
γ
yi ⟨w, xi ⟩ ≥ 1, ∀i = 1, . . . , m (2.11)
Aw ≥ v (2.12)
16
2.1.2 Perceptron per semispazi
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.
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.
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,
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
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.
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
2 X
m
(⟨w, xi ⟩ − yi )xi = 0 (2.17)
m i=1
20
Oppure, in forma matriciale:
⊤
.. .. .. ..
. . . .
A=
x1 . . . xm x1 . . . xm
,
. .. .. ..
.. . . .
(2.19)
.. ..
. . y1
.
b= .
x
1 . . . x m .
. ..
.. . ym
w = A−1 b (2.20)
Il caso in cui A non è invertibile richiede alcuni strumenti standard dell’algebra lineare.
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)
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)
e possiamo trovare il vettore ottimale dei coefficienti a usando l’algoritmo dei minimi
quadrati come mostrato in precedenza.
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
La classe di ipotesi è quindi (dove per semplicità usiamo funzioni lineari omogenee):
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)
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
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:
25
3. si considera un nuovo insieme, detto validation set;
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.
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
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.
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
• 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.
29
rate prima, ma più facili da determinare:
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.
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).
• 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;
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.
3.5 Riepilogo
32
Capitolo 4
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.
PT
• vettore medio, w = 1
T t=1 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) .
35
Capitolo 5
Classificatori multiclasse
cazione binaria
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
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.
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
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}
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.
Costruzione multivettore
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
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 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
𝒘𝟏 𝒘𝟐 𝒘𝒌
𝒙𝟏 𝒙𝟐 𝒙𝒌
X
at+1,j (x) = w ((vt,r , vt+1,j )) ot,r (x)
r:(vt,r ,vt+1,j )∈E
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).
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
• 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).
– se dout = 1, allora viene restituito un unico scalare che può essere utilizzato
sia per la classificazione binaria che per la regressione;
47
6.3 Caratteristiche di una rete neurale
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
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)
49
𝒚𝟏
1
𝜎 𝑧 =
1 + 𝑒 −𝑧
𝒙𝟏 𝒙𝟐 … 𝒙𝒏
• 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
ficazione
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.
• 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.
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.
53
7.2.2 Feature embedding (codifica densa)
• i vettori sono costruiti in modo che feature simili abbiano vettori simili.
54
tra loro (sono indipendenti) e k è relativamente piccolo, allora potrebbe convenire la
rappresentazione one-hot.
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
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.
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.
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;
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,
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.
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
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.
– d(x, x) = 0;
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
– agglomerativo (HAC) se i cluster alle foglie (singleton) sono uniti dal basso
verso l’alto (bottom-up);
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;
Le strategie HAC più utilizzate per determinare la distanza tra i cluster sono:
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
Clustering Linkage-Based
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
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
Funzionamento algoritmo
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.
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;
La classificazione
69
Capitolo 9
Assessment
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
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
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.
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).
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.
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
1
Fα = α (9.5)
P
+ 1−α
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:
1 X
P = Pk
K k
1 X
R= Rk
K k
• 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
74
9.4 Clustering
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.
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′ ∈ω ′
76
Dunque, si ha che:
|ω| = 0 =⇒ sx = 0
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.
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
• 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].
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
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:
• costruzione delle feature più veloce e meno costosa in termini di risorse computa-
zionali;
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:
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:
2. ad ogni passo, viene aggiunta una della restanti feature, ovvero quella con il rischio
più basso sul training set o sul validation set;
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
• 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.
• clipping: taglia valori troppo alti o troppo bassi per la feature. Ad esempio
fi ← sign(fi ) max{b, |fi |} dove b è un parametro specificato.
83
Capitolo 11
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:
84
11.1 GDPR
• side information;
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.
M indica un meccanismo randomizzato, ovvero, nel nostro caso, una risposta con
rumore.
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
87
Bibliografia
[1] Yoav Goldberg e Graeme Hirst. Neural Network Methods in Natural Language
Processing. Morgan & Claypool Publishers, 2017. isbn: 1627052984.
88