Matykání XLV: Geometrie kluka z plakátu

Matykání XLV: Geometrie kluka z plakátu

Matematika / článek

Minule jsme kolem čtvrté dimenze chodili opatrně jako kocour kolem horké kaše. Dnes se do ní vrhneme rovnou po hlavě. Kdo nemá 4D hlavičku, přinese si krční adaptér. Ale ne abyste na to konto strkali u včelaře hlavu do úlu.

Otázka dimenzionality odnepaměti zaměstnávala mysl učenců i filosofů. Není náš 3D vesmír jen 2D holografický obraz? Anebo naopak, není výronem hmoty z nitra 4D černé díry? Mohl by vůbec existovat 2D život? Jak bychom měli ve 2D modifikovat Coulombův zákon? A to nepočítám svou oblíbenou teorii, že celý kosmos je jen 3D slzou kanoucí po tváři 9D tyrkysové bohyně.

Možnosti více či méně rozměrných modelů dráždí vědce a občas se dokonce objeví náznaky, že bychom okovy 3D mohli jednou i strhnout (viz 4D Hall effect). O důvod víc, proč si pro takový svět vypěstovat intuici.

Syrová pravda je ale nelítostná. Navzdory různým matematickým a fyzikálním vychytávkám, které jsme okukovali minule, si 4D prostor (natožpak vícerozměrné varianty) nikdo z nás neumí bytostně představit. Jsme smyslově příliš zatlučení do 3D vnímání. Jak tedy s 4D realitou pracovat, když si ji nedokážeme vizualizovat? Nezbyde nám než geometrický náhled nahradit algebraickou manipulací. Abychom smysluplnost takové rošády mohli lépe ocenit, vžijeme se do kůže 2D kluka z plakátu a společně s ním začneme spekulovat o možném 3D světě (s tím, že my – v pozici 3D supermanů – budeme mít tu výhodu, že si třetí osu z umíme představit). A až budeme s tímto algebraickým sondováním dostatečně sžití, vrhneme se střemhlav do bezedných hlubin 4D. Než tak ale učiníme, dovolím si pár slov, proč vlastně vícerozměrné prostory studovat.

Proč studovat více dimenzí?

Na první pohled by se mohlo zdát, že si v tom našem krásném 3D vesmíru vystačíme s vektorovým prostorem R3, a trápit studenty s vícesložkovými vektory je bohapustá abstrakce a zločin proti lidskosti. Avšak i tak tradiční disciplína, jako je newtonowská mechanika, si občas ráda zalumpačí ve vícerozměrném prostoru. Namísto aby pohyb nějakého 3D tělesa popsala třemi měnícími se souřadnicemi, vystrnadí ho do tzv. fázového prostoru a tam pak jeho pohyb studuje pomocí šesti dimenzí (a to je jen ten nejběžnější model – pro obecnější problémy s více tělesy si těch zobecněných souřadnic můžete nabrnkat kolik chcete). O kvantové fyzice raději pomlčím: ta se nestydí provádět své rejdy ani v nekonečné dimenzi. Fuj!

To, že se pohyb tělesa ve 3D dá úspěšně studovat pomocí 6D fázového prostoru, je vidět i z laického pohledu, když si uvědomíte, kolik čísel musíte zadat, abyste mohli spočítat dráhu sledovaného tělesa. Nestačí jen zadat tři polohové souřadnice (obvykle značené q), ale musíte také zadat tři složky rychlosti (značené p). Představte si, že vám řeknu, že tenisový míček je metr nad sítí a dva metry od pravého sloupku (což se dá přepsat do tří souřadnic q1, q2 a q3). Dokážete určit, kam letí? Nedokážete. Ještě vám musím prozradit vektor rychlosti (či přesněji hybnosti) p1, p2, p3.

Proto je fázový prostor se souřadnicemi q1, q2, q3, p1, p2 a p3 přirozeným prostředím pro popis pohybu v R3. Upřímně řečeno, ono by se to zvládlo i v tom normálním 3D prostoru, určeném qéčky (v tomto kontextu se mu říká konfigurační prostor), ale v mnoha případech je ten 6D fázový prostor pro kvalitativní analýzu problému názornější.

Za touto lapálií stojí Newtonova rovnice F = ma, kde zrychlení a je druhá derivace polohy podle času (zatímco rychlost v indikuje změnu polohy s časem, zrychlení zachycuje změnu této změny). A ta druhá derivace se dá rozložit na dvě první. Takže při řešení si můžeme vybrat, zda budeme uvažovat jednu rovnici druhého řádu v konfiguračním prostoru, anebo dvě rovnice prvního řádu ve fázovém.

Asi největší doménou pro aplikaci vícerozměrných prostorů je moderní analýza dat. Numerická data se obvykle skládají z n objektů o_i a každý nich je charakterizován m čísly a_ij, kterým se říká „atributy“ nebo moderněji „fíčury“ (z anglického features, tedy „rysy“). Schematicky si to můžeme znázornit takto:

o_1: a_11, a_12, a_13, ... a_1m
o_2: a_21, a_22, a_23, ... a_2m
o_3: a_31, a_32, a_33, ... a_3m
...
o_n: a_n1, a_n2, a_n3, ... a_nm

Na taková data se pak můžeme dívat jako na n bodů v m-rozměrném prostoru.

Klasickým příkladem je tzv. bostonský model cen domů. Roli objektů zde hrají domy určené k prodeji a atributy jsou pak různé numerické veličiny jako míra zločinnosti v okolí, vzdálenost od městských center, průměrný počet místností apod. Cílem modelu je pak stanovit na základě těchto veličin regresní odhad prodejní ceny domu.

Z pohledu matematiky je každý dům reprezentován bodem ve 14D prostoru. To znamená, že model musí z „tvaru“ datové množiny ve 14D prostoru vydedukovat, jak jedna každá veličina (dimenze) přispívá k výsledné ceně.

Když se na nějaká vícedimenzionální data podíváme, obvykle zjistíme, že nejsou rozložená náhodně, ale vykazují určitou strukturu. Smyslem analýzy dat je pak tu strukturu odhalit (ať už regresí nebo nějakým sofistikovanějším algoritmem). Na obrázku vlevo například vidíme, že data nejsou homogenní, ale mají dvě „ohniska“ (pro jednoduchost jsem je barevně rozlišil). To je situace typická pro mnohé klasifikační problémy, kdy datové objekty pochází ze dvou rozdílných typů (např. bobři - lasičky) a cílem našeho snažení je pak algoritmus, který dokáže typ bodu odhadnout na základě jeho atributů.

Jiný typ problému je znázorněn v pravé části obrázku. Tady je vidět, že ačkoliv jsou data formálně 3D, ve skutečnosti leží na nějaké 2D varietě (tedy na jakémsi svinutém archu papíru). Cílem datové analýzy je pak tuto varietu nějak popsat, a to například tak, že si sestrojíme graf sousedních bodů (což odpovídá triangulaci hledané variety). Všimněte si, že projekce do nižších dimenzí (zde do roviny) spirálovité rysy spíše zamlží, než vytáhne.

Struktury nalezené v datech obvykle indikují zákonitosti, které v daném systému panují. Jejich studium je proto kruciální pro pochopení chování celého systému. Geometrie n-rozměrného prostoru je pak přirozeným kolbištěm, na kterém tento boj o nalezení souvislostí probíhá. Ale ani textová data se lineární algebře nevyhnula.

Ve statistické analýze jazyka (NLP) se s úspěchem používá tzv. „vnoření“ (angl. embedding), což je v podstatě reprezentace individuálních slov (nebo dokonce celých textů) pomocí vícerozměrných vektorů.

Většina algoritmů z oblasti umělé inteligence (např. určování sentimentu, automatická generace textů či tematická klasifikace) nereprezentuje každé slovo pomocí vlastní dimenze, kdy bychom na první ose měli třeba „kluk“, na druhé „holka“, ne třetí „autobus“ atd. To by vedlo k prostorům, jejichž dimenze by byla v řádu tisíců až desetitisíců (podle toho, jak velký slovník byste potřebovali), a to by podstatně zpomalovalo všechny výpočty.

Namísto toho se používají vnořovací algoritmy (viz word2vec nebo GloVe), popřípadě Gensim), které každé slovo reprezentují jako vektor v nějakém rozumně dimenzionálním prostoru (typicky 20D až 100D). Tyto vektory s redukovanou dimenzí pak v sobě kódují zajímavé sémantické vlastnosti.

Obdobně je tomu s celými texty. Představte si třeba, že se vám líbí odborný článek a chtěli byste z nějakého archivu vylovit jemu podobné (toto je mimochodem trochu jiný problém než vyhledávání textů pomocí předem zadaných „klíčových slov“). Porovnávací algoritmy obvykle nepracují na bázi textů jako takových, ale používají opět vnoření, tedy reprezentaci celých textů pomocí vícerozměrných vektorů. Problém nalezení podobných článků je pak převeden na vyhledání vektorů, které jsou ve vícerozměrném prostoru nejblíže k vektoru reprezentujícímu váš článek.

Jednou z nejznámějších metod pro jejich nalezení je tzv. latentní sémantická analýza (LSA), která reprezentuje dokumenty pomocí 100D až 500D vektorů (tím z celého textového korpusu vytvoří obří matici).

Funguje zhruba takto. Máte-li N dokumentů, které celkem obsahují M slov (a z praktických důvodů se velmi vzácná slova obvykle vypouští), sestavíte si nejprve tzv. matici slov a dokumentů (ta typicky obsahuje desetitisíce sloupců/dokumentů a tisíce řádků/slov). Jednotlivé sloupce sice přesně reprezentují slovní obsah každého dokumentu, ale mají příliš vysokou dimenzi. Proto je zkomprimujete pomocí metody singulárních hodnot (více v dnešním Addendu) na méně rozměrné vektory a ty pak každý dokument při výpočtu zastupují. Jaká by měla být výsledná dimenze, je tak trochu černá magie a obvykle se její hodnota volí v řádu stovek (čím více dokumentů v korpusu, tím vyšší dimenze).

Vícerozměrné prostory mají v moderní vědě a technologii samozřejmě daleko širší využití, ale jako malý předkrm nám to stačí.

Geometrie kluka z plakátu

Bylo nebylo, na jedné plakátovací ploše P v malebném městečku M žil malý kluk. Nebudeme mu však říkat K, ale Lukáš.

Lukáš se narodil v 2D světě, stavěl 2D sněhuláky a chodil s ostatními 2D dětmi do 2D školy. Tam se naučil mnoho zajímavých rovnic, například rovnici přímky (y = ax + b), rovnici kružnice (x2 + y2 = 1) nebo rovnici sinusoidy (y = sin(x)). Naučil se počítat obsahy rovinných obrazců i všemožné průsečíky.

Jenže Lukáš byl tak trochu snílek a po vyučování si vždycky zalezl do koutka plakátovací plochy a koumal, jak by asi tak mohl vypadat 3D svět. Moc mu to ale nešlo. Co je pro nás očividné, pro něj bylo vysoce spekulativní. Neměl nejmenší představu, kde by ten třetí rozměr mohl ležet. „Jak by mohlo něco trčet z roviny x-y? To je přece nemožné,“, říkal si umanutě a drbal se na svém 2D čele.

Ať mhouřil oči, jak chtěl, obraz 3D světa si ve své představivosti vykouzlit nedokázal. Jeho pohled byl navždy přikován do těsné 2D soutěsky mezi dopředu-dozadu a doleva-doprava. Nějaké nahoru-dolů byl pro něj výraz stejně abstraktní a nesmyslný jako pro nás sousloví „kubrámu-kešlopsu“, pomocí kterého jsme minule nesměle šťouchali do 4D Eukleidova prostoru.

Lukáš si tedy řekl, že to, co nezvládne zrakem, zvládne svou schopností manipulovat algrebraické rovnice a nalézat pro jejich řešení ekvivalenty ve svém 2D světě.

Nejprve si vzal parametrickou rovnici přímky p, procházející bodem A = (1,1) a vinoucí se rodnou rovinou podél směrového vektoru u = (2,3).

Každý její bod P odpovídá jednomu reálnému parametru t, který nám říká, jak velký násobek vektoru u k bodu A přičítáme:

P = A + tu

Pokud je t = 0, sedíme stále v bodě A. Pokud je t = 1, posunuli jsme se do bodu P = (1,1) + 1 * (2,3) = (3,4). Je-li naopak hodnota parametru záporná, řekněme t = -3, zacouvali jsme do bodu P = (1,1) – 3 * (2,3) = (-5,-8). Mezi body přímky a reálnými čísly je vzájemně jednoznačná korespondence.

Ve 3D by tedy přímka mohla mít obdobnou rovnici jen s tím rozdílem, že bod A i vektor u budou mít tři souřadnice. Lukáš si takovou přímku nedovedl představit, ale zjistil, že počítat se s ní dá docela snadno.

Vezmeme-li si bod A = (1,0,-2) a vektor u = (1,1,0), pak reálnému číslu t = 2 bude odpovídat bod P = A + tu = (3,2,-2). No vida, funguje to.

Obráceně je to komplikovanější, ale i to Lukáš zvládl. Jakému číslu t bude odpovídat bod P = (0,-1,-2)? Za tím účelem si rovnici P = A + tu rozepsal do souřadnic a dostal (*):

0 = 1 + t
-1 = 0 + t
-2 = -2 + 0t

Řešení je t = -1.

Hned si ale uvědomil, že tady má tři rovnice pro jednu neznámou t, takže při náhodném výběru P (třeba P = (1,2,3)) ty rovnice nebudou mít řešení, což znamená, že náhodně vybraný bod P na přímce p asi ležet nebude.

Lukáš si neuměl představit, kudy se ta 3D přímka vine, ale dokázal si lehce spočítat, které body na ní leží a které ne. Takto povzbuzen pustil se zkoumání 3D ekvivalentu kružnice, kterému říkal rozverně „koule“, protože tu jednou dostal, když se nenaučil Thaletovu větu.

Koule by tedy měla být množina bodů v 3D, které mají stejnou vzdálenost od středu. Pokud si za něj vezmeme počátek, dostaneme rovnici

(K) x2 + y2 + z2 = 1

Lukáš samozřejmě neměl ani šajna, jak majestátní a vznešené těleso taková koule je (když se vznáší, zavěšena v prostoru), ale dokázal si pro každý konkrétní bod X spočítat, zda leží uvnitř koule, na jejím povrchu, anebo vně.

Prostě si pro souřadnice bodu X vyčíslil výraz na levé straně (K) a podíval se, zda je menší než jedna, rovný jedné, anebo větší než jedna. Takto si velmi rychle spočítal, že bod A = {.222, .725, .652} leží na kouli, bod B = {-.54, .23, .74} uvnitř a bod C = {1.14, -0.66, 2.74} vně.

A to byl jenom začátek. Lukáš si dokázal spočítat i průsečík své přímky p s koulí K. Uvažoval takto: pokud je pro nějaké t bod přímky na kouli (tedy na jejím povrchu), musí splňovat předchozí rovnici, tj. součet čtverců všech souřadnic se rovná 1. Lukáš tedy pravé strany svých parametrických rovnic (*) naházel do rovnice (K) a dostal kvadratickou rovnici, kterou uměl vyřešit.

Pokud měla dvě řešení P a Q, znamenalo to, že přímka p protíná kouli K ve dvou bodech. Pokud by dostal jen jedno řešení, přímka p by byla tečnou ke kouli, a pokud by nedostal žádné, přímka p by ležela mimo kouli. Všimněte si, že Lukáš nemá nejmenší představu, jak koule a přímka vypadá. On si ten obrázek vpravo neumí představit v plné 3D kráse jako my (ten průřez je jen 2D analogie). Dokáže ale algebraicky manipulovat příslušné rovnice, aby si některé vlastnosti, které my prostě vidíme, odvodil.

Ze souřadnic bodů P a Q by si dokázal například spočítat středový úhel POQ (sevřený oběma body v počátku). Nejprve by zobecnil tradiční 2D skalární součin na

u.v = u1 * v1 + u2 * v2 + u3 * v3

a z něho by si pak lehce spočetl kosinus úhlu mezi vektoru OP a OQ.

Přestože Lukáš tyto vektory nevidí, dokáže z nich vyždímat spoustu užitečných informací o mystickém 3D světě kdesi v dálce za plakátovou duhou.

Úplně triviální to zobecňování ale není. Jasně, k tomu 2D skalárnímu součinu

u.v = u1 * v1 + u2 * v2

stačí přihodit jeden pár souřadnic a jedeme dál, močálem temným kolem bílých skal. Ale třeba s vektorovým součinem už je potíž. Ten funguje jen ve 3D, takže Lukáš by o jeho existenci ve 2D asi neměl ani páru. Jeho ekvivalent se sice dá vystopovat v 7D, ale v ostatních dimenzích se zobecňuje jen s obtížemi.

To je koneckonců vidět i z toho, že když do tradiční definice pomocí determinantu vložíme vektory dimenze 4 a více, tak už nemáme čtvercovou matici a determinant najednou nefunguje.

Vidět je to i geometricky. Vektorový součet uv je na oba vektory kolmý a už ve 4D je těch kolmých vektorů příliš mnoho, takže z nich nelze vybrat jednoznačně určený směr (za chvilku na to mrkneme).

Mimochodem, když uvážíte, jak často se vektorový součin ve fyzice vyskytuje, musí vás nutně napadnout, že Bůh nám přidělil 3D právě proto, že v jiných dimenzích (bez vektorového součinu) by fyzika byla učiněným peklem.

Ani s přímkou to zobecnění není úplně triviální. Když se podíváme její „neparametrickou“ rovnici

y = kx + q neboli ax + by + c = 0

mohli bychom společně s Lukášem snadno podlehnout dojmu, že rovnice

ax + by + cz + d = 0

bude rovnicí přímky ve 3D. Ale není tomu tak. Když začnete zkoumat řešení předchozí rovnice, zjistíte, že v ní budete potřebovat (v nedegenerovaném případě) dva parametry, a celá rovnice tudíž nepopisuje přímku, ale rovinu ve 3D. Obecně v n-rozměrném prostoru bude každá taková rovnice (svazující n souřadnic lineárním vztahem) popisovat (n-1) dimenzionální objekt, kterému se říká „nadrovina“ (někdy také mluvíme o objektu kodimenze 1, kde kodimenze je rozdíl mezi dimenzí celého prostoru a dimenzí našeho objektu).

Ne každá analogie má tedy své opodstatnění a pojmy z nižších dimenzí nelze jen tak „otrocky“ překládat do dimenzí vyšších. Nicméně pokud Lukáš postupuje opatrně kupředu a používá jen zobecnění, která dávají smysl, poměrně rychle si vytvoří výpočetní a konceptuální základ, na kterém se dá „mechanika“ 3D prostoru vybudovat i bez toho, aby ho „viděl“.

A o to se pokusíme i my ve 4D.

Vzhůru do více rozměrů!

Tak tedy vítejte v 3D plakátu. Tady jsme všichni Lukášové. A přesto, že si nedokážeme 4D představit, pokusíme se pár věcí si ohmatat alespoň výpočtem. A nic nebudeme dbát na to, že se nám z vnějšku našeho 3D plakátu bude smát nějaký 4D superman, který to všechno pozoruje.

Začneme s přímkou. A provedeme to opět parametricky, abychom se na blatech nezamotali do nějakých mlhavých nadrovin. Uvažujme přímku p určenou bodem A = (2,1,2,0) a vektorem u = (1,0,-1,2).

(∗∗) P = A + tu = (2 + t,1,2 - t,2t)

S pomocí parametrické rovnice můžeme opět určit, které body na ní leží a které ne – stejně jako Lukáš se ze souřadnic bodu pokusíme určit t a buď se nám to povede, anebo ne. Např. bod B = (1,2,3,4) na ní neleží, zatímco bod C = (0,1,4,-4) ano (ten odpovídá parametru t = -2).

Kudy přesně ta přímka 4D prostorem x-y-z-w vede, samozřejmě „nevidíme“, ale můžeme si vykreslit její průmět do 2D souřadných rovin x-y, y-z, z-w atd. nebo do 3D souřadných prostorů, a to nám podá základní představu, kudy a jak se vine. Například pro její průmět do roviny x-w vylovíme z parametrického vyjádření první a čtvrtý člen a dostaneme:

P = (2 + t,2t), tj. x = 2 + t, w = 2 * t

V rovině x-w pak můžeme t vyloučit a přímku zapsat ve směrnicovém tvaru

w = 2 * (x-2) = 2 * x-4

Sféra s poloměrem r (a středem v počátku) bude mít ve 4D rovnici

x2 + y2 + z2 + w2 = r2

Díky ní si můžeme spočítat nejen to, které body leží uvnitř a které vně, ale také třeba průsečík naší přímky se sférou o poloměru r = 9. Naházíme parametrické výrazy (**) pro jednotlivé souřadnice do rovnice sféry a dostaneme kvadratickou rovnici

9 + 6t2 = 92

Ta má řešení t = ±2 * sqrt(3) = ±3.4641

Dosazením tohoto parametru do rovnice přímky získáme souřadnice obou průsečíků:

P = (5.4641, 1, -1.4641, 6.9282)
Q = (-1.4641, 1, 5.4641, -6.9282) (ověřte si sami, že jejich vzdálenost od počátku je opravdu 9)

A protože i ve 4D funguje skalární součin, můžeme si pomocí něho (a normy obou vektorů) spočítat úhel sevřený v počátku body P a Q. Nejprve ze známé formulky zjistíme, že jeho kosinus je -0.777, a to znamená, že úhel sám je zhruba roven 141°. Přestože si ty body neumíme představit, dokážeme s nimi pracovat.

Stejně tak si můžeme spočítat vektory kolmé ke dvojici vektorů uv,

řekněme u = (1,0,1,0) a v = (0,1,2,3).

Protože skalární součin s neznámým kolmým vektorem k = (x,y,z,w} musí být v obou případech nula, dostaneme

u.k = 0 = x + z
v.k = 0 = y + 2z + 3w

To jsou 2 rovnice pro 4 neznámé, takže dvě proměnné si můžeme vybrat libovolně, tj. uděláme z nich parametry w = t a z = s - a x,y potom dopočítáme z obou rovnic:

x = -s
y = -2s - 3t

Nejobecnější kolmý vektor na uv bude mít tedy vyjádření

k = (-s,-2s-3t,s,t) = s * (-1,-2,1,0) + t * (0,-3,0,1)

což je rovina určená 4D vektory naznačenými vpravo. Tady vidíte proč ve 4D nelze zavést vektorový součin uv. Zatímco ve 3D určují vektory kolmé na uv přímku, ve 4D určují rovinu (a z roviny se „směr“ vektoru vycucat nedá).

Život v n dimenzích má ovšem i svá úskalí, zejména pro pašeráky krychlí. Představme si jednotkovou krychli (tedy délka strany a = 1) se středem v počátku. Rohy krychle mají souřadnice plus minus 1/2 a spočítáme-li si vzdálenost d z rohu krychle do středu, dostaneme

d = sqrt((1/2)2 + (1/2)2 + ... + (1/2)2)

kde těch členů je přesně n. Ve dvou dimenzích (n = 2) dostaneme pro vzdálenost z rohu čtverce ke středu známou hodnotu sqrt(1/2) = 0.7071 (což je polovina úhlopříčky). Díky tomu se celý jednotkový čtverec vejde do jednotkového kruhu (r = 1). Ale jak přidáváme členy, výraz pro d roste a už ve 4D je roven d = 1 (v odmocnině sečteme 4 členy), takže roh 4D krychle bude ležet na jednotkové sféře. Pro 5D a výše bude d > 1 a krychle se do jednotkové koule prostě nevejde. Pokud tedy pašujete jednotkové krychle uvnitř jednotkových koulí, ve 2D a 3D je to v pohodě, ale ve více dimenzích máte smůlu.

S trochou práce se pak dají spočítat i komplikovanější úlohy, například objem 4D sféry nebo velikost jejího povrchu. Tam už se ale musí integrovat, takže tuto čest přenecháme koňovi (o několika aplikacích se zmíním příště).

Addendum: Projekce

Člověk je tvor vizuální – homo visualis. Až polovina našeho mozku se zabývá – přímo či nepřímo – zpracováním obrazových informací.

Statistika nám sice umožňuje z daného datového souboru vyextrahovat spoustu užitečných údajů (a interpretovat je), ale marná sláva, pokud chceme datům opravdu porozumět, musíme se na ně „kouknout“.

Jenže jak okouknout něco, co si dřepí kdesi v 15rozměrném prostoru? Na vizualizaci bychom to potřebovali slisovat do R3, anebo ještě lépe do R2.

S tím nám opět pomůže naše stará známá projekce (tedy průmět), což je matematické zobecnění klasického experimentu, kdy promítáme 3D předmět pomocí lampy na 2D stěnu.

Projekcí je v matematice celá řada, ale ty nejjednodušší jsou projekce do souřadnicových rovin (či prostorů). Při ní si v podstatě z vektorů vyzobnete dvojici nebo trojici souřadnic, které chcete vidět a ty ostatní „zapomenete“. Například projekci z 7D do souřadnicové roviny (x2,x6) realizujeme pomocí zobrazení

P: (x1,x2,x3,x4,x5,x6,x7) --> (x2,x6)

Souřadnicové roviny jsou ale pro mnoho problémů příliš speciální a neříkají nám nic nového. Pak můžeme zkusit promítat do obecnějších nakloněných rovin (prostorů) určených nějakou dobře zvolenou dvojicí (či trojicí) vektorů. To už je výpočetně o něco náročnější, ale s trochou lineární algebry se to dá zvládnout.

Musíme mít ale stále na paměti, že při projekci pozorujeme pouhý stín reality. Už při té nejjednodušší, tedy z R3 do R2, dochází k podstatné ztrátě informace. Promítněte si na stěnu prstýnek a uvidíte buď kroužek, elipsu, anebo dokonce malou úsečku – podle toho, pod jakým úhlem prstýnek promítáte.

A pokud promítáte ze 17D do 2D, zahazujete drtivou většinu informace.

Projekce obecně nezachovává dvě nejdůležitější geometrické charakteristiky – úhly a vzdálenosti. Vezměme si opět tu nejjednodušší: z prostoru x-y-z do roviny x-y.

Vektory u = (1,1,2) a v = (1,1,3) se zobrazí (promítnou) na jeden a ten samý vektor, a to (1,1). To znamená, že úhel mezi promítnutými vektory bude 0, zatímco mezi původními vektory je evidentně úhel kladný (a dal by se spočítat ze skalárního součinu).

Stejně zatočí projekce i se vzdáleností. Vezměte si v rovině dva blízké body A a B a jeden z nich posuňte podél osy z o pár metrů „výš“. Jejich 2D projekce budou stále blízko, ale ve 3D už mezi oběma body bude značná (několikametrová) mezera. A protože pojem „blízkosti“ je pro analýzu centrální, nesmíme z obrázků obdržených při projekci dělat ukvapené závěry. Přesto se vyplatí si data před analýzou dobře prohlédnout.

A pokud se vám souřadnicové projekce přejedly, můžete při volbě průmětové roviny použít tzv. „hlavní komponenty“, což jsou v podstatě směry, ve kterých data vykazují největší variabilitu.

Na obrázku vpravo vidíte, že souřadné osy nejsou pro zkoumání uvedených dat nejvhodnější perspektivou. Daleko zajímavější by bylo, kdybychom se na ně mohli podívat pomocí „nových os“, které jsou s daty „sladěny“ (na obrázku v modrém). Takovým osám se říká „hlavní komponenty“ (viz principal component analysis). Data pak nepromítáme podél souřadnicových os (červeně), ale podél hlavních komponent (zeleně).

Například při redukci textu na vektory, zmíněné v první sekci, se numerická data reprezentovaná sloupcovými vektory promítnou do prvních N hlavních komponent a tyto projekce potom příslušné dokumenty reprezentují (zde N je dimenze výsledných vektorů, kterou si volí uživatel).

Najít hlavní komponenty není hračka. Na tom ilustrativním obrázku by se daly narýsovat od oka pravítkem. Ve více dimenzích už nám to neprojde. Jak jsem naznačil v první sekci, data mají obvykle formu obdélníkové matice M (např. zmíněná matice slov a dokumentů). Ta se nejprve pronásobí svou transpozicí a z výsledné čtvercové matice se spočítají tzv. vlastní vektory (viz singular value decomposition). Výsledkem je maticová dekompozice M = U.S.V, kde U je matice obsahující slovní vektory, V je matice obsahující dokumentové vektory a S je diagonální matice, která předchozím vektorům přiřazuje určité váhy. Ale to za nás všechno většinou zařídí software, takže si s tím hlavu lámat nebudeme a vyrazíme raději na lov vlastních kaprů.

Článek je redakčně upravenou verzí blogového příspěvku na serveru iDNES.cz. Publikováno s laskavým svolením autora. Další díly a původní texty jsou dostupné na blogu Jana Řeháčka.

Další články k tématu