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