• No results found

Efektivita uloˇ zen´ı dat pomoc´ı hierarchick´ eho Tuckerova rozkladu

Pˇri pr´aci s tenzory jsme ˇcasto omezeni t´ım, ˇze tenzor obsahuj´ıc´ı velk´e mnoˇzstv´ı prvk˚u nelze kv˚uli vysok´ym pamˇet’ov´ym n´arok˚um uloˇzit v poˇc´ıtaˇci. Z tohoto d˚uvodu vznikla cel´a ˇrada r˚uzn´ych algoritm˚u, tenzorov´ych rozklad˚u, umoˇzˇnuj´ıc´ı tenzor uloˇzit pomoc´ı menˇs´ıch objekt˚u s v´yznamnou ´usporou pamˇeti. K nim zˇrejmˇe patˇr´ı i Tuc-ker˚uv rozklad a hierarchick´y Tucker˚uv rozklad. V t´eto ˇc´asti chceme porovnat, kolik pamˇeti uˇsetˇr´ıme, budeme-li s takov´ymi rozklady pracovat.

Oznaˇcme

r = max

C ⊆{1,...,k}rank(TC) a n = max{n1, . . . , nk}. (4.16) Budeme porovn´avat pamˇet’ov´e n´aroky, tj. poˇcet re´aln´ych ˇc´ısel, kter´e je potˇreba uloˇzit, abychom z´ıskali tenzor, pˇr´ıpadnˇe jeho dobrou aproximaci. Zˇrejmˇe tento poˇcet m˚uˇzeme odhadnout pomoc´ı ˇc´ısel r, n a k.

W V pˇr´ıpadˇe nerozloˇzen´eho tenzoru je poˇcet ukl´adan´ych re´aln´ych ˇc´ısel shora ome-zen hodnotou nk.

W V pˇr´ıpadˇe klasick´eho Tuckerova rozkladu ukl´ad´ame k matic s rozmˇery nejv´yˇse n × r a poˇcet prvk˚u Tuckerova j´adra je omezen hodnotou rk, tedy celkem knr + rk re´aln´ych ˇc´ısel.

W V pˇr´ıpadˇe hierarchick´eho Tuckerova rozkladu opˇet ukl´ad´ame k matic s rozmˇery nejv´yˇse n × r (listy stromu). Je-li ˇr´ad tenzoru mocninou dvou, tj. k = 2ς, pak zcela vyv´aˇzen´y bin´arn´ı strom Tuckerova j´adra obsahuje pr´avˇe jednu matici s rozmˇery nejv´yˇse r × r (kter´a je nav´ıc diagon´aln´ı; koˇren stromu) a d´ale k − 2 tenzor˚u tˇret´ıho ˇr´adu s rozmˇery nejv´yˇse r × r × r. Tedy celkem ukl´ad´ame knr + (k − 2) ⋅ r3+r2 re´aln´ych ˇc´ısel.

W Tak´e v pˇr´ıpadˇe rozkladu typu tensor train (TT) ukl´ad´ame k matic s rozmˇery nejv´yˇse n × r, d´ale pak (k − 2) tenzor˚u tˇret´ıho ˇr´adu s rozmˇery nejv´yˇse r × r × r a dvˇe matice s rozmˇery nejv´yˇse r ×r. Tedy celkem ukl´ad´ame knr +(k −2)⋅r3+2r2 re´aln´ych ˇc´ısel.

Pamˇet’ov´e n´aroky jsou tak´e shrnuty v tabulce 4.1 a ilustrov´any na obr´azku4.4.

Ze zp˚usobu konstrukce hierarchick´eho Tuckerova rozkladu a tedy i tensor train (kter´y se od HTD liˇs´ı pouze zp˚usobem vˇetven´ı) tak, jak jsme popsali v kapitole 4.1.1, je zˇrejm´e, ˇze odhady u tˇechto dvou zp˚usob˚u rozkladu m˚uˇzeme nav´ıc upˇresnit, jelikoˇz matice v koˇreni stromu je diagon´aln´ı, tj. obsahuje pouze r nenulov´ych ˇc´ısel.

Poˇcet re´aln´ych ˇc´ıslel potˇrebn´ych k uloˇzen´ı je potom omezen na knr + (k − 2) ⋅ r3+r ˇc´ısel pro HTD a knr + (k − 2) ⋅ r3+r2+r pro TT.

Poznamenejme d´ale, ˇze vztah pro pamˇet’ov´e n´aroky hierarchick´eho Tuckerova rozkladu je odvozen pro zcela vyv´aˇzen´y bin´arn´ı strom tenzoru ˇr´adu mocniny dvou, my ho ale budeme pouˇz´ıvat pro tenzor libovoln´eho ˇr´adu. M˚uˇzeme si to dovolit proto, ˇze TT odpov´ıd´a maxim´alnˇe nevyv´aˇzen´emu bin´arn´ımu stromu, pˇriˇcemˇz vztah pro jeho pamˇet’ov´e n´aroky je odvozen pro tenzor libovoln´eho ˇr´adu a d´av´a prakticky stejn´y odhad.

Tabulka 4.1: Porovn´an´ı pamˇet’ov´ych n´arok˚u pˇri uloˇzen´ı tenzoru r˚uzn´ymi zp˚usoby.

pouˇzit´y rozklad poˇcet ukl´adan´ych re´aln´ych ˇc´ısel

cel´y tenzor nk

Tucker˚uv rozklad knr + rk

hierarchick´y Tucker˚uv rozklad knr + (k − 2)r3+r2 tensor train (TT) knr + (k − 2)r3+2r2

Z tabulky 4.1 vid´ıme, ˇze zat´ımco pamˇet’ov´e n´aroky (poˇcet ukl´adan´ych prvk˚u) jsou u nerozloˇzen´eho tenzoru exponenci´aln´ı v k, pro hierarchick´y Tucker˚uv rozklad, pˇr´ıp. tesor train, jsou line´arn´ı v k a kubick´e v r. Pˇr´ıpadn´a ´uspora m´ısta samozˇrejmˇe z´avis´ı na tom, jak mal´e m˚uˇze re´alnˇe b´yt r pro dan´a data.

101 102 104

106 108 1010 1012

k

pcetukl´adan´ychre´aln´ychˇc´ısel

Spotˇreba pamˇeti pˇri uloˇzen´ı tenzoru ˇr´adu k, n = 100, r = 10 cel´y tenzor

Tucker˚uv rozklad

hierarchick´y Tucker˚uv rozklad tensor train (TT)

Obr´azek 4.4: Porovn´an´ı pamˇet’ov´ych n´arok˚u pˇri uloˇzen´ı tenzoru r˚uzn´ymi zp˚usoby.

5 Manipulace s tenzory ve tvaru HTD

Uk´azali jsme uˇz, jak´ym zp˚usobem lze ukl´adat tenzory ve tvaru s´ıtˇe. D´ale n´as bude zaj´ımat, jak´ym zp˚usobem lze s tenzory uloˇzen´ymi ve form´atu HTD pracovat d´ale.

Uk´aˇzeme si, jak´ym zp˚usobem lze tenzory v HTD n´asobit matic´ı, sˇc´ıtat i n´asobit mezi sebou. Budeme se nav´ıc snaˇzit, aby v´ysledn´y tenzor byl uloˇzen opˇet v HTD a to v co nej´uspornˇejˇs´ım tvaru.

5.1 Souˇ cin tenzoru s matic´ı v `-t´ em m´ odu

Prvn´ı z operac´ı, kterou pop´ıˇseme bude souˇcin tenzoru s matic´ı v dan´em m´odu `, viz definici2. Mˇejme pro jednoduchost tenzor osm´eho ˇr´adu T ∈ Rn1×⋯×n8 (viz pˇr´ıklad 2, str. 33) a matici M ∈ Rm×n` a ` = 3. Pro souˇcin

D = T ×3M ∈ Rn1×n2×m×n4×⋯×n8 zˇrejmˇe plat´ı

vec(D) = vec(T ×3M ) = (In8⊗ ⋯ ⊗In4⊗M ⊗ In2 ⊗In1) ⋅ vec(T ), (5.1) kde vektorizaci tenzoru T lze pomoc´ı vztahu (4.9) zapsat

vec(T ) = (U(8)⊗U(7)⊗U(6)⊗U(5)⊗U(4)⊗U(3)⊗U(2)⊗U(1))

⋅ (B(7−8)⊗B(5−6)⊗B(3−4)⊗B(1−2)) ⋅ (B(5−8)⊗B(1−4)) ⋅B(1−8). (5.2) Kombinac´ı vztah˚u (5.1) a (5.2) dost´av´ame tenzor D, resp. jeho vektorizaci ve tvaru

vec(D) = (In8⊗In7 ⊗In6⊗In5 ⊗In4 ⊗M ⊗ In2⊗In1)

⋅ (U(8)⊗U(7)⊗U(6)⊗U(5)⊗U(4)⊗U(3)⊗U(2)⊗U(1))

⋅ (B(7−8)⊗B(5−6)⊗B(3−4)⊗B(1−2)) ⋅ (B(5−8)⊗B(1−4)) ⋅B(1−8)

= (U(8)⊗U(7)⊗U(6)⊗U(5)⊗U(4)⊗ (M U(3)) ⊗U(2)⊗U(1))

⋅ (B(7−8)⊗B(5−6)⊗B(3−4)⊗B(1−2)) ⋅ (B(5−8)⊗B(1−4)) ⋅B(1−8), kde (M U(3)) ∈Rm×r(3); s vyuˇzit´ım vztahu mezi klasick´ym maticov´ym n´asoben´ım a Kroneckerov´ym souˇcinem matic, viz napˇr. [26, pozn´amka 3].

Slovnˇe vyj´adˇreno, pokud je tenzor T uloˇzen´y v HTD, vyn´asoben´ım listu U(`) matic´ı M z´ısk´ame souˇcin tenzoru T s matic´ı M v m´odu `, kter´y form´alnˇe vypad´a jako

hierarchick´y Tucker˚uv rozklad, viz obr´azek 5.1. Tedy je vyj´adˇren´y jako tenzorov´a s´ıt’, resp. bin´arn´ı strom se stejnou strukturou jako p˚uvodn´ı tenzor T . Narozd´ıl od HTD ale `-t´y list stromu tenzoru D, tj. matice (M U(`)), obecnˇe nem´a navz´ajem ortonorm´aln´ı sloupce. Abychom HTD z´ıskali, je potˇreba prov´est reortogonalizaci sloupc˚u t´eto matice a n´aslednˇe pˇrepoˇc´ıtat ostatn´ı dotˇcen´e tenzory s´ıtˇe. Tˇemito kroky se budeme podrobnˇeji zab´yvat v kapitole 5.3.

Obr´azek 5.1: Ilustrace souˇcinu tenzoru (z obr´azku 4.2) osm´eho ˇr´adu s matic´ı M ve tˇret´ım m´odu.

5.1.1 Line´ arn´ı zobrazen´ı ve tvaru Kroneckerova souˇ cinu

Speci´alnˇe pro line´arn´ı zobrazen´ı, kter´e lze zapsat ve tvaru Kroneckerova souˇcinu, tj.

A ∶ T z→ D, kde A =Ak⊗Ak−1⊗ ⋯ ⊗A1, (5.3)

pˇriˇcemˇz oba uvaˇzovan´e tenzory T i D jsou nyn´ı ˇr´adu k (pro jednoduchost uvaˇzujme k = 2ς, kde ς je pˇrirozen´e ˇc´ıslo), zˇrejmˇe plat´ı

vec(D) = vec(A(T )) = ((AkU(k)) ⊗ (Ak−1U(k−1)) ⊗ ⋯ ⊗ (A1U(1)))

⋅ (B((k−1)−k)⊗ ⋯ ⊗B(1−2)) ⋅ (B((k−3)−k)⊗ ⋯ ⊗B(1−4))

⋅ ⋯

⋅ (B((k/2+1)−k)⊗B(1−(k/2))) ⋅B(1−k).

Schematicky lze souˇcin vyj´adˇrit pomoc´ı tenzorov´e s´ıtˇe na obr´azku 5.2.

Obr´azek 5.2: Line´arn´ı zobrazen´ı ve tvaru Kroneckerova souˇcinu.