ALGEBRA LINEARE PER TUTTI [Parte 2]

 

Autore: Paolo Caressa

 

 

Punti, vettori e loro algebra

Abbiamo fin qui parlato di punti come la totalità dei punti del piano che si identificano in modo biunivoco con la totalità di tutte le coppie possibili di numeri reali.

Per quanto riguarda il machine Learning, siamo interessati a insiemi finiti di punti, in quanto vogliamo rappresentare particolari oggetti da classificare o fenomeni da correlare come punti in uno spazio cartesiano. Per trovare una regolarità o un “pattern” in questi punti, spesso ci interessa considerare rette, piani oltre che di figure geometriche più complesse come le coniche nel piano o le quadriche nello spazio.

Abbiamo visto prima, con un esempio, che alcune figure geometriche possono essere rappresentate da singole o da sistemi di equazioni.

Limitiamoci al caso delle rette e dei piani per capire in generale come li si rappresenta, dato che spesso queste rappresentazioni sono utilizzate nel machine learning.

 

Una retta è intuitivamente un insieme allineato di punti: uno degli assiomi di Euclide afferma che per due punti passa una sola retta, cioè che per determinare univocamente una retta basta indicarne due punti distinti.

Per capire come questo si possa fare nel piano cartesiano, consideriamo due punti distinti P e Q, di coordinate P=(x1,y1) e Q=(x2,y2).

Definiamo il vettore che va da P a Q come la coppia di numeri

Cattura 6

Cioè un vettore è per definizione una differenza di punti, dove con il termine differenza intendiamo la differenza fra le componenti che hanno lo stesso indice.

Dal punto di vista informatico possiamo pensarla in questo modo: un punto è un array (o lista) con due elementi che sono numeri. Normalmente un array A = [x,y] si indicizza a partire da 0, cioè A[0] = x e A[1] = y. Allora, se A e B sono array, il vettore \overline{AB}  si può rappresentare con l’array [B[0] – A[0], B[1] – A[1]].

Resta da capire perché chiamiamo “vettore” una differenza di punti: perché è un oggetto dotato di direzione, verso e intensità, come i vettori della fisica.

La direzione è semplicemente la retta che passa per P e Q; il verso è quello che va da P verso Q (il vettore opposto sarebbe \overline{PQ}  che va da Q verso P: quali sono le sue componenti?)

 

L’intensità è la distanza fra i punti P e Q. Pertanto un vettore determina una retta, e su di essa una direzione: naturalmente esistono infiniti vettori che determinano la stessa retta.

Per esempio la retta che passa per i punti  P= (0,1)  e Q= (0,-2)  è individuata dal vettore \overline{PQ}= (-2,2)   , ma anche dal vettore (-1,1)  che ha stessa direzione e verso ma intensità diversa.

In generale, per ogni numero  (-a,a) a non nullo  rappresenta questa retta. Diciamo che due vettori sono paralleli se sono l’uno multiplo dell’altro per un fattore di scala non nullo.

In effetti, un altro modo di determinare una retta è individuarne un punto P  e un vettore \overline{v}  in modo da esprimere tutti i punti della retta come traslati per i vettori paralleli a \overline{v}

 X= P+ \overline{av}

Questa si chiama l’equazione parametrica della retta, perché esprime il generico punto  della retta per mezzo di un parametro  che varia in tutti i numeri reali.

Si noti che abbiamo usato l’operazione di somma fra un punto e un vettore, definita in modo ovvio: se  P= (X,Y)  e  v= \overline{RS} allora   P + \overline{RS} \left ( x+w-a,y+z -b\right )  , supponendo che le coordinate dei punti R e  S siano  R=(a,b)  e S=(w,z) . Cioè sommiamo le coordinate del punto e le componenti del vettore per ottenere un nuovo punto.

Quando sommiamo un vettore a un punto diciamo anche che applichiamo il vettore in quel punto.

 

I vettori, oltre a consentire di definire le rette ed in dimensioni più alte piani ed iperpiani possiamo notare che:

  1. I vettori possono essere sommati e fra loro ottenendo altri vettori:

\overline{PQ} + \overline{RS}= Q-P+S-R

Notiamo che allora  \overline{PQ} + \overline{QP}=0  (il vettore nullo) e  \overline{QP} è il vettore opposto  \overline{PQ}.

Inoltre, questa operazione di somma soddisfa le usuali proprietà commutativa e associativa

2. I vettori possono essere moltiplicati per un numero ottenendo altri vettori: Inoltre questa operazione di prodotto soddisfa le usuali proprietà commutativa, associativa e distributiva.In particolare il vettore nullo  \overline{0} è ottenuto moltiplicando per zero ed il vettore  opposto di un vettore dato  \overline{v}, cioè quel vettore  \overline{w} tale che  \overline{v} + \overline{w}=0  , è ottenuto   \overline{v}  moltiplicando per  -1.

Inoltre questa operazione di prodotto soddisfa le usuali proprietà commutativa, associativa e distributiva.

 

Con il termine spazio vettoriale si intende un insieme di elementi con due operazioni, di somma fra gli elementi e di moltiplicazione di un elemento per un numero, che soddisfi le stesse proprietà delle operazioni fra i vettori del piano.

vettore in un piano

Figura 3. Il vettore ottenuto come somma  di due vettori del piano si costruisce prendendo la diagonale del  parallelogramma individuato dai due vettori se applicati in uno stesso punto.

In realtà, nel machine learning si utilizzano invariabilmente spazi vettoriali di dimensione finita i cui vettori sono espressi in coordinate, e in questo caso i vettori sono differenze di punti proprio come nell’esempio che stiamo discutendo.

In effetti un elemento di confusione per i principianti è che sia i punti che i vettori dello spazio cartesiano sono rappresentati come coppie di numeri.

Vogliamo ricordare che, anche se si rappresentano allo stesso modo, sono oggetti concettualmente distinti. Un punto individua un singolo punto dello spazio, un vettore individua uno spostamento lungo una direzione, verso e di una certa lunghezza dove si può far corrispondere un punto a un vettore e viceversa nel modo seguente:

al punto P possiamo far corrispondere il vettore   \overline{OP}  che va dall’origine del piano cartesiano al punto P; se invece  \overline{v}   è un vettore, possiamo associargli il punto   0+\overline{v} .

 

Questa distinzione fra punti e vettori è spesso trascurata ma è importante intanto per distinguere concetti apparentemente identici, e poi perché aiuta a interpretare le applicazioni della teoria: per esempio nella seguente figura sono rappresentate, secondo un certo algoritmo di machine learning, alcune parole di un corpus di documenti in inglese con i punti del piano cartesiano:

 

italy

 

Come si vede i punti rappresentano parole.

I vettori cosa rappresentano in questo caso?

Prendiamo il vettore che va da “pizza” a “italy” e applichiamolo a “sushi”: otteniamo indicativamente “japan”. Ne deduciamo che quel vettore rappresenta la risposta a una domanda, cioè “dato un piatto tipico qual è la sua nazione?”.

In questo caso è chiaro che punti e vettori rappresentano concetti distinti.

 

Lunghezza e angolo fra vettori, similarità del coseno

Per definire la lunghezza di un vettore introduciamo una notazione molto usata: il prodotto scalare (o dot-product).

Sia  \overline{v} =(v_1,v_2) e  \overline{v} = (v_1,w_2) diciamo che la il prodotto scalare di   \overline{v}  e  \overline{w}  è il numero:

ecuacion 1

 

ottenuto come somma dei prodotti delle componenti di pari indice dei due vettori.

In particolare, il prodotto scalare di un vettore per se stesso è, per definizione, il quadrato della sua lunghezza:

ecuacion 2

La lunghezza di un vettore si chiama anche norma: si noti che la formula mostra chiaramente come la norma che abbiamo considerato sia “euclidea”, e il motivo è dato dal fatto che, se scriviamo  come differenza di punti troviamo che

nueva ecuacion 3

La lunghezza di un vettore che abbiamo qui definito è quella che in fisica si chiama la sua intensità: oltre alla lunghezza, possiamo anche definire l’angolo  \theta = \overline{V} \overline{W}  fra due vettori, implicitamente per mezzo della formula :

ecuacion 4

Usando la funzione arcocoseno è possibile calcolare questo angolo a partire dal prodotto scalare dei due vettori e dalle loro lunghezze: il motivo per cui questa formula definisce effettivamente l’angolo fra i vettori è legato alla trigonometria.

Notiamo che   \theta  è un numero compreso fra -1 e 1  tale che:

imagen 3

Dunque, mentre la distanza confronta la similarità fra due punti, che sono tanto più simili quanto più la loro distanza è prossima a zero, il coseno misura la similarità fra due vettori, nel senso che più è prossimo a 1 in valore assoluto e più i vettori determinano la stessa retta.

Questa misura è spesso usata in machine learning per classificare oggetti mappati su spazi vettoriali.

Lo spazio cartesiano a N dimensioni

Nel tour de force di geometria cartesiana e vettoriale che abbiamo fin qui seguito, ci siamo limitati al caso della dimensione N = 2 per aiutarci con i disegni e sviluppare i concetti in un ambiente familiare: ma nelle applicazioni abbiamo a che fare con spazi di dimensione anche molto alta.

In questo caso dobbiamo rinunciare all’intuizione, ma in realtà tutte le formule che abbiamo dato e tutti i concetti che abbiamo definito si trasportano “pari pari” al caso di dimensione qualsiasi.

Infatti tutte le formule dipendono da somme e sottrazioni delle coordinate dei punti e delle componenti dei vettori: se queste componenti sono 2 oppure 20.000 non fa una reale differenza. Ancora meglio, tutto questo si implementa in modo molto efficiente su un computer, cui possiamo far digerire punti e vettori in spazi di dimensione altissima senza problemi!

Un concetto dobbiamo tuttavia spiegarlo, quello di iperpiano: nel caso del piano coincide col concetto di retta e nel caso dello spazio ordinario col concetto di piano.

Fissata una dimensione N consideriamo lo spazio cartesiano R^n.

 

Una retta di questo spazio è, come nel caso di dimensione 2, determinata da una coppia di punti o da un punto e da un vettore: l’equazione parametrica è la stessa che nel caso bidimensionale.

Se N > 2 possiamo anche considerare equazioni parametriche del tipo:

ecuacion 5

In questo caso abbiamo due parametri che variano indipendentemente, quindi, a intuito, l’insieme dei punti X che soddisfano questa equazione al variare di a e b nei numeri reali corrisponde alle coppie (a,b) cioè al piano. In altri termini, è un oggetto bidimensionale.

In realtà questo non è sempre vero: per esempio se    \overline{v}= \overline{w} l’equazione parametrica precedente si riduce alla

ecuacion 6

quindi in realtà rappresenta una retta.

Quindi se scriviamo una equazione parametrica con più parametri, la dimensione dell’insieme dei punti descritti da questa equazione dipende dalle relazioni fra i vettori usati per scriverla: nel caso precedente, se i vettori sono paralleli l’equazione rappresenta una retta e non un piano.

Se in generale, in uno spazio di dimensione N, scriviamo una equazione parametrica in N – 1 parametri, abbiamo:

ecuacion 7

Se tutti i vettori che vi figurano sono paralleli, otteniamo ancora una retta! Per assicurarci di avere un oggetto di dimensione N – 1 dobbiamo trovare un analogo della condizione di parallelismo fra due vettori che sia esprimibile per più di due.

 

Diciamo che n vettori :

Cattura 1

sono linearmente indipendenti se l’unico modo per soddisfare l’equazione

ecuacion 8

È che tutti i coefficienti a_1, a_2,a_n   siano nulli! Cioè l’unica soluzione di questa equazione vettoriale deve essere

Cattura2

Ora possiamo definire un iperpiano di dimensione N – 1 in uno spazio cartesiano di dimensione N come l’insieme dei punti definiti dall’equazione parametrica

ecuacion 9

al variare in tutti i modi possibili dei numeri:

Cattura 3

e supponendo che i vettori rappresentanti qui sotto, siano linearmente indipendenti.

Cattura4

Un iperpiano può essere descritto anche da una equazione cartesiana, cioè da una relazione lineare fra le coordinate del generico punto che gli appartiene:

ecuacion 10

dove  b_i non tutti i  sono nulli.

Un modo per determinare questa equazione è notare che la somma di prodotti dei coefficienti e delle coordinate è il prodotto scalare fra il vettore   \overline{b} = (b_1, b_2,..,b_n) e il vettore   \overline{x} = (x_1, x_2,..,x_n) delle coordinate, di modo che possiamo scriverla

Cattura 5

Questo vuol dire che l’iperpiano è formato dai vettori che sono perpendicolari al vettore  che rappresenta la direzione perpendicolare all’iperpiano, quella mancante per colmare tutto lo spazio.

Un iperpiano di dimensione N – 1 in uno spazio di dimensione N separa in due parti lo spazio, esattamente come una retta separa in due il piano e un piano separa in due lo spazio tridimensionale: i punti che appartengono a una delle due parti in cui viene separato lo spazio dall’iperpiano hanno le coordinate che soddisfano la disequazione.

 

ecuacion 13

Mentre i punti le cui coordinate soddisfano la disequazione

ecuacion 14

costituiscono l’altra parte dello spazio delimitata dall’iperpiano.

Questa idea di usare un iperpiano per separare in due parti lo spazio è la separabilità lineare ed è utilizzata negli algoritmi classici di machine learning, come alberi decisionali o le support vector machines.

 

Matrici e loro algebra

Una delle caratteristiche dell’algebra lineare è la facilità e universalità dei suoi metodi numerici: in sostanza basta aver implementato un algoritmo (o una sua variante), cioè l’eliminazione di Gauss, per poter sostanzialmente fare qualsiasi cosa [una introduzione a questo algoritmo si trova per esempio in queste note]. Questi algoritmi sono tipicamente già implementati in tutte le librerie standard di calcolo numerico, per esempio numpy.linalg di Python.

Per chiudere questo tutorial (ormai fin troppo lungo) è opportuno introdurre la nozione chiave che coinvolge tutti questi algoritmi, e che è utile anche in tutti gli sviluppi concettuali dell’algebra lineare: il concetto di matrice.

Una matrice è semplicemente una tabella di numeri: oppure anche definibile come un array bidimensionale. Diciamo quindi che una matrice n×m è una tabella di numeri che denotiamo con due indici, i e j, dove il primo indice individua la riga e il secondo la colonna: all’incrocio della riga i e della colonna j si trova il numero  individuato da questi indici (in matematica gli indici partono da 1 e non da 0 come in informatica)

Quando la scriviamo per esteso, una matrice si rappresenta nel modo tabellare seguente:

ecuacion15

Una matrice in cui n = m si dice matrice quadrata.

Dal punto di vista pratico, una matrice sembra semplicemente un vettore di lunghezza nm i cui elementi sono arrangiati in forma tabellare anziché scritti in sequenza.

Tuttavia questo cambio notazionale è fondamentale per poter usare questi oggetti.

In particolare, le matrici arricchiscono l’algebra dei vettori con una operazione di moltiplicazione vera e propria: prima notiamo che possiamo sommarle e moltiplicarle per un numero ottenendo ancora matrici dello stesso tipo

Catturab6

In altri termini le matrici n×m formano uno spazio vettoriale di dimensione nm.

Ricordiamo che abbiamo detto che un vettore si può moltiplicare per un numero e ottenere ancora un vettore. Ma non sappiamo come moltiplicare un vettore per se stesso e ottenere ancora un vettore: il prodotto scalare di due vettori produce un numero e non un vettore.

Per introdurre una moltiplicazione dobbiamo scrivere i vettori in due modi distinti: vettori riga e vettori colonna. Un vettore riga è una sequenza di numeri, come lo abbiamo scritto fin qui, per esempio (1,2,0).

Un vettore colonna è una sequenza di numeri scritti dall’alto verso il basso, come :

Cattura66

Apparentemente non c’è differenza sostanziale, ma in realtà se interpretiamo un vettore come un particolare tipo di matrice, il vettore riga è una matrice 1×3 mentre il vettore colonna è una matrice 3×1.

Quel che si può fare è in effetti, data una matrice A del tipo n×m e una matrice B del tipo n×r moltiplicare A per B ottenendo una matrice n×r. Il coefficiente di indici i e j della matrice AB è calcolato come la somma seguente:

Cattura 12

Si noti che questo è il prodotto scalare del vettore riga dato dalla riga i-esima di A per il vettore colonna dato dalla colonna j-esima di B: ecco perché il prodotto di matrici di chiama prodotto righe per colonne.

Esempio: moltiplichiamo una matrice 2×3 per una matrice 2×3:

image1

Torniamo ora ai nostri vettori: possiamo moltiplicare il vettore riga per il vettore colonna, e ne risulta una matrice 1×1 vale a dire un numero (il prodotto scalare). Ma possiamo anche moltiplicare il vettore colonna 3×1 per il vettore riga 1×3 ottenendo una matrice 3×3:

catura 12

 

Notiamo quindi che moltiplicando due vettori di uno spazio di dimensione N otteniamo un vettore di uno spazio di un’altra dimensione: 1 oppure N×N.

La matrice identità è la matrice quadrata che contiene zero dappertutto tranne che sulla diagonale dove contiene 1 (gli elementi diagonali di una matrice sono quelli il cui indice di riga è uguale all’indice di colonna: ). Per esempio in dimensione 3 la matrice identità è

ecuacion 16

Come suggerisce il nome, moltiplicando una matrice A per la matrice identità si ottiene ancora A. Inoltre il prodotto di matrici è distributivo rispetto alla somma.

Tuttavia l’algebra delle matrici ha una particolarità: il prodotto non è commutativo, il che vuol dire che AB è diversa da BA (in effetti BA potrebbe non avere senso, se per esempio n m).

Per esempio

ultima ecuacion

 

Un’altra operazione tipica che si effettua è la moltiplicazione di una matrice n×m per un vettore colonna di m componenti: ne risulta un vettore colonna di n componenti.

ALGEBRA LINEARE PER TUTTI [Parte 1]

Autore: Paolo Caressa

 

Premessa

Come in ogni altro settore interdisciplinare nel machine learning ed nel deep learning si utilizzano necessariamente nozioni, concetti e formalismi che provengono da diverse fonti e, per molti versi, che richiedono mentalità diverse per essere compresi.

Per questo motivo, si è soliti dire che il data scientist dovrebbe essere un “incrocio” fra un informatico, uno statistico e un matematico ma pochi sono versati in tutte e tre le materie e difficilmente tutte e tre risulteranno egualmente facili, intuitive e belle a una stessa mente.

In particolare, delle varie nozioni matematiche che sono indispensabili ad un data scientist, come per chi è unicamente interessato a capire come funziona un sistema di machine learning per poterlo gestire al meglio, una delle nemesi è l’algebra lineare.

Ciò è sorprendente per i matematici che invece considerano l’algebra lineare una cosa facilissima.

Mi permetto di dire, citando il matematico I.M. Herstein, che l’algebra lineare ha solo tre caratteristiche, è facile, utile e bella!

Lo scopo di questo tutorial è di spiegare in modo semplice ma non privo di rigore le nozioni di base dell’algebra pertanto se già sapete calcolare autovettori ed autovalori di una matrice o magari una decomposizione in valori singolari (SVD) o un’analisi delle componenti principali (PCA) ci salutiamo qua. In caso contrario, buona lettura!

 

Il piano e lo spazio cartesiano

Prendiamola un po’ alla lontana, andando a scavare nei nostri ricordi delle scuole superiori: “la geometria analitica (o cartesiana)”

Inventata da Cartesio e Fermat nel XVII secolo, l’idea di base della geometria cartesiana è di fornire un modello numerico per il piano e lo spazio. In breve, la scoperta consiste nell’identificare l’insieme dei punti del piano (cioè mappato in maniera biunivoca in modo da esserne indistinguibile) con l’insieme delle coppie di numeri (x,y) con x ed y indipendenti.

Per prima cosa ricordiamo che i punti della retta si identificano all’insieme dei numeri reali (cioè razionali ed irrazionali) ordinato dalla solita relazione <.

Fissiamo un punto O sulla retta e corrispondente a 0, si fissa un punto U (diverso da O) e lo si fa corrispondere a 1; tutti gli altri punti sono determinati dalla posizione relativa rispetto a questi:

 

recta

È quindi chiaro cosa voglia dire la distanza fra due punti P e Q sulla retta: se x ed y sono i numeri corrispondenti, la distanza PQ è pari a |x – y| (valore assoluto della differenza):

 

Cattura 1 1

 

 

Quindi su una retta basta fissare lo zero e l’uno, col che si è fissato il verso dei numeri positivi (quelli che stanno tutti da una parte di O e comprendono U) e dei numeri negativi (quelli che stanno tutti da una parte di O e non comprendono U).

In questo modo:

La retta della geometria si identifica completamente nell’insieme R dei numeri reali

 

Ad un punto corrisponde uno e un solo numero, dove ogni numero reale possiamo immaginarlo come un numero decimale avente un numero finito di cifre dopo la virgola, avente un numero finito di cifre dopo la virgola che si ripetono indefinitamente, o avente un numero infinito non periodico di cifre dopo la virgola (a rigore bisogna escludere le sequenze che terminano con un 9 periodico).

Passiamo ora al piano.

Si fissa un punto O nel piano e si prende una retta x che passi per il punto ed una seconda retta ortogonale a x, chiamata y. Su x e y si sceglie una stessa unità di misura (cioè un punto U diverso da O e si stabilisce convenzionalmente che la distanza OU vale 1).

In questo modo si può misurare la distanza fra due punti che stanno su x rispetto all’unità di misura fissata.

La corrispondenza fra un punto P del piano e una coppia (a,b) di numeri avviene come segue:

  1. Si proietta il punto P sull’asse x ottenendo un punto P’ e si pone a = distanza fra P’ e O.
  2. Si proietta il punto P sull’asse y ottenendo un punto P’’ e si pone b = distanza fra P’’ e O.

Questo associa in modo unico a P la coppia (a,b): per passare invece dalle coordinate (a,b) ai punti basterà trovare i punti P’ e P’’ sulle rette x e y che distano per a e b dall’origine O, tracciare le perpendicolare agli assi per questi punti e determinare P come la loro intersezione.

Plano cartesiano

Figura 1. Tre punti del piano cartesiano, le loro coordinate e le loro proiezioni sugli assi, Fonte: wikipedia

 

 

Quindi:

Il piano della geometria si identifica completamente all’insieme R2 delle coppie di numeri reali: a un punto corrisponde una e una sola coppia.

La notazione R2 indica le coppie ordinate di elementi di R. Se X è un insieme Xn è in generale l’insieme delle n-ple di elementi di X.

Che vantaggio c’è nel considerare il piano come l’insieme delle coppie di numeri (a,b)?

  • In primo luogo sappiamo dire cosa sia, un insieme di coppie appunto, non ci servono assiomi o altro.
  • In secondo luogo trasformiamo i problemi geometrici, che normalmente coinvolgono costruzioni complicate e ragionamenti assai lunghi, in calcoli.

La geometria cartesiana è quindi la geometria ideale da fare al computer: possiamo ridurre tutto a numeri e calcoli. Non a caso, le librerie 2D che si usano per disegnare sullo schermo del computer, o su una finestra di una applicazione, rappresentano i punti come coppie di numeri (le coordinate) e un attributo che ne rappresenta il colore.

Per esempio: come si rappresenta una curva nel piano cartesiano?

Ci sono due modi:

  • Tramite una equazione cartesiana, una singola relazione che lega le coordinate di un suo generico punto
  • Tramite una equazione parametrica, che esibisce il generico punto della retta in funzione di un parametro.

Per esempio consideriamo l’equazione x2+y2 = 1 e l’equazione 2x+y = 0. La prima rappresenta una circonferenza di centro l’origine e raggio 1, la seconda una retta passante per l’origine.

Supponiamo di volerne calcolare le intersezioni: utilizzando la geometria classica dovremmo costruire queste intersezioni in qualche modo, mentre con la geometria cartesiana ci stiamo facendo la seguente domanda: quali sono i punti di coordinate (x,y) soggetti simultaneamente alle relazioni  x2+y2 = 1 e 2x+y = 0?

La seconda equazione equivale a dire y = –2x, che sostituita nella prima offre x2+(–2x)2 = 1, cioè x2+4x2 = 1 cioè x2 = 1/5, che ha due soluzioni x = 1/√5 e x = –1/√5, col che troviamo le due intersezioni richieste: i punti (1/√5, –2/√5) e (–1/√5, 2/√5).

A questo punto identifichiamo lo spazio cartesiano in tre dimensioni con l’insieme delle triple (x,y,z) di numeri reali, cioè con l’insieme R3.

Un punto nello spazio è quindi univocamente determinato dalle sue tre coordinate cartesiane, su cui possiamo lavorare per risolvere i problemi geometrici, dopo averli tradotti in problemi algebrici

 

Distanza fra due punti

Abbiamo detto che lungo una retta, identificata con l’insieme dei numeri reali, le distanze si calcolano col valore assoluto della differenza. Come calcoliamo invece le distanze nel piano?

La cosa interessante è che esistono diversi modi di farlo, che costituiscono tutti generalizzazioni della distanza sulla retta, citiamo le tre principali tutte appartenenti alla famiglia delle distanze di Minkonski:

  • la distanza euclidea
  • la distanza di Manhattan
  • la distanza uniforme.

La distanza euclidea fra due punti P = (x1,y1) e Q = (x2,y2) nel piano è data dalla formula seguente:

Cattura 2

Intanto vediamo che se P e Q stanno su una stessa retta, per esempio l’asse delle x, questa distanza si riduce al valore assoluto della differenza delle coordinate: infatti se supponiamo P = (x1,0) e Q = (x2,0) la  formula precedente ci porge :

 

cattura 3

(come al solito quando prendiamo la radice quadrata di un numero consideriamo quella positiva).

La distanza euclidea andrebbe in realtà chiamata pitagorica, in quanto segue dal teorema di Pitagora: supponiamo di avere un triangolo rettangolo OPQ, con un vertice nell’origine, un lato sull’asse delle x e l’altro lato perpendicolare all’asse delle x.

Dunque le coordinate di P saranno del tipo (x,0) e quelle di Q del tipo (x,y): la distanza fra O e P è x e quella fra Q e P è y, col che, per il teorema di Pitagora, d(O,Q)2 = d(O,P)2 + d(P,Q)2 = x2 + y2. Per cui in questo caso, prendendo la radice quadrata,

Cattura 4

e la formula è verificata. Nel caso generale il ragionamento è analogo ma intervengono anche le coordinate di O (che nel nostro caso risultano essere nulle).

Quindi la distanza euclidea si riduce alla distanza fra due punti su una retta e ha un evidente contenuto geometrico.

recta.opq

 

La distanza nello spazio si calcola in modo analogo tenendo conto che i punti hanno una coordinata in più: se P = (x1,y1,z1) e Q = (x2,y2,z2) sono punti dello spazio cartesiano, la loro distanza è:

Cattura 5 1

Per i più curiosi, spiego nel resto di questo paragrafo altri due modi di calcolare la distanza nel piano, che danno luogo a valori diversi della distanza euclidea ma che sono modi comunque validi di misurare quanto due punti sono vicini (un bel teorema che non è il caso di riportare qui dice comunque che, ai fini della relazione di “essere nei pressi di”, tutte queste distanze sono equivalenti).

Un’altra distanza che talvolta si usa in machine learning è la “distanza di Manhattan” anche conosciuta come “distanza dei taxi”:

d_1\left ( P,Q \right )= \left \| X_1-X_2 \right \| + \left \| Y_1-Y_2 \right \|

Di nuovo, se P e Q stanno sull’asse delle x, questa distanza coincide con il valore assoluto della differenza. Il nome distanza dei taxi è data dal fatto che la distanza fra P e Q non si misura col teorema di Pitagora, che cerca una scorciatoia diagonale fra P e Q ma partendo da P e muovendosi lungo l’asse delle x fino a giungere sopra o sotto a Q, per poi spostarsi lungo l’asse delle y e raggiungere Q.

 

 

 

 

 

 

DITANZA EUCLIDEA TRIANGULO

Figura 2. Distanza euclidea (verde) vs. distanza dei taxi (rosso)

È la manovra che deve fare un taxi per andare da un punto di un isolato al punto opposto: non può passare in mezzo all’isolato ma deve costeggiarne i lati.

Un’altra distanza ancora, che talvolta è utilizzata, è la “distanza uniforme”, che è definita comed_0 \left ( P,Q \right )= max \left \{ |x_1-x_2 | \right \}\left \{ |y_1-y_2 | \right \}

Cioè questa si calcola prendendo la lunghezza massima del segmento ottenuto proiettando i due punti sugli assi delle x e delle y: di nuovo è ovvio che se i punti giacciono sull’asse delle x questa si riduce al valore assoluto della differenza fra due punti.

Una notazione di colore: nello spazio, una “palla” si definisce come l’insieme dei punti che hanno distanza minore di un numero fissato, il raggio, da un punto fissato, il centro: cioè se O è il centro e r il raggio, tutti i punti tali che d(P,O) < r costituiscono la palla. Questa terminologia è chiara se usiamo la distanza euclidea.

Ma, usando la distanza dei taxi, che figura geometrica viene fuori considerando tutti i punti P tali che d1(P,O) < r? (suggerimento: si dice che questa distanza abbia le palle quadrate…).

Introduzione a Metodi di riduzioni della Dimensionalità ed elementi di Algebra lineare [Parte 2]

 

Autore: Matteo Alberti

                            

Sommario

Metodi lineari per la riduzione: 2

Identificazione attraverso l’individuazione di sottospazi 2

Approssimazioni Matriciali per la riduzione. 10

Casi di applicazione base: Decomposizione in Valori Singolari (SVD). 11

Norme Matriciali 11

Norme vettoriali 13

Norme indotte. 13

Norme di Schatten. 13

Norma di Frobenius. 13

Casi di applicazione base: Analisi dei Cluster. 16

Definizione di metrica. 16

Distanze di Minkowski (Manhattan, Euclidea, Lagrange). 16

 

 

 

Lo scopo di questo primo tutorial è di introdurre le nozioni base di riduzione della dimensionalità dal punto di vista matematico (spazi, sottospazi, mappe lineari) e di riprendere gli elementi necessari di algebra lineare (norme, isometria, isomorfismo…) per ogni algoritmo di machine learning.

 

Norme Matriciali

 

Abbiamo a questo punto impostato il problema della riduzione della dimensionalità dei dati come un problema di approssimazione tra matrici, dobbiamo a questo punto andar a stabilire valutare e quindi calcolare la distanza fra la matrice dei dati originari e quella approssimante attraverso lo studio delle differenti norme:

Esistono tre principali tipologie di norme:

  • Norme vettoriali
  • Norme indotte
  • Norme di Schatten

Dove nel campo dell’analisi dei dati essenzialmente ci si riconduce, salvo eccezioni, alla norma di Frobenius (distanza euclidea)

 

 

 

 

Elementi di algebra:

Norma

Una norma (comunemente contrassegnata con ) è una funzione dallo spazio vettoriale delle matrici se:

 

Art2 1

 

Norme vettoriali

 

La famiglia delle norme vettoriali trattano la matrice X_n_x_k  come un vettore di nk componenti dove possiamo definire la norma utilizzando una delle qualsiasi norme seguenti:

art2 imagr2

Nota:

Ponendo p=2 ci si ricollega alla norma euclidea

 

Norme indotte

 

Una matrice X_n_x_k  può essere vista come un operatore lineare da   R^k \mapsto R^n .

Misurando in R^k  le lunghezze con una norma fissata e facciamo altrettanto in R^n , con una differente norma, possiamo andare a misurare quanto X allunga o accorcia un vettore , confrontando la norma di v  \in R^k con la relativa norma della sua immagine Xv.

La norma indotta  \parallel X \parallel _k _n  risulta definita come:

 

art2 3

Norme di Schatten

 

La norma di Schatten, di ordine p, di una matrice X è data semplicemente da:

Art2 4

Dove \omega_i  sono i valori singolari

 

 

Norma di Frobenius

 

La norma di Frobenius della nostra matrice  X_n_x_k di partenza è data da:

ART25

 

 

Andando a svolgere i conti, esplicitando il prodotto matriciale si ottiene:

art6.art2

Ne corrisponde che la norma di Frobenius è pari alla radice quadrata della somma del quadrato degli elementi ossia una norma euclidea vista come un vettore che coincide con la norma vettoriale di X di ordine 2.

 

 

 

 

 

Elementi di algebra:

Traccia

L’operatore traccia, indicata con Tr \left ( . \right ), è definita come la somma degli elementi diagonali della matrice argomento

 

 

 

 

 

 

 

 

Casi di applicazione base: Analisi dei Cluster

 

La cluster analysis e’ una tecnica di analisi multivariata attraverso la quale e’ possibile raggruppare le unità statistiche, in modo da minimizzare la “lontananza logica” interna a ciascun gruppo e di massimizzare quella tra i gruppi.

Rientra fra le tecniche di apprendimento non supervisionato.

Nasce quindi spontaneo dover definire che cosa si intende per lontananza logica ed in base a quale metrica.

 

 

 

Definizione di metrica

Sia  X^-\in R^p ed Y^-\in R^p definiamo metrica una funzione tale che   R^p x R^p\mapsto R^+   U\left \{ 0 \right \} 

che goda delle seguenti proprietà:

  •  d \left ( X^-, Y^- \right ) \geq O non negativa
  •  d \left ( X^-, Y^- \right ) = d \left ( Y^-,X^- \right ) simmetria
  •  d \left ( X^-, Y^- \right ) = 0 \leftrightarrow X= Y identità
  •  d \left ( X^-, Y^- \right ) \leq d \left ( X^-, Z^- \right ) + d \left ( Z^-, X^- \right )   diseguaglianza triangolare

 

Distanze di Minkowski (Manhattan, Euclidea, Lagrange)

 

Andiamo a questo punto ad analizzare i casi principali delle distanze appartenenti alla famiglia delle distanze di Minkowski dove:

art27

Evidenziamo i seguenti casi:

  • k=1 Distanza di Manhattan
  • k=2  Distanza Euclidea
  • k\rightarrow \infty Distanza Lagrangiana (Čebyšëv)

In particolare:

 

 

euclidea

Riprendendo dunque con l’esempio della Cluster Analysis, risulta fondamentale quindi definire il tipo di distanza con cui vogliamo affrontare la nostra analisi.

Principalmente nei pacchetti già implementati si trovano le tre varianti delle distanze di Minkowski (per variabili quantitative)

Importando da sklearn:

AgglomerativeClustering(n_clusters=2, affinity=’euclidean’, memory=None, connectivity=None, compute_full_tree=’auto’, linkage=’ward’

 

 

distanze

 

 

Introduzione ai Metodi di riduzione della Dimensionalità ed elementi di Algebra lineare [Parte 1]

Autore: Matteo Alberti

 

Sommario

Metodi lineari per la riduzione: 2

Identificazione attraverso l’individuazione di sottospazi 2

Approssimazioni Matriciali per la riduzione. 10

Casi di applicazione base: Decomposizione in Valori Singolari (SVD). 11

Norme Matriciali 11

Norme vettoriali 13

Norme indotte. 13

Norme di Schatten. 13

Norma di Frobenius. 13

Casi di applicazione base: Analisi dei Cluster. 16

Definizione di metrica. 16

Distanze di Minkowski (Manhattan, Euclidea, Lagrange). 16

 

Lo scopo di questo primo tutorial è di introdurre le nozioni base di riduzione della dimensionalità dal punto di vista matematico (spazi, sottospazi, mappe lineari) e di riprendere gli elementi necessari di algebra lineare (norme, isometria, isomorfismo…) per ogni algoritmo di machine learning.

 

 

 

 

Metodi lineari per la riduzione:

 

Andiamo dunque ad introdurre con termini generali la logica dei processi di riduzione lineare della dimensionalità andando in prima fase ad identificare sottospazi “ottimali”

 

Identificazione attraverso l’individuazione di sottospazi

 

Abbiamo un insieme di vettori k-dimensionali  x_1,…,x_n  (n unità statistiche su k covariante) dove vogliamo individuare un sottospazio p-dimensionale V_p   in R^k   ed un mappa lineare   \varphi\left ( . \right ) da R^k  a  V_p  tale per cui le relative immagini  \varphi(x_i)   approssimino in maniera sufficiente i nostri vettori k-dimensionali di input (in riferimento a qualche metrica che andremo a definire)

Riscriviamo come:

\varphi: R^k\mapsto V_p

: x_i \mapsto\varphi\(x_i )

 

Elementi di algebra:

 

Spazio vettoriale

Si definisce spazio vettoriale su R un insieme V, i cui elementi sono detti vettori con le seguenti proprietà:

 Esiste in V un’operazione definita Addizione vettoriale che associa ad ogni  

 il vettore  x+y  \epsilon V

  • Addizione vettoriale è commutativa, associativa
  • Esiste in V un vettore, indicato con 0 e definito origine
  • Ogni vettore  x  \epsilon   V ha un suo opposto, indicato con –x t.c. x + (-x) =0

Esiste in V un’operazione definita moltiplicazione per gli scalari che associa ad ogni    x  \epsilon V ed ad ogni \alpha \epsilon V  il vettore  \alphax \epsilon V in modo che:

  • Moltiplicazione fra scalari è associativa
  • 1x=x  \forall x \epsilon V

 

Inoltre vale anche:

  • Moltiplicazione scalare è distributiva rispetto all’addizione vettoriale

 

Sottospazio vettoriale

Si definisce S un insieme non vuoto dello sottospazio di V se per ogni: x-x=0  \epsilon S ed ogni loro combinazione lineare \alpha x +\beta x  \epsilon S  

 

Nucleo ed immagine

Siano V e W due spazi vettoriali e sia  L : V \mapsto W un’ applicazione lineare.

Si dice nucleo di L l’insieme dei vettori di V la cui immagine è il vettore nullo di W.

Tale insieme si indica con ker L.

 

ker(L)  =  \left \{ v \epsilon V | L(v) = 0 \right \}

Si dice immagine di L l’insieme dei vettori di W che sono immagini di qualche vettore appartenente al dominio V, cioè:

 

Si dice immagine di L l’insieme dei vettori di W che sono immagini di qualche vettore appartenente al dominio V, cioè:

 

Im(L)  = \left \{ w \epsilon W | w = L(v) , v \epsilon V \right \}

 

Mappa Lineare

Una mappa (o applicazione) lineare  fV \rightarrow W  fra spazi vettoriali reali è una funzione per cui valgano le proprietà:

 

ecuacion de recta

per ogni :

Ecuacion 2

Andiamo a definire solo i casi di principale rilevanza:

 Sia  f: V \mapsto W   una mappa lineare. Allora f è detta:

  • un monomorfismo se è iniettiva
  • un epimorfismo se è suriettiva
  • un isomorfismo se è biiettiva (iniettiva + suriettiva)
  • un endomorfismo se V = W
  • un automorfismo se V = W ed è biettiva.
  • di rango r se r = dim f(V).

Supponiamo a questo punto di aver individuato un sottospazio (specificato successivamente)  V_p  che risulti sufficientemente “approssimante” e sia  b_1,…,b_p     una base di  V_p (Nota: la base è formata da vettori k-dimensionali in quanto V_p  è sottospazio di R^k )

 

La mappa lineare  \varphi\left ( . \right )  associa all’input x_i  l’elemento  \varphi \left ( x_i \right )  di  V_p, avente le seguente forma:

 

Formula 2

a_i_j scelti opportunamente.

L’errore di approssimazione da R^k \rightarrow V_p  quindi da x_1 .. x_n ..a..\varphi\left ( x_i \right )...\varphi\left ( x_n \right )

consisterà nell’opportuna norma vettoriale:

Formula 3

 

 

Fissata la nostra base b_1,…,b_p i nostri vettori \varphi\left ( x_1 \right ) possono essere trovati direttamente dalle coordinate a_i_j.

 

Data la mappa  \varphi\left ( . \right )  che associa al generico vettore  il suo vettore \varphi\left ( x_i \right )  di coordinate a_i_j  e componiamo con la mappa \varphi\left ( . \right )  otteniamo una mappa che associa ai vettori di input le coordinate delle loro immagini in  V_p\div \theta\left ( . \right ) =  \left ( \varphi \circ \varphi \right ) \left ( . \right )

formula 4

 

Attraverso la nostra mappa i vettori k-dimensionali di input vengono rappresentati in vettori di p-dimensionali ossia come elementi di R^p .

A questo punto risulta immediato che si può procedere con ulteriori analisi in R^p .

 

Andiamo dunque ad indagare in che modo questa riduzione della dimensionalità va a mantenere ed a perdere in particolare:

IMAGEN5

Naturalmente passare da k a p dimensioni   p \lt k con  comporta una perdita di informazioni ed una deformazioni della geometria originaria del dato. Di particolare rilevanza è che qualunque mappa lineare non potrà essere un isomorfismo né un’isometria.

Ciò comporta che tutte le norme, prodotti scalari e distanze non vengono preservate

Esempio:

  • V_p  sottospazio dimensionale
  • V_p^\bot complemento ortogonale di R^k

Ogni vettore  x\in R^k  può esser decomposto in una somma di vettori ( x\in V_p  e di un vettore  x \in V_p^\bot )

 

In generale, presi i due vettori u,v \in R^k abbiamo:

formula 7

Come si può constatare il prodotto scalare non è conservato.

 

 

Elementi di algebra:

complemento ortogonale

Sia S \subseteq V  un sottospazio di V, definiamo complemento ortogonale di D in V indicandolo con  S^\bot il sottoinsieme di V definito da:

ecucion 9

Ossia un sottoinsieme di tutti i vettori di V ortogonali a tutti i vettori di S

 

 

 

 

 

V_p\rightarrow R^p

La mappa lineare \varphi\left ( . \right ) è un isomorfismo gli spazi vettoriali V_p e R^p, ciò comporta che non vi sarà alcuna perdita di informazioni .

 

Volendo chiarire ulteriormente questo concetto:

consideriamo il prodotto euclideo e supponiamo che la base b_1 ... b_p  sia ortonormale e siano  h , w  due vettori di  V_p  con i relativi vettori di coordinate:  a^h=  \left \{ a^h_i \right \}  e   a^w\left \{ a^w_i \right \} allora risulta vera la seguente condizione:

formula 9

Significa che il prodotto scalare tra h,w è identico al prodotto scalare dei rispettivi vettori di coordinate iniziali (giusto specificare che i due prodotti scalari sono definiti in spazi differenti sebbene siano stati scritti allo stesso modo)

Se la base \left ( b_i, b_j \right )  non fosse ortonormale i fattori  non si ridurrebbero a 0.

Nel primo caso il prodotto scalare fra i vettori di coordinate è dato da:

x

mentre che nel secondo caso sarebbe dato da : \left [a^h \right ] ^t G a^w , con G matrice di Gram ne consegue quindi che matrici costruite nel secondo modo ed associate a basi differenti sono fra loro diverse (dovendo riadattare il calcolo dei prodotti scalari, norme, distanze indotte …)

 

 

 

Elementi di algebra:

ortonormale:

Una base si definisce ortonormale quando è composta da vettori di norma unitaria e fra loro ortogonali

 

Approssimazioni Matriciali per la riduzione

 

Vogliamo dare una seconda visione sulla riduzione alla dimensionalità basata sull’approssimazione matriciale (ciò che verrà utilizzata in pratica in ogni linguaggio di programmazione)

Data:

  • Matrice  A_n_x_p di rango p che abbia per righe i vettori di coordinate a_i con i= 1..n
  • Matrice B_p_x_q di rango p con i vettori di coordinate b_i con i = 1 .... p
  • Matrice   \theta_n_x_k di rango p con i vettori di coordinate \varphi \left ( x_1 \right ) con i= 1....n
  • Matrice x matrice di rango k che ha come righe i vettori x_i con i= 1..n

Allora possiamo riscriverlo come:

X\approx \theta = A\cdot B

d.p

Le righe di  \theta  sono date dalle combinazioni lineari delle righe di B ossia dalla nostra base, con i coefficienti dati dalle righe di A, le coordinate sulla base scelta.

Il nostro problema di riduzione della dimensionalità corrisponde quindi ad individuare un sottospazio vettoriale di dimensione p (p<k) la nostra base scelta (B) e delle relative coordinate date dalla matrice A.

 

Nell’analisi dei dati, dove il nostro punto di partenza è la matrice dei dati, le diverse tecniche di riduzione si differenziano in base al tipo di approssimazione, decomposizione e scelta fra le tante basi possibili.

 

 

Casi di applicazione base: Decomposizione in Valori Singolari (SVD)

 

Andiamo ad implementare in Python una semplice decomposizione in valori singolari (SVD) ossia andiamo a suddividere la nostra matrice X di partenza nelle due matrici A e B viste in precedenza:

import numpy as np

X = np.array([3,2,4],[3,6,7],[2,1,4])

autoval, autovett = np.linalg.eig(X)

Introduzione al calcolo delle Derivate

Autore: Davide Coppola

 

 

Sebbene a volte venga trascurata, la matematica è una parte fondamentale del machine learning  (ML o apprendimento automatico) e del deep learning (DL o  apprendimento profondo )   . Infatti, è la base su cui si fondano entrambe le discipline: senza nozioni di algebra o di analisi non potrebbero esistere. Un elemento chiave nel ML, proveniente dall’analisi matematica, è la nozione di derivata. Ma non devi averne paura; è molto più semplice di quanto tu possa pensare!

Per prima cosa, definiamo cos’è una funzione: può  essere pensata come una scatola nera (Fig. 1): un numero  di valori di input variabili indipendenti entra nella scatola, vengono processati secondo una procedura specifica determinata dall’equazione (o equazioni) che descrivono la funzione, e infine  nuovi valori di outputvariabili dipendenti escono dalla scatola.

Fig. 1: Qualsiasi funzione può essere vista come una scatola nera in cui le variabili indipendenti entrano e ottengono un nuovo valore.

Per il resto di questo tutorial, ci concentreremo su funzioni unidimensionali, ossia funzioni che hanno un solo input e un  solo output. Esempi comuni di questo tipo di funzioni sono:

y = mx + q

y = ax^2 + bx + c

y = ln(x()

Dove m, q, a, c sono solamente coefficienti numerici, puoi considerarli come un qualsiasi numero costante. 1 è l’equazione di una retta, 2 descrive una parabola e 3 è la funzione logaritmo naturale. Come puoi vedere, tutte hanno una variabile indipendente () e una dipendente (): una funzione descrive la relazione che c’è tra le due variabili, pertanto ne determina la “forma” nello spazio.

Ma se una funzione già descrive una curva, allora perché c’è bisogno delle derivate?

In generale, le funzioni non sono così semplici come gli esempi visti sopra e potrebbe essere impossibile o poco pratico provare tutti i possibili valori della variabile indipendente per capire il comportamento della funzione. Quindi, la derivata di una funzione dà informazioni aggiuntive sulla curva che si sta studiando.

 

Cos’è un derivata allora? La derivata di una funzione  è un’altra funzione , ricavata dall’originale, che descrive la variabilità di , ossia come il tasso di cambiamento della funzione si comporta rispetto alla variabile indipendente. La derivata valutata in un punto  descrive come la funzione sta cambiando in un intorno di . Ad esempio, se la derivata è positiva ci possiamo aspettare che che i punti che seguono  abbiano valori maggiori di . Questo significa che la funzione sta crescendo concordemente con l’aumento di . Allo stesso modo, se la derivata è negativa in , il valore della funzione diminuisce all’aumentare di . Pertanto, la derivata in un qualsiasi punto indica l’inclinazione della retta tangente alla curva in quel punto.

 

L’inclinazione (o coefficiente angolare) definisce il rapporto tra l’altezza e la lunghezza orizzontale, ad esempio, di un piano inclinato o di un triangolo rettangolo; avrai sicuramente incontrato questo concetto nei segnali stradali (Fig. 3). In generale, l’inclinazione è data dall’equazione 

Fig. 3: Segnaletica stradale che indica l’inclinazione della strada.

La definizione rigorosa di un derivata, infatti, è il limite del rapporto incrementale:

Questo rapporto descrive l’inclinazione di una retta secante alla curva passante per i punti  e  . Infatti, il numeratore  può essere visto come l’altezza di un piano inclinato, la cui lunghezza orizzontale è proprio  . Il limite dice che  dev’essere un numero infinitamente vicino a zero, il che significa che la distanza tra due punti diventa praticamente inesistente. Di fatto, quella che inizialmente era una secante diventa una tangente alla curava, come esplicato dall’animazione in Fig. 4.

Fig. 4: Quando la distanza tra i due punti diventa zero, i punti di sovrappongono e la retta secante diventa una tangente alla curva.

E’ bene tenere a mente che ci sono dei casi particolari in cui la derivata non può essere definita in uno o più punti della funzione; la funzione deve essere continua nel punto in esame, sebbene la continuità da sola non sia sufficiente affinché esista una derivata.

Prima di guardare un semplice esempio, ricapitoliamo i concetti chiave; la derivata…

  • … rappresenta la variabilità della funzione primitiva rispetto alla variabile indipendente;
  • … di una funzione è una funzione a sua volta;
  • … valutata in un dato punto, rappresenta l’inclinazione della tangente alla curva in quel punto.

Fig. 5: Una parabola e la sua derivata. Le rette di colore verde e blu sono le tangenti alla curva nei punti x=-2 e x=2, rispettivamente.

Nell’esempio (Fig. 5) abbiamo i grafici di una funzione (f) e la sua derivata (f’): la prima è una parabola, mentre la seconda è una retta. Le funzioni e le loro derivate sono generalmente rappresentate con i rispettivi grafici uno sopra l’altro; questo è perché la variabile indipendente è la stessa e questa disposizione rende più semplice capire la loro relazione.

Guardando a x<0, si può vedere che la derivata è positiva, che significa che la funzione sta crescendo con , ossia l’inclinazione di qualsiasi retta tangente a f per x<0 è positiva. Tuttavia, il valore della derivata sta diminuendo con un tasso costante, questo significa che anche la “velocità” di crescita del valore di f sta diminuendo. Di conseguenza, le rette tangenti alla curva tendono più e più ad una retta orizzontale.

La situazione estrema accade per x=0 , che corrisponde all’apice della parabola e al punto di in cui la derivata è 0 . I punti che hanno la derivata pari a  sono detti punti critici punti stazionari. Hanno un ruolo fondamentale sia nell’analisi matematica che nel ML, in quanto rappresentano i punti che corrispondono ai massimi, minimi e punti di sella di una funzione. Molti algoritmi di machine learning ruotano attorno alla ricerca dei minimi di una funzione, motivo per cui è importante avere una minima comprensione delle derivate e del loro significato.

Con x>0 , la derivata è negativa ed il suo valore assoluto continua a crescere. Questo significa che la funzione primitiva decrescerà in valore con x e che la “velocità” con cui ciò accade crescerà ad ogni passo. Di fatto, questo è esattamente ciò che accade alla parabola.

Lo scopo di questo tutorial era di darvi una comprensione generale di come funziona una derivata e del suo significato, senza utilizzare troppe equazioni. Ovviamente, un’analisi più approfondita e rigorosa dell’argomento è necessaria se si vuole pienamente comprendere questioni più complesse che emergono nel machine learning  (Apprendimento Automatico).  Ma non esserne spaventato, non è poi così complicato!

Le Fig. 2,3 and 4 sono state prese da Wikipedia.