- Introduzione
- Oggetti Matematici
- Regole di calcolo
- la Moltiplicazione di matrici Proprietà
- Inversa e Recepire
- Sommario
- Risorse
- Introduzione
- Oggetti Matematici
- Scalare
- Vettore
- Matrix
- Tensore
- Matrix-Scalar Operations
- Matrice-Vettore di Moltiplicazione
- Matrix-Matrix Addition and Subtraction
- la Moltiplicazione matrice-Matrice
- Matrix Multiplication Properties
- Non Commutativo
- Associativo
- Distributiva
- Identity Matrix
- Inverso e trasposizione
- Inverso
- Transpose
- Sommario
- Risorse
Introduzione
L’Algebra lineare è una forma continua di matematica ed è applicata in tutta la scienza e l’ingegneria, perché permette di modellizzazione di fenomeni naturali e di calcolare in modo efficiente. Poiché è una forma di matematica continua e non discreta, molti informatici non hanno molta esperienza con esso. L’algebra lineare è anche centrale in quasi tutte le aree della matematica come la geometria e l’analisi funzionale. I suoi concetti sono un prerequisito cruciale per comprendere la teoria alla base dell’apprendimento automatico, specialmente se si sta lavorando con algoritmi di apprendimento profondo. Non è necessario comprendere l’algebra lineare prima di iniziare con l’apprendimento automatico, ma ad un certo punto, si consiglia di ottenere una migliore comprensione di come i diversi algoritmi di apprendimento automatico funzionano davvero sotto il cofano.
Questo ti aiuterà a prendere decisioni migliori durante lo sviluppo di un sistema di apprendimento automatico. Quindi, se vuoi davvero essere un professionista in questo campo, dovrai padroneggiare le parti dell’Algebra lineare che sono importanti per l’apprendimento automatico. Nell’Algebra lineare, i dati sono rappresentati da equazioni lineari, che sono presentate sotto forma di matrici e vettori. Pertanto, si tratta principalmente di matrici e vettori piuttosto che di scalari (tratteremo questi termini nella sezione seguente). Quando hai le librerie giuste, come Numpy, a tua disposizione, puoi calcolare la moltiplicazione di matrici complesse molto facilmente con poche righe di codice. (Nota: questo post del blog ignora concetti di algebra lineare che non sono importanti per l’apprendimento automatico.)
Oggetti Matematici
Scalare
Uno scalare è semplicemente un singolo numero. Ad esempio 24.
Vettore
Un vettore è una matrice ordinata di numeri e può essere in una riga o una colonna. Un Vettore ha solo un singolo indice, che può puntare a un valore specifico all’interno del Vettore. Ad esempio, V2 si riferisce al secondo valore all’interno del Vettore, che è -8 nel grafico sopra.
Matrix
Una Matrice è un insieme ordinato di matrice 2D di numeri e ha due indici. Il primo punta alla riga e il secondo alla colonna. Ad esempio, M23 si riferisce al valore nella seconda riga e nella terza colonna, che è 8 nel grafico giallo sopra. Una matrice può avere più numeri di righe e colonne. Si noti che un vettore è anche una matrice, ma con una sola riga o una colonna.
La matrice nell’esempio nel grafico giallo è anche una matrice 2 per 3 dimensionale (righe x colonne). Qui di seguito potete vedere un esempio di una Matrice con la notazione:
Tensore
Si può pensare a un Tensore come un array di numeri, disposti su una griglia regolare, con un numero variabile di assi. Un Tensore ha tre indici, in cui il primo punta alla riga, il secondo alla colonna e il terzo all’asse. Ad esempio, T232 punta alla seconda riga, alla terza colonna e al secondo asse. Questo si riferisce al valore 0 nel Tensore destro nel grafico seguente:
Tensore è più termine generale per tutti questi concetti sopra, perché un Tensore è un array multidimensionale e può essere un Vettore e di una Matrice, a seconda del numero di indici è. Ad esempio, un Tensore del primo ordine sarebbe un Vettore (indice 1). Un tensore di secondo ordine è una matrice (2 indici) e Tensori di terzo ordine (3 indici) e superiori sono chiamati Tensori di ordine superiore (3 o più indici).
Matrix-Scalar Operations
Se moltiplichi, dividi, sottrai o aggiungi uno Scalare a una Matrice, lo fai con ogni elemento della Matrice. L’immagine sottostante illustra perfettamente per la moltiplicazione:
Matrice-Vettore di Moltiplicazione
la Moltiplicazione di una Matrice per un Vettore può essere pensato come moltiplicazione di ogni riga della Matrice dalla colonna del Vettore. L’output sarà un vettore che ha lo stesso numero di righe della Matrice. L’immagine qui sotto mostra il funzionamento:
Per capire meglio il concetto, si passa attraverso il calcolo della seconda immagine. Per ottenere il primo valore del Vettore risultante (16), prendiamo i numeri del Vettore che vogliamo moltiplicare con la Matrice (1 e 5) e moltiplicarli con i numeri della prima riga della Matrice (1 e 3). Questo simile a questo:
1*1 + 3*5 = 16
facciamo lo stesso per i valori della seconda riga della Matrice:
4*1 + 0*5 = 4
E di nuovo per la terza riga della Matrice:
2*1 + 1*5 = 7
Ecco un altro esempio:
And here is a kind of cheat sheet:
Matrix-Matrix Addition and Subtraction
Matrix-Matrix Addition and Subtraction is fairly easy and straightforward. Il requisito è che le matrici abbiano le stesse dimensioni e il risultato è una matrice che ha anche le stesse dimensioni. Basta aggiungere o sottrarre ogni valore della prima Matrice con il suo valore corrispondente nella seconda Matrice. Vedere di seguito:
la Moltiplicazione matrice-Matrice
Moltiplicazione di due Matrici insieme non è poi così difficile se si sa come moltiplicare una Matrice per un Vettore. Si noti che è possibile moltiplicare le matrici solo se il numero delle colonne della prima Matrice corrisponde al numero delle righe della seconda Matrice. Il risultato sarà una Matrice con lo stesso numero di righe della prima Matrice e lo stesso numero di colonne della seconda Matrice. Funziona come segue:
È sufficiente dividere la seconda Matrice in vettori di colonne e moltiplicare la prima Matrice separatamente per ciascuno di questi vettori. Quindi metti i risultati in una nuova matrice (senza sommarli!). L’immagine qui sotto spiega questo passo dopo passo:
And here is again some kind of cheat sheet:
Matrix Multiplication Properties
Matrix Multiplication has several properties that allow us to bundle a lot of computation into one Matrix multiplication. We will discuss them one by one below. Inizieremo spiegando questi concetti con Scalari e poi con Matrici perché questo ti darà una migliore comprensione del processo.
Non Commutativo
La moltiplicazione scalare è commutativa ma la moltiplicazione della matrice non lo è. Ciò significa che quando moltiplichiamo gli Scalari, 7 * 3 è uguale a 3 * 7. Ma quando moltiplichiamo le matrici l’una per l’altra, A*B non è la stessa di B*A.
Associativo
La moltiplicazione scalare e la moltiplicazione della matrice sono entrambe associative. Ciò significa che la moltiplicazione scalare 3(5*3) è la stessa di (3*5)3 e che la moltiplicazione della matrice A(B*C) è la stessa di (A*B)C.
Distributiva
La moltiplicazione scalare e la moltiplicazione della matrice sono anche entrambe distributive. Ciò significa che
3 (5 + 3) è lo stesso di 3*5 + 3*3 e che A (B+C) è lo stesso di A*B + A*C.
Identity Matrix
La matrice Identity è un tipo speciale di matrice ma prima, dobbiamo definire cos’è un’identità. Il numero 1 è un’Identità perché tutto ciò che moltiplichi con 1 è uguale a se stesso. Pertanto ogni Matrice che viene moltiplicata per una Matrice Identità è uguale a se stessa. Ad esempio, la matrice A per la sua Matrice Identità è uguale a A.
Puoi individuare una matrice identità dal fatto che ne ha una lungo le sue diagonali e che ogni altro valore è zero. È anche una “matrice quadrata”, il che significa che il suo numero di righe corrisponde al suo numero di colonne.
Abbiamo discusso in precedenza che la moltiplicazione di matrici non è commutativo, ma c’è una eccezione, vale a dire se abbiamo moltiplicare una Matrice una Matrice di Identità. Pertanto, la seguente equazione è vera: A*I = I * A = A
Inverso e trasposizione
L’inverso della matrice e la trasposizione della matrice sono due tipi speciali di proprietà della matrice. Ancora una volta, inizieremo discutendo come queste proprietà si riferiscono ai numeri reali e quindi come si riferiscono alle matrici.
Inverso
Prima di tutto, cos’è un inverso? Un numero che viene moltiplicato per il suo inverso è uguale a 1. Si noti che ogni numero tranne 0 ha un inverso. Se si moltiplica una matrice per la sua inversa, il risultato è la sua matrice di identità. L’esempio seguente mostra come appare l’inverso degli scalari:
Ma non ogni Matrice ha un inverso. Puoi calcolare l’inverso di una matrice se è una “Matrice quadrata” e se ha un’inversa. Discutere quali matrici hanno un inverso sarebbe sfortunatamente fuori dallo scopo di questo post.
Perché abbiamo bisogno di un inverso? Perché non possiamo dividere le matrici. Non esiste un concetto di divisione per una Matrice, ma possiamo moltiplicare una Matrice per un’inversa, che si traduce essenzialmente nella stessa cosa.
L’immagine qui sotto mostra una matrice moltiplicata per la sua inversa, che si traduce in una matrice di identità 2 per 2.
Si può facilmente calcolare l’inversa di una Matrice (se ne ha uno) utilizzando Numpy. Ecco il link alla documentazione: https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.inv.html.
Transpose
E infine, discuteremo la proprietà Matrix Transpose. Questa è fondamentalmente l’immagine speculare di una matrice, lungo un asse di 45 gradi. È abbastanza semplice ottenere la trasposizione di una matrice. La sua prima colonna è la prima riga della trasposizione della matrice e la seconda colonna è la seconda riga della trasposizione della matrice. Una matrice m*n viene trasformata in una matrice n*m. Inoltre, l’elemento Aij di A è uguale all’elemento Aji (trasposizione). L’immagine qui sotto illustra che:
Sommario
In questo post, hai imparato a conoscere gli oggetti matematici dell’Algebra Lineare che sono utilizzati nella Macchina di Apprendimento. Hai imparato a moltiplicare, dividere, aggiungere e sottrarre questi oggetti matematici. Inoltre, hai imparato a conoscere le proprietà più importanti delle matrici e perché ci consentono di effettuare calcoli più efficienti. Inoltre, hai imparato cosa sono le matrici inverse e transpose e cosa puoi fare con esse. Sebbene ci siano anche altre parti dell’algebra lineare utilizzate nell’apprendimento automatico, questo post ti ha dato una corretta introduzione ai concetti più importanti.
Risorse
Profondità di Apprendimento (libro) — Ian Goodfellow, Giosuè Bengio, Aaron Courville
Andrew Ng di Machine Learning per corso su Coursera
https://en.wikipedia.org/wiki/Linear_algebra
https://www.mathsisfun.com/algebra/scalar-vector-matrix.html
https://www.quantstart.com/articles/scalars-vectors-matrices-and-tensors-linear-algebra-for-deep-learning-part-1
Questo post è stato pubblicato inizialmente il mio blog (https://machinelearning-blog.com).