41

A szinguláris érték felbontás alkalmazásai a jel- és ...web.cs.elte.hu/blobs/diplomamunkak/bsc_alkmat/2016/reti_attila.pdfDigitális jelfeldolgozásnak (angolul Digital Signal

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • Eötvös Loránd Tudományegyetem

    Természettudományi Kar

    A szinguláris érték felbontás alkalmazásai a

    jel- és képfeldolgozásban

    Szakdolgozat

    Készítette: Réti AttilaELTE TTKAlkalmazott matematikusBSc

    Témavezet®: Kovács PéterTanársegédELTE IKNumerikus Analízis Tanszék

    Budapest, 2016

  • Tartalomjegyzék

    1. Bevezetés 4

    2. Matematikai háttér 6

    2.1. De�níciók, problémafelvetés . . . . . . . . . . . . . . . . . . . . . . . 6

    2.1.1. Hilbert térbeli approximáció . . . . . . . . . . . . . . . . . . . 6

    2.1.2. PCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.1.3. A kovarianciamátrix közelítése ML-becsléssel . . . . . . . . . . 10

    2.2. Szinguláris érték szerinti felbontás . . . . . . . . . . . . . . . . . . . . 11

    2.3. Numerikus módszerek . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2.3.1. Givens forgatások . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2.3.2. Bidiagonalizálás Householder transzformációval . . . . . . . . 23

    2.3.3. Golub-Reinsch algoritmus . . . . . . . . . . . . . . . . . . . . 25

    3. Alkalmazások 30

    3.1. Tömörítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    3.2. Adatsimítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    3.3. Arcképek osztályozása . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    3.4. Kitekintés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    A. Algoritmusok 37

    2

  • Köszönetnyilvánítás

    Ezúton szeretném megköszönni témavezet®mnek, Kovács Péternek, hogy elvállalta akonzulensi teend®ket, bármikor a rendelkezésemre állt, mindig ösztönzött és minden-ben segítette a munkámat. Nélküle ez a dolgozat nem jöhetett volna létre.

    Szeretnék továbbá köszönetet mondani barátn®mnek, szüleimnek és testvéremnek,akik mindig mellettem álltak és támogattak a munkám során.

    3

  • 1. fejezet

    Bevezetés

    A huszonegyedik századra az információáramlás olyannyira meghatározza a világun-

    kat, hogy a mindennapi élet szerves részét képezik például a különböz® képek, zenék,

    videók és cikkek. A számítógépek és okostelefonok korában az emberek nagy több-

    sége rendszeresen dolgozik nagy adathalmazokkal, digitális fotókkal, táblázatokkal.

    A hadiiparban már külön drón egységeket gyártanak, melyek feladata egy adott táj

    domborzatának és lakosságának feltérképezése az általuk rögzített jelek alapján. A

    modern orvostudományban is számos képet és jelet dolgoznak fel, pl. MRI felvéte-

    leket, EKG jeleket, röntgen vagy CT képeket. Ilyen magas igények mellett jogosan

    lehet kíváncsi az ember, hogy milyen eszközök, lehetséges eljárások és módszerek te-

    szik lehet®vé ennek a nagyon magas színvonalú és folyamatosan fejl®d® rendszernek a

    m¶ködését A dolgozat célja a szinguláris felbontás és annak tulajdonságainak ismer-

    tetése, elméleti hátterének alapos és részletes áttekintése, illetve a szinguláris érték

    szerinti felbontás alkalmazásainak bemutatása a jel- és képfeldolgozásban. De mit is

    értünk digitális jelfeldolgozás alatt?

    Digitális jelfeldolgozásnak (angolul Digital Signal Processing, DSP) nevezzük azt

    a folyamatot, amikor egy �zikai mennyiséget valamilyen módon olyan formára ho-

    zunk, hogy számítógéppel feldolgozhatóvá, alakíthatóvá váljon. Egy képet például

    tekinthetünk egy n ×m-es mátrixnak (n, m ∈ N+), melynek elemei egész számok.A mátrixon belüli elhelyezkedés az adott pixel pozícióját jelenti, az érték pedig az

    adott színárnyalatot. Ily módon numerikusan reprezentáltunk egy képet és tudunk

    vele különböz® m¶veleteket végezni.

    Adódhat azonban a kérdés, hogy mi történik akkor, ha nagy mennyiség¶ adatot

    szeretnénk eltárolni vagy feldolgozni. Hogyan tudunk kevesebb adatot tárolni, mint

    amennyi valójában a rendelkezésünkre áll anélkül, hogy (lényeges) információt veszí-

    4

  • tenénk? Hogyan tudjuk kevesebb m¶velettel ugyan azt a végeredményt elérni? Ezekre,

    és ehhez hasonló kérdésekre ad majd választ a dolgozat. Látni fogjuk, hogy a prob-

    léma valójában visszavezethet® különböz® matematikai problémák együttesére pl.:

    sajátérték feladat, szinguláris értékfelbontás (angolul Singular Value Decomposition,

    SVD), Hilbert térbeli approximáció, altérre való projekció, vagy éppen kovariancia

    mátrix közelítése.

    A szakdolgozat második fejezetében kezdetben a dolgozat megértéséhez szükséges

    matematikai hátteret ismertetem [1] és [2] alapján. Megismerkedünk az euklideszi te-

    rekkel, tetsz®leges ponthoz megszerkesztjük egy adott altér legjobban közelít® elemét,

    majd megadjuk, hogyan érdemes megválasztani az alteret, amire projekciót végzünk.

    Bepillantunk a f®komponens-analízis (angolul Principal Component Analysis, PCA)

    statisztikai eljárásába majd innen eljutunk a szinguláris értékfelbontásig. Találkozni

    fogunk a téma néhány f®bb tételével (pl. Eckart�Young tétel) amiket részletesebben

    taglalok és bizonyítok is. A fejezet végén pedig a numerikus módszerekr®l fogok be-

    szélni, a [3] irodalom alapján ismertetem a Gene Howard Golub és Christian Reinsch

    által kidolgozott SVD algoritmust, az ahhoz szükséges segédalgoritmusokat és lépé-

    seket.

    Az utolsó, harmadik fejezetben látni fogjuk, mire is alkalmazható az el®z® fejezet-

    ben felhalmozott elmélet: az általam készített programmal néhány példán keresztül

    bemutatom, hogyan is m¶ködik az SVD a gyakorlatban, a bevezetésben felvetett kép-

    tömörítési problémát miként oldhatjuk meg. Ezen kívül szó esik még egydimenziós

    adatok simításáról illetve arcképek osztályozásáról. A dolgozatomat egy kitekintéssel

    zárom, melyben a szinguláris értékfelbontás egy további alkalmazását fogom szemlél-

    tetni.

    Megjegyzem, hogy a dolgozatban bemutatott numerikus módszereket, így például

    a szinguláris érték felbontás különböz® változatait Matlab-ban implementáltam. A

    kódok és a példaprogramok a csatolt CD mellékleten elérhet®ek.

    5

  • 2. fejezet

    Matematikai háttér

    2.1. De�níciók, problémafelvetés

    Ez a fejezet a fontos de�níciók, tételek és eljárások ismertetéséül szolgál. Az olvasóról

    feltételezzük a matematikai el®képzettséget, ezért a fejezetben használt alapfogalma-

    kat ismertnek tekintjük.

    A veszteséges tömörítés az adattömörítési algoritmusok egy osztálya, ami a veszte-

    ségmentes tömörítéssel ellentétben nem teszi lehet®vé a tömörített adatból az eredeti

    adatok pontos rekonstrukcióját, ám egy �elég jó� rekonstrukciót igen. A mi esetünk-

    ben is ez történik, veszteségesen fogunk tömöríteni, viszont keressük a lehet® legjobb

    közelítését egy adott képnek.

    2.1.1. Hilbert térbeli approximáció

    2.1.1. De�níció. Legyen (Z, ||.||) Banach-tér, Y ⊂ Z, továbbá legyen b ∈ Z. Ekkorazt mondjuk, hogy az yb ∈ Y a b elem legjobb közelítése Y-ban, ha ||b−yb|| ≤ ||b−y||∀ y ∈ Y-ra.

    A mi esetünkben Hilbert téren belül gondolkodunk, azaz teljes euklideszi tér fe-

    lett, hiszen a képünket egy Rm×n (m,n ∈ N+) feletti mátrixként reprezentáljuk,melyben minden pixel- elhelyezkedést®l függ®en- egy mátrixbeli elemnek felel meg.

    Az egyszer¶ség kedvéért tekintsünk szürkeárnyalatos képeket, melyek pixelein a 0-255

    közötti egész számok intenzitás értékeket jelölnek. Így tehát valós számokat tartal-

    mazó vektorokkal illetve mátrixokkal van dolgunk, Hilbert térben keressük majd egy

    kitüntetett altér legjobban közelít® elemét. A következ® állítás ennek létezésére és

    egyértelm¶ségére ad választ:

    6

  • 2.1.2. Tétel. Legyen (H, 〈.〉) Hilbert tér, f ∈ H és H ′ ⊂ H zárt altér. Ekkor ∃!f ′ ∈ H ′ : ||f− f ′|| = infh∈H ′ ||f− h|| és f− f ′ ⊥ H ′(azaz 〈f− f ′, h〉 = 0 ∀h ′ ∈ H ′).

    Mivel véges dimenziós vektorterekben dolgozunk, adódhat a kérdés, hogy milyen

    alakban tudjuk megkapni a kívánt közelítést. Természetesen a válasz ekvivalens az-

    zal, hogy milyen távol van a közelítend® elemt®l a közelít® elemet tartalmazó altér.

    Gondoljunk például a 2 dimenziós esetre ahol értelemszer¶en egy pont és egy egyenes

    között a legrövidebb út a pontot az egyenessel összeköt® mer®leges szakasz. Az alábbi

    tétel ezt fogalmazza meg véges dimenziós alterekre:

    2.1.3. Tétel. Legyen b az f és a gi-kb®l álló skalárszorzatokat tartalmazó vektor,

    azaz b = 〈f, gi〉 (i = 1 . . . n). Legyen d a legjobban közelít® elem távolsága. Ekkor azalábbi egyenl®ség teljesül:

    d2 := ||f− f ′||2 = ||f||2 − bTc.

    A H ′ véges dimenziós altér esetén H ′ = span(g1, . . . , gn), ahol n a dimenziószá-

    mot, gi (i ∈ 1, . . . , n) pedig a bázisvektorokat jelöli. Ezen jelölések mellett a legjobbanközelít® elemet:f ′ =

    ∑ni=1 cigi alakban keressük, ahol ci tetsz®leges valós skalár. Fon-

    2.1. ábra. A v vektor legjobb közelítése a szürkével jelölt H altérre nem más, mint avektor vetülete az altérre, azaz a ProjH v.

    1

    tos észrevétel, hogy ha a bázisvektorok valamilyen kitüntetett tulajdonságú rendszert

    alkotnak, akkor a feladat leegyszer¶södik.

    2.1.4. Megjegyzés. Ha g1, . . . , gn ortogonális rendszer(OGR), akkor a legjobban

    közelít® elem:

    f ′ =

    n∑j=1

    〈f, gi〉〈gi, gi〉

    gi

    1Az ábra megtalálható a http://tex.stackexchange.com/questions/117789/setting-camera-projection-angle-in-tikz-to-enhance-the-depth-perception-when-dra weboldalon.

    7

  • Ortonormált rendszer esetén, mivel 〈gi, gi〉 = 1, a fenti egyenl®ség egyszer¶södik:

    f ′ =

    n∑j=1

    〈f, gi〉gi

    A kés®bbiekben látni fogjuk, hogy ezek a speciális alakok fontos szerepet játszanak

    az alkalmazás során.

    2.1.2. PCA

    A f®komponens-analízis, azaz a PCA egy többváltozós statisztikai eljárás, amely adat-

    redukciós módszerként is használható. Lényege, hogy egy er®sen korreláló változókat

    tartalmazó nagy adathalmaz dimenzióját lecsökkenti a szórásirányok �gyelembevéte-

    lével. Ezt egy ortogonális transzformáció segítségével éri el: a lehetségesen korreláltat-

    ható változókat lineárisan korrelálatlanná alakítja át. Ezeket a változókat nevezzük

    f®komponenseknek, innen adódik az eljárás neve. A fejezet további részeit a [4] és [7]

    irodalom alapján fogom ismertetni.

    A PCA-nak számos vonzó el®nye van, ami miatt az egyik leggyakrabban használt

    dimenziócsökkent® eljárás. Többek között segítségével könnyebb megtalálni az adato-

    kat legjobban jellemz® mintázatokat, így például az adatok nagyon nagy mértékben

    tömöríthet®k viszonylag kevés veszteséggel. Nem elhanyagolható, hogy a dimenzió-

    csökkentés zajsz¶résre, simításra is alkalmas.

    Matematikailag gyakorlatilag nem más, mint egy ortogonális lineáris transzformáció,

    mely az adatot egy új koordináta rendszerbe transzformálja, azaz egy bázistranszfor-

    mációt hajt végre. Most nézzük a feladat formális felírását.

    Legyen X = [x1, x2, . . . , xn] egy n dimenziós valószín¶ségi vektorváltozó. Legyen en-

    nek az X valószín¶ségi vektorváltozónak a várhatóértéke 0. Ez feltehet®, hiszen ha

    mondjuk egy tetsz®leges m konstans lenne, akkor a mintaátlagot a diszkrét adatok-

    ból levonva várhatóértéknek már zérust kapnánk. Azt szeretnénk, hogy a különböz®

    koordináták korrelációja 0 legyen, tehát:

    E(xixj) =

    {0, ha i 6= jσ2i , különben,

    (2.1)

    8

  • ahol σ2i az xi-hez tartozó szórásnégyzet és E(x) az x várható értéke. A feladat megol-

    dásához szükségünk van az X kovariancia mátrixára:

    Cx = E((X−m)(X−m)T) = E(XXT)

    A korábbiak alapján tehát szükségünk van egy lineáris ortogonális transzformációra

    úgy, hogy a keletkez® transzformált elem is teljesítse a (2.1) egyenl®ség feltételeit. Le-

    gyen φ : Rn → Rn lineáris ortogonális transzformáció, Y = φ(x) = φTx transzformáltvalószín¶ségi vektorváltozó, mely teljesíti a fent említett feltételt:

    Cy = E(YYT) = E(φTx(φTx)T) = E(φT(xxT)φ) = φTCxφ

    Balról φ-vel szorozva könnyen látszik, hogy:

    Cxφ = φCy

    Figyelembe véve, hogy Cy a (2.1) egyenl®ség alapján egy diagonális mátrix, továbbá

    a sajátérték és sajátvektor de�nícióját használva adódik, hogy:

    Cxφi = λiφi

    Ebb®l következik, hogy a (2.1) egyenl®ség nem másra redukálódik, mint egy sajátérték

    feladatra, azon belül is Cx diagonalizálására. Feltehet®, hogy a diagonalizált elemek,

    tehát a sajátértékek fentr®l lefelé abszolút értékben csökken® sorrendben következnek.

    (Ellenkez® esetben ekvivalens mátrixm¶veletekkel olyan alakra hozzuk.) Ekkor, mivel

    euklideszi térben vagyunk, és a {φi | i = 1, . . . , n} rendszer ortogonális, az el®z® fejezet

    alapján X-et `2 normában az alábbi formában közelíthetjük legjobban:

    X ≈ X ′ =k∑j=1

    〈X,φi〉φi

    Az is látszik, hogy ez nem más, mint az els® k legnagyobb sajátértékhez tartozó

    sajátaltérre vett projekció, ahol k-t növelve csökkenthetjük a hibát. A gyakorlatban a

    valódi kovariancia mátrixot nem ismerjük, ezt az 1nXXT formulával szokás közelíteni,

    ahol X oszlopait a valószín¶ségi vektorváltozó mintavételével kapjuk.

    9

  • 2.1.3. A kovarianciamátrix közelítése ML-becsléssel

    Korábban azt állítottam, hogy a képek feldolgozása során a kovariancia mátrixot az1nXXT -tal szokás közelíteni, most pedig a [5] alapján meg is magyarázom, hogy mi-

    ért van így. Jelölje most µ a várható értéket, θ a paraméter vektort, ∇θ a gradiensoperátort, Σ pedig a kovariancia mátrixot. Legyen X Gauss-normális eloszlású való-

    szín¶ségi változó. Az egyszer¶ség kedvéért tekintsük el®ször azt az esetet, amikor a

    várható érték nem ismert, a kovariancia mátrix viszont igen. Ezen feltételek mellett

    tekintsük az Xk mintavételi pontot és legyen

    log P(Xk|µ) = −1

    2log[(2π)d|Σ|

    ]−1

    2(Xk − µ)

    TΣ−1(Xk − µ)

    és

    ∇θ log P(Xk|µ) = Σ−1(Xk − µ).

    Azonosítsuk θ-t µ-vel. Az el®z® egyenletb®l látszik, hogy a µ maximum likelihood

    (ML) becslésének ki kell elégítenie a

    n∑k=1

    Σ−1(Xk − µ̂) = 0

    egyenletet. Ezt alakítva az alábbi formát nyerjük.

    µ̂ =1

    n

    n∑k=1

    Xk.

    Most pedig ezek alapján tekintsük azt az esetet, amikor sem µ, sem pedig Σ nem

    ismert. Így most ezek az elemek alkotják a θ paraméter vektor komponenseit. Te-

    kintsük el®ször az egyváltozós esetet, ahol θ1 = µ és θ2 = σ2. Ekkor egyetlen pont

    log-likelihoodja

    log P(Xk|θ) = −1

    2log 2πθ2 −

    1

    2θ2(Xk − θ1)

    2

    és a deriváltja

    ∇θl = ∇θ log P(Xk|θ) =

    [1θ2(Xk − θ1)

    12θ2

    + (Xk−θ1)2

    2θ22

    ].

    A likelihood egyenlet miatt a teljes log-likelihood függvényre teljesül, hogy

    n∑k=1

    1

    θ̂2(Xk − θ̂1) = 0

    10

  • és

    n∑k=1

    1

    θ̂2+

    n∑k=1

    (Xk − θ̂1)2

    θ̂22= 0,

    ahol θ̂1 és θ̂2 a maximum likelihood becslése θ1-nek és θ2-nek. Cseréljük most ki ezeket

    a becsléseket úgy, hogy µ̂ = θ̂1 és σ̂2 = θ̂2 legyen. Ekkor néhány alakítással adódik,

    hogy

    µ̂ =1

    n

    n∑k=1

    Xk

    és

    σ̂2 =1

    n

    n∑k=1

    (Xk − µ̂)2.

    Ebb®l következik, hogy a kovariancia mátrix közelítése:

    Σ̂ =1

    n

    n∑k=1

    (Xk − µ̂)(Xk − µ̂)T .

    Ez pedig nem más, mint a kívánt egyenl®ség. Tehát a mintevételezéssel kapott X =

    [X1, . . . , Xn] mátrixxal az 1nXXT formula várható értékben jól közelíthet® a valódi

    kovariancia mátrix. Megjegyzem, hogy a technikát számos területen alkalmazzák a

    gyakorlatban, például mintafelsimerés során, illetve klaszterezési, osztályozási felada-

    tokban (b®vebben lásd könyv 3. fejezetét).

    Ezt a közelítést viszont igen nehéz kiszámítani, ha XXT nagyon nagy, ugyanis akár csak

    egy 640×480 pixelb®l álló kép esetén is hatalmas, több gigabyte-nyi memóriára lenneszükségünk a szorzat meghatározására. Erre lehet alkalmazni egy másik dimenzió-

    csökkent® algoritmust: a szinguláris értékfelbontást. A PCA egy sajátértékprobléma,

    melyet az SVD-vel szinguláris érték problémává konvertálhatunk. Ez utóbbi megoldá-

    sához már léteznek olyan numerikus módszerek, melyekkel a feladat kezelhet® méret¶

    válik. A következ® fejezetben az SVD algoritmusról és annak elméletéi hátterér®l fogok

    beszélni.

    2.2. Szinguláris érték szerinti felbontás

    A szinguláris érték felbontást (angolul Singular Value Decomposition, SVD) eredeti-

    leg a di�erenciál geometriában fedezték fel. Azt szerették volna megállapítani, hogy

    vajon egy valós bilineáris formát egyenl®vé lehet e tenni egy másikkal független orto-

    11

  • gonális transzformációkat használva. Eugenio Beltrami és Camille Jordan egymástól

    függetlenül, már 1873-ban és 1874-ben felfedezte az SVD létezését. Harmadikként

    James Joseph Sylvester érkezett el a valós négyzetes mátrixok szinguláris érték sze-

    rinti felbontásához, nyilvánvalóan függetlenül az el®deihez. egy A mátrix szingu-

    láris értékeit az A mátrix kanonikus szorzóinak nevezte. A negyedik matematikus

    Autonne volt 1915-ben, aki felfedezte a szinguláris felbontást. Érdekesség, hogy a

    polár felbontás során jutott el az SVD-ig. Az els® bizonyítás, tetsz®leges Cm×n-belimátrixok szinguláris érték felbontására, Carl Eckart és Gale Young nevéhez f¶z®dik

    1936-ból. Úgy látták, hogy ez a f®tengely transzformáció általánosítása hermitikus

    vagy Hermite-mátrixokra.

    A szinguláris felbontás, hasonlóan a PCA-hoz, egy valós, vagy komplex elemeket

    tartalmazó mátrix faktorizációja. A felbontást a tudomány számos területén alkal-

    mazzák, például a statisztikában és a jelfeldolgozásban. Felhasználható többek közt

    a legkisebb négyzetek módszeréhez, kis rangú mátrixszal való közelítéshez, a Kabsch

    algoritmushoz, vagy az általánosított inverz számolására. El®ször is nézzük, mit is

    jelent egy mátrix szinguláris érték szerinti felbontása!

    2.2.1. De�níció (Szinguláris felbontás). Egy A ∈ Cn×m (n,m ∈ N+) mátrix szingu-láris felbontásán egy

    A = UDV∗ (2.2)

    szorzattá bontást értünk, ahol U ∈ Cn×n, V ∈ Cm×m unitér, D ∈ Cn×m diagonálismátrixok.

    2.2.2. De�níció (Szinguláris érték). A D mátrix f®átlójában lév® σ1 ≥ σ2 ≥ · · · ≥σn ≥ 0 elemeket szinguláris értékeknek nevezzük.

    σi =√λi(A∗A) (i = 1 . . . n),

    ahol tetsz®leges B ∈ Cn×n mátrixra a λi(B) a B mátrix i. legnagyobb abszolút érték¶sajátértékét jelenti.

    2.2.3. De�níció (Szinguláris vektor). A felbontásból kapott U és V oszlopait bal-,

    illetve jobboldali szinguláris vektoroknak nevezzük.

    Fentebb de�niáltuk, mi is az SVD, most pedig a létezésére fogunk látni elégséges

    feltételt.

    12

  • 2.2. ábra. Az A mátrix szinguláris felbontása abban az esetben, ha n > m. Termé-szetesen ellenkez® esetben is hasonló a felbontás.

    2.2.4. Tétel (Szinguláris érték felbontás létezése). Tetsz®leges A ∈ Cn×m (n,m ∈N+) mátrixra létezik a szinguláris felbontás.

    Bizonyítás. Legyen r = rang(A). Tudjuk, hogy A∗A mátrix önadjungált, továbbá azt

    is, hogy pozitív szemide�nit, hiszen

    〈A∗Ax, x〉 = x∗(A∗Ax) = (Ax)∗Ax = 〈Ax,Ax〉 ≥ 0.

    Az A∗A mátrix nem nulla sajátértékeit jelöljük σ1 . . . σr-rel. Ekkor természetesen a

    maradék nemnegatív sajátértéke 0, melynek multiplicitása n−r. Legyen továbbá Σ =

    diag(σ1 . . . σr) ∈ Cr×r. Mivel A∗A önadjungált, ezért van diagonális Schur-felbontása,azaz létezik V ∈ Cn×n unitér mátrix, hogy A∗A = VD2V∗, ahol

    D2 = diag(λi(A∗A)) =

    [Σ2 0

    0 0

    ].

    Mivel A∗AV = VD2, ezért V oszlopai az A∗A sajátvektorai. Bontsuk fel V-t két

    komponensre: legyen V = [V1, V2], ahol V1 tartalmazza a nem nulla sajátértékekhez

    tartozó sajátvektorokat, V2 pedig a nullához tartozóakat. Vizsgáljuk most a nem nulla

    sajátértékekhez tartozó sajátvektorokat tartalmazó részt:

    V∗1A∗AV1 = Σ

    2

    Balról és jobbról a szigma Σ−1-el beszorozva egy r × r nagyságú egységmátrixot ka-

    13

  • punk.

    Σ−1V∗1A∗AV1Σ

    −1 = Ir×r

    Legyen U∗1 = Σ−1V∗1A

    ∗; U1 = AV1Σ−1. U1-et kiegészítjük m − r darab ortonormált

    Rm-beli vektorral, ezek alkotják majd az U2-t. Legyen az U = [U1, U2], melyre U∗U =Im×m. Ekkor:

    U∗AV =

    [U∗1

    U∗2

    ]A[V1 V2

    ]=

    [U∗1AV1 U

    ∗1AV2

    U∗2AV1 U∗2AV2

    ]=

    [Σ 0

    0 0

    ]m×n

    ,

    ahol U1 megadásából következik, hogy AV1 = U1Σ; U1 és U2 ortogonalitásából pedig

    az, hogy U∗2(AV1) = U∗2(U1Σ) = 0, illetve AV2 = 0 ∗ V2 = 0 miatt a 2. oszlop elemei

    nullák.

    2.2.5. Megjegyzés. A szinguláris felbontásból keletkez® U és V mátrixok nem egy-

    értelm¶en meghatározottak, például a nulla szinguláris értékekhez tartozó szinguláris

    vektorok sorrendje nem egyértelm¶.

    Láthattuk tehát, hogy minden mátrixnak létezik a szinguláris érték felbontása,

    most pedig az SVD néhány kivételes tulajdonságáról lesz szó. Az alábbiakban látni

    fogjuk, hogyan lehet általánosított inverzet készíteni SVD-b®l; hogyan lehet a kova-

    riancia mátrixot közelíteni SVD-vel, illetve hogy egy tetsz®leges mátrix legjobb köze-

    lítését kettes illetve Frobenius normában egy, a szinguláris érték felbontásból kapott

    mátrix adja meg. Mindezek el®tt de�niálom a mátrixnorma fogalmát, illetve annak

    el®bb említett két speciális esetét.

    2.2.6. De�níció (Mátrixnorma). Az f : Rm×n → R függvényt mátrixnormának ne-vezzük, ha

    1. f(x) ≥ 0 (∀x ∈ Rm×n),

    2. f(x) = 0⇔ x = 0,3. f(λx) = |λ|f(x) (∀x ∈ Rm×n, ∀λ ∈ R),

    4. f(x+ y) ≤ f(x) + f(y) (∀x, y ∈ Rm×n).

    A norma szokásos jelölése: f(x) = ||x||.

    2.2.7. De�níció (Spektrál, vagy 2-es norma). Egy tetsz®leges A mátrix spektrálnor-

    máját az alábbi két alakban tudjuk felírni:

    ||A||2 = max||x||2=1

    ||Ax||2 =n

    maxi=1

    √λi(A∗A),

    14

  • ahol ||x||2 az x vektor euklideszi normája és λi(A∗A) az A∗A mátrix sajátértékeit jelöli.

    2.2.8. De�níció (Frobenius norma).

    ||A||F =

    √√√√ m∑i=1

    n∑j=1

    |aij|2

    2.2.9. De�níció (Ak közelít®mátrix). Legyen

    A = UDVT =

    r∑i=1

    σiuivTi

    az A mátrix szinguláris felbontása, ahol r a mátrix rangját jelöli. Ekkor:

    Ak =

    k∑i=1

    σiuivTi ,

    minden 0-nál nagyobb, r-nél kisebb egész k-ra.

    A konstrukcióból nyilvánvaló, hogy Ak rangja k. Most nézzünk egy állítást ezekre

    a kitüntetett tulajdonságokkal bíró Ak mátrixokra.

    2.2.10. Lemma. Ak sorai az A sorainak projekciói a k legnagyobb szinguláris érték-

    hez tartozó szinguláris vektorok által kifeszített Vk altérre.

    Bizonyítás. Legyen a az A egy független sorvektora. Mivel minden i-re a vi orton-

    ormált, a projekcióját Vk-ra a∑k

    i=1〈a, vi〉vTi képlet adja. Tehát a mátrixot, amineka sorai az A matrix soraiból vett projekció Vk-ra, a következ® alakba írható föl:∑k

    i=1AvivTi . Az így kapott kifejezést egyszer¶síthetjük:

    k∑i=1

    AvivTi =

    k∑i=1

    σiuivTi = Ak.

    Az alábbi tétel Carl Eckart és Gale Young nevéhez f¶z®dik, melyet és annak bi-

    zonyítását a [6] irodalomban publikálták 1936-ban. A tétel lényege, hogy megadja

    tetsz®leges r rangú mátrix 2-es és Frobenius normában vett legjobb k rangú közelíté-

    sét (k < r).

    15

  • 2.2.11. Tétel (Eckart-Young, 1936). Legyen A ∈ Rm×n, rang(A) = r, k ∈ {1, . . . , r}.Az A mátrix legjobb k rangú közelítése 2-es, illetve Frobenius normában az

    Ak =

    k∑i=1

    σiuivTi ,

    mátrix. A két mátrix távolsága kettes normában:

    ||A−Ak||2 = σk+1,

    Frobenius normában pedig:

    ||A−Ak||F =

    √√√√ r∑i=k+1

    σ2i .

    Bizonyítás. A tételt több részfeladatra szedve, segédállítások segítségével bizonyítom.

    El®ször nézzük a Frobenius normabeli legjobb közelítés tulajdonságot.

    2.2.12. Tétel. Legyen A és Ak olyan, mint ahogy fentebb de�niáltuk. Ekkor tetsz®-

    leges B legfeljebb k rangú mátrixra:

    ||A−Ak||F ≤ ||A− B||F

    Bizonyítás. Legyen B az a mátrix, ami a k, vagy kevesebb rangú mátrixok között

    minimalizálja az ||A − B||2F kifejezést. Legyen L a B sorai által kifeszített tér. MivelB minimalizálja az ||A − B||2F normát, muszáj, hogy B minden egyes sora a megfelel®

    sor projekciója legyen A-ból L-be, különben B azon sorát kicserélve a hozzá tarto-zó sor projekciójára A-ból L-be az L nem változna, (ebb®l kifolyólag a B rangjasem,) viszont csökkentené ||A − B||2F értékét. Mivel B mindegyik sora az A megfelel®

    sorának projekciója, ebb®l következik, hogy ||A − B||2F nem más, mint a távolságok

    négyzetösszege A soraitól L-ig. Viszont Ak az, ami minimalizálja a távolságok négy-zetösszegét A soraitól tetsz®leges k dimenziós altérig, ebb®l pedig következik, hogy

    ||A−Ak||F ≤ ||A− B||F.

    Beláttuk, hogy Frobenius normában a legjobban közelít® k rangú mátrixa A-nak

    Ak. Most pedig vizsgáljuk ugyan ezt kettes normában, kezdve a közelítés A-tól vett

    távolságával.

    16

  • 2.2.13. Lemma. ||A−Ak||2F =∑r

    i=k+1 σ2i

    Bizonyítás. Legyen A = UDVT és legyen Ak =∑k

    i=1 σiuivTi . Induljunk ki a két mátrix

    normabeli eltéréséb®l! Mivel ||A − Ak||F = ||UDVT − Ak||F = ||D − UTAkV ||F, legyen

    N = UTAkV egy m× n-es k rangú mátrix. N megadásából következik, hogy:

    ||D−N||2F =∑i,j

    |Di,j −Ni,j|2 =

    r∑i=1

    |σi −Ni,i|2 +∑i>r

    |Ni,i|2 +∑i 6=j

    |Ni,j|2.

    Ez az összeg akkor minimális, ha az N nem diagonális elemei mind nullák, illetve

    ha i > r esetén a diagonális elemek szintén nullával egyeznek meg. Nyilvánvalóan a∑ri=1 |σi −Ni,i|

    2 minimumát úgy kapjuk, hogy Ni,i = σi minden i = 1, . . . , , k számra

    és Ni,j = 0, bármely más i, j indexre. Ebb®l következik, hogy

    ||A−Ak||2F = ||D−N||

    2F =

    r∑i=k+1

    σ2i .

    2.2.14. Lemma. ||A−Ak||22 = σ2k+1

    Bizonyítás. Legyen A =∑r

    i=1 σiuivTi az A mátrix szinguláris felbontása. Ekkor Ak =∑k

    i=1 σiuivTi , A − Ak pedig

    ∑ri=k+1 σiuiv

    Ti . Legyen x tetsz®leges vektor. Fejezzük ki

    az x-et a v1, v2, . . . , vr vektorok lineáris kombinációjaként: x =∑r

    j=1 αivi, ahol

    α1, α2, . . . , αr tetsz®leges skalárok. Ekkor

    ||(A−Ak)x||2 =

    ∣∣∣∣∣r∑

    i=k+1

    σiuivTi

    r∑i=1

    αivi

    ∣∣∣∣∣ =∣∣∣∣∣

    r∑i=k+1

    αiσiuivTi vi

    ∣∣∣∣∣ =

    =

    ∣∣∣∣∣r∑

    i=k+1

    αiσiui

    ∣∣∣∣∣ =√√√√ r∑

    i=k+1

    α2iσ2i .

    Az x vektor úgy maximalizálja az el®bbi értéket a ||x||22 =∑r

    i=1 α2i = 1 megkötés

    mellett, hogy az αk+1-et 1-nek, a többi αi-t 0-nak választjuk, ebb®l pedig következik

    az állítás.

    Végül az állításunk igazolásához lássuk be, hogy kettes norma esetén is az Ak a

    legjobb közelítés.

    17

  • 2.2.15. Tétel. Legyen A és Ak olyan, mint ahogy fentebb de�niáltuk. Ekkor tetsz®-

    leges B legfeljebb k rangú mátrixra:

    ||A−Ak||2 ≤ ||A− B||2

    Bizonyítás. Ha az A mátrix rangja kevesebb, mint k, akkor az állítás nyilvánvaló,

    hiszen ekkor ||A − Ak||2 = 0. Legyen tehát rang(A) szigorúan nagyobb, mint k. Az

    el®z® lemma alapján ||A − Ak||22 = σ2k+1. Ezek után tegyük fel, hogy létezik olyan

    B legfeljebb k rangú mátrix, ami kettes normában jobban közelíti A-t Ak-nál. Ez

    azt jelenti, hogy ||A − B||2 < σk+1. Legyen null(B) a B nulltere, tehát azon vektorok

    halmaza, melyekre teljesül, hogy Bv = 0. Mivel a B rangja legfeljebb k, a nulltér

    dimenziója legalábbm−k. Legyen v1, v2, . . . , vk+1 az els® k+1 legnagyobb szinguláris

    vektora A-nak. A dimenziók száma miatt létezik egy z 6= 0 eleme az alábbi térnek:

    null(B) ∩ span(v1, v2, . . . , vk+1).

    Skálázzuk z-t úgy, hogy |z| = 1. Most megmutatjuk, hogy a z-re � ami az A els® k+1

    szinguláris vektora által kifeszített térben van � teljesül, hogy (A−B)z ≥ σk+1. Hiszenebb®l az következik, hogy az A − B kettes normában legalább σk+1, ami ellentmond

    annak a feltevésnek, hogy ||A− B||2 < σk+1. El®ször is tudjuk, hogy:

    ||A− B||22 ≥ ||(A− B)z||22.

    Mivel z ∈ null(B),||A− B||22 ≥ ||Az||22.

    Viszont úgy választottuk meg z-t, hogy benne legyen a v1, v2, . . . , vk+1 vektorok konvex

    burkában:

    ||Az||22 =

    ∣∣∣∣∣n∑i=1

    σiuivTi z

    ∣∣∣∣∣2

    =

    n∑i=1

    σ2i (vTi z)

    2 =

    k+1∑i=1

    σ2i (vTi z)

    2 ≥ σ2k+1k+1∑i=1

    (vTi z)2 = σ2k+1.

    Ez azt jelenti, hogy ||A − B||22 ≥ σ2k+1, ez pedig ellentmondás, hiszen feltettük, hogy||A− B||2 < σk+1.

    Beláttuk tehát, hogy ||.||2, illetve ||.||F normában Ak az A legjobb közelítése, illetve

    az eredeti és a közelít® mátrix távolságát is megállapítottuk. Így tehát a segédtételek

    segítségével a 2.2.11 tételt is beláttuk.

    18

  • Mint korábban említettem, az SVD-nek számos alkalmazása van. A korábbiakban

    láttuk a felhasználását az alacsonyabb rangú mátrixszal való közelítésben, most pedig

    az általánosított inverz konstrukciójában mutatom be a szerepét. Mindenek el®tt

    de�niáljuk az általánosított inverz fogalmát.

    2.2.16. De�níció (Általánosított inverz). Az A ∈ Cm×n mátrix Moore-Penrose-féleáltalánosított, vagy pszeudo inverze az A+ ∈ Cn×m mátrix, ha

    1. AA+ önadjungált,

    2. A+A önadjungált,

    3. AA+A = A,

    4. A+AA+ = A+.

    2.2.17. Tétel. Az A ∈ Cm×n mátrix Moore-Penrose-féle általánosított inverze egy-értelm¶.

    2.2.18. Tétel. A D ∈ Cm×n diagonális mátrix általánosított inverze a D+ ∈ Cn×m

    diagonális mátrix, ahol

    d+ii =

    {0, ha dii = 0,1dii, különben.

    Tekintsük most az Ax = b egyenletrendszert, illetve az A szinguláris felbontását.

    Ekkor:

    Ax = b⇔ Dy = c, x := Vy, c = U∗b,tehát akkor oldható meg a lineáris egyenletrendszer, ha

    • σi = 0⇒ ci = 0, ∀i ∈ (1, 2, . . . , n), az ilyen indexekre az yi-k tetsz®legesek.• i > n⇒ ci = 0.Célszer¶ a minimális normájú x megoldást kiválasztani, ami egyben a minimális

    normájú y := V∗x kiválasztását is jelenti, mivel V ortogonális mátrix. Ezt a megoldást

    úgy kapjuk, hogy az yi-t nullának vesszük a fentebb említett esetben, így y = D+c,

    amib®l pedig x-re az alábbi egyenl®séget kapjuk:

    x = VD+U∗b.

    19

  • 2.2.19. Tétel (Általánosított inverz el®állítása). A szinguláris felbontás felhasználá-

    sával az A ∈ Cm×n mátrix általánosított inverze a következ® alakban írható fel:

    A+ = VD+U∗

    Bizonyítás. Legyen rang(A) = p. Ahhoz, hogy az állítást igazoljuk, elég csak leel-

    len®rizni, hogy a konstrukciónk kielégíti e az általánosított inverz de�níciójában lév®

    feltételeket,.

    1. A+A = (VD+U∗)(UDV∗) = VD+U∗UDV∗ = V

    [Ip×p 0

    0 0

    ]V∗.

    2. AA+ = (UDV∗)(VD+U∗) = UDV∗VD+U∗ = U

    [Ip×p 0

    0 0

    ]U∗.

    3. 1. alapján: AA+A = UDV∗V

    [Ip×p 0

    0 0

    ]V∗ = UD

    [Ip×p 0

    0 0

    ]V∗ = A.

    4. 2. alapján: A+AA+ = VD+U∗U

    [Ip×p 0

    0 0

    ]U∗ = VD+

    [Ip×p 0

    0 0

    ]U∗ = A+.

    Az SVD el®állítása nehéz/számításigényes feladat (lásd kés®bb a Golub-Reinsch

    algoritmsnál). Viszont speciális esetben, ha az A mátrix teljes rangú és túlhatározott,

    akkor a feladat leegyszer¶södik:

    2.2.20. Tétel. Legyen A ∈ Cm×n, m > n és r = rang(A) = n. Ekkor

    A+ = (A∗A)−1A∗.

    A probléma abban a speciális esetben is könnyebb lesz, ha az A mátrix teljes

    rangú és alulhatározott:

    2.2.21. Tétel. Legyen A ∈ Cm|timesn, m < n és r = rang(A) = m. Ekkor

    A+ = A∗(AA∗)−1.

    Ebben a fejezetben megismerkedhettünk a szinguláris felbontás fontos tételeivel és

    tulajdonságaival, viszont a numerikus el®állításáról nem esett szó. A következ® fejezet

    erre a kérdésre ad választ.

    20

  • 2.3. Numerikus módszerek

    Ebben a fejezetben az szinguláris érték felbontás és az ahhoz kell® eljárások nume-

    rikus megoldásával fogok foglalkozni a [3] alapján. Látni fogjuk, miként tudunk nu-

    merikus módszerekkel egy mátrixot bidiagonális alakra hozni, milyen haszna van az

    SVD meghatározásában a Givens vagy Jakobi forgató mátrixokkal való szorzásnak

    illetve a Householder transzformációnak, majd végül ismeretem a Golub-Reinsch féle

    SVD algoritmust és annak különböz® tulajdonságát. Az algoritmusok mindegyikét

    leprogramoztam és az alkalmazások fejezetben fel is használom azokat. Az eljárások

    pszeudokódja megtalálható az A fejezetben.

    2.3.1. Givens forgatások

    A Givens forgatásnak komoly szerepe van a numerikus analízis számos területén,

    például sajátértékek meghatározásában, vagy a legkisebb négyzetek módszerében.

    El®ször kezdjük a 2× 2-es eset vizsgálatával.

    2.3.1. De�níció (Forgatás). Egy 2× 2-es Q ortogonális mátrixot forgatásnak neve-zünk, ha megadható az alábbi alakban:[

    cos(θ) sin(θ)

    −sin(θ) cos(θ)

    ],

    ahol θ a forgatás szöge.

    2.3.2. De�níció (Tükrözés). Egy 2× 2-es Q ortogonális mátrixot tükrözésnek neve-zünk, ha megadható az alábbi alakban:[

    cos(θ) sin(θ)

    sin(θ) −cos(θ)

    ].

    Legyen y := QTx = Qx, ahol x tetsz®leges vektortérbeli elem. Ekkor az y kiszámítható,

    mint az x vektor tükrözése az S egyenesre, ahol

    S = span

    {[cos

    (θ2

    )sin

    (θ2

    ) ]} .Láttuk kétszer kettes esetben, hogyan is néz ki egy forgató mátrix, most pedig

    nézzük általános esetben!

    21

  • 2.3.3. De�níció (Givens mátrix).

    G(i, k, θ) =

    i k

    1 · · · 0 · · · 0 · · · 0...

    . . ....

    ......

    0 · · · c · · · s · · · 0 i...

    .... . .

    ......

    0 · · · −s · · · c · · · 0 k...

    ......

    . . ....

    0 · · · 0 · · · 0 · · · 1

    , (2.3)

    ahol c = cos(θ), s = sin(θ), θ pedig a forgatás szöge.

    2.3.4. Megjegyzés.

    • A G(i, k, θ) tisztán ortogonális.

    • A G(i, k, θ)T -val történ® szorzás egy óramutató járásával ellentétes, θ szög¶ for-gatásnak felel meg az (i, k) koordinátasíkon.

    Az el®z®ekb®l az következik, hogy ha x ∈ Rn és y = G(i, k, θ)Tx, akkor az yelemeit az alábbi zárt alakban kapjuk:

    yj =

    cxi − sxk, ha j = i

    sxi + cxk, ha j = k

    xj, különben.

    Ebb®l az explicit felírásból látszik, hogy az yk kinullázható, ha

    c =xi√x2i + x

    2k

    és s =−xk√x2i + x

    2k

    .

    Így tehát egyszer¶ számítással eliminálni tudunk egy bizonyos elemet egy vektorban

    a Givens forgatás segítségével. A kés®bbiekben az SVD során ki fogjuk használni a

    forgatás ezen el®nyös tulajdonságát. El®bb viszont nézzünk egy másik fontos eljárást,

    amely segítségével megkaphatjuk tetsz®leges mátrix bidiagonális alakját.

    22

  • 2.3.2. Bidiagonalizálás Householder transzformációval

    2.3.5. De�níció (Householder-transzformáció). Legyen A ∈ Rn×n reguláris mátrix és||.||2 az euklideszi norma. Householder-transzformációnak hívunk egy olyan A → QAleképezést, ahol H szimmetrikus ér ortogonális (komplex esetben hermitikus és unitér)

    mátrix, továbbá az alábbi speciális alakban írható fel:

    H = I− cuuT ,

    ahol I := In×n az egységmátrixot jelöli, u tetsz®leges vektor, u 6= 0, és c := 2||u||2 .

    Az el®z®ek alapján tehát Householder-mátrixnak nevezünk egy olyan Rn×n belimátrixot, melyre teljesül, hogy H(v) = I − 2vvT , ahol v ∈ Rn és a vektor egységnyihosszú. Mértanilag a H(v)x = x− 2(vTx)v leképezés azt jelenti, hogy meghatározzuk

    x tükörképét egy olyan síkra, melyre mer®leges v.

    2.3. ábra. A Householder leképezés nem más, mint az x vektor tükrözése egy v-remer®leges síkra.2

    Most pedig nézzük a Householder-mátrixok tulajdonságait:

    2.3.6. Állítás.

    1. HT = H, azaz szimmetrikus,

    2. H2 = I, azaz ortogonális,

    3. H(v)v = −v,

    4. H(v)y = y, ∀y ⊥ v.2Az ábra megtalálható a [2] könyvben.

    23

  • A Householder-mátrixszal való m¶veleteknek az is nagy el®nye, hogy nem kell

    el®állítani a H(v) mátrixot, anélkül alkalmazhatjuk vektorokra:

    H(v)x = (I− 2vvT)x = x− 2vvTx.

    Ennek a meghatározásához elegend® O(n2) lépés, szemben a mátrixszal való szor-zással, amihez O(n2) m¶velet szükséges. A hatékonyság mellett sok mindenre hasz-nálható a Householder-transzformáció, például ki tudjuk számolni vele egy mátrix

    QR-felbontását, bidiagonalizálni tudunk vele, illetve a számos tulajdonsága miatt

    egyéb tükrözési eljárásokra is alkalmas. A következ® tétel azt mondja ki, hogy két

    tetsz®leges egyforma hosszú vektor egymásba vihet® Householder-tükrözéssel.

    2.3.7. Tétel. Legyen a, b ∈ Rn, a 6= b és ||a||2 = ||b||2 6= 0. Ekkor, ha

    v =a− b

    ||a− b||2⇒ H(v)a = b.

    Most pedig térjünk rá a Householder-féle bidiagonalizálásra. El®ször is de�niáljuk

    a bidiagonális mátrix fogalmát!

    2.3.8. De�níció (Bidiagonális mátrix). Egy bidiagonális B ∈ Rm×n, m, n ∈ N+

    mátrix alatt egy olyan mátrixot értünk, aminek csak a f®átlójában és a f®átló feletti

    átlóban található nem nulla érték.

    Legyen A ∈ Rm×n és m ≥ n. Ekkor A-ból a B bidiagonális mátrixot az alábbiformula adja:

    UTBAVB =

    d1 f1 0 . . . 0

    0 d2 f2 0...

    . . . . . . . . ....

    0 . . . dn−1 fn−1

    0 . . . dn

    0

    ∈ Rmxn. (2.4)

    Ebben a formulában mind UB-t, mind pedig VB-t Householder-mátrixok szorzataként

    kapjuk, azaz:

    UB = U1 · · ·Un és VB = V1 · · ·Vn−2.

    Most nézzük meg a bidiagonalizálást szemléletesen, egy 4× 4-es esetre.

    24

  • × × × ×× × × ×× × × ×× × × ×× × × ×

    U1→× × × ×0 × × ×0 × × ×0 × × ×0 × × ×

    V1→

    × × 0 00 × × ×0 × × ×0 × × ×0 × × ×

    U2→× × 0 00 × × ×0 0 × ×0 0 × ×0 0 × ×

    V2→

    × × 0 00 × × 00 0 × ×0 0 × ×0 0 × ×

    U3→× × 0 00 × × 00 0 × ×0 0 0 ×0 0 0 ×

    U4→× × 0 00 × × 00 0 × ×0 0 0 ×0 0 0 0

    (2.5)

    Ebben az el®állításban az Ui és Vi mátrixokkal ha megszorozzuk az eredeti mátrixot

    (balról UTi -tal, jobbról Vi-vel), akkor a megfelel® sor illetve oszlop f®átló utáni második

    elemt®l kezdve illetve f®átló alól az elemek nullára változnak. Alapvet®en az Uk-k

    felel®sek a k. oszlopba bevezetett nullákért, a Vk-k pedig a k. sorba bevezetettekért.

    A bidiagonális alak eléréséhez 4mn2− 4n3/3 lépésre van szükség. A teljes algoritmus

    megtalálható az A fejezet 2 részében.

    2.3.3. Golub-Reinsch algoritmus

    Ebben a fejezetben elérkeztünk a Golub-Reinsch féle SVD algoritmushoz. Az algorit-

    mus célja egy tetsz®leges A mátrix szinguláris érték szerinti felbontásának meghatá-

    25

  • rozása. Az els® lépés, hogy írjuk fel A-t bidiagonális alakban:

    UTBAVB =

    [B

    0

    ]B =

    d1 f1 0 . . . 0

    0 d2 f2 0...

    . . . . . . . . ....

    0 . . . dn−1 fn−1

    0 . . . dn

    ∈ Rmxn.

    A fennmaradó probléma tehát kiszámolni a B mátrix szinguláris felbontását. Ehhez

    alkalmazzuk egy implicit-shift QR lépést a T = BTB tridiagonális mátrixra.

    2.3.9. De�níció (Implicit szimmetrikus QR lépés Wilkinson shifteléssel). Adott egy

    T ∈ Rn×n redukált szimmetrikus tridiagonális mátrix. A de�niált lépés átalakítja T -tegy ZTTZ mátrixszá, ahol Z = G1 · · ·Gn−1 a Givens forgatások eredménye azzal atulajdonsággal, hogy ZT(T −µI) fels® háromszög mátrix, µ pedig a T mátrix f®átlójára

    illeszked® 2x2-es záró részmátrixának T(n,n) = tnn-hez közelebbi sajátértéke.

    Legyen tehát a BTB = T legalsó, f®átlóra illeszked® 2x2-es részmátrixának, azaz

    T(n− 1 : n, n− 1 : n) =

    [d2n−1 + f

    2n−2 dn−1fn−1

    dn−1fn−1 d2n + f

    2n−1

    ](2.6)

    mátrixnak a d2n+ f2n−1-hez közelebbi sajátértéke µ. Most számítsuk ki a c1 = cos(θ1)

    és s1 = sin(θ1) értékeket aszerint, hogy[c1 s1

    −s1 c1

    ]T [d21 − µ

    d1f1

    ]=

    [x

    0

    ],

    ahol x egy nem nulla elemet jelöl. Legyen továbbá G1 = G(1, 2, θ1). A további

    G2, . . . , Gn−1 forgatómátrixot aszerint számoljuk ki, hogy ha Q = G1 · · ·Gn−1, ak-kor QTTQ tridiagonális és Qe1 = G1e1. Szorozzuk most be a B mátrixot a G1 forgató

    mátrixszal! A keletkezett BG1 mátrixba bekerül a f®átló alá egy nem nulla elem.

    26

  • Nézzük az alábbi egyszer¶, 6× 6-os esetet.

    B← BG1 =

    × × 0 0 0 0+ × × 0 0 00 0 × × 0 00 0 0 × × 00 0 0 0 × ×0 0 0 0 0 ×

    (2.7)

    Ehhez pedig ki tudjuk számolni az U1, V2, U2,. . . , Vn−1 és Un−1 mátrixokat, hogy

    segítségükkel eltüntessük a nem kívánt elemet.

    B← UT1B =

    × × + 0 0 00 × × 0 0 00 0 × × 0 00 0 0 × × 00 0 0 0 × ×0 0 0 0 0 ×

    B← BV2 =

    × × 0 0 0 00 × × 0 0 00 + × × 0 00 0 0 × × 00 0 0 0 × ×0 0 0 0 0 ×

    B← UT2B =

    × × 0 0 0 00 × × + 0 00 0 × × 0 00 0 0 × × 00 0 0 0 × ×0 0 0 0 0 ×

    (2.8)

    És így tovább. Az UTi mátrixokkal balról, míg a Vi-kkel jobbról szorozva egy új B

    27

  • bidiagonális mátrixot kapunk, amit az alábbi módon lehet meghatározni:

    B = (UTn−1 · · ·UT1)B(G1V2 · · ·Vn−1) = UTB V.

    Mivel minden Vi-re teljesül, hogy Vi = G(i, i + 1, θi) (i = 2, . . . n − 1) ebb®l követ-

    kezik, hogy Ve1 = Qe1. Az implicit Q tétel miatt feltehetjük, hogy V és Q teljesen

    megegyezik. Így implicit át tudjuk alakítani T -t T -vé, ha direktbe csak a B mátrix-

    szal dolgozunk. Persze ahhoz, hogy tartsuk ezeket az állításokat, szükségszer¶, hogy

    a tridiagonális mátrixunk redukált legyen. Ez azt jelenti, hogy meg kell néznünk, mi

    történik, ha a B valamely diagonális vagy szuperdiagonális eleme nulla. Ha a f®átló

    feletti k. elem 0 (fk, k < n), akkor a B felbontható[B1 0

    0 B2

    ]

    alakba, ahol B1 k×k-as, B2 pedig n−k×n−k-as bidiagonális mátrix, így az eredetifeladat két részre bomlik. Ha valamely digonális dk elem lenne 0, akkor viszont a

    mellette lév® diagonális elem kinullázható Givens forgatásokkal, így szintén két rész-

    feladatra bomlik az eredeti probléma.

    A Golub-Reinsch algoritmus egyik legmeghatározóbb része a Golub-Kahan lépés. Egy

    bidiagonális B mátrixból indul ki, aminek sem a diagonális, sem a f®átló feletti átló

    nem tartalmaz nullát. Az algoritmus a (2.6) egyenl®séggel de�niált µ sajátértékb®l

    indul ki, majd n− 1 lépés követi, a k. lépésben kiszámolja az aktuális G(k, k+ 1, θ)

    forgatómátrixot, szorozza a jelenlegi B-t jobbról vele, majd újraszámolja a G-t és

    balról is megszorozza B-t a Givens mátrix transzponáltjával. Az Golub-Kahan lépés

    a B-b®l egy B = UB VT mátrixot konstruál, melynek a f®átlón kívüli elemeinek a

    négyzetösszege csökken a B-beli négyzetösszeghez képest.Hatásosan implementálva

    az eljárás 30n lépésben tárolja a B ritka mátrix elemeit, 6mn lépés szükséges U, 6n2

    lépés pedig V meghatározásához.

    Tipikusan a fenti eljárás néhány egymásutáni alkalmazása során az fn−1, azaz a leg-

    alsó szuperdiagonális elem elhanyagolhatóvá válik. Az elhanyagolhatóság határát az

    alábbi egyenl®tlenségek adják.

    |fi| ≤ �(|di|+ |di+1|)

    |di| ≤ �||B||,(2.9)

    28

  • ahol � rögzített, alacsony érték¶ szám.

    A Golub-Reinsch SVD a fejezetben de�niált algoritmusokat ötvözi egyben. A be-

    menetünk egy tetsz®leges A mátrix. Els® lépésben ezt bidiagonalizáljuk. Majd amíg

    nem lesz a kapott B mátrix diagonális, a következ®ket tesszük:

    1. Végignézzük a szuperdiagonális elemeket és ha a (2.9) feltétel alapján elhanya-

    golhatónak bizonyul, akkor nullává alakítjuk.

    2. Ezután B =

    B11 0 00 B22 00 0 B33

    alakban írható fel, ahol B33 q × q-s diagonálismátrix, B22 f®átló feletti átlójában pedig van nem nulla elem.

    3. Ha B22 bármely diagonális eleme 0, akkor a mellette lev® szuperdiagonális elemet

    elimináljuk, ha nincs ilyen 0 érték¶ diagonális elem, akkor pedig alkalmazzuk

    B22-re a Golub-Kahan lépést.

    Végül megkapjuk az U és V ortogonális, illetve D diagonális mátrixok egy jó közelí-

    tését.

    29

  • 3. fejezet

    Alkalmazások

    Az el®z® fejezetben megismerkedtünk a szinguláris érték szerinti felbontással, annak

    tulajdonságaival és egy lehetséges el®állításával, ebben a fejezetben pedig néhány

    alternatív alkalmazását fogom szemléltetni.

    3.1. Tömörítés

    Tömörítés során a célunk nem más, mint az adatok feldolgozása oly módon, hogy

    lehet®leg minél kevesebb tárhelyet kelljen használnunk. Ez általában akkor valósítható

    meg, ha az adat redundáns.

    3.1. ábra. Az eredeti kép.

    Mint említettem, egy képet meg lehet feleltetni egy Rm×n-es mátrixnak, ahol amátrix i-edik sorának j-edik eleme reprezentálja a kép adott pixelének a színét/intenzitását.

    30

  • Legyen A mátrix a 3.1 ábra reprezentációja:

    A :=

    a1,1 a1,2 · · · a1,na2,1 a2,2 · · · a2,n

    ......

    . . ....

    an,1 an,2 · · · an,n

    .

    Az egyszer¶ség kedvéért szürkeárnyalatos képet vizsgálunk, azaz ai,j ∈ (0, 1, . . . , 255).Alakítsunk 1×2-es blokkokat az A mátrix szomszédos elemeib®l, majd pedig ábrázol-juk azokat koordináta rendszerben. Egy pont els® koordinátája tehát a páros baloldali

    értéke, a második koordináta pedig a páros jobboldali értéke. Általában egy képen

    az egymás melletti pixelek nagy valószín¶séggel azonos szín¶ek, így a pontok nagy

    része az identitás környékére fog esni. Mivel a szomszédos pixelek er®sen korrelálnak,

    0 50 100 150 200 2500

    50

    100

    150

    200

    250

    (a) standard koordináta rendszerben

    0 50 100 150 200 250 300 350-100

    -80

    -60

    -40

    -20

    0

    20

    40

    60

    80

    100

    (b) transzformált bázissal

    3.2. ábra. Az ábrázolt pontok különböz® koordináta rendszerekben.

    így célszer¶ nem a hagyományos, [0, 1], [1, 0] bázisú koordináta rendszerben ábrázolni

    a pontokat, hanem valamilyen másik transzformált koordináta rendszerben. Látszik,

    hogy a hagyományos kanonikus bázist használva mind a páros, mind pedig a párat-

    lan pixelek kihasználják a teljes [0, . . . , 255] tartományt. Viszont ha az elforgatott

    rendszert nézzük, észrevehet®, hogy a páros index¶ pixelek lényegében a [−40, 40]

    intervallumra koncentrálódnak. A transzformáció nem más, mint a 2.3.1 fejezetben

    taglalt Givens forgató mátrix. Alapvet®en a transzformációval még nem érnénk el

    tömörítést, azonban, mivel a páros index¶ pontok a [−40, 40]-be esnek, így ezeket

    6 biten tárolva olyan közelítést kapunk, melynek `2 normában hibája kicsi. Ezt a

    két dimenziós módszert ki tudjuk terjeszteni hasonlóan n dimenzióra is. Ekkor egy

    pont nem két változóból fog állni (egymás melletti pixelek), hanem maga a kép lesz.

    31

  • Ezt úgy érjük el, hogy a reprezentáló mátrixot vektorizáljuk, azaz sorfolytonosan egy

    nm× 1-es vektorba illesszük az értékeket.

    Legyen M a képek száma, N = 640 ∗ 480 a képek mérete. Ekkor MN adatot ké-ne eltárolnunk. Ehelyett alkalmazhatjuk a következ® lépéseket: válasszunk ki néhány

    képet, ezen képek halmazát nevezzük tanítóhalmaznak, melynek elemszáma k. Meg-

    jegyezzük, hogy akár az összes képet választhatnánk, ekkor a teljes adatbázisunk

    tanítóhalmaz lenne. A 2.1.2 jelöléseket használva legyen a tanítóhalmaz i. vektorizált

    képe xi ∈ RN (1 ≤ i ≤ k). Az ezekb®l készített RN×k mátrix pedig X = [x1, x2, . . . , xk].Alkalmazzuk a 2.1.2 fejezetben leírt f®komponens analízis technikáját az X mátrixra.

    Ebben az esetben a kovariancia mátrix közelítéséhez használt XXT ∈ RN×N mátrixolyan nagy, hogy a szorzást el sem tudjuk végezni. Ezért a PCA-t a 2.2 fejezetben

    bemutatott szinguláris érték szerinti felbontáson keresztül implementáljuk. Az így

    nyert SVD-ben vegyük a keletkez® l darab legnagyobb szinguláris értékéhez tarto-

    zó szinguláris vektort. A 2 fejezet alapján X ≈∑l

    i=1〈Xi, Vi〉Vi, ahol V az SVD-b®lkapott nagyobbik ortogonális mátrix. Ekkor ez az összeg nem más, mint egy projek-

    ció span(V1, V2, . . . , Vl)-re. Nekünk a kovariancia mátrixra van szükségünk, viszont

    az el®z® fejezetben azt is beláttuk, hogy a kovariancia mátrixot jól tudjuk közelíte-

    ni az 1kXXT -tal. Így tehát összesen az NM adat helyett elegend® l darab szinguláris

    vektort, illetve Ml darab 〈Xi, Vi〉 együtthatót tárolni. Nézzünk egy példát a [8] hon-lapról felhasznált Yale adatbázisból,amely 165 darab 64 × 64 pixeles képet tartalmaz.Ebb®l legyen mondjuk 30 elem¶ a tanítóhalmaz és nézzük az egyik kép közelítését

    3.3. ábra. Az els® 20 saját arc.

    32

  • úgy, hogy mindössze 20 szinguláris vektort használunk. A 3.3 ábrán láthatjuk az el-

    s® 20 saját arc ábráját (angolul: eigenfaces). A 3.4 ábrán láthatóak az eredeti kép

    közelítései 1,2,. . . ,20 szinguláris vektor esetén. Érdemes meg�gyelni, hogy az els® 5

    szinguláris vektor használatánál még igen nagy a hiba, szinte teljesen más alakot

    látunk, mint a kés®bbi képeken. Az els® 10-nél valamivel kisebb a hiba, már kezd

    3.4. ábra. A kép közelítése 1. . . 20 szinguláris vektor használatával.

    hasonlítani a közelítés az eredeti képhez. Viszont 15 sajátvektortól kezdve már szinte

    teljesen azonos képeket kapunk. Tehát ha tömöríteni szeretnénk, akkor elég csak a 20

    legnagyobb szinguláris értékhez tartozó szinguláris vektort eltárolni, illetve minden

    képhez a skalárszorzatból keletkezett együtthatókat.

    3.2. Adatsimítás

    A zaj az eredetit®l eltér® frekvenciájú és intenzitású jelek összessége, melyek gondot

    okozhatnak, hiszen általában távol vannak a valós értékekt®l. A zajok eltüntetésére

    több módszer is van, az egyik ilyen az adatsimítás. Ez egy eljárás, mely a kiugró

    értékeket a szomszédos adatok alapján módosítja. Nézzünk egy példát adatsimításra!

    Adott egy EKG felvétel, amely 60 szívütést tartalmaz, ezt szeretnénk zajmentesíteni.

    A tömörítés problémájához hasonlóan, használni tudjuk az SVD-t. Most egy dimen-

    ziós adatsorozatokkal dolgozunk, tehát nem kell vektorizálni. Az X mátrix oszlopai

    az EKG jelek szívütései. Tekintsünk két különböz® esetet egy-egy szívverésre! Az els®

    33

  • 0 50 100 150 200 250 300 350 400-2

    0

    2

    4

    6

    8

    10

    (a) A jel közelítése 3 sajátvektorral.

    0 50 100 150 200 250 300 350 400-2

    0

    2

    4

    6

    8

    10

    (b) A jel közelítése 10 sajátvektorral.

    3.5. ábra. EKG jelek simítása.

    esetben közelítsünk 3 sajátvektorral, a második esetben pedig 10 sajátvektorral. A

    3.5 ábrán kékkel van jelölve az eredeti, zajos jel, pirossal pedig a közelítésünk. Lát-

    szik, hogy a kék görbe tele van apró zajokkal, "recékkel". Meg�gyelhet®, hogy már 3

    sajátvektort használva a jel kell®en sima, csak néhol van az eredeti gra�kontól eltérés,

    10 sajátértékre viszont már szinte teljesen pontos a közelítés. Tehát ebben az esetben

    simítás mellett tömörítést is kaptunk. A pontos alkalmazásáról és egyéb részletekr®l

    a [10] irodalomban olvashatunk.

    3.3. Arcképek osztályozása

    Az arckép osztályozási feladat a következ®képpen írható fel: Adott egy arcképadatbá-

    zis és szeretnénk eldönteni, hogy egy adott kép benne van e az adatbázisban. Például

    adott egy kaszinó tagjainak az arcképeit tartalmazó adatbázis és meg szeretnénk ha-

    tározni, hogy egy jelenleg megjelen® személynek van e tagsága a klubba, vagy sem.

    El®ször a pixelenkénti összehasonlítás jutna az eszünkben, viszont ez több okból sem

    járható út: el®ször is rettent®en m¶veletigényes, hiszen minden kép minden pixelé-

    vel össze kéne hasonlítani, ebb®l kifolyólag lassú is, az esetleges kaszinótagunknak

    kiábrándítóan sokat kéne várnia. Másrészr®l pontosnak sem mondható, hiszen más

    fényviszonyok mellett teljesen eltér®ek lesznek a pixelek, illetve azt is �gyelembe kell

    vennünk, hogy a képet az eredetit®l különböz® pozícióban is rögzíthetjük. A meg-

    oldást a szinguláris felbontás szolgáltatja: transzformáljuk másik térbe az adatokat,

    és vegyünk a kép szinguláris érték szerinti felbontását. A megkapott szinguláris fel-

    bontás legnagyobb k darab szinguláris értékéhez tartozó szinguláris vektorok által

    34

  • meghatározott 〈xi, vi〉 skalárszorzatokat hasonlítjuk össze az adatbázisunk képeinekhasonló skalárszorzataival. Ha a skalárszorzatok eltérése, azaz a hiba kettes normában

    valamilyen rögzített � értéknél kisebb, akkor elfogadjuk a képet, tehát a vendégünk

    nyugodt szívvel léphet a játékok mezejére, ha viszont nagyobb annál, akkor eluta-

    sítjuk azt, tehát sajnálatos módon távoznia kell. Az eljárást dimenziócsökkentésnek

    nevezzük, mivel az adatot alacsonyabb dimenzióba transzformáltuk.

    3.4. Kitekintés

    Ebben a fejezetben az SVD egy alternatív el®állításáról lesz szó. Az úgynevezett

    2DSVD egy kétdimenziós változata a szinguláris felbontásnak. Hasonlóan de�niál-

    hatjuk a kétdimenziós SVD-t 2D-s objektumokra, mint ahogyan azt tettük az SVD-

    vel a 1D-s vektorokra. Legyenek X1, . . . , Xn az eredeti képeket reprezentáló Rr×c-esmátrixok. De�niáljuk az átlagolt sor-sor és oszlop-oszlop kovariancia mátrixokat a

    következ®képp:

    F =

    n∑i=1

    (Xi − X)(Xi − X)T ,

    G =

    n∑i=1

    (Xi − X)T(Xi − X),

    Ahol X az Xi-k mintaátlaga. Ekkor F az XXT -nak, G pedig XTX-nek felel meg. Legyen

    Uk az F els® k legnagyobb sajátvektorát tartalmazó mátrix, Vs pedig tartalmazza a

    G els® s darab legnagyobb sajátvektort. Ekkor:

    F =

    r∑`=1

    λ`u`uT` , Uk ≡ (u1, . . . , uk);

    G =

    c∑`=1

    ξ`v`vT` , Vs ≡ (v1, . . . , vs).

    Ezek alapján de�niáljuk következ®képpen az SVD kiterjesztését kétdimenziós objek-

    tumokra:

    X̃ = UkMiVTs , Mi = U

    TkXiVs, i = 1, . . . , n.

    A standard SVD esetében az Uk biztosítja a közös alteret, amelyre végezzük az egy-

    dimenziós vektorok projekcióit. A 2DSVD esetében hasonlóan, az Uk és Vs mátrixok

    jelentik a projekciós alterét a 2D-s objektumoknak. Fontos észrevétel, hogy a két-

    dimenziós szinguláris felbontásban szerepl® Mi mátrixnak nem kell diagonálisnak

    35

  • lennie, szemben az SVD-vel, ahol a Σk diagonális volt. Kísérletek igazolják, hogy az

    arcképek osztályozása esetén a 2DSVD hasonlóan hatékony tud lenni, mint az SVD.

    Viszont nagy el®nye, hogy sokkal kevesebb tárhelyet igényel, ugyanis míg a szinguláris

    felbontás esetén M darab m ∗ n pixel¶ képnél M ×mn nagyságú volt a probléma,a 2DSVD-nél viszont ez a probléma redukálódik m × n nagyságúra. Megjegyzem,hogy a 2.2 fejezetben ismertetett Eckart-Young tételek analóg változatai beláthatóak

    a 2DSVD-re is. B®vebben lásd a [9] cikkben.

    36

  • A. függelék

    Algoritmusok

    Algorithm 1 Householder1: function Householder(x)2: n = length(x)3: σ = x(2 : n)Tx(2 : n)4: v = [1, x(2 : n)]T

    5: if σ = 0 then6: β = 07: elsey4 < y38: µ =

    √||x||22 + σ

    9: if ||x||2 ≤ 0 then10: ||v||2 = ||x||2 − µ11: else12: ||v||2 = −σ/(||x||+ µ)13: end if14: β = 2||v||22/(σ+ ||v||

    22)

    15: v = v/||v||216: end if17: return v, β18: end function

    37

  • Algorithm 2 Bidiagonalization1: function Bidiag(A)2: for j = 1 : n do3: [v, β] = Householder(A(j : m, j))4: A(j : m, j : n) = (Im−j+1 − βvv

    T)A(j : m, j : n)5: A(j+ 1 : m, j) = v(2 : m− j+ 1)6: if j ≤ n− 2 then7: [v, β] = Householder(A(j, j+ 1 : n)T)8: A(j : m, j+ 1 : n) = A(j : m, j+ 1 : n)(In−j − βvv

    T)9: A(j, j+ 2 : n) = v(2 : n− j)T

    10: end if11: end for12: end function

    Algorithm 3 Givens Rotation1: function Givens(a, b)2: if b = 0 then3: c = 1; s = 04: else5: if |b| > |a| then6: r = −a/b7: s = 1/

    √1+ r2

    8: c = sr9: else

    10: r = −b/a11: c = 1/

    √1+ r2

    12: s = cr13: end if14: end if15: return c, s16: end function

    38

  • Algorithm 4 Golub-Kahan Step1: function GKS(B)2: Let µ be the eigenvalue of the trailing 2-by-2 submatrix of T = BTB3: that is closer to tnn.4: y = t11 − µ5: z = t126: for k = 1 : n− 1 do7: Determine c = cos(θ) and s = sin(θ) from y and z8: B = BG(k, k+ 1, θ)9: y = bkk

    10: z = bk+1,k11: Determine c = cos(θ) and s = sin(θ) from y and z12: B = G(k, k+ 1, θ)TB13: if k < n− 1 then14: y = bk,k+115: z = bk,k+216: end if17: end for18: end function

    Algorithm 5 Golub-Reinsch SVD1: function SVD(A)2: [U,B, V ] = Bidiag(A)3: while q = n do4: for i = 1 : n do5: Set bi,i+1 to zero if |bi,i+1| ≤ �(|bii|+ |bi+1,i+1|)6: end for7: Find the smallest p and the largest q such that if

    8: B =

    B11 0 00 B22 00 0 B33

    9: then B33 is diagonal and B22 has nonzero superdiagonal.

    10: if q < n then11: if any diagonal entry in B22 is zero then12: zero the superdiagonal entry in the same row13: else14: apply Golub-Kahan step to B22,15: B = diag(Ip, U, Iq+m−n)TB diag(Ip, V, Iq)16: end if17: end if18: end while19: return U, B, V20: end function

    39

  • Irodalomjegyzék

    [1] Gergó L., Numerikus módszerek, ELTE Eötvös Kiadó, Budapest, 2010.

    [2] G. Stoyan, Takó G., Numerikus módszerek 1., Typotex, Budapest, 2005.

    [3] G. H. Golub and C. F. Van Loan,Matrix Computations, Johns Hopkins University

    Press, Baltimore, USA, 1996.

    [4] K. R. Rao., The Transform and Data Compression Handbook, CRC Press, New

    York, USA, 2001.

    [5] R. O. Duda, P. E. Hart, D. G. Stork, Pattern Classi�cation, Second Edition,

    Wiley-Interscience Press, USA, 2000.

    [6] C. Eckart, G. Young, "The approximation of one matrix by another of lower rank",

    Psychometrika, vol. 1, no. 3, pp. 211-218, Chicago, Illinois, 1936.

    [7] P. N. Tan, M. Steinbach, V. Kumar, "Introduction to Data Mining", Addison-

    Wesley Longman Publishing Co., Inc., Boston, Massachusetts, 2005.

    [8] Four face databases in matlab format, Zhejiang University, China.

    http://www.cad.zju.edu.cn/home/dengcai/Data/FaceData.html

    [9] C. Ding and J. Ye, "Two-Dimensional Singular Value Decomposition (2DSVD)

    for 2D Maps and Images", Proc. SIAM Int'l Conf. Data Mining (SDM'05), pp.

    32-43, October 3, 2004.

    [10] F. Castells, P. Laguna, L. Sörnmo, A. Bollmann and J. M. Roig, "Principal

    Component Analysis in ECG Signal Processing", EURASIP Journal on Advances

    in Signal Processing, vol. 2007, pp. 98-119, 2007.

    40