• No results found

Porovn´ an´ı pamˇ et’ov´ ych n´ arok˚ u

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 (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

Jak jsme jiˇz konstatovali, hierarchick´y Tucker˚uv rozklad je vhodn´y zejm´ena pro