• No results found

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 (pozn. ̂B(1−4)E =vec( ̂B(1−4)E )) – nen´ı diagon´aln´ı.

5.3.3 Aktualizace koˇ rene stromu

Pˇri operac´ıch s tenzory a n´asledn´e ortogonalizaci faktor˚u bin´arn´ıho stromu z´ısk´av´ a-me v koˇreni stromu matici ̂B(1−k) (resp. ̂B(1−k)E ) ∈ R̃r(1−s)×̃r((s+1)−k), kter´a obecnˇe nen´ı diagon´aln´ı, jak bychom od HTD poˇzadovali.

Pro z´ısk´an´ı diagon´aln´ı matice v koˇreni bin´arn´ıho stromu HTD tenzoru staˇc´ı prov´est singul´arn´ı rozklad matice ̂B(1−k), tj.

(1−k) =UKΣKVKT, kde UK ∈R̃r(1−s)×rK, ΣK∈RrK×rK, VK ∈R̃r((s+1)−k)×rK pˇriˇcemˇz matice ΣK je diagon´aln´ı matic´ı se singul´arn´ımi ˇc´ısly matice ̃B(1−s) na dia-gon´ale, kter´a bude nov´ym koˇrenem reortogonalizovan´eho bin´arn´ıho stromu, form´alnˇe ho oznaˇc´ıme ̃B(1−k)≡ΣK; rK=rank( ̂B(1−k)). D´ale zb´yv´a uˇz jen vyn´asobit maticemi UK, VK pˇr´ısluˇsn´e tenzory v s´ıti HTD, tj. prov´et souˇciny

̃̃

B(1−s) = ̃B(1−s)×3UK a B̃̃((s+1)−k)= ̃B((s+1)−k)×3VK. (5.16) Jelikoˇz tenzory n´asob´ıme maticemi s ortogon´aln´ımi sloupci, z˚ustanou ortogon´aln´ı i rozvoje tˇechto tenzor˚u, tj. v´ysledn´e tenzory budou maticemi pˇrenosu. Staˇc´ı si uvˇedomit, ˇze pˇredchoz´ı rovnici lze pˇrepsat

̃̃

Tyto souˇciny jsou posledn´ımi kroky pro z´ısk´an´ı hierarchick´eho Tuckerova rozkladu tenzoru, kter´y je v´ysledkem nˇekter´e z pˇredchoz´ıch operac´ı.

Zde je tak´e dalˇs´ı prostor pro kompresi – mal´a novˇe vypoˇcten´a singul´arn´ı ˇc´ısla m˚uˇzeme v nˇekter´ych pˇr´ıpadech (v z´avislosti na aplikaci) zanedbat (poloˇzit rovny nule) a z´ıskat tak aproximaci p˚uvodn´ıho tenzoru tenzorem niˇzˇs´ı hodnosti rK a tedy i s niˇzs´ımi pamˇet’ov´ymi n´aroky pˇri jeho ukl´ad´an´ı.

5.4 Skal´ arn´ı souˇ cin dvou tenzor˚ u

V kapitole 3.3.3 jsme pouk´azali na moˇznosti tenzorov´ych s´ıt´ı pro z´apis m´enˇe ob-vykl´ych tenzorov´ych souˇcin˚u, jejichˇz pˇr´ıklady jsme ilustrovali na obr´azku3.4. Zˇrejmˇe takto m˚uˇzeme interpretovat i skal´arn´ı souˇcin tenzor˚u (uloˇzen´ych ve tvaru HTD).

Mˇejme tenzory T , S ∈ Rn1×⋯×nk. Potom pro jejich skal´arn´ı souˇcin plat´ı

Jsou-li tenzory T a S uloˇzeny ve tvaru s´ıtˇe HTD (se stejnou strukturou stromu), lze jejich skal´arn´ı souˇcin interpretovat, resp. spoˇc´ıtat zp˚usobem, jak´y je vidˇet napˇr. na obr´azku5.7.

Obr´azek 5.7: Pˇr´ıklad v´ypoˇctu skal´arn´ıho souˇcinu dvou tenzor˚u T a S ˇsest´eho ˇr´adu.

N´asoben´ı v pˇr´ısluˇsn´ych m´odech (viz kap. 3.2, speci´alnˇe obr´azek 3.3) v jednot-liv´ych kroc´ıch je naznaˇceno ˇsed´ym podkladem. V jednotliv´ych kroc´ıch postupnˇe poˇc´ıt´ame/z´ısk´av´ame: (a) souˇcin matic UTTUS (ˇsestkr´at); (b) souˇciny tenzoru s ma-tic´ı BT ×1M1×2M2 (tˇrikr´at); (c) souˇcin tenzor˚u BT ×(1,2),(1,2)BS (tˇrikr´at); (d) souˇcin tenzoru s matic´ı B ×1M (dvakr´at); (e) souˇcin tenzor˚u BT ×(1,2),(1,2)BS (jednou); (f) souˇcin matic MTTMS (dvakr´at); (g) skal´arn´ı souˇcin matic ⟨MT, MS⟩ (viz kap. 3.3.2;

jednou); (h) v´ysledn´y skal´ar, tj. hledan´y skal´arn´ı souˇcin tenzor˚u.

5.5 V´ ypoˇ cetn´ı n´ aroˇ cnost operac´ı

Na z´avˇer t´eto kapitoly shrneme n´aroˇcnost operac´ı s tenzory uloˇzen´ymi v hierar-chick´em Tuckerovˇe rozkladu. Zkoumat budeme pˇritom druh a poˇcet operac´ı, kter´e mus´ıme prov´est, pokud chceme i v´ysledn´y tenzor z´ıskat v podobˇe hierarchick´eho Tuckerova rozkladu. Pˇripomˇeˇnme znaˇcen´ı (4.16)

r = max

C ⊆{1,...,k}rank(TC) a n = max{n1, . . . , nk}.

Detailnˇeji rozebereme jen v´ypoˇcet souˇcinu tenzoru s matic´ı v jednom m´odu a souˇcet dvou tenzor˚u ve tvaru HTD se stejn´ym bin´arn´ım stromem. Dalˇs´ı operace jsou zm´ınˇeny v tabulce5.1.

Je dobr´e si uvˇedomit, ˇze vyv´aˇzen´y bin´arn´ı strom tenzoru ˇr´adu k = 2ς, ς ∈ N, obsahuje ς + 1 = (log2k) + 1

”pater“, pˇriˇcemˇz nejspodnˇejˇs´ı (listy) a nejvrchnˇejˇs´ı (koˇren) jsou matice. Obecnˇe (ˇr´ad tenzoru nemus´ı b´yt mocninou dvou), budeme-li uvaˇzovat

”nejm´enˇe nevyv´aˇzen´y“ bin´arn´ı strom, HTD tenzoru obsahuje nejv´yˇse

⌈log2k⌉ − 1

”pater“ tenzor˚u tˇret´ıho ˇr´adu (viz napˇr. obr´azek 4.2), kde ⌈⋅⌉ znaˇc´ı horn´ı celou ˇc´ast re´aln´eho ˇc´ısla. Celkem bude takov´y strom obsahovat pr´avˇe 2k − 1 objekt˚u, pˇriˇcemˇz k z nich jsou listy (matice), jeden je koˇren (matice) a tedy

k − 2 z nich jsou tenzory tˇret´ıho ˇr´adu.

5.5.1 N´ aroˇ cnost souˇ cinu tenzoru s matic´ı

Pro souˇcin tenzoru k-t´eho ˇr´adu s matic´ı M ∈ Rm×n`, tj. T ×` M , ve tvaru HTD mus´ıme prov´adˇet n´asleduj´ıc´ı kroky:

W jeden souˇcin matic s rozmˇery m × n a n × r (v `-t´em listu);

W jeden QR rozklad matice s rozmˇery m × r (v `-t´em listu);

W (⌈log2k⌉ − 1)-kr´at souˇcin tenzoru tˇret´ıho ˇr´adu s rozmˇery r × r × r a matice s rozmˇery r × r (v prvn´ım, nebo druh´em m´odu);

W (⌈log2k⌉ − 1)-kr´at QR rozklad matice (resp. rozvoje tenzoru tˇret´ıho ˇr´adu) s rozmˇery r2×r;

W jeden souˇcin tˇr´ı matic se stejn´ymi rozmˇery r × r, pˇriˇcemˇz prostˇredn´ı matice je diagon´aln´ı (aktulizace koˇrene);

W jeden SVD rozklad matice s rozmˇery r × r (aktualizace koˇrene); a

W dvakr´at souˇcin tenzoru s rozmˇery r × r × r a matice s rozmˇery r × r (ve tˇret´ım m´odu; posledn´ı krok aktualizace koˇrene; viz5.16).

Pro celkov´y pˇrehled viz tak´e tabulku5.1.

5.5.2 N´ aroˇ cnost souˇ ctu dvou tenzor˚ u

Pro souˇcet dvou tenzor˚u ve tvaru HTD, mus´ıme pro z´ısk´an´ı v´ysledn´eho tenzoru opˇet ve tvaru HTD prov´est tyto kroky:

W zˇretˇezit odpov´ıdaj´ıc´ı listy, tenzory tˇret´ıho ˇr´adu a koˇreny, coˇz je provedeno s nulov´ym poˇctem aritmetick´ych operac´ı;

W k-kr´at QR rozklad matice s rozmˇery n × 2r (ve vˇsech listech);

W (k − 2)-kr´at souˇcin tenzoru tˇret´ıho ˇr´adu s rozmˇery 2r × 2r × 2r a dvou matic s rozmˇery r × 2r (v prvn´ım a druh´em m´odu);

W (k − 2)-kr´at QR rozklad matice (resp. rozvoje tenzoru tˇret´ıho ˇr´adu) s rozmˇery r2×2r;

W jeden souˇcin tˇr´ı matic s rozmˇery r × 2r, 2r × 2r a 2r × r, pˇriˇcemˇz prostˇredn´ı matice je diagon´aln´ı (aktulizace koˇrene);

W jeden SVD rozklad matice s rozmˇery r × r (aktualizace koˇrene); a

W dvakr´at souˇcin tenzoru s rozmˇery r × r × r a matice s rozmˇery r × r (ve tˇret´ım m´odu; posledn´ı krok aktualizace koˇrene; viz5.16).

Pro celkov´y pˇrehled viz tak´e tabulku 5.1.

5.5.3 N´ aroˇ cnost v´ ypoˇ ctu skal´ arn´ıho souˇ cinu

Skal´arn´ı souˇcin dvou tenzor˚u k-t´eho ˇr´adu ve tvaru HTD se stejnou strukturou stromu, prov´ad´ıme postupnˇe v kroc´ıch, kter´e jsou ilustrov´any na obr´azku 5.7. Ze sch´ematu na obr´azku je zˇrejm´e, ˇze po vyn´asoben´ı odpov´ıdaj´ıc´ıch list˚u tenzor˚u po-stupujememe d´ale smˇerem ke koˇren˚um obou strom˚u, kdy postupnˇe n´asoben´ım ten-zor˚u s maticemi eliminujeme mezilehl´e uzly tenzorov´e s´ıtˇe. Tuto eliminaci m˚uˇzeme prov´est dvˇema zp˚usoby, tak jak je uk´az´ano na obr´azku5.8. Pro v´ypoˇcet skal´arn´ıho souˇcinu tedy prov´ad´ıme:

W k-kr´at souˇcin matic r × n a n × r – list˚u bin´arn´ıch strom˚u;

W eliminac´ı prov´ad´ıme tolik, kolik je v s´ıti souˇcinu odpov´ıdaj´ıc´ıch si p´ar˚u tenzor˚u tˇret´ıho ˇr´adu, tedy (k − 2)-kr´at. Pˇritom eliminace obsahuje (postupujeme-li

Obr´azek 5.8: Dva zp˚usoby eliminace mezilehl´ych uzl˚u s´ıtˇe pˇri v´ypoˇctu skal´arn´ıho souˇcinu. V´ypoˇcetn´ı n´aroˇcnosti jsou ekvivalentn´ı, nebot’ souˇcin tenzoru se dvˇema ma-ticemi (v r˚uzn´ych m´odech˚u; viz druh´y ˇr´adek uprostˇred) lze nahradit dvˇema souˇciny tenzoru stejn´eho ˇr´adu s matic´ı, jelikoˇz plat´ı T ×`M` ×tMt = (T ×`M`) ×tMt; viz napˇr. [26, kap. 2.2].

podle prvn´ıho ˇr´adku obr´azku5.8; postup podle druh´eho ˇr´adku je okomentov´an v popisku obr´azku):

V dvakr´at souˇcin dvou tenzor˚u s rozmˇery r×r×r ve dvou m´odech (v prvn´ım a druh´em);

V dvakr´at souˇcin tenzoru s rozmˇery r × r × r a matice s rozmˇery r × r (v prvn´ım, nebo druh´em m´odu).

Nakonec skal´arn´ı souˇcin jeˇstˇe vyˇzaduje prov´est (viz obr´azek5.7(f–h)):

W dvakr´at souˇcin matic s rozmˇery r × r (po eliminaci tenzor˚u tˇret´ıho ˇr´adu); a W jeden skal´arn´ı souˇcin matic s rozmˇery r × r.

Pro celkov´y pˇrehled viz tak´e tabulku 5.1.

Z tabulky 5.1 vid´ıme, ˇze vˇsechny operace jsou line´arn´ı (nikoliv exponenci´aln´ı) v k – tj. v ˇr´adu p˚uvodn´ıho tenzoru – a kvartick´e v r – veliˇcinˇe souvisej´ıc´ı s hodnost´ı tenzor˚u. Pˇr´ıpadn´a ´uspora operac´ı (a tedy i v´ypoˇcetn´ıho ˇcasu) samozˇrejmˇe z´avis´ı na tom, jak mal´e re´alnˇe m˚uˇze b´yt r pro dan´a data.

Na z´avˇer poznamenejme, ˇze operacemi (souˇcet a skal´arn´ı souˇcin) jsme se zab´yvali jen v pˇr´ıpadˇe, ˇze dvojice tenzor˚u v HTD, kter´a vstupovala do operace, mˇela stejnou strukturu stromu vˇcetnˇe index˚u. Pokud bychom chtˇeli prov´est nˇekterou z tˇechto operac´ı na dvojici tenzor˚u s r˚uzn´ym stromem, museli bychom nejprve jeden z tenzor˚u pˇrepoˇc´ıtat – tedy adaptovat tak, aby struktura obou byla pˇred operac´ı shodn´a.

Podobnˇe u line´arn´ıho zobrazen´ı jsme potˇrebovali, aby mˇelo kroneckerovskou stru-kturu odpov´ıdaj´ıc´ı rozmˇer˚um tenzoru. Tento poˇzadavek je vˇsak pˇrirozen´y, i kdyˇz zobrazen´ı m˚uˇze b´yt i komplikovanˇejˇs´ı, neˇz jak je naznaˇceno v (5.3); m˚uˇze se jednat o souˇcet nˇekolika takov´ych Kroneckerov´ych souˇcin˚u.

Tabulka 5.1: Porovn´an´ı v´ypoˇcetn´ı sloˇzitosti jednotliv´ych operac´ı: MMp znaˇc´ı souˇcin dvou matic (z anglick´eho matrix-matrix product). TMp souˇcin tenzoru tˇret´ıho ˇr´adu a matice (z anglick´eho tensor-matrix product); pozn. ˇze souˇcin tenzoru se dvˇema maticemi v r˚uzn´ych m´odech lze pˇrepsat jako dva souˇciny tenzoru a matice. V´ypoˇcetn´ı sloˇzitost QR rozkladu uvaˇzujeme r3 pro matici r × r a r4 pro matici r2×r; sloˇzitost SVD rozkladu uvaˇzujeme r3 pro matici r × r; viz napˇr. [4, kap. 3.5.6] a [6, kap. 8.6.4].

Sloˇzitost jedn´e sub-operace eliminace u skal´arn´ıho souˇcinu tenzor˚u je 4r4. Pˇri odvozov´an´ı sloˇzitost´ı jsme uvaˇzovali nejm´enˇe nevyv´aˇzen´y strom, s v´yjimkou prvn´ıho ˇr´adku vˇsak budou odhady platit pro libovoln´y strom (napˇr. i pro tensor train (TT)).

operace poˇcty element´arn´ıch sub-operac´ı sloˇzitost

souˇcin tenzoru s matic´ı 3 MMp + (⌈log2k⌉ + 1) TMp + ⌈log2k⌉ QR + SVD ∼2 ⌈log2k⌉ r4+5r3 aplikace lin. zobrazen´ı (5.3) (k + 2) MMp + (2k − 2) TMp + (2k − 2) QR + SVD ∼ (9k + 16)r4+ (k + 3)r3 souˇcet dvou tenzor˚u 2 MMp + (2k − 2) TMp + (2k − 2) QR + SVD ∼ (2k − 2)r4+ (2k + 3)r3 skal´arn´ı souˇcin tenzor˚u k + 2 MMp + (k − 2) eliminac´ı + skal´arn´ı souˇcin matic ∼ (4k − 8)r4+ (k + 2)r3

6 N´ aznak praktick´ eho v´ ypoˇ ctu HTD

Jak jsme jiˇz konstatovali, hierarchick´y Tucker˚uv rozklad je vhodn´y zejm´ena pro ukl´ad´an´ı a manipulaci s tenzory vysok´ych ˇr´ad˚u, protoˇze jak pamˇet’ov´e n´aroky, tak operace s tenzorem jsou lin´arn´ı, nikoliv exponenci´aln´ı, v ˇr´adu tenzoru. Obecnˇe ten-zory vysok´ych ˇr´ad˚u nelze v prost´em tvaru (ani v obyˇcejn´em Tuckerovˇe rozkladu) v˚ubec v poˇc´ıtaˇci uloˇzit pr´avˇe z d˚uvod˚u enormn´ı spotˇreby pamˇeti; viz obr´azek 4.4.

Je tedy zˇrejm´e, ˇze tenzor obecnˇe nem˚uˇze do HTD dostat postupem, kter´y by se nab´ızel z v´ykladu v kapitole 4. Naznaˇc´ıme proto jednu z moˇznost´ı, kde se s tenzory v HTD tvaru m˚uˇzeme setkat.

Uvaˇzujme rovnici

A(X ) = B, kde X, B ∈ Rn1×n2×⋯×nk (6.1) jsou tenzor nezn´am´ych a tenzor prav´ych stran a kde zobrazen´ı

A ∶ Rn1×n2×⋯×nk Ð→Rn1×n2×⋯×nk (6.2) je invertibiln´ı. Rovnici tedy lze pˇrepsat jako soustavu rovnic

A vec(X ) = vec(B) (6.3)

s regul´arn´ı matic´ı A ˇr´adu N ≡ n1⋅n2⋅ ⋯ ⋅nk.

Uˇz samotn´y fakt, ˇze n´am je rovnice d´ana k ˇreˇsen´ı, znamen´a, ˇze oba zn´am´e ob-jekty A a B mus´ı b´yt nˇejak ´uspornˇe uloˇzeny. ˇCasto m´a pr´avˇe matice soustavy tvar Kroneckerova souˇcinu (viz5.3), nebo souˇctu nˇekolika m´alo (napˇr. L) Kroneckerov´ych souˇcin˚u, tj. a tenzor prav´ych strany B je napˇr. n´ızk´e hodnosti; napˇr. hodnosti jedna. Tedy, je vnˇejˇs´ım souˇcinem k vektor˚u bj ∈Rnj, j = 1, . . . , k; viz napˇr. [13].

Tenzor B, kter´y je vnˇejˇs´ım souˇcinem k vektor˚u snadno pˇrep´ıˇseme do strukury, kter´a bude r´amcovˇe odpov´ıdat HTD. Staˇc´ı si vz´ıt jednotliv´e vektory bj jako listy, vytvoˇrit bin´arn´ı strom s tenzory tˇret´ıho ˇr´adu (1) ∈ R1×1×1 a s koˇrenem (1) ∈ R1×1. Pokud chceme m´ıt tenzor ve tvaru HTD i fakticky, staˇc´ı zortogonalizovat (tedy pouze znormalizovat) listy, tj. vz´ıt normalizovan´e vektory bj/∥bj∥, matice pˇrechodu sv´azan´e s tenzory tˇret´ıho ˇr´adu ortonorm´aln´ı sloupce mˇely, zb´yv´a tedy jako koˇren vz´ıt matici [∥b1∥ ⋅ ∥b2∥ ⋅ ⋯ ⋅ ∥bk∥] ∈R1×1.

Nyn´ı si staˇc´ı uvˇedomit, ˇze pro ˇreˇsen´ı soustav rovnic existuje cel´a ˇrada iteraˇcn´ıch metod (viz napˇr. [4, kapitoly 8 a 9], nebo [24], [25], [1], [8], a mnoho dalˇs´ıch) kter´e zpravidla pouˇz´ıvaj´ı jen n´asleduj´ıc´ı operace:

W n´asoben´ı matice A vektorem, W line´arn´ı kombinace dvou vektor˚u a W skal´arn´ı souˇcin vektor˚u.

Vˇsechny tyto operace ale um´ıme s tenzory v HTD tvaru prov´adˇet, pˇriˇcemˇz v´ysledkem prvn´ıch dvou je opˇet tenzor v HTD tvaru. Zb´yv´a tedy nˇejak zkonstruovat poˇc´ateˇcn´ı aproximaci tenzoru nezn´am´ych. Nejsnazˇs´ı bude vz´ıt poˇc´ateˇcn´ı odhad nulov´y, tj.

X0 =0. Takov´y poˇc´ateˇcn´ı odhad m˚uˇzeme snadno zapsat do ve tvaru HTD se stej-nou strukutrou, jako jiˇz m´ame zvolenou pro B, protoˇze X0 je fakticky tak´e vnˇejˇs´ım souˇcinem k – tentokr´at nulov´ych – vektor˚u [0, . . . , 0]T ∈Rnj, j = 1, . . . , k (tenzory tˇret´ıho ˇr´adu i matici v koˇrenu stromu lze opˇet volit (1) ∈ R1×1×1, resp. (1) ∈ R1×1; v pˇr´ıpadˇe nulov´eho tenzoru mohou vznikout technick´e probl´emy s pˇrevodem do skuteˇcn´eho HTD protoˇze zde budou figurovat nulov´e hodnosti, tedy napˇr. matice beze sloupc˚u, atd.).

V principu jsme tedy schopni nal´ezt tenzor ˇreˇsen´ı X rovnice (6.1) ve tvaru HTD.

Pro jeho ´uspˇeˇsn´e nalezen´ı zb´yv´a jen doufat (nebo dok´azat), ˇze vˇsechny hodnosti r vˇsech tenzor˚u – meziprodukt˚u iteraˇcn´ıho algoritmu, ale tak´e hledan´eho ˇreˇsen´ı (viz napˇr. [13, kap. 3.2, str. 676–678]), budou rozumnˇe mal´e.

Na z´avˇer jeˇstˇe poznamenejme, ˇze mezi r˚uzn´ymi programy a toolboxy vyvinut´ymi pro pr´aci s tenzory, viz pˇrehled v [11] nebo [26, pˇr´ıloha A], existuje software pˇr´ımo navrˇzen´y pro pr´aci s tenzory v HTD. Na obr´azku 6.1 vid´ıme tenzor ˇsest´eho ˇr´adu v HTD v htucker toolboxu, viz [14], kter´y jsme pˇrevzali z [12].

Dim. 1, 2

Dim. 3, 4, 5, 6 Dim. 1

Dim. 2

Dim. 3, 4

Dim. 5, 6 Dim. 3

Dim. 4

Dim. 5

Dim. 6

Obr´azek 6.1: Podoba HTD tenzoru ˇsest´eho ˇr´adu v htucker toolboxu (viz [14]) v MatLabu®, pˇrevzato z [12]. Modr´e ˇc´ary vyznaˇcuj´ı singlul´arn´ı ˇc´ısla odpov´ıdaj´ıc´ıch rozvoj˚u tenzoru.

Z´ avˇ er

Tato pr´ace m´a slouˇzit jako studijn´ı text uv´adˇej´ıc´ı ˇcten´aˇre, kter´y se jiˇz setkal se z´akladn´ımi pojmy multiline´arn´ı algebry, do problematiky reprezentace tenzor˚u po-moc´ı tenzorov´ych s´ıt´ı. V textu jsme zopakovali nˇekter´e d˚uleˇzit´e pojmy t´ykaj´ıc´ı se tenzor˚u, se kter´ymi pracujeme jako s v´ıcerozmˇern´ymi poli ˇc´ısel. D´ale jsme defino-vali nˇekter´e pojmy z teorie graf˚u a zavedli tzv. multigraf s volnˇe vis´ıc´ımi hranami a smyˇckami, kter´y jsme pozdˇeji pouˇzili pro reprezentaci tenzorov´e s´ıtˇe. Tenzor po-moc´ı graf˚u zn´azorˇnujeme jako vrchol s volnˇe vis´ıc´ımi hranami, jejichˇz poˇcet odpov´ıd´a ˇr´adu tenzoru. Klasick´e hrany potom v tenzorov´e s´ıt´ı pˇredstavuj´ı n´asoben´ı tenzor˚u v odpov´ıdaj´ıc´ıh m´odech.

Hlavn´ım c´ılem pr´ace bylo zaveden´ı hierarchick´eho Tuckerova rozkladu tenzoru (HTD), objasnˇen´ı principu na kter´em je zaloˇzen a t´ım i d˚ukazu jeho existence.

Grafickou reprezentac´ı tohoto rozkladu je tenzorov´a s´ıt’ v podobˇe (co nejm´enˇe ne-vyv´aˇzen´eho) bin´arn´ıho stromu. V textu jsme ale pouk´azali na moˇznosti libovoln´e volby bin´arn´ıho stromu – napˇr. tzv. tensor train je konstruov´an principi´alnˇe stejn´ym zp˚usobem jen s jin´ym tvarem bin´arn´ıho stromu. V´yhodou hierarchick´eho Tuckerova rozkladu je pˇredevˇs´ım pamˇet’ov´a ´uspora pˇri ukl´ad´an´ı tenzor˚u, za pˇredpokladu, ˇze hodnosti rozvoj˚u tenzoru do matice odpov´ıdaj´ıc´ı vˇetven´ı bin´arn´ıho stromu jsou mal´e.

V textu jsme proto nab´ıdli porovn´an´ı n´aroˇcnosti na pamˇet’ poˇc´ıtaˇce, ukl´ad´ame-li tenzor r˚uzn´ymi zp˚usoby.

Vˇenovali jsme se tak´e principu a n´aroˇcnosti nˇekter´ych operac´ı s tenzory uloˇzen´ y-mi v hierarchick´em Tuckerovˇe rozkladu, pˇriˇcemˇz jsme vˇzdy chtˇeli i v´ysledn´y tenzor z´ıskat ve tvaru HTD. Na z´avˇer jsme nab´ıdli i n´aznak praktick´eho v´ypoˇctu HTD v jedn´e konkr´etn´ı situaci.

Literatura

[1] O. Axelsson, Iterative solution methods, Cambridge University Press, Cam-bridge, 1994.

[2] B. W. Bader and T. G. Kolda, Algorithm 862: Matlab tensor classes for fast algorithm prototyping, ACM Transactions on Mathematical Software, 32 (2006), pp. 635–653.

[3] L. De Lathauwer, B. De Moor, and J. Vandewalle, A multilinear sin-gular value decomposition, SIAM Journal on Matrix Analysis and Applications, 21 (2000), pp. 1253–1278.

[4] E. J. Duintjer Tebbens, I. Hnˇetynkov´a, M. Pleˇsinger, Z. Strakoˇs, and P. Tich´y, Anal´yza metod pro maticov´e v´ypoˇcty: z´akladn´ı metody, Matfy-zpress, Praha, 2012.

[5] M. Fiedler, Speci´aln´ı matice a jejich pouˇzit´ı v numerick´e matematice, TKI, Teoretick´a kniˇznice inˇzen´yra, SNTL, St´atn´ı nakladatelstv´ı technick´e literatury, Praha, 1981.

[6] G. H. Golub and C. F. Van Loan, Matrix computations, Johns Hopkins Studies in the Mathematical Sciences, Johns Hopkins University Press, Balti-more, MD, 4th ed., 2013.

[7] L. Grasedyck, Hierarchical singular value decomposition of tensors, SIAM Journal on Matrix Analysis and Applications, 31 (2010), pp. 2029–2054.

[8] A. Greenbaum, Iterative methods for solving linear systems, vol. 17 of Fron-tiers in Applied Mathematics, Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 1997.

[9] B. N. Khoromskij, Tensors-structured numerical methods in scientific com-puting: Survey on recent advances, Chemometrics and Intelligent Laboratory Systems, 110 (2012), pp. 1–19.

[10] H. A. L. Kiers, Towards a standardized notation and terminology in multiway analysis, Journal of Chemometrics, 14 (2000), pp. 105–122.

[10] H. A. L. Kiers, Towards a standardized notation and terminology in multiway analysis, Journal of Chemometrics, 14 (2000), pp. 105–122.