• No results found

Speci´ aln´ı tenzorov´ e s´ıtˇ e

α1,...,α9

ai1,i21⋅bi312α3 ⋅cα29945⋅dα46⋅eα56,i4,i5⋅fα378 ⋅gα78,i6).

Obr´azek 3.6: Rozklad tenzoru T ˇsest´eho ˇr´adu do (resp. aproximace pomoc´ı) tenzo-rov´e s´ıtˇe tvoˇren´e tenzory A, B, C, D, E , F a G niˇzˇs´ıch ˇr´ad˚u; viz pˇr´ıklad 1.

3.5 Speci´ aln´ı tenzorov´ e s´ıtˇ e

Obecnˇe je motivac´ı pro konstrukci tenzorov´ych s´ıt´ı zejm´ena umoˇznit pr´aci s roz-s´ahl´ymi v´ıcerozmˇern´ymi daty. Napˇr´ıklad tenzor T ∈ R2×2×⋯×2 ˇr´adu 100 obsahuje 2100≈1.2676506 × 1030 prvk˚u, coˇz zˇrejmˇe nelze uloˇzit do pamˇeti poˇc´ıtaˇce.1 Nav´ıc zde ani pˇr´ıpadn´a komprese, napˇr. pomoc´ı klasick´eho Tuckerova rozkladu (viz [26, kap.

4], [19, str. 20], a [3, str. 1267]), nepom˚uˇze. Dalˇs´ı motivac´ı m˚uˇze b´yt snaha pomoc´ı tenzorov´ych s´ıt´ı zpˇrehlednit mnohorozmˇern´a data, viz zejm´ena [18]. Naˇs´ım c´ılem tedy bude naj´ıt takov´e s´ıtˇe, kter´e umoˇzn´ı

W sn´ıˇzit pamˇet’ov´e n´aroky (tj. budeme cht´ıt naj´ıt rozklad do s´ıtˇe s co nejm´enˇe tenzory co nejniˇzˇs´ıch ˇr´ad˚u);

1Uvaˇzujeme-li, ˇze na uloˇzen´ı jednoho ˇc´ısla napˇr. v pˇresnosti double potˇrebujeme 8 byt˚u, pak 2100=260240 a na uloˇzen´ı 240=10244ˇc´ısel potˇrebujeme 8 terabyt˚u.

W snadno d´ale manipulovat s tenzory ve tvaru s´ıtˇe (tj. hled´ame topologicky jed-noduch´e s´ıtˇe).

Tyto poˇzadavky vedou k tenzorov´e s´ıti ve tvaru bin´arn´ıho stromu. Nejˇcastˇeji pou-ˇz´ıvan´e jsou: hierarchick´y Tucker˚uv rozklad (HTD; z anglick´eho hierarchical Tucker decomposition), viz napˇr. [19, kap. 3] nebo [7], tensor train (TT), viz [17], a dalˇs´ı, viz tak´e obr´azek 3.7. V ide´aln´ım pˇr´ıpadˇe hierarchick´y Tucker˚uv rozklad dost´av´ame ve tvaru vyv´aˇzen´eho bin´arn´ıho stromu. Obecnˇe se snaˇz´ıme dostat strom, kter´y nen´ı pˇr´ıliˇs nevyv´aˇzen´y. Pˇr´ıpadn´a nevyv´aˇzenost m˚uˇze b´yt zp˚usobena:

W ˇr´adem tenzoru (je-li r˚uzn´y od k = 2ς);

W praktick´ymi d˚uvody (v´yznamem komponent – tj. kdyˇz fyzick´e indexy od-pov´ıdaj´ı urˇcit´emu jevu, napˇr. tepeln´e vodivosti jako v [13, kap. 4.1]).

Obr´azek 3.7: Pˇr´ıklady tenzorov´ych s´ıt´ı odpov´ıdaj´ıc´ı tenzoru ˇsest´eho ˇr´adu (zleva):

hierarchick´y Tucker˚uv rozklad tenzoru (HTD) – s´ıt’ ve tvaru ne zcela vyv´aˇzen´eho bin´arn´ıho stromu, tensor train (TT) – maxim´alnˇe nevyv´aˇzen´y bin´arn´ı strom a tzv.

tensor chain (TC), viz [9, str. 5]. Ten z pˇredchoz´ıho rozkladu vznik´a pˇrid´an´ım je-din´e hrany; na rozd´ıl od obou pˇredchoz´ıch obsahuje kruˇznici a je tedy v´ypoˇcetnˇe n´aroˇcnˇejˇs´ı na konstrukci. Pokud se budeme na vnitˇrn´ı tmavˇs´ı blok d´ıvat jako na jedin´y tenzor, vˇsechny tˇri obr´azky mohou pˇredstavovat obyˇcejn´y Tucker˚uv rozklad.

4 Hierarchick´ y Tucker˚ uv rozklad (HTD)

Jedn´ım z rozklad˚u, jehoˇz struktura je zn´azorˇnov´ana ve tvaru tenzorov´e s´ıtˇe, je hi-erarchick´y Tucker˚uv rozklad. Klasick´y Tucker˚uv rozklad, kter´y jsme jiˇz pˇripomnˇeli v kapitole 1, umoˇzˇnuje vyj´adˇren´ı tenzoru ˇr´adu k ve tvaru souˇcinu tenzoru (jehoˇz rozmˇery jsou omezen´e vektorov´ym rankem p˚uvodn´ıho tenzoru) ˇr´adu k, tzv. j´adra tenzoru, s k maticemi. Hierarchick´y Tucker˚uv rozklad (HTD z anglick´eho hierarchi-cal Tucker decomposition) spoˇc´ıv´a nav´ıc v rozloˇzen´ı Tuckerova j´adra dan´eho tenzoru do tvaru souˇcinu jednoduˇsˇs´ıch tenzor˚u. Takov´y rozklad m˚uˇzeme reprezentovat ten-zorovou s´ıt´ı (pˇredem dan´e struktury). V t´eto kapitole vysvˇetl´ıme z´akladn´ı princip vytvoˇren´ı hierarchick´eho Tuckerova rozkladu a t´ım z´aroveˇn ovˇeˇr´ıme jeho existenci.

4.1 Struktura HTD

V t´eto ˇc´asti si uk´aˇzeme, jak´ym zp˚usobem lze tenzor transformovat do potˇrebn´e struktury dan´e tenzorvou s´ıt´ı, kter´a bude m´ıt podobu bin´arn´ıho stromu, jako napˇr.

na obr´azku 3.7 vlevo. Uvaˇzujme tedy tenzor (1.1) ˇr´adu k

T = (ti1,i2,...,ik) ∈Rn1×n2×⋯×nk. (4.1) Nult´ym krokem m˚uˇze b´yt klasick´y Tucker˚uv rozklad, pˇriˇcemˇz HTD se provede pro Tuckerovo j´adro. My zde HTD vyloˇz´ıme pro obecn´y tenzor (ne nezbytnˇe Tuckerovo j´adro).

4.1.1 Nalezen´ı tenzoru druh´ eho ˇ r´ adu – koˇ rene bin´ arn´ıho stromu

Nyn´ı budeme hledat rozklad tenzoru do s´ıtˇe pˇredepsan´eho tvaru. Konkr´etnˇe bu-deme cht´ıt dos´ahnout co nejv´ıce vyv´aˇzen´eho stromu. Z kapitoly2.1.4v´ıme, ˇze kromˇe vrchol˚u s volnˇe vis´ıc´ımi hranami obsahuje bin´arn´ı strom vrcholy stupˇn˚u 3 a jeden vrchol (koˇren) stupnˇe 2. D˚uleˇzit´ymi n´astroji pro nalezen´ı takov´eho bin´arn´ıho stromu d´ale budou:

W rozvoj tenzoru v matici (viz definici 3),

W singul´arn´ı rozklad matice (viz napˇr. [4, kap. 5]).

Tenzorovou s´ıt’ konkr´etn´ıho tvaru z´ısk´ame tak, ˇze kaˇzd´a hrana tenzorov´e s´ıtˇe bude pˇredstavovat rozvoj tenzoru v m´odech odpov´ıdaj´ıch rozdˇelen´ı mnoˇziny index˚u ten-zoru. V naˇsem pˇr´ıpadˇe, kdy chceme z´ıskat vyv´aˇzen´y bin´arn´ı strom pro j´adro tenzoru

(4.1), rozdˇel´ıme mnoˇzinu jeho index˚u

{1, 2, . . . , k}

do dvou disjunktn´ıch podmnoˇzin

{1, . . . , s} a {s + 1, . . . , k},

pro nˇejak´e s, 1 ≤ s < k. Potom lze vytvoˇrit rovoj tenzoru v matici podle prvn´ı podmnoˇziny, tj.

T{1,...,s}∈RNL×NR, kde NL=n1⋅n2⋅ ⋯ ⋅ns, NR=ns+1⋅ns+2⋅ ⋯ ⋅nk. Uvaˇzujme ekonomick´y tvar singul´arn´ıho rozkladu t´eto matice

T{1,...,s}=U(1−s)Σ(1−s)(V(1−s))T, (4.2) kde

U(1−s) ∈RNL×r(1−s), Σ(1−s)∈Rr(1−s)×r(1−s), V(1−s)∈RNR×r(1−s), (4.3) pˇriˇcemˇz

r(1−s)=rank (T{1,...,s}). (4.4)

T´ımto jsme dos´ahli prvn´ıho kroku pˇri hled´an´ı HTD, jelikoˇz m´ame tenzor ˇr´adu 2, matici Σ(1−s), kter´a je koˇrenem hledan´eho bin´arn´ıho stromu, viz obr´azek 3.7 vlevo.

4.1.2 Vˇ etven´ı bin´ arn´ıho stromu pomoc´ı tenzor˚ u tˇ ret´ıho ˇ r´ adu

Z obr´azku je d´ale patrn´e, ˇze s´ıt’ HTD obsahuje tak´e velk´e mnoˇzstv´ı tenzor˚u tˇret´ıho ˇr´adu, kter´e budeme hledat ve smˇeru k list˚um, tak jak naznaˇcuje obr´azek4.1.

Pro jejich nalezen´ı vyuˇzijeme d˚uleˇzitou vlastnost, kterou pozdˇeji zobecn´ıme ve vˇetˇe 1. Uvaˇzujme m takov´e, ˇze 1 ≤ m < s. Uvaˇzujme d´ale matice U(1−m) a U((m+1)−s) lev´ych singul´arn´ıch vektor˚u z´ıskan´e z ekonomick´ych singul´arn´ıch rozklad˚u rozvoj˚u T{1,...,m} a T{m+1,...,s} podobnˇe jako ve (4.2)–(4.4). Pro obor hodnot matice U(1−s) plat´ı

R(U(1−s)) ⊆ R (U((m+1)−s)⊗U(1−m)), (4.5) neboli kaˇzd´y sloupec matice U(1−s) lze zapsat jako line´arn´ı kombinaci sloupc˚u Kro-neckerova souˇcinu matic U(1−m) a U((m+1)−s). Tedy existuje matice B takov´a, ˇze

U(1−s) = (U((m+1)−s)⊗U(1−m)) ⋅B(1−s), B(1−s)∈R(r(1−m)⋅ r((m+1)−s))×r(1−s); (4.6) sloupce matice B(1−s) obsahuj´ı koeficienty v´yˇse zm´ınˇen´ych line´arn´ıch kombinac´ı.

Tuto matici je moˇzn´e ch´apat jako rovoj tenzoru tˇret´ıho ˇr´adu B tak, ˇze B(1−s)= B{1,2}

(1−s), kde B(1−s)∈Rr(1−m)×r((m+1)−s)×r(1−s). (4.7) Analogick´ym postupem budeme d´al pracovat s maticemi U(1−m) a U((m+1)−s), ˇc´ımˇz se postupnˇe rozvˇetvuje bin´arn´ı strom a z´ısk´av´ame tak dalˇs´ı faktory – tenzory tˇret´ıho ˇr´adu – tenzorov´e s´ıtˇe, viz obr´azek 4.2. S matic´ı V(1−s) naloˇz´ıme podobnˇe, staˇc´ı si uvˇedomit, ˇze plat´ı

V(1−s)≡U((s+1)−k), nebot’ (T{1,...,s})T = T{s+1,...,k}. (4.8) Uvˇedomme si, ˇze podobu tenzorov´e s´ıtˇe (vˇetven´ı bin´arn´ıho stromu) urˇcuje vˇzdy rozdˇelen´ı mnoˇziny index˚u a tomu odpov´ıdaj´ıc´ı rozvoje v jednotliv´ych kroc´ıch.

Obr´azek 4.1: Zn´azornˇen´ı vˇetven´ı bin´arn´ıho stromu – tenzorov´e s´ıtˇe pˇri hierarchick´em Tuckerovˇe rozkladu.

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.