• No results found

Zn´ azornˇ en´ı vˇ etven´ı bin´ arn´ıho stromu

4.1.3 Listy stromu – tenzory druh´ eho ˇ r´ adu

Zp˚usobem popsan´ym v pˇredchoz´ı ˇc´asti se postupnˇe dostaneme aˇz k mnoˇzinˇe matic U(1), U(2), . . . , U(k), U(`) ∈Rn`×r(`), ` = 1, . . . , k.

Pˇripomeˇnme, ˇze pro hodnoty r` z klasick´eho Tuckerova rozkladu a hodnosti r(`), kter´e z´ısk´av´ame pˇri hierarchick´em Tuckerovˇe rozkladu plat´ı

r`=r(`)=rank(T{`}),

jelikoˇz hodnosti Tuckerova j´adra jsou d´any jednoznaˇcnˇe. D´ale tak´e zˇrejmˇe plat´ı R(U`) = R(U(`)).

4.1.4 Pˇ r´ıklad rozkladu tenzoru osm´ eho ˇ r´ adu

Pˇr´ıklad 2. V tomto pˇr´ıkladu postupnˇe pouˇzijeme vztah (4.6) k ilustraci postupu pˇri HTD tenzoru T ˇr´adu k = 8 = 23, viz tak´e obr´azek 4.2. Zˇrejmˇe plat´ı

vec(T ) = T{1,...,8} = (U(5−8)⊗U(1−4)) ⋅B(1−8), kde B(1−8)=vec(Σ(1−4)) a U(5−8)=V(1−4), viz (4.2) a (4.8), a kde

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

Obr´azek 4.2: Ilustrace hierarchick´eho Tuckerova rozkladu tenzoru osm´eho ˇr´adu, kde jsme form´alnˇe oznaˇcili B(1−8)(1−4)∈Rr(1−4)×r(1−4), viz (4.4).

kde d´ale

U(1−2) = (U(2)⊗U(1)) ⋅B(1−2), U(3−4) = (U(4)⊗U(3)) ⋅B(3−4), U(5−6) = (U(6)⊗U(5)) ⋅B(5−6), U(7−8) = (U(8)⊗U(7)) ⋅B(7−8).

Potom, s vyuˇzit´ım asociativity Kroneckerova souˇcinu, po dosazen´ı plat´ı 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). (4.9) Matice B, naz´yvan´e tak´e matice pˇrenosu, lze (s v´yjimkou koˇrene stromu) pˇrev´est do tvaru tenzor˚u tˇret´ıch ˇr´ad˚u, tj.

B(1−4)∈R(r(1−2)⋅ r(3−4))×r(1−4) ⇐⇒ B(1−4)∈Rr(1−2)×r(3−4)×r(1−4), B(5−8)∈R(r(5−6)⋅ r(7−8))×r(5−8) ⇐⇒ B(5−8)∈Rr(5−6)×r(7−8)×r(5−8),

a

B(1−2)∈R(r(1)⋅ r(2))×r(1−2) ⇐⇒ B(1−2)∈Rr(1)×r(2)×r(1−2), B(3−4)∈R(r(3)⋅ r(4))×r(3−4) ⇐⇒ B(3−4)∈Rr(3)×r(4)×r(3−4), B(5−6)∈R(r(5)⋅ r(6))×r(5−6) ⇐⇒ B(5−6)∈Rr(5)×r(6)×r(5−6), B(7−8)∈R(r(7)⋅ r(8))×r(7−8) ⇐⇒ B(7−8)∈Rr(7)×r(8)×r(7−8).

Vid´ıme, ˇze dost´av´ame tenzor T v podobˇe zcela vyv´aˇzen´eho bin´arn´ıho stromu, viz obr´azek 4.2.

4.2 Z´ akladn´ı vˇ eta HTD

Popsali jsme strukturu cel´eho hierarchick´eho Tuckerova rozkladu. Jedin´e, co zb´yv´a dok´azat je, ˇze plat´ı vlastnost (4.5), kterou v nepatrnˇe obecnˇejˇs´ı podobˇe formuluje vˇeta 1, viz tak´e [19, kap. 3.1.3]. Pˇredt´ım ale uvedeme n´asleduj´ıc´ı lemma, kter´e bude uˇziteˇcn´e pro pochopen´ı d˚ukazu.

Lemma 1. Necht’ M je libovoln´a matice nad R, pak MM(kde M znaˇc´ı Moorovu–

Penroseovu pseudoinverzi) je ortogon´aln´ı projektor (viz [4, str. 15]) na R(M ).

D˚ukaz. Necht’ r = rank(M ). Uvaˇzujme ekonomick´y singul´arn´ı rozklad matice M = UrΣrVrT, tj. R(M ) = R(Ur)a Σr je regul´arn´ı. Pak M=VrΣ−1r UrT. Zˇrejmˇe plat´ı

4.2.1 D˚ ukaz z´ akladn´ı vˇ ety hierarchick´ eho Tuckerova rozkladu

Nyn´ı se dost´av´ame k avizovan´e vˇetˇe.

D˚ukaz. Necht’ pro jednoduchost CL, CR obsahuj´ı po sobˇe jdouc´ı indexy, tj.

CL= {i`+1, i`+2, . . . , im}, CR= {im+1, im+2, . . . , ir}, tj.

∣CL∣ =m − `, ∣CR∣ =r − m, ∣C ∣ = r − `.

Necht’ TC je tozvoj tenzoru T podle multiindexuC . Jak´ykoli sloupec matice TC lze povaˇzovat za vektorizaci vec(C) nˇejak´eho tenzoru C ∈ Rni`+1×⋯×nir ˇr´adu r − `. Tento tenzor rozvineme do matice tak, abychom (p˚uvodn´ı) multiindexC rozdˇelili na CL a CR. Dostaneme tak maticiC{1,...,m−`}∈R(m−`)×(r−m). Sloupce matice CCL pˇritom mus´ı b´yt tak´e sloupci matice TCL. Tedy jsou zˇrejmˇe obsaˇzeny v R(TCL). (Pro snadnˇejˇs´ı porozumˇen´ı a ovˇeˇren´ı pro jednoduch´y tenzor odkazujeme na pˇr´ıklad 3 uveden´y pod t´ımto d˚ukazem.) Plat´ı tedy

CCL = TCL(TCL)CCL, viz lemma1. Analogicky plat´ı

(CCL)T ≡ CCR= TCR(TCR)CCR. Transpozic´ı druh´eho vztahu a n´asledn´ym dosazen´ım dostaneme

CCL = (CCR)T = (CCR)T((TCR))

viz [26, str. 39, Pozn´amka 3], [5] nebo [23]. Tedy libovoln´y sloupec vec(C) matice TC lze napsat jako line´arn´ı kombinaci sloupc˚u matice TCR⊗ TCL. A tedy obor hodnot matice TC je podmnoˇzinou oboru hodnot matice TCR⊗ TCL.

Pˇr´ıklad 3. Zde uk´aˇzeme vlastnosti sloupc˚u matic rozvoj˚u tenzor˚u T a C, kter´e vyuˇz´ıv´ame v d˚ukazu vˇety 1, na jednoduch´em pˇr´ıkladu. Mˇejme tenzor

T = 1 2

Vybereme mnoˇzinu jeho index˚u CL = {1} a CR = {2}. Potom rozvoj rozvoje tenzoru T jsou

Uvaˇzujme prvn´ı sloupec matice T{1,2}. Ten lze povaˇzovat za vektorizaci vec(C)

Obor hodnot libovoln´e matice je roven oboru hodnot matice lev´ych singul´arn´ıch vektor˚u, kter´e odpov´ıdaj´ı nenulov´ym vlastn´ım ˇc´ısl˚um. Zˇrejmˇe tvrzen´ı z vˇety 1ihned ukazuje platnost vztahu (4.5). TCR, budeme tuto matici BC naz´yvat matice pˇrenosu (anglicky transfer matrix).

Poznamenejme, ˇze ˇc´ısla rCL, rCR, rC znaˇc´ı hodnosti odpov´ıdaj´ıc´ıch rozvoj˚u tenzoru T , viz (4.6)–(4.7). Matice pˇrenosu je prostˇredek, kter´y n´am umoˇzn´ı

”rozb´ıt“ tenzor do pˇredepsan´eho tvaru s´ıtˇe. Matici BC m˚uˇzeme ch´apat jako rozvoj tenzoru BC tˇret´ıho ˇr´adu tak, ˇze

BC = BC{1,2}, kde BC ∈RrCL×rCR×rC, (4.15) viz (4.7) a podrobnˇeji tak´e viz pˇr´ıklad 2. Tyto tenzory jsou tedy vrcholy tˇret´ıho stupnˇe v tenzorov´e s´ıti pˇredstavuj´ıc´ı HTD, viz obr´azek4.2.

4.3 Shrnut´ı konstrukce hierarchick´ eho Tuckerova roz-kladu

Pˇrednˇe poznamenejme, ˇze postup pˇri hled´an´ı hierarchick´eho Tuckerova rozkladu, tak jak ho vysvˇetlujeme, je pouze n´aznakem v´ypoˇctu. Slouˇz´ı zde zejm´ena pro po-chopen´ı struktury rozkladu a jako d˚ukaz jeho existence. Praktick´y v´ypoˇcet rozkladu a implementace pˇr´ısluˇsn´eho algoritmu nen´ı jednoduch´a. Jeden z moˇzn´ych postup˚u v´ypoˇctu bude naznaˇcen v kapitole 6.

4.3.1 Vˇ etven´ı bin´ arn´ıho stromu a tzv. dimension tree

Uvˇedomme si, ˇze podmnoˇziny mnoˇziny index˚u lze vyb´ırat libovolnˇe. Pr´avˇe zp˚usob, jak´ym rozdˇelujeme mnoˇzinu index˚u (a postupnˇe jej´ı podmnoˇziny), vytv´aˇr´ı strom odpov´ıdaj´ıc´ıho tvaru. Pro dosaˇzen´ı potˇrebn´eho tvaru s´ıtˇe vol´ıme v kaˇzd´em kroku

odpov´ıdaj´ıc´ı rozdˇelen´ı mnoˇziny index˚u tenzoru. Tomuto rozdˇelen´ı odpov´ıd´a tzv. di-mension tree. Pˇr´ıklady rozdˇelen´ı mnoˇziny index˚u (konkr´etnˇe ty moˇznosti vˇetven´ı, kter´e d´avaj´ı co nejv´ıce vyv´aˇzen´y bin´arn´ı strom) m˚uˇzemem vidˇet na obr´azku4.3 pro tenzor osm´eho (vlevo) a sedm´eho ˇr´adu (vpravo).

Obr´azek 4.3: Struktura rozdˇelen´ı index˚u, tzv. dimension tree, tenzoru osm´eho ˇr´adu z pˇr´ıkladu 2, pˇrevzato z [19, str.22], a tenzoru sedm´eho ˇr´adu pˇri snaze o co nejvˇetˇs´ı vyv´aˇzenost s´ıtˇe.

Poznamenejme, ˇze tensor train, jehoˇz podobu m˚uˇzeme vidˇet na obr´azku 3.7 uprostˇred, je rozkladem, kter´y funguje ´uplnˇe stejnˇe jako HTD. Jedin´ym rozd´ılem je zp˚usob rozdˇelov´an´ı mnoˇziny index˚u. Jedna z podmnoˇzin vˇzdy obsahuje pouze jeden index a z´ısk´av´ame pro nˇej tedy pˇr´ımo matici z klasick´eho Tuckerova rozkladu a dalˇs´ı krok algoritmu potom mus´ıme prov´est vˇzdy pouze pro jednu vˇetev.

4.4 Efektivita uloˇ zen´ı dat pomoc´ı hierarchick´ eho Tuc-kerova 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.

5.2 Souˇ cet dvou tenzor˚ u

Souˇcet tenzor˚u stejn´eho ˇr´adu a stejn´ych rozmˇer˚u z´ısk´ame jednoduˇse, bez jak´ychkoli aritmetick´ych operac´ı pouh´ym zˇretˇezen´ım odpov´ıdaj´ıc´ıch faktor˚u, obdobnˇe jako je uk´az´ano v [26, kap. 1.3.1 a 3.2.1] pro matice ve tvaru singul´arn´ıch rozklad˚u, resp.

tenzory v Tuckerovˇe rozkladu.

Mˇejme napˇr´ıklad dva tenzory C, D ∈ Rn1×⋯×n4 v HTD popsan´em stejn´ym stro-mem, tj.

vec(C) = (U(4)C ⊗U(3)C ⊗U(2)C ⊗U(1)C ) ⋅ (B(3−4)C ⊗B(1−2)C ) ⋅B(1−4)C ,

vec(D) = (U(4)D ⊗U(3)D ⊗U(2)D ⊗U(1)D ) ⋅ (B(3−4)D ⊗B(1−2)D ) ⋅B(1−4)D . (5.4) Potom jejich souˇcet E = C + D z´ısk´ame seˇrazen´ım pˇr´ısluˇsn´ych matic U(`)C a U(`)D za sebe, tj. dostaneme matice

[U(`)C , U(`)D] ∈Rn(`)×(r

C(`)+rD(`)), ` = 1, . . . 4,

a diagon´aln´ım zˇretˇezen´ım pˇr´ısluˇsn´ych tenzor˚u B odpov´ıdaj´ıc´ıch jednotliv´ym matic´ım pˇrenosu. Pro pochopen´ı nejl´epe poslouˇz´ı pˇr´ıklad na obr´azku 5.3.

Takov´ymto zp˚usobem vˇsak z´ısk´ame, stejnˇe tak jako v pˇr´ıpadˇe souˇcinu tenzoru s matic´ı, tenzorovou s´ıt’, kter´a m´a form´alnˇe stejnou strukturu jako p˚uvodn´ı tenzory,

Obr´azek 5.3: Ilustrace souˇctu dvou tenzor˚u C a D (5.4) ˇctvrt´eho ˇr´adu ve tvaru HTD.

ale matice odpov´ıdaj´ıc´ı list˚um nemaj´ı ortogon´aln´ı sloupce a tedy tato s´ıt’ nen´ı hierar-chick´ym Tuckerov´ym rozkladem tenzoru E . Pro z´ısk´an´ı takov´e s´ıtˇe mus´ıme prov´est reortogonalizaci jako v pˇredchoz´ım pˇr´ıpadˇe; viz kap. 5.3.

Zde nav´ıc, na rozd´ıl od souˇcinu tenzoru s matic´ı, vznik´a praktick´y probl´em s ve-likost´ı ukl´adan´ych dat. Vid´ıme, ˇze takto zkonstruovan´y tenzor E = C + D potˇrebuje circa dvakr´at v´ıce pamˇet’ov´ych prostˇredk˚u neˇz tenzory C nebo D. To by samo o sobˇe nevadilo, pokud nebude potˇreba takovou operaci prov´adˇet opakovanˇe, napˇr.

pˇri ˇreˇsen´ı soustavy line´arn´ıch rovnic (tj. A(X ) = B s tenzorovou pravou stranou a line´arn´ım zobrazen´ım ve tvaru Kroneckerova souˇcinu) iteraˇcn´ı metodou. Tehdy by rostly pamˇet’ov´e n´aroky exponenci´alnˇe s ˇc´ıslem iterace.

5.2.1 Line´ arn´ı kombinace tenzor˚ u

V´ıme-li jak tenzory ve tvaru hierarchick´eho Tuckerova rozkladu sˇc´ıtat, uˇz nen´ı tˇeˇzk´e pochopit, jak bude vypadat liner´arn´ı kombinace tenzor˚u stejn´ych ˇr´ad˚u se stejnou strukturou bin´arn´ıho stromu HTD. Mˇejme tenzory Ti∈Rn1×⋯×nk v HTD se stejn´ym stromem, a koeficienty αi ∈R tvoˇr´ıc´ı line´arn´ı kombinaci

E = ∑

i

αiTi.

Zˇrejmˇe pro α-n´asobek tenzoru T (pro jednoduchost ˇr´adu k = 2ς) plat´ı

Pˇripomeˇnme, ˇze koˇren B(1−k) bin´arn´ıho stromu pˇredstavuj´ıc´ıho HTD tenzoru je di-agon´aln´ı matic´ı se singul´arn´ımi ˇc´ısly rozvoje tenzoru T podle multiindexu dan´eho vˇetven´ım stromu; viz kap.4.1.1 a obr´azek 4.2.

Pro v´ypoˇcet line´arn´ı kombinace E = ∑iαiTi tedy potˇrebujeme

W nejprve z´ıskat jednotliv´e sˇc´ıtance αiTi, kter´e dostaneme tak, ˇze ˇc´ıslem αi vyn´asob´ıme diagon´aln´ı matici v koˇreni stromu tenzoru Ti, a

W prov´est souˇcet tenzor˚uαiTi, kter´y budeme z´ısk´avat postupem, kter´y je popsan´y v pˇredchoz´ım textu.

Takto z´ısk´ame tenzor E ve tvaru tenzorov´e s´ıtˇe se stejnou strukturou jako mˇely tenzory Ti, pˇriˇcemˇz matice uloˇzen´e jako listy bin´arn´ıho stromu opˇet nemaj´ı navz´ajem ortogon´aln´ı sloupce. I v tomto pˇr´ıpadˇe budeme prov´adˇet reortogonalizaci.

5.3 Reortogonalizace a rekomprese

V pˇredchoz´ıch ˇc´astech textu (kapitoly5.1a5.2) jsme popsali prvn´ı kroky nˇekter´ych operac´ı s tenzory ve tvaru hierarchick´eho Tuckerova rozkladu, kdy v´ysledkem byly vˇzdy tenzory, kter´e se form´alnˇe strukturou podobaly p˚uvodn´ım tenzor˚um. ˇCasto vˇsak chceme i v´ysledn´y tenzor ukl´adat ve tvaru HTD, proto potˇrebujeme udˇelat jeˇstˇe nˇekolik krok˚u, kter´e n´am toto umoˇzn´ı, konkr´etnˇe to bude

W ortogonalizace list˚u bin´arn´ıho stromu,

W ortogonalizace rozvoj˚u tenzor˚u tˇret´ıho ˇr´adu – v´ypoˇcet nov´ych matic pˇrenosu, W komprese rozmˇer˚u faktor˚u bin´arn´ıho stromu.

Princip bude analogick´y principu pˇri operac´ıch s maticemi uloˇzen´ymi v ekonomick´em tvaru singul´arn´ıho rozkladu, resp. s tenzory ve tvaru klasick´eho Tuckerova rozkladu, viz [26, kap. 1.3], resp. [26, kap. 3.2.1].

Pro vysvˇetlen´ı mechanismu v´ypoˇctu nov´ych matic pˇrenosu pˇripomeˇnme nejprve vztah (4.14), tj.

UC = (UCR⊗UCL) ⋅BC, kde BC ∈R(rCL⋅ rCR)×rC, (5.5)

je matice pˇrenosu a kde UC, UCR, UCL jsou matice lev´ych singul´arn´ıch vektor˚u tvoˇr´ıc´ı ortonorm´aln´ı b´aze obor˚u hodnot pˇr´ısluˇsn´ych rozvoj˚u tenzoru. Tedy plat´ı

UCTUC =I, UCT

RUCR=I, UCT

LUCL =I,

kde jednotkov´e matice na prav´ych stran´ach jsou vhodn´ych (obecnˇe r˚uzn´ych) ˇr´ad˚u.

Pak zˇrejmˇe tak´e plat´ı

(UCR⊗UCL)T(UCR⊗UCL) = (UCT

R⊗UCT

L)(UCR⊗UCL)

= (UCT

RUCR) ⊗ (UCT

LUCL) =I ⊗ I = I, (5.6) jak plyne z vlastnost´ı Kroneckerova souˇcinu. Kombinac´ı pˇredchoz´ıch rovnic z´ısk´ame vztah

I = UCTUC = BCT(UCR⊗UCL)T(UCR⊗UCL)BC = BTCBC, (5.7) tedy tak´e matice pˇrenosu m´a ortonorm´aln´ı sloupce. T´eto vlastnosti budeme vyuˇz´ıvat pˇri reortogonalizaci. Budeme vˇzdy postupovat od list˚u ke koˇreni, tak jak naznaˇcuje obr´azek 5.4. Postup pro jednotliv´e operace rozebereme v samostatn´ych podkapi-tol´ach.

Obr´azek 5.4: Zn´azornˇen´ı postupu reortogonalizace.

5.3.1 Reortogonalizace souˇ cinu tenzoru s matic´ı

V prvn´ım kroku souˇcinu tenzoru v HTD s matic´ı, kter´y jsme popsali na pˇr´ıkladu v kapitole5.1, tj. souˇcinu

D = T ×3M, T ∈Rn1×⋯×n8, M ∈ Rm×n3, jsme na m´ıstˇe tˇret´ıho listu z´ıskali souˇcin

M U(3)∈Rm×r(3),

viz obr´azek 5.1. Abychom z´ıskali v´ysledn´y tenzor D v hierarchick´em Tuckerovˇe roz-kladu, potˇrebujeme nejdˇr´ıve zajistit, aby matice – listy bin´arn´ıho stromu mˇely or-togon´aln´ı sloupce. V naˇsem pˇr´ıkladu je nutn´e ortogonalizovat pouze sloupce tˇret´ıho listu, tedy matice M U(3).

Reortogonalizace listu

Ortogon´aln´ı sloupce zajist´ıme pomoc´ı QR rozkladu (viz napˇr. [4, kap. 3]) t´eto matice, tj. dostaneme

M U(3)=Q(3)R(3), kde Q(3)∈Rm×̃r(3) a R(3)∈R̃r(3)×r(3), (5.8) kde

̃r(3)=rank(M U(3)) ≤r(3). (5.9) Matice Q(3) m´a ortogon´aln´ı sloupce a bude tedy listem bin´arn´ıho stromu tak, jak je naznaˇceno na obr´azku 5.5.

Poznamenejme, ˇze ̃r(3)≤r(3) zp˚usob´ı, ˇze matice R(3) obecnˇe nen´ı ryze troj´ uhel-n´ıkov´a (anglicky proper upper triangular), ale je v tzv. horn´ım schodovit´em tvaru (anglicky row echelon form). Zde je mimo jin´e prostor pro kompresi – zanedb´av´an´ım vhodnˇe urˇcen´ych mal´ych prvk˚u matice R z QR rozkladu listu (resp. list˚u) se m˚uˇzeme c´ılenˇe snaˇzit o sn´ıˇzen´ı hodnoty ̃r(3).

N´asoben´ı troj´uheln´ıkov´ym faktorem

Nyn´ı kdyˇz jsme zajistili, ˇze list m´a vz´ajemnˇe ortogon´aln´ı sloupce, n´as bude zaj´ımat, jak se projev´ı matice R(3) z QR rozkladu ve zbytku tenzorov´e s´ıtˇe. Dalˇs´ım krokem tedy bude n´asoben´ı tenzoru B(3−4) matic´ı R(3).

Pˇripomeˇnme vztah (4.14) vyjadˇruj´ıc´ı vztah matic U(`) a matic pˇrenosu. Apliku-jeme-li tento vztah pro tenzor T z naˇseho pˇr´ıkladu, plat´ı

U(3−4)= (U(4)⊗U(3)) ⋅B(3−4), kde B(3−4)= B{1,2}(3−4). (5.10) Poznamenejme, ˇze vztah (5.9) zaruˇcuje, ˇze n´asoben´ı matic´ı R lze vˇzdy prov´est, pokud nastane ̃r(3) < r(3), staˇc´ı doplnit matici R nulov´ymi prvky do potˇrebn´ych rozmˇer˚u.

Matice ̂B{1,2}(3−4) nyn´ı ale nen´ı matic´ı pˇrenosu v prav´em slova smyslu (tj. jak jsme ji zavedli na str. 37; viz (4.14)), nem´a ortonorm´aln´ı sloupce. Abychom z n´ı matici pˇrenosu vytvoˇrili, mus´ıme zortogonalizovat sloupce t´eto matice.

Obr´azek 5.5: Sch´ema ortogonalizace listu bin´arn´ıho stromu pˇri souˇcinu tenzoru s ma-tic´ı. Matice Q z QR rozkladu je uloˇzena jako list bin´arn´ıho stromu, matic´ı R(3) budeme n´asobit pˇr´ısluˇsn´y tenzor tˇret´ıho ˇr´adu.

Reortogonalizace matice pˇrenosu

Pro z´ısk´an´ı ortonorm´aln´ı b´aze sloupcov´eho prostoru matice ̂B(3−4){1,2} provedeme opˇet jej´ı QR rozklad, tj.

{1,2}

(3−4)=Q(3−4)R(3−4), Q(3−4)∈R(̃r(3)⋅ r(4))×̃r(3−4), R(3−4)∈R̃r(3−4)×r(3−4), (5.13) kde ̃r(3−4) = rank( ̂B{1,2}(3−4)). Zde matice Q(3−4) m´a ortonorm´aln´ı sloupce a je novˇe vypoˇc´ıtanou matic´ı pˇrenosu. Oznaˇc´ıme form´alnˇe Q(3−4)≡ ̃B(3−4), tj. rozvoj tenzoru B̃{1,2}

(3−4), kter´y bude uloˇzen v bin´arn´ım stromu HTD v´ysledn´eho tenzoru; pro ilustraci viz obr´azek5.6.

Stejn´ym zp˚usobem postupujeme d´ale bin´arn´ım stromem, a tedy dalˇs´ım krokem je souˇcin

(1−4)= B(1−4)×2R(3−4), QR rozklad rozvoje ̂B{1,2}

(1−4) = Q(1−4)R(1−4) atd., dokud se nedostaneme ke koˇreni bin´arn´ıho stromu. Vektorizaci tenzoru D = T ×3M tedy po tˇechto kroc´ıch dost´av´ame

Obr´azek 5.6: Sch´ema postupu reortogonalizace, kdy jsme z´ıskali reortogonalizovanou matici pˇrenosu, uloˇzili ji do bin´arn´ıho stromu jako tenzor tˇret´ıho ˇr´adu a matic´ı R(3−4) z QR rozkladu budeme n´asobit d´ale.

v podobˇe

vec(D) = (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.14) Form´alnˇe ale jeˇstˇe nem´ame HTD tenzoru D, protoˇze koˇren stromu – matice ̂B(1−8) (pozn. ̂B(1−8) =vec( ̂B(1−8))) – nen´ı diagon´aln´ı; t´ım se budeme zab´yvat pozdˇeji, viz kap.5.3.3.

5.3.2 Reortogonalizace souˇ ctu dvou tenzor˚ u

V pˇr´ıpadˇe souˇctu dvou tenzor˚u budeme postupovat analogicky jako v pˇr´ıpadˇe souˇ ci-nu tenzoru s matic´ı. Jedin´ym rozd´ılem je, ˇze ortogonalitu sloupc˚u nebudeme potˇre-bovat zajistit jen pro jednu matici (jeden list bin´arn´ıho stromu), ale pro vˇsechny listy bin´arn´ıho stromu, tj. matice [U(`)C , U(`)D ], sestaven´eho tak, jak jsme popsali v kapitole 5.2. Stejnˇe tak budeme ch´ıt zajistit, aby tenzory tˇret´ıho ˇr´adu v bin´arn´ım stromu odpov´ıdaly matic´ım pˇrenosu, a tedy jejich rozvoje mˇely ortonorm´aln´ı sloupce.

Reortogonalizace list˚u

Spoˇc´ıt´ame tedy QR rozklady list˚u stromu, tj.

[U(`)C , U(`)D] =Q(`)R(`), kde Q(`) ∈Rn(`)×̃r(`) a R(`) ∈R̃r(`)×(r

C(`)+rD(`))

(srovnej s (5.8)). Kaˇzd´a matice Q(`) m´a ortogon´aln´ı sloupce a tedy vˇsechny tyto matice budou uloˇzeny jako listy bin´arn´ıho stromu HTD tenzoru E form´alnˇe ozna-ˇcen´e ̃U(`)E ≡Q(`). Matice R(`) potom mus´ıme vyn´asobit pˇr´ısluˇsn´e tenzory bin´arn´ıho stromu.

N´asoben´ı troj´uheln´ıkov´ymi faktory

V naˇsem pˇr´ıkladu z kapitoly 5.2 oznaˇcme jako BE(1−2) diagon´aln´ı tenzor sestaven´y z tenzor˚u BC(1−2) a B(1−2)D . Provedeme tedy souˇcin

(1−2)E = B(1−2)E ×1R(1)×2R(2)∈R̃r(1)×̃r(2)×r(1−2)

(srovnej s (5.12)). Analogicky budeme prov´adˇet dalˇs´ı souˇciny, tenzor˚u B a matic R. Takto z´ıskan´e tenzory ̂B ale opˇet nereprezentuj´ı matice pˇrenosu, protoˇze nemaj´ı ortonorm´aln´ı sloupce.

Reortogonalizace matic pˇrenosu

Pro matice ̂B{1,2} tedy vˇzdy provedeme QR rozklad, tj. v naˇsem pˇr´ıkladu z´ısk´ame ( ̂B(1−2)E ){1,2}=Q(1−2)R(1−2), Q(1−2)∈R(̃r(1)⋅ ̃r(2))×̃r(1−2), R(1−2)∈R̃r(1−2)×r(1−2), kde ̃r(1−2)=rank(( ̂B(1−2)E ){1,2}) (srovnej s (5.13)); atd. Matice Q maj´ı ortonorm´aln´ı sloupce a proto odpov´ıdaj´ı matic´ım pˇrenosu. Oznaˇc´ıme-li form´alnˇe ̃B(1−2)E ≡Q(1−2) atd., tyto matice jsou rozvoji tenzor˚u tˇret´ıho ˇr´adu v bin´arn´ım stromu HTD tenzoru E, tj. napˇr´ıklad ̃B(1−2)E = ( ̃BE

(1−2)){1,2}. T´ımto zp˚usobem postupujeme d´ale smˇerem ke koˇreni stromu. Pˇripomeˇnme znovu, ˇze v pˇr´ıpadˇe souˇctu tenzor˚u se ortogonalizace bude t´ykat vˇsech tenzor˚u v bin´arn´ım stromu tenzoru E , tj. nakonec dost´av´ame

vec(E ) = ( ̃U(4)E ⊗ ̃U(3)E ⊗ ̃U(2)E ⊗ ̃U(1)E ) ⋅ ( ̃BE(3−4)⊗ ̃B(1−2)E ) ⋅ ̂B(1−4)E . (5.15) Form´alnˇe ale jeˇstˇe nem´ame HTD tenzoru D, protoˇze koˇren stromu – matice ̂B(1−4)E

vec(E ) = ( ̃U(4)E ⊗ ̃U(3)E ⊗ ̃U(2)E ⊗ ̃U(1)E ) ⋅ ( ̃BE(3−4)⊗ ̃B(1−2)E ) ⋅ ̂B(1−4)E . (5.15) Form´alnˇe ale jeˇstˇe nem´ame HTD tenzoru D, protoˇze koˇren stromu – matice ̂B(1−4)E