vuoi
o PayPal
tutte le volte che vuoi
SUPERVISED LEARNING
LINERAR REGRESSION CON UNA
VARIABILE
Iniziamo considerando la regressione lineare con una sola variabile.
Come sempre per addestrare un modello abbiamo bisogno di un training set.
NOTA: Con la lettera “m” andiamo ad indicare il numero degli esempi del training
set, con latterà “x” la variabile di input e con “y” la nostra variabile di output
NOTA: con (x, y) andiamo ad indicare un riga del nostra training set
A partire dai dati del training set l’obiettivo è quello di creare la migliore ipotesi, in
base all’algoritmo e i dati di addestramento.
NOTA: per ipotesi si intende una funzione matematica
Nel caso della regressione lineare l’ipotesi non sarà altro che una funzione lineare.
NOTA: l’ipotesi coincide quindi con il vero e proprio modello ottenuto a seguito
dell’addestramento
Per identificare i migliori parametri della funzione lineare è necessario considerare
una funzione di costo ossia una funzione che ci dice quanto “sbaglia” in generale
il modello nelle predizioni.
La funzione di costo che andremmo a considerare sarà la seguente:
SUPERVISED LEARNING 1
naturalmente il nostro obbiettivo è quello di trovare i parametri che minimizzano
tale funzione la fine di identificare la migliore ipotesi.
NOTA: rappresenta l’ipotesi che stiamo considerando
h
θ
Il processo per identificare i migliori parametri consiste nel:
1. inizializzare casualmente i parametri
2. cambiare i pesi gradualmente la fine di minimizzare la funzione di costo
il modo in cui vengono aggiornati i pesi si basa sulla tecnica della discesa del
gradiente, dove tale meccanismo si basa sul ripetere più volte il seguente calcolo:
NOTA: J( , ) è la funzione di costo che siamo considerando
θ θ
0 1
NOTA: I due parametri devono essere aggiornati “simultaneamente” ossia per ogni
iterazione della discesa del gradiente entrambi i parametri devono essere
aggiornati e non solo uno per iterazione
NOTA: se il parametro è troppo grande il metodo della discesa del gradiente
α
potrebbe convergere.
SUPERVISED LEARNING 2
NOTA: questa è la derivata parziale/gradiente della funzione di costo
(i)
NOTA: nella formula appena riportata il valore indica il valore della j-esima
x
j
variabile dell’istanza i-esima. Questo perché questa formula è da usare per
determinare l’aggiornamento del parametro j-esimo
Nella tecnica della discesa del gradiente è chiamato learning rate, che è un
α
iperparametro (ossia lo deve scegliere una persona e non deve essere
“imparato”).
∂(J (θ ,θ )
NOTA: non è altro che la derivata parziale della funzione di costo
0 1
∂θ
j
Per comprendere meglio l’utilizzo della derivata parziale nelle formula della
discesa del gradiente, immaginiamo di trovarci in montagna (in uno spazio 2d). Se
la derivata parziale è positiva vuol dire che la nostra quota aumenterà man mano
che ci muoviamo nel senso positivo dell’asse considerato. Al contrario se la
derivata parziale è negativa indica che la quota diminuisce se ci muoviamo nel
senso positivo.
SUPERVISED LEARNING 3
LINEAR REGRESSION CON PIU’ VARIABILI
NOTA: con la lettera m si indicano il numero di istanze del dataset, mentre con la
lettera n si indicano il numero di features di cui si compone il dataset
In questa sezione useremo la seguente sintassi:
i
1. per indicare l’istanze i-esima del dataset
x
i
2. per indicare la variabile target dell’istanza i-esima
y i
3. per indicare il valore della feature j-esima per l’istanza i-esima
x
j
In questo caso, come nel precedente, il nostro obiettivo è quello di creare una
funzione lineare.
A differenza del caso di una singola variabile, in questo caso la funzione lineare
avrà n+1 parametri.
SUPERVISED LEARNING 4
Anche in questo caso, per identificare i migliori parametri si utilizzerà la tecnica
della deiscenza del gradiente.
Per quando riguarda l’aggiornamento dei pesi, abbiamo diverse opportunità:
batch gradient descent: i pesi vengono aggiornati usando tutto il training-set.
Ogni iterazione dell’algoritmo della discesa del gradiente sfrutta tutte le istanze
per aggiornare i pesi. Questo approccio è sconsigliato per dataset molto
grandi. ∂J (θ)
1 m
:= − ⋅ ∑
θ θ α
j j ∂θ
m i=1
j
stochastic gradient descent: i pesi vengono aggiornati dopo ogni esempio
del training-set. ∂J (θ)
:= − ⋅
θ θ α
j j ∂θ
j (i) (i)
,y
x
mini-batch gradient descent: i pesi non vengono aggiornati utilizzando tutto il
dataset, ma prima si divide in batch (dei sotto insiemi) e poi si usa per ogni
iterazione un bathc diverso.
NOTA: solitamente il secondo approccio viene preferito al primo quando si lavora
con dataset molto grandi
Con la batch gradient descent l’algoritmo risulta più lento ma la convergenza è
assicurata, in quanto ogni passo va diritto verso il minimo della funzione. Con la
stochastic gradient descent l’algoritmo è sicuramente più veloce ma la
convergenza non certa al 100% in quanto ogni passo può andare in una direzione
diversa
SUPERVISED LEARNING 5
Nell’implementazione della discesa del gradiente è necessario stabilire un criterio
di stop per quanto riguarda le iterazioni dell’algoritmo. Delle possibili soluzioni
posso essere:
definire un numero massimo di iterazioni
stabilire un valore tale che l’algoritmo termina quando la funzione di costo
raggiunge uno specifico valore
stabilire un valore tale che se la differenza della funzione di costo tra due
iterazione scende al di sotto di questo valore, l’algoritmo termina
l’algoritmo termina quando la norma del gradiente scende al di sotto di un
valore prefissato
REGRESSIONE POLINOMIALE
In questo caso andiamo a studiare la regressione nei casi in cui i dati non posso
essere rappresentati attraverso una retta.
SUPERVISED LEARNING 6
In questo caso passiamo da una ipotesi lineare ad una ipotesi polinomiale.
In base al grado del polinomio li modello tenderà a seguire curve più o meno
accentuate, ad esempio:
Grado basso (polinomi di grado 1 o 2): Se il grado del polinomio è basso, il
modello tenderà a seguire curve più semplici e "lisce". Ad esempio:
Un polinomio di grado 1 è semplicemente una retta.
Un polinomio di grado 2 (quadratico) è una parabola, che può catturare
una curva semplice a forma di U o di arco.
Grado alto: Se il grado del polinomio è alto, il modello sarà più flessibile e sarà
in grado di seguire curve più accentuate, adattandosi ai dettagli del dataset in
modo più preciso. Tuttavia, con un grado molto alto, il modello potrebbe
diventare estremamente complesso, creando curve che seguono da vicino
ogni fluttuazione o rumore nei dati.
FEATURE SCALING - NORMALIZZAZIONE
DEI DATI
La normalizzazione dei dati consiste nel prenderete tutti i valori di una feature e
farli rientrane in un range specifico di valori (ad esempio da 0 a 1). Questa
operazione non si limita ad una sola variabile, ma deve essere eseguita su tutte le
variabili che compongono il dataset.
SUPERVISED LEARNING 7
La normalizzazione dei dati è un processo il cui fine è quello di migliorare
l’efficienza della tecnica della discesa del gradiente per l’identificazione dei
parametri.
La foto qui riportata mostra un confronto tra la discesa del gradiente applicata ad
un dataset non normalizzato (a sinistra) e la discesa del gradiente applicata ad un
dataset normalizzato in cui tutte le feature (x1 e x2) sono adattate ad un range di
valore tra 0 e 1. L’immagine di sinistra mostra come la discesa de gradiente a
bisogno di molte più iterazioni (linee rosse) rispetto all’immagine di destra facendo
emergere le differenze prestazionali della discesa del gradiente.
NOTA: il motivo per cui nel caso di dataset non normalizzati la discesa del
gradiente ha bisogno di maggiori iterazioni è che ci possono essere delle variabili
di gradi scale (rispetto alle altre) che possono “monopolizzare” la discesa
rischiando anche di raggiungere un minimo locale anziché un minimo assoluto
Esistono diverse tecniche di normalizzazione, tra cui:
min-max normalization : con questa normalizzazione si forzano i valori in un
=
intervallo [a, b] a nostro piacimento con la seguente formula: x
x−min (b − +
a) a
max−min
NOTA : e rappresentano rispettivamente il valore più basso e più alto
min max
per una specifica variabile
NOTA: questa tecnica di normalizzazione è molto sensibile agli outliers (nel senso
che la loro presenza sminchia tutto)
SUPERVISED LEARNING 8
z-score normalization: il suo obiettivo è quello di trasformare un ‘insieme? di
dati in modo che abbiano una media pari a 0 e una deviazione stardard pari a
x−mean(x)
=
1. Questo è possibile grazie alla seguente formula:
x devstd(x)
NOTA: rispetto alla precedente tecnica qui non sono richiesti di conoscere i valori
min e max e in più gli outliers non vanno a sminchiare la normalizzazione
NOTA: rispetto alla normalizzazione mi max, i dati non vengono forzati in una
range di valore ([a, b] ad esempio), ma vengono cambiati rispettano i criteri della
media e della deviazione standard, trasformando dati anche da positivi a negativi
APPROCCIO ALTERNATIVO PER LA
DISCESA DEL GRADIENTE
Per la discesa del gradiente può essere adottato un approccio matematico
piuttosto che uno algoritmico. Per fare questo dobbiamo considerare una matrice
che rappresenta l’input space del mio dataset e un vettore che rappresenta
l’output space del mio dataset
NOTA: quel delta rovesciato rappresenta il gradiente(credo) che vogliamo
raggiungere [si è proprio così]
NOTA: Con questo approccio è necessario anche rivisitare la funzione di errore
per lavorare con la matrici
SUPERVISED LEARNING 9
NOTA: Imporre un gradiente pari a 0 vuol dire raggiungere il punto di minimo
assoluto
Il primo step è quello di ottenere una nuova funzione di costo in grado di lavorare
con le matrici. (Xθ − (Xθ −
T
Nella funzione di costo delle matrici si moltiplica per simulare
y) y)