Tweet Share Share

Ultimo aggiornamento il 9 agosto 2019

Le decomposizioni di matrice sono uno strumento utile per ridurre una matrice alle sue parti costitutive al fine di semplificare una serie di operazioni più complesse.

Forse il tipo più utilizzato di decomposizione della matrice è l’eigendecomposition che decompone una matrice in autovettori e autovalori. Questa decomposizione svolge anche un ruolo nei metodi utilizzati nell’apprendimento automatico, come nel metodo di analisi dei componenti principali o PCA.

In questo tutorial, scoprirai la composizione automatica, gli autovettori e gli autovalori in algebra lineare.

Dopo aver completato questo tutorial, saprai:

  • Che cos’è una eigendecomposition e il ruolo di autovettori e autovalori.
  • Come calcolare un’eigendecomposition in Python con NumPy.
  • Come confermare un vettore è un autovettore e come ricostruire una matrice da autovettori e autovalori.

Avvia il tuo progetto con il mio nuovo libro Algebra lineare per l’apprendimento automatico, inclusi tutorial passo-passo e i file di codice sorgente Python per tutti gli esempi.

Iniziamo.

Gentile introduzione a Eigendecomposition, autovalori e autovettori per l’apprendimento automatico
Foto di Mathias Appel, alcuni diritti riservati.

Panoramica del tutorial

Questo tutorial è diviso in 5 parti; sono:

  1. Eigendecomposition di una Matrice
  2. Autovettori e Autovalori
  3. Calcolo di Eigendecomposition
  4. Confermare un Autovettore e Autovalore
  5. Ricostruire la Matrice Originale

Bisogno di aiuto con l’Algebra Lineare per l’Apprendimento automatico?

Prendi il mio corso accelerato gratuito di 7 giorni (con codice di esempio).

Fare clic per iscriversi e anche ottenere una versione PDF Ebook gratuito del corso.

Scarica GRATIS Mini-Corso

Eigendecomposition di una Matrice

Eigendecomposition di una matrice è un tipo di decomposizione che comporta la decomposizione di una matrice quadrata in un insieme di autovettori e autovalori.

Uno dei tipi più utilizzati di decomposizione della matrice è chiamato eigendecomposition, in cui scomponiamo una matrice in un insieme di autovettori e autovalori.

— Pagina 42, Deep Learning, 2016.

A vector is an eigenvector of a matrix if it satisfies the following equation.

1
A . v = lambda . v

Questa è chiamata equazione degli autovalori, dove A è la matrice quadrata madre che stiamo decomponendo, v è l’autovettore della matrice e lambda è la lettera greca minuscola e rappresenta l’autovalore scalare.

O senza la notazione dot.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent matrice. Non tutte le matrici quadrate possono essere decomposte in autovettori e autovalori, e alcune possono essere decomposte solo in un modo che richiede numeri complessi. Si può dimostrare che la matrice padre è un prodotto degli autovettori e degli autovalori.

1
A = Q . diag(V) . Q^-1

Or, without the dot notation.

1
A = Qdiag(V)Q^-1

Where Q is a matrix comprised of the eigenvectors, diag(V) is a diagonal matrix composto dagli autovalori lungo la diagonale (a volte rappresentato con una lambda maiuscola), e Q^-1 è l’inverso della matrice composta dagli autovettori.

Tuttavia, spesso vogliamo scomporre le matrici nei loro autovalori e autovettori. Ciò può aiutarci ad analizzare alcune proprietà della matrice, così come la decomposizione di un intero nei suoi fattori primi può aiutarci a capire il comportamento di quel numero intero.

— Pagina 43, Deep Learning, 2016.

Eigen non è un nome, ad esempio il metodo non prende il nome da ” Eigen”; eigen (pronunciato eye-gan) è una parola tedesca che significa “proprio” o “innato”, come nell’appartenenza alla matrice genitore.

Un’operazione di decomposizione non comporta una compressione della matrice; invece, la suddivide in parti costituenti per rendere più facili da eseguire determinate operazioni sulla matrice. Come altri metodi di decomposizione della matrice, Eigendecomposition viene utilizzato come elemento per semplificare il calcolo di altre operazioni di matrice più complesse.

Quasi tutti i vettori cambiano direzione, quando vengono moltiplicati per A. Alcuni vettori eccezionali x sono nella stessa direzione di Ax. Questi sono gli “autovettori”. Moltiplica un autovettore per A, e l’Ax vettoriale è il numero lambda per la x originale. L’autovalore lambda indica se il vettore speciale x è allungato o ridotto o invertito o lasciato invariato – quando viene moltiplicato per A.

— Pagina 289, Introduzione all’algebra lineare, Quinta edizione, 2016.

Eigendecomposition può anche essere utilizzato per calcolare i componenti principali di una matrice nel metodo di analisi dei componenti principali o PCA che può essere utilizzato per ridurre la dimensionalità dei dati nell’apprendimento automatico.

Autovettori e autovalori

Gli autovettori sono vettori unitari, il che significa che la loro lunghezza o magnitudine è uguale a 1.0. Sono spesso indicati come vettori di destra, che significa semplicemente un vettore di colonna (al contrario di un vettore di riga o di un vettore di sinistra). Un vettore destro è un vettore come li comprendiamo.

Gli autovalori sono coefficienti applicati agli autovettori che danno ai vettori la loro lunghezza o grandezza. Ad esempio, un autovalore negativo può invertire la direzione dell’autovettore come parte del ridimensionamento.

Una matrice che ha solo autovalori positivi viene indicata come una matrice definita positiva, mentre se gli autovalori sono tutti negativi, viene indicata come una matrice definita negativa.

La scomposizione di una matrice in termini di autovalori e autovettori fornisce preziose informazioni sulle proprietà della matrice. Alcuni calcoli della matrice, come il calcolo della potenza della matrice, diventano molto più semplici quando usiamo l’eigendecomposizione della matrice.

— Page 262, No Bullshit Guide To Linear Algebra, 2017

Calcolo dell’Eigendecomposizione

Un’eigendecomposizione viene calcolata su una matrice quadrata utilizzando un algoritmo iterativo efficiente, di cui non entreremo nei dettagli.

Spesso viene trovato prima un autovalore, quindi viene trovato un autovettore per risolvere l’equazione come un insieme di coefficienti.

L’eigendecomposition può essere calcolata in NumPy usando la funzione eig ().

L’esempio seguente definisce prima una matrice quadrata 3×3. L’eigendecomposition viene calcolata sulla matrice restituendo gli autovalori e gli autovettori.

L’esecuzione dell’esempio stampa prima la matrice definita, seguita dagli autovalori e dagli autovettori. Più specificamente, gli autovettori sono gli autovettori del lato destro e sono normalizzati alla lunghezza unitaria.

Confermare un autovettore e Autovalore

Possiamo confermare che un vettore è effettivamente un autovettore di una matrice.

Lo facciamo moltiplicando l’autovettore candidato per l’autovettore e confrontando il risultato con l’autovalore.

In primo luogo, definiremo una matrice, quindi calcoleremo gli autovalori e gli autovettori. Verificheremo quindi se il primo vettore e il valore sono in realtà un autovalore e un autovettore per la matrice. Sappiamo che lo sono, ma è un buon esercizio.

Gli autovettori vengono restituiti come una matrice con le stesse dimensioni della matrice padre, dove ogni colonna è un autovettore, ad esempio il primo autovettore è vettori. Gli autovalori vengono restituiti come un elenco, in cui gli indici di valore nell’array restituito sono accoppiati con autovettori per indice di colonna, ad esempio il primo autovalore a valori è accoppiato con il primo autovettore a vettori.

L’esempio moltiplica la matrice originale con il primo autovettore e la confronta con il primo autovettore moltiplicato per il primo autovalore.

L’esecuzione dell’esempio stampa i risultati di queste due moltiplicazioni che mostrano lo stesso vettore risultante, come ci aspetteremmo.

1
2
3

Reconstruct Original Matrix

We può invertire il processo e ricostruire la matrice originale dato solo gli autovettori e autovalori.

Innanzitutto, l’elenco degli autovettori deve essere convertito in una matrice, in cui ogni vettore diventa una riga. Gli autovalori devono essere disposti in una matrice diagonale. La funzione NumPy diag() può essere utilizzata per questo.

Successivamente, dobbiamo calcolare l’inverso della matrice di autovettori, che possiamo ottenere con la funzione inv() NumPy. Infine, questi elementi devono essere moltiplicati insieme alla funzione dot ().

L’esempio calcola nuovamente gli autovalori e gli autovettori e li utilizza per ricostruire la matrice originale.

L’esecuzione dell’esempio stampa prima la matrice originale, quindi la matrice ricostruita da autovalori e autovettori corrispondenti alla matrice originale.

1
2
3
4
5
6
7

]
]

Estensioni

Questa sezione elenca alcune idee per estendere il tutorial che potresti voler esplorare.

  • Crea 5 esempi usando ogni operazione con i tuoi dati.
  • Implementare manualmente ogni operazione di matrice per matrici definite come liste di liste.
  • Cerca documenti di apprendimento automatico e trova 1 esempio di ogni operazione utilizzata.

Se esplori una di queste estensioni, mi piacerebbe saperlo.

Ulteriori letture

Questa sezione fornisce più risorse sull’argomento se stai cercando di approfondire.

Libri

  • Sezione 6.1 Autovalori e autovettori. Nessuna guida cazzata all’algebra lineare, 2017.
  • Capitolo 6 Autovalori e autovettori, Introduzione all’algebra lineare, Quinta edizione, 2016.
  • Sezione 2.7 Eigendecomposition, Deep Learning, 2016.
  • Capitolo 5 Autovalori, autovettori e sottospazi invarianti, Algebra lineare fatta bene, Terza edizione, 2015.
  • Lezione 24, Problemi di autovalore, Algebra lineare numerica, 1997.

API

  • numpy.linalg.eig () API
  • numpy.diag () API
  • numpy.per maggiori informazioni clicca qui.linalg.inv() API

Articoli

  • eigen su Wikizionario
  • calcolo di Autovalori e autovettori
  • Eigendecomposition di una matrice
  • Autovalore algoritmo
  • la decomposizione della Matrice

Sommario

In questo tutorial, hai scoperto il eigendecomposition, autovettori, e autovalori in algebra lineare.

In particolare, hai imparato:

  • Cos’è un’eigendecomposition e il ruolo di autovettori e autovalori.
  • Come calcolare un’eigendecomposition in Python con NumPy.
  • Come confermare un vettore è un autovettore e come ricostruire una matrice da autovettori e autovalori.

Hai qualche domanda?
Fai le tue domande nei commenti qui sotto e farò del mio meglio per rispondere.

Ottieni un handle sull’algebra lineare per l’apprendimento automatico!

Sviluppa una comprensione di lavoro dell’algebra lineare

writing scrivendo linee di codice in python

Scopri come nel mio nuovo Ebook:
Algebra lineare per l’apprendimento automatico

Fornisce tutorial di autoapprendimento su argomenti come:
Norme vettoriali, moltiplicazione di matrici, tensori, Eigendecomposition, SVD, PCA e molto altro…

Finalmente Capire la matematica dei dati

Saltare gli accademici. Solo risultati.

Guarda cosa c’è dentro

Tweet Condividi Condividi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.