American National Standards Institute Inc.

L’algebra lineare dei vettori e delle matrici è fondamentale perché ci permette di fare calcoli estesi in modo più efficiente e con un codice più elegante e corto.

In questo articolo abbiamo intenzione di dare un punto di inizio per approcciare matrici e vettori per un uso più consapevole ma anche un modo per rinfrescarsi la memoria o chiarire qualche dubbio.

Non daremo una definizione matematica rigorosa degli strumenti che utilizzeremo ma spiegheremo le basi in modo intuitivo per formare un percorso logico ed il più chiaro possibile.

Se si tratta di un argomento che volete studiare meglio e nel dettaglio, in fondo all’articolo trovate i corsi gratuiti consigliati da Neuragate per avvicinarsi alla materia.

Matrici

Le matrici sono delle schiere rettangolari di array numerici contenuti tra parentesi quadre. Essendo uno schema ordinato fatto dall’intesezione di più array, ogni elemento della matrice ha delle coordinate, cioè gli indici nell’array di appartenenza.

In altre parole si può dire che una matrice è un array bidimensionale fatto da righe e colonne.

I valori contenuti nella matrice saranno i dati del modello di machine learning, come le variabili per esempio.

Matrici machine learning
Leggere una matrice

Quando si dichiara una matrice bisogna sempre specificarne la dimensione, cioè il numero di righe e di colonne che non può essere indefinito.

Per esempio se la matrice A ha 4 righe e 2 colonne, la sua dimensione è 4×2. Si può dire che M è una matrice 4×2 o che è un elemento dell’insieme M^(4×2) che contiene tutte le infinite matrici di quelle dimensioni.

Indicizzazione di una matrice

Le matrici ci forniscono un modo di organizzare, indicizzare e accedere velocemente ai singoli elementi di una grande quantità di dati. Ogni elemento della matrice è caratterizzato da due indici che indicano la riga e la colonna funzionando da coordinate.

Nella matrice M vediamo che l’elemento V è indicizzato come segue:

Aij = valore nella iesima riga e jesima colonna

Matrici machine learning
Indicizzazione di una matrice

Vettori

I vettori sono un caso particolare di matrici, infatti un vettore è una matrice caratterizzata da 1 sola colonna (chiamato vettore colonna) che si può esprimere anche come matrice nx1 con n righe che cambiano a seconda del vettore.

Alla luce di questa affermazione possiamo dire quindi che una matrice è un raggruppamento di più vettori colonna o vettori riga, vedremo più avanti cosa sono i vettori riga e come ricavarli da un vettore colonna.

Matrici machine learning
Indicizzazione di un vettore


y
iesimo elemento

Avendo un vettore con 4 valori/caratteristiche, possiamo chiamarlo anche come matrice 4×1 o vettore quadridimensionale

Nota bene:

Nella stragrande maggioranza di linguaggi di programmazione, come python, i singoli elementi seguono la stessa indicizzazione degli array, cioè il primo elemento ha indice 0.

Per convenzione le matrici sono indicate con una lettera maiuscola, come la matrice M, ed i vettori invece con una lettera minuscola, come il vettore y.
Se avete già avuto esperienze con la libreria scikit-learn di Python, ricordate che di solito nominiamo gli attributi come X perché sono matrici, e le etichette come y perché sono contenute in un vettore colonna.

Addizione e sottrazione fra matrici

Per sommare due matrici, si addizionano gli elementi che sono allo stesso indice (cioè nella stessa “posizione”) e si va a formare una nuova matrice risultato con le stesse dimensioni di quelle iniziali.

Nota: visto il procedimento, è chiaro che la somma fra matrici è possibile solo se sono entrambe della stessa dimensione.


Matrici machine learning
Addizione fra matrici

Se abbiamo una matrice A più una matrice B, il risultato è la matrice C tale che Cij=Aij+Bij

Per le sottrazioni il procedimento è identico, per ogni elemento si sottrae il corrispettivo nell’altra matrice. La sottrazione può essere pensata anche come addizione moltiplicando la seconda matrice per -1 (vedere moltiplicazione scalare più avanti)

Moltiplicazioni e divisioni scalari

Dando una definizione semplicistica, uno scalare è un numero reale. Moltiplicando uno scalare per una matrice, quest’ultima “scala” il proprio valore in modo proporzionale.

In pratica bisogna moltiplicare ogni elemento della matrice per il numero scalare, quindi la matrice risultante ha la stessa dimensione della matrice iniziale.

Nota bene: il procedimento vale anche per i vettori essendo questi ultimi delle matrici speciali

Matrici machine learning
Moltiplicazione con uno scalare
Matrici machine learning
Divisione con uno scalare

La divisione segue lo stesso procedimento, ma si può pensare anche come moltiplicazione della matrice per il reciproco dello scalare.

Moltiplicazione matrice x vettore

Per moltiplicare una matrice ed un vettore, bisogna moltiplicare “riga per colonna” e poi sommare, cioé moltiplicare ogni jesimo elemento del vettore colonna per il corrispettivo iesimo elemento della riga della matrice e poi sommare i valori di ogni riga.

Matrici machine learning
Moltiplicazione matrice-vettore
Matrici machine learning
Sintesi moltiplicazione matrice-vettore

Se prendiamo una matrice A, con dimensione nxm e la moltiplichiamo per un vettore x di dimensione 1xm, il vettore risultante avrà dimensione nx1.

Moltiplicazione fra matrici

Per moltiplicare due matrici si può separare la seconda matrice in più vettori colonna per semplificare il ragionamento. Dopo aver eseguito le moltiplicazioni coi singoli vettori colonna, si uniscono i risultati.

Nota bene: Per poter eseguire la moltiplicazione, il numero di colonne della prima matrice deve essere uguale al numero di righe della seconda matrice, altrimenti la moltiplicazione non è possibile.

Matrici machine learning
Moltiplicazione tra matrici

Moltiplicando una matrice A di dimensioni nxm per una matrice m dimensionale, la matrice risultante sarà n dimensionale

Matrici machine learning
Sintesi moltiplicazione tra matrici

Proprietà di moltiplicazione delle matrici

Per spiegare le proprietà delle moltiplicazioni con le matrici, bisogna compararle con quelle dei numeri scalari (reali).

Proprietà commutativa

Per le moltiplicazioni fra numeri scalari, vale la proprietà commutativa, cioè l’ordine dei numeri non cambia risultato. 2×5=5×2

Invece la moltiplicazione con matrici in generale non è commutativa. Quindi di solito con due di queste A e B: AxB non è uguale a BxA.

Nota: L’unico caso in cui AxB=BxA è quando si moltiplicano due matrici identità, argomento che spiegeremo poco più avanti.

Proprietà associativa

Per i numeri reali, la moltiplicazione è associativa, in altre parole con più di due elementi il raggruppamento di due a due che facciamo non interferisce col risultato.

Dovendo risolvere 2x5x4, possiamo vedere che (2×5)x4 = 2x(5×4)

Questa proprietà vale anche per le matrici, avendo tre matrici A, B e C:

Ax(BxC) = (AxB)xC

Proprietà distributiva

La propietà distributiva vale sia per i numeri scalari che per le matrici.

Quindi per i numeri scalari: 2(5+4) = 2*5 + 2*4
Per A, B e C: A(B+C) = A*B + A*C.


Matrici identità

Nei numeri reali, il numero 1 è il valore identità per la moltiplicazione. Cioè, moltiplicando qualsiasi numero reale z per 1, il risultato è sempre z; in altre parole z mantiene la propria identità se moltiplicato per 1.

Allo stesso modo esistono matrici identità (I) tali che, moltiplicate per una qualsiasi matrice A, il risultato è sempre A

AI = IA = A

Le matrici identità sono matrici quadrate, cioè matrici il cui numero di colonne è uguale al numero di righe. La caratteristica principale è che tutti i valori sono nulli tranne quelli della diagonale principale (dall’alto a sinistra al basso a destra).

Per una matrice di dimensioni nxm, la sua matrice identità sarà di dimensioni mxm, che è logico se ricordiamo che per poter moltiplicare due matrici la prima deve avere il numero di colonne uguale al numero di righe della seconda.

Esempi di matrici identità:

Matrici machine learning
Matrici identità

Come possiamo vedere, con l’eccezione di n=1, le matrici identità hanno tutti 1 lungo la diagonale principale e 0 da tutte le altre parti.

Ricordiamo inoltre che la moltiplicazione fra matrici non è commutativa se non nel caso della matrici identità.

Matrici inverse e Matrici trasposte

Matrice inversa

Sappiamo che 1 è il valore identità per i numeri reali, i numeri possono avere anche un inverso (si rappresenta col numero elevato a meno uno) tale che un numero qualsiasi moltiplicato per il suo inverso è uguale all’identità.

Matrici machine learning
Numero moltiplicato per il suo inverso

Ricordiamo però che non tutti i numeri hanno un inverso, come nel caso dello zero. Visto che 0^-1 o 1/0 è indefinito.

Matrici machine learning
Una matrice moltiplicata per il suo inverso

Pure le matrici possono avere un inverso che si trova invertendo la posizione dei valori nella diagonale principale e moltiplicando tutti gli altri valori per -1.

le matrici che non hanno un inverso o non possono essere invertite sono chiamate matrici singolari o degenerate.

Perché le matrici inverse sono importanti?

Se avessimo una moltiplicazione tra matrici: A*B=C dove sappiamo i valori di A e C ma non di B, possiamo moltiplicare entrambi i lati dell’equazione per 1/A(A^-1), che è l’inverso della matrice A. In questo modo otterremmo:

A*B=C
(A^-1)A*B=(A^-1)C
IB=(A^-1)C
B=(A^-1)C

Matrici trasposte

Fare la trasposizione di una matrice A vuol dire che le righe di A diventano le colonne di A trasposto e viceversa per le colonne di A.

Quindi se si tratta di una matrice nxm, la sua trasposta sarà una matrice mxn.

Matrici machine learning
Matrice trasposta

Fare la trasposizione di un vettore colonna ci dà un vettore riga e viceversa:

Matrici machine learning
Trasposizione vettore colonna

Conclusione

In questa piccola guida abbiamo riassunto in breve le cose più importanti da sapere riguardo l’algebra lineare, ma se avete intenzione di fare sul serio e seguire qualcosa di più strutturato, vi consigliamo questo corso gratuito di specializzazione sull’algebra o il corso di profession.ai che copre tutti gli aspetti del Machine Learning (utilizzando il codice “NEURAGATE” avrai il 30% di sconto).



Condividi su facebook
Condividi su twitter
Condividi su linkedin
Condividi su whatsapp
Condividi su telegram
Andrew

Andrew


Iscriviti
Notificami
guest
0 Commenti
Inline Feedback
Vedi tutti i commenti