41

A szinguláris érték felbontás alkalmazásai a jel- és ... - www ......leket, EKG jeleket, röntgen agyv CT képeket. Ilyen magas igények mellett jogosan lehet kíváncsi az ember,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

jel- és képfeldolgozásban
Témavezet®: Kovács Péter Tanársegéd ELTE IK Numerikus Analízis Tanszék
Budapest, 2016
2.1.2. PCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3. Numerikus módszerek . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1. Givens forgatások . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.3. Golub-Reinsch algoritmus . . . . . . . . . . . . . . . . . . . . 25
2
Köszönetnyilvánítás
Ezúton szeretném megköszönni témavezet®mnek, Kovács Péternek, hogy elvállalta a konzulensi 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
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. EckartYoung 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.
kódok és a példaprogramok a csatolt CD mellékleten elérhet®ek.
5
2.1. Deníciók, problémafelvetés
Ez a fejezet a fontos dení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. Deníció. Legyen (Z, ||.||) Banach-tér, Y ⊂ Z, továbbá legyen b ∈ Z. Ekkor azt 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 az
alá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 legjobban
közelít® elemet:f ′ = ∑n
i=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 a vektor vetülete az altérre, azaz a ProjH v.
1
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:
7
Ortonormált rendszer esetén, mivel gi, gi = 1, a fenti egyenl®ség egyszer¶södik:
f ′ =
n∑ j=1
f, gigi
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) =
(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ált
valószín¶ségi vektorváltozó, mely teljesíti a fent említett feltételt:
Cy = E(YY T) = 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 dení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 1 n XXT 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 az 1 n XXT -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 gradiens
operá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
2 log [ (2π)d|Σ|
∇θ 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.
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
[ 1 θ2 (Xk − θ1)
A likelihood egyenlet miatt a teljes log-likelihood függvényre teljesül, hogy
n∑ k=1
θ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
(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 1 n XXT 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 lenne
szü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.
A szinguláris érték felbontást (angolul Singular Value Decomposition, SVD) eredeti-
leg a dierenciá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
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-beli má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. Dení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ális
mátrixok.
2.2.2. Dení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. Deníció (Szinguláris vektor). A felbontásból kapott U és V oszlopait bal-,
illetve jobboldali szinguláris vektoroknak nevezzük.
Fentebb deniá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 szemidenit, 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)) =
] .
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.
−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:
,
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 deniálom a mátrixnorma fogalmát, illetve annak
el®bb említett két speciális esetét.
2.2.6. Deníció (Mátrixnorma). Az f : Rm×n → R függvényt mátrixnormának ne-
vezzük, ha
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. Dení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
max i=1
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. Deníció (Frobenius norma).
||A||F =
A = UDVT =
r∑ i=1
σiuiv T i
az A mátrix szinguláris felbontása, ahol r a mátrix rangját jelöli. Ekkor:
Ak =
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=1a, vivTi képlet adja. Tehát a mátrixot, aminek
a sorai az A matrix soraiból vett projekció Vk-ra, a következ® alakba írható föl:∑k i=1Aviv
T i . Az így kapott kifejezést egyszer¶síthetjük:
k∑ i=1
Aviv T i =
k∑ i=1
σiuiv T i = 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 =
||A−Ak||2 = σk+1,
Frobenius normában pedig:
||A−Ak||F =
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 deniá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. Mivel
B 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 rangja
sem,) 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
i=k+1 σ 2 i
Bizonyítás. Legyen A = UDVT és legyen Ak = ∑k
i=1 σiuiv T i . 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
|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∑r i=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|| 2 F = ||D−N||2F =
r∑ i=k+1
2 k+1
Bizonyítás. Legyen A = ∑r
i=1 σiuiv T i az A mátrix szinguláris felbontása. Ekkor Ak =∑k
i=1 σiuiv T i , A − Ak pedig
∑r i=k+1 σiuiv
T i . 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
||(A−Ak)x||2 =
i=k+1
α2iσ 2 i .
Az x vektor úgy maximalizálja az el®bbi értéket a ||x||22 = ∑r
i=1 α 2 i = 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 deniá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|| 2 2 = σ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. Hiszen ebb®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:
2 =
2 ≥ σ2k+1 k+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
deniáljuk az általánosított inverz fogalmát.
2.2.16. Dení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
{ 0, ha dii = 0, 1 dii , különben.
Tekintsük most az Ax = b egyenletrendszert, illetve az A szinguláris felbontását.
Ekkor:
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.
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 deníciójában lév®
feltételeket,.
1. A+A = (VD+U∗)(UDV∗) = VD+U∗UDV∗ = V
[ Ip×p 0
[ Ip×p 0
[ Ip×p 0
[ 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. Dení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. Dení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
( θ 2
) ]} . Láttuk kétszer kettes esetben, hogyan is néz ki egy forgató mátrix, most pedig
nézzük általános esetben!
G(i, k, θ) =
... ...
. . . ...
...
... ...
... . . .
...
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 y
elemeit az alábbi zárt alakban kapjuk:
yj =
xj, különben.
Ebb®l az explicit felírásból látszik, hogy az yk kinullázható, ha
c = xi√ x2i + x
2 k
Í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. Dení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 → QA
leké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 beli
mátrixot, melyre teljesül, hogy H(v) = I − 2vvT , ahol v ∈ Rn és a vektor egységnyi
hosszú. 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-re mer®leges síkra.2
Most pedig nézzük a Householder-mátrixok tulajdonságait:
2.3.6. Állítás.
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 deniáljuk
a bidiagonális mátrix fogalmát!
2.3.8. Dení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ábbi
formula adja:
0 . . . dn
Ebben a formulában mind UB-t, mind pedig VB-t Householder-mátrixok szorzataként
kapjuk, azaz:
Most nézzük meg a bidiagonalizálást szemléletesen, egy 4× 4-es esetre.
24
V1→
V2→
U3→ × × 0 0
U4→ × × 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 =
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. Deníció (Implicit szimmetrikus QR lépés Wilkinson shifteléssel). Adott egy
T ∈ Rn×n redukált szimmetrikus tridiagonális mátrix. A deniált lépés átalakítja T -t
egy ZTTZ mátrixszá, ahol Z = G1 · · ·Gn−1 a Givens forgatások eredménye azzal a
tulajdonsá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
dn−1fn−1 d2n + f 2 n−1
] (2.6)
mátrixnak a d2n+ f 2 n−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
] ,
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
B← BG1 =
(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 =


(2.8)
És így tovább. Az UTi mátrixokkal balról, míg a Vi-kkel jobbról szorozva egy új B
27
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 eredeti
feladat 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 deniá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.
|di| ≤ ε||B||, (2.9)
ahol ε rögzített, alacsony érték¶ szám.
A Golub-Reinsch SVD a fejezetben deniá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 0
0 B22 0
0 0 B33
alakban írható fel, ahol B33 q × q-s diagonális
má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
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 a
mátrix i-edik sorának j-edik eleme reprezentálja a kép adott pixelének a színét/intenzitását.
30
A :=
.
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 250 0
50
100
150
200
250
-80
-60
-40
-20
0
20
40
60
80
100
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átrix
olyan 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=1Xi, ViVi, ahol V az SVD-b®l
kapott 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 1 k XXT -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 meggyelni, 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
0 50 100 150 200 250 300 350 400 -2
0
2
4
6
8
10
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". Meggyelhet®, hogy már 3
sajátvektort használva a jel kell®en sima, csak néhol van az eredeti grakontó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
hasonló 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 deniá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-es mátrixok. Deniáljuk az átlagolt sor-sor és oszlop-oszlop kovariancia mátrixokat a
következ®képp:
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 =
G =
Ezek alapján deniáljuk következ®képpen az SVD kiterjesztését kétdimenziós objek-
tumokra:
T kXiVs, 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
Algoritmusok
Algorithm 1 Householder 1: function Householder(x) 2: n = length(x) 3: σ = x(2 : n)Tx(2 : n) 4: v = [1, x(2 : n)]T
5: if σ = 0 then 6: β = 0 7: elsey4 < y3 8: µ =
√ ||x||22 + σ
9: if ||x||2 ≤ 0 then 10: ||v||2 = ||x||2 − µ 11: else 12: ||v||2 = −σ/(||x||+ µ) 13: end if 14: β = 2||v||22/(σ+ ||v||22) 15: v = v/||v||2 16: end if 17: return v, β 18: end function
37
Algorithm 2 Bidiagonalization 1: function Bidiag(A) 2: for j = 1 : n do 3: [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 then 7: [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 if 11: end for 12: end function
Algorithm 3 Givens Rotation 1: function Givens(a, b) 2: if b = 0 then 3: c = 1; s = 0 4: else 5: if |b| > |a| then 6: r = −a/b 7: s = 1/
√ 1+ r2
10: r = −b/a 11: c = 1/
√ 1+ r2
12: s = cr 13: end if 14: end if 15: return c, s 16: end function
38
Algorithm 4 Golub-Kahan Step 1: function GKS(B) 2: Let µ be the eigenvalue of the trailing 2-by-2 submatrix of T = BTB 3: that is closer to tnn. 4: y = t11 − µ 5: z = t12 6: for k = 1 : n− 1 do 7: Determine c = cos(θ) and s = sin(θ) from y and z 8: B = BG(k, k+ 1, θ) 9: y = bkk
10: z = bk+1,k 11: Determine c = cos(θ) and s = sin(θ) from y and z 12: B = G(k, k+ 1, θ)TB 13: if k < n− 1 then 14: y = bk,k+1 15: z = bk,k+2 16: end if 17: end for 18: end function
Algorithm 5 Golub-Reinsch SVD 1: function SVD(A) 2: [U,B, V ] = Bidiag(A) 3: while q = n do 4: for i = 1 : n do 5: Set bi,i+1 to zero if |bi,i+1| ≤ ε(|bii|+ |bi+1,i+1|) 6: end for 7: Find the smallest p and the largest q such that if
8: B =
9: then B33 is diagonal and B22 has nonzero superdiagonal.
10: if q < n then 11: if any diagonal entry in B22 is zero then 12: zero the superdiagonal entry in the same row 13: else 14: apply Golub-Kahan step to B22, 15: B = diag(Ip, U, Iq+m−n)
TB diag(Ip, V, Iq) 16: end if 17: end if 18: end while 19: return U, B, V 20: 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 Classication, 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