Singular värdenedbrytning är en viss typ av nedbrytning av en rektangulär matris , som på grund av dess visuella geometriska tolkning används flitigt för att lösa många tillämpade problem. En omformulering av singulära värdenedbrytning, den så kallade Schmidt-nedbrytningen , har tillämpningar inom kvantinformationsteorin , såsom i entanglement .
Singularvärdesuppdelningen av en matris gör det möjligt att beräkna singularvärdena för en given matris, såväl som de vänstra och högra singularvektorerna i matrisen :
Var är den hermitiska konjugerade matrisen till matrisen , för en riktig matris .
De singulära värdena för en matris ska inte förväxlas med egenvärdena för samma matris.
Singular värdenedbrytning är användbar för att beräkna rangen av en matris , kärnan i en matris och pseudoinversen av en matris .
Singularvärdesuppdelning används också för att approximera matriser med matriser av en given rang.
Låt ordningsmatrisen bestå av element från fältet , där är antingen fältet av reella tal eller fältet av komplexa tal .
Ett icke-negativt reellt tal kallas ett matrissingularvärde när det finns två vektorer med enhetslängd och sådana att:
ochSådana vektorer kallas för den vänstra singularvektorn respektive den högra singularvektorn motsvarande singulartalet .
Ordningsmatrisens singularvärdesuppdelning är nedbrytningen av följande form
där är en storleksmatris med icke-negativa element, där elementen som ligger på huvuddiagonalen är singulartal (och alla element som inte ligger på huvuddiagonalen är noll), och matriserna (av ordning ) och (i ordning ) är två enhetliga matriser, bestående av vänster respektive höger singulära vektorer (a är den konjugattransponerade matrisen k ).
Låt matrisen ges:
En av de singularvärdesuppdelningarna av denna matris är nedbrytningen , där matriserna och är följande:
eftersom matriserna och är enhetliga ( och , där är identitetsmatrisen ), och är en rektangulär diagonal matris , det vill säga om .
Låt matrisen associeras med en linjär operator . Singularvärdesuppdelningen kan omformuleras i geometriska termer. En linjär operator som kartlägger rymdelement i sig själv kan representeras som successivt utförda linjära operatorer för rotation och sträckning. Därför visar komponenterna i singulära värdenedbrytningen tydligt geometriska förändringar när en linjär operator mappar en uppsättning vektorer från ett vektorrum in i sig självt eller in i ett vektorrum av en annan dimension [1] .
För en mer visuell representation, överväg en sfär med enhetsradie i rymden . Linjemappning mappar denna sfär till en rymdellipsoid . Då är singularvärdena som inte är noll för matrisens diagonal längden på halvaxlarna för denna ellipsoid. I fallet när och alla singularvärden är olika och skiljer sig från noll, kan singularvärdesuppdelningen av en linjär mappning enkelt analyseras som en konsekvens av tre åtgärder: överväg en ellipsoid och dess axlar; överväg sedan riktningarna i att kartläggningen mappar till dessa axlar. Dessa riktningar är ortogonala. Först tillämpar vi isometri genom att kartlägga dessa riktningar för att koordinera axlar . Det andra steget är att applicera en endomorfism diagonaliserad längs koordinataxlarna och expandera/sammandraga dessa riktningar, med hjälp av längderna på semiaxlarna som sträckningsfaktorer. Produkten mappar sedan enhetssfären på en isometrisk ellipsoid . För att bestämma det sista steget , tillämpa helt enkelt isometri på denna ellipsoid för att omvandla den till . Som du enkelt kan kontrollera är produkten densamma som .
Singular värdenedbrytning kan användas för att hitta pseudoinversa matriser , som särskilt gäller minsta kvadratmetoden .
Om , så hittas matrisen pseudo-invers till den av formeln:
där är pseudoinversen till matrisen , erhållen från den genom att ersätta varje diagonalelement med dess invers: och transponera.
I vissa praktiska problem krävs det att approximera en given matris med någon annan matris med en förutbestämd rangordning . Följande sats är känd, som ibland kallas Eckart -Yang-satsen. [2]
Om vi kräver att en sådan approximation är den bästa i den meningen att den euklidiska normen för skillnaden mellan matriser och är minimal, under begränsningen , så visar det sig att den bästa sådan matrisen erhålls från singularvärdesuppdelningen av matris med formeln:
där är matrisen där alla diagonala element är ersatta av nollor, förutom de största elementen.
Om elementen i matrisen är ordnade i icke-ökande ordning, kan uttrycket för matrisen skrivas om i följande form:
där matriserna , och erhålls från motsvarande matriser i singularvärdesuppdelningen av matrisen genom att skära till exakt de första kolumnerna.
Således kan det ses att genom att approximera matrisen med en matris av lägre rang, utför vi en slags komprimering av informationen som finns i : storleksmatrisen ersätts av mindre storleksmatriser och en diagonal matris med element. I det här fallet sker komprimeringen med förluster - endast den mest betydande delen av matrisen bevaras i approximationen .
Till stor del på grund av denna egenskap får singulära värdenedbrytning bred praktisk tillämpning: inom datakomprimering, signalbehandling, numeriska iterativa metoder för att arbeta med matriser, huvudkomponentanalys , latent semantisk analys och andra områden.
För en matris av ordning , om det är nödvändigt att approximera med en matris med rang som är mindre än , används ofta en kompakt nedbrytningsrepresentation [3] :
Endast kolumner och rader beräknas . Resten av kolumnerna och raderna beräknas inte. Detta sparar mycket minne när .
Låt oss ge ett exempel, låt oss säga att detta är antalet användare, som var och en lägger ner en del av betygen för filmer, vars totala antal kommer att betecknas med , sedan matrisen (mycket sparsam, eftersom varje användare endast har betygsatt en liten del av filmerna) kommer att betecknas och ha en tillräckligt stor dimension .
Om vi vill arbeta med en matris med mindre dimensioner måste vi beräkna singularvärdesuppdelningen:
i detta fall är matrisen , som tidigare nämnts, diagonal. Efter det, om vi bara vill spara information, måste vi ta , så att summan av kvadraterna av de första elementen är från den totala summan av alla kvadraterna av de diagonala elementen .
Så vi får dimensionen (tar kolumnerna), dimensionen och c . Sedan, istället för en matris, kan vi manipulera en matris med lägre dimensioner , som ofta tolkas som en matris av användarbetyg efter filmkategori.
Numeriska algoritmer för att hitta singularvärdesuppdelningen är inbyggda i många matematiska paket. Till exempel, i MATLAB- och GNU Octave- system kan den hittas med kommandot
[ U , S , V ] = svd ( M );SVD ingår i listan över grundläggande metoder för många matematiska bibliotek, inklusive fritt distribuerade.
Det finns till exempel implementeringar
https://www.gnu.org/software/gsl/manual/html_node/Singular-Value-Decomposition.html
https://root.cern.ch/root/htmldoc/guides/users-guide/LinearAlgebra.html#svd
https://software.intel.com/en-us/intel-mkl
https://numpy.org/doc/stable/reference/generated/numpy.linalg.svd.html
https://www.tensorflow.org/api_docs/python/tf/linalg/svd
https://tedlab.mit.edu/~dr/SVDLIBC/
http://www.alglib.net/matrixops/general/svd.php
Vektorer och matriser | |||||||||
---|---|---|---|---|---|---|---|---|---|
Vektorer |
| ||||||||
matriser |
| ||||||||
Övrig |