Uživatelské nástroje

Nástroje pro tento web


tenzor

Tenzor

Tenzor (anglicky Tensor) je v kontextu informatiky, datové vědy a umělé inteligence v podstatě vícerozměrné pole čísel. Ačkoliv má tento pojem své původní a mnohem komplexnější kořeny v teoretické fyzice a matematice (kde popisuje lineární vztahy mezi geometrickými vektory, např. pnutí materiálu), v IT světě se význam zjednodušil na standardizovanou datovou strukturu pro uchovávání a manipulaci s obrovským množstvím číselných dat.

Tenzory jsou absolutním stavebním kamenem moderního strojového a hlubokého učení (Deep Learning). Umožňují efektivně krmit neuronové sítě daty. Jsou natolik zásadní, že nejpopulárnější framework od společnosti Google pro vývoj umělé inteligence nese název TensorFlow (doslova „tok tenzorů“).

Hierarchie dimenzí (Rank tenzoru)

Základní vlastností tenzoru je jeho počet dimenzí, os neboli tzv. Rank. Pro pochopení tenzoru je nejlepší představit si postupné přidávání dimenzí. V programátorské terminologii se často říká, že i základní hodnoty (jako jediné číslo) jsou vlastně jen specifické tenzory s nízkým rankem.

  • Rank 0 (Skalár): Tenzor nultého řádu. Jedná se o pouhé jedno osamocené číslo. Nemá žádné osy. (Příklad v kódu: `x = 5`)
  • Rank 1 (Vektor): Tenzor prvního řádu. Je to jednorozměrné pole čísel (sloupec nebo řádek). Má jednu osu. (Příklad: `x = [1, 2, 3, 4]`)
  • Rank 2 (Matice): Tenzor druhého řádu. Dvourozměrná tabulka s řádky a sloupci, podobně jako list v Excelu. Má dvě osy. (Příklad: `x = 1, 2], [3, 4`)
  • Rank 3 a více (Tenzor): Zde už obvykle přestáváme používat speciální jména a hovoříme prostě o tenzorech. 3D tenzor je v podstatě „krychle“ čísel – pole složené z několika matic.

Reprezentace reálných dat pomocí tenzorů

Proč neuronové sítě potřebují vícerozměrná pole? Protože svět kolem nás, který chceme analyzovat, je vícerozměrný. Počítač nerozumí slovu „pes“, rozumí jen číslům. Všechna data proto musí být převedena (zakódována) do tenzorů:

Textová data a časové řady (2D a 3D Tenzory)

Pokud pracujeme s textem, jednotlivá slova se často převádějí na vektory čísel (tzv. Word Embeddings). Celá věta je pak maticí (2D tenzor). Pokud chceme síť trénovat na více větách najednou (tzv. Batch), přidáme další dimenzi a vznikne nám 3D tenzor (Počet vět × Délka věty × Vektorová reprezentace slova).

Obrázky (3D Tenzory)

Běžný barevný obrázek v počítači má šířku a výšku (což je 2D mřížka pixelů). Ale protože se barva skládá ze tří kanálů (RGB - červená, zelená, modrá), potřebujeme k uložení jednoho barevného obrázku 3D tenzor. Dimenze jsou: (Výška × Šířka × 3 barevné kanály).

Video a Dávky obrázků (4D Tenzory)

Neuronové sítě se málokdy trénují na jednom obrázku. Obvykle se posílá tzv. „dávka“ (Batch) např. 64 obrázků najednou, aby se výpočet na grafické kartě (GPU) urychlil. Dávka obrázků je 4D tenzor (Velikost dávky × Výška × Šířka × Počet barevných kanálů). Video funguje podobně – je to jen sekvence obrázků za sebou, přidává se tedy časová osa. Tenzor má pak tvar (Snímky × Výška × Šířka × Barevné kanály).

Výpočetní výkon a Grafické karty (GPU)

Násobení matic a tenzorů vyžaduje miliony matematických operací. Běžný procesor (CPU) umí počítat věci rychle, ale většinou jen postupně (sekvenčně). Grafické karty (GPU) nebo specializované čipy (jako TPU od Googlu – Tensor Processing Unit) naopak obsahují tisíce malých jader. Díky nim dokáží provádět jednoduché matematické operace napříč celým tenzorem současně (paralelně). Proto se AI trénuje téměř výhradně na výkonných grafických kartách.

Rychlé shrnutí dimenzí

Dimenze (Rank) Matematický název Geometrická analogie Typický příklad z IT a AI
0D Skalár (Scalar) Bod Jeden konkrétní datový bod (např. věk uživatele = 25)
1D Vektor (Vector) Úsečka Časová řada (vývoj teploty během dne), zvuková stopa
2D Matice (Matrix) Čtverec / Tabulka Černobílý obrázek, Dataset z tabulky CSV (řádky a sloupce)
3D Tenzor 3. řádu Krychle Barevný obrázek (X, Y, barva), dávka textových dokumentů
4D Tenzor 4. řádu Sestava krychlí Dávka barevných obrázků, krátké video
5D Tenzor 5. řádu N/A Dávka videí pro trénink AI modelu
tenzor.txt · Poslední úprava: autor: admin