Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
Slovníček asi čtyřiceti symbolů, se kterým přečtete každou definici v sérii Základy AI — od indexů a řeckých písmen přes ∑ a argmin po ∀ a ∃. S tahákem na konci.
Série Základy AI Díl 4 z 83
- Mapa umělé inteligence: co je co a jak to do sebe zapadá
- Stručná historie umělé inteligence: od Turinga po jazykové modely
- Data, model, trénink, inference: základní pojmy na jednom příkladu
- Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relace: stavebnice, ze které se skládají definice v AI
- Funkce a zobrazení: proč je každý model v AI funkce
- Logika a důkazy: pravidla, podle kterých se v AI uvažuje
- Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
- Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
- Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
- Gradientní sestup: jak se model učí
- Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
- Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
- Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
- Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
- Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
- Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
- Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
- Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
- Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
- Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
- Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
- Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
- Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
- Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
- Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
- Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
- Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
- Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
- Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
- Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
- Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
- Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
- Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
- Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
- Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
- Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
- Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
- Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
- Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
- Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
- Přeučení a regularizace: proč model, který zná data nazpaměť, selže
- Vyhodnocení modelu: křížová validace, F1 a křivka ROC
- Shlukování a snížení dimenze: k-means, PCA a t-SNE
- Klasifikace a regrese: dvě úlohy učení s učitelem
- Lineární regrese: nejmenší čtverce geometricky i maticově
- Polynomiální a nelineární regrese: jak přímku ohnout
- Logistická regrese: sigmoida, šance a křížová entropie
- Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
- Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
- Ztrátové funkce: co přesně model minimalizuje
- Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
- Ansámbly: náhodný les a gradient boosting
- SVM a jádrový trik: nejširší hranice a jak ji ohnout
- Signál a vzorkování: proč platí Nyquistův teorém
- Fourierova transformace: rozklad signálu na frekvence
- Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
- Zvuk a řeč: spektrogram, melová škála a MFCC
- Obraz jako signál: pixely, barvy, konvoluce a hrany
- Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
- Neuronová síť od nuly: zpětné šíření chyby krok za krokem
- Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
- Konvoluční sítě: jak síť poznává obrázky
- Rekurentní sítě: paměť pro posloupnosti a mizející gradient
- LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
- Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
- Embeddingy a word2vec: jak se slovo stane vektorem
- Mechanismus pozornosti: jak se model naučí, kam se dívat
- Transformery a velké jazykové modely: architektura krok za krokem
- Tokenizace: jak se text rozseká na kousky pro model
- Předtrénování a škálování: proč větší model a víc dat funguje
- Doladění a RLHF: jak se z doplňovače textu stane asistent
- Prompty, kontext a RAG: jak modelu dát správné informace
- Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
- Generativní adversariální sítě (GAN): padělatel proti detektivovi
- Difúzní modely: jak se z čistého šumu stane obrázek
- Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
- Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
- Policy gradient a PPO: učení přímo strategie
- Jak funguje AI agent: jazykový model ve smyčce s nástroji
- Programování s AI agenty: zadání, testy a kontrola
- Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat
Celá osnova série 83 z 83 témat hotovo
- Jak přečíst indexy, řecká písmena, ∑, argmin, ∀ a ∃ — a co obvykle znamenají v AI.
- Postup, kterým rozeberete jakoukoliv definici na části a přeložíte ji do slov.
- Tahák všech symbolů, které v sérii potkáte.
Matematický zápis vypadá jako šifra, ale je to jen zkratka. Věta „sečti druhé mocniny všech čísel v seznamu“ se dá napsat jako ∑i xi2 a znamená přesně totéž — jen je kratší a nedá se vyložit dvojím způsobem.
Symbolů, které potkáte v článcích o umělé inteligenci, je překvapivě málo — asi čtyřicet. Tady je projdeme po skupinách, u každého řekneme, jak se čte, a na konci přečteme pár skutečných definic z dalších dílů. Tahák všech symbolů najdete v poslední kapitole.
1. Proč matematika používá symboly
Přirozený jazyk je dvojznačný. „Každý student přečetl nějakou knihu“ může znamenat, že každý přečetl jinou knihu, nebo že všichni přečetli tutéž. V zápisu ∀s ∃k a ∃k ∀s jde o dvě různé věty a nikdo si je nesplete. Zápis je přesný, krátký a mezinárodní — vzorec z čínské učebnice přečtete stejně jako z české.
Vzorec se nečte naráz jako obrázek, ale jako věta — zleva doprava, symbol po symbolu. Když narazíte na neznámý symbol, stačí ho najít v taháku a „přeložit“ do slov. Po pár definicích to půjde samo.
2. Proměnné, indexy a řecká písmena
Proměnná je písmeno, které zastupuje číslo nebo jiný objekt: x, y, n. Píše se kurzívou. Když máme hodnot víc, rozlišíme je indexem — malým číslem nebo písmenem vpravo dole:
- x1, x2, x3 — první, druhá, třetí hodnota („x jedna, x dvě…“),
- xi — „i-tá“ hodnota, kde i může být kterékoliv číslo,
- Ai,j — prvek v i-tém řádku a j-tém sloupci tabulky (matice),
- x(i) — i-tý příklad v datech; závorka odliší index od mocniny x2.
Čárka nebo stříška nad písmenem dělá z jedné proměnné příbuznou: s′ („s s čárkou“) je další stav po s, ŷ („y se stříškou“) je odhad skutečné hodnoty y a x̄ („x s pruhem“) je průměr. Hvězdička značí to nejlepší: θ* jsou optimální parametry, C* optimální cena.
Latinských písmen je málo, a tak si matematika půjčuje řecká. V AI mají některá zavedený význam — když je uvidíte, většinou víte, o co jde:
| Znak | Čte se | Obvykle znamená |
|---|---|---|
| α | alfa | rychlost učení, krok algoritmu |
| β | beta | parametr (například setrvačnost) |
| γ | gama | diskontní faktor — jak moc záleží na budoucnosti |
| δ, Δ | delta | malá změna, rozdíl |
| ε | epsilon | velmi malé kladné číslo; pravděpodobnost náhodného průzkumu |
| η | éta | rychlost učení v gradientním sestupu |
| θ | théta | parametry modelu — ty „knoflíky“, které se učí |
| λ | lambda | síla regularizace |
| μ | mí | střední hodnota, průměr; střed shluku |
| π | pí | politika agenta (a také číslo 3,14…) |
| σ | sigma | směrodatná odchylka; sigmoida |
3. Množiny v zápisu
Množina je skupina prvků; píše se do složených závorek: {1, 2, 3} nebo {↑, →, ↓, ←}. Velkými dvojitými písmeny se značí známé množiny čísel: ℕ přirozená čísla (1, 2, 3, …), ℤ celá, ℝ reálná. ℝn jsou všechny seznamy n reálných čísel — vektory.
- x ∈ S — „x patří do S“, je jejím prvkem; x ∉ S — nepatří,
- A ⊆ B — „A je podmnožinou B“, všechno z A je i v B,
- A ∪ B — sjednocení (co je aspoň v jedné), A ∩ B — průnik (co je v obou),
- A × B — kartézský součin: všechny dvojice (a, b),
- ∅ — prázdná množina, |S| — počet prvků,
- {x ∈ ℝ : x > 0} — „množina všech reálných x, pro která platí x > 0“; dvojtečka (nebo svislá čára) se čte „pro která platí“.
Kulaté závorky naopak znamenají uspořádanou skupinu, kde záleží na pořadí: (3, 1) není totéž co (1, 3). Tak se píší dvojice, souřadnice a n-tice — například úloha prohledávání jako šestice (S, s0, A, T, G, c). Množinám a relacím se podrobně věnuje samostatný díl.
4. Suma a součin: ∑ a ∏
Definice — suma a součin
Nechť m, n ∈ ℤ jsou celá čísla a ai ∈ ℝ je reálné číslo pro každé celé i s m ≤ i ≤ n. Suma (součet) a součin čísel am, …, an jsou čísla
∑i=mn ai := am + am+1 + … + an, ∏i=mn ai := am · am+1 · … · an pro m ≤ n,
∑i=mn ai := 0, ∏i=mn ai := 1 pro m > n (prázdná suma a prázdný součin).
Tečky „…“ lze nahradit přesným zápisem rekurzí: pro n ≥ m je ∑i=mn ai = (∑i=mn−1 ai) + an a ∏i=mn ai = (∏i=mn−1 ai) · an.
Proměnná pod znakem (i) je sčítací index; postupně nabývá všech celých hodnot od dolní meze m do horní meze n, každé právě jednou.
Velké sigma ∑ je cyklus „pro i od 1 do n přičti“.
Velké pí ∏ totéž, jen se násobí. Kdo programuje, zná to jako
for i in range(1, n + 1): soucet += a[i].
Vezměme seznam x = (3, 1, 4, 1, 5), tedy x1 = 3, x2 = 1 atd. Pak:
∑i=15 xi = 3 + 1 + 4 + 1 + 5 = 14
∑i=13 xi2 = 32 + 12 + 42 = 9 + 1 + 16 = 26
∏i=13 xi = 3 · 1 · 4 = 12
x̄ = 1/5 ∑i=15 xi = 14/5 = 2,8 — průměr (barvy podle vzorce níže)
Poslední řádek je vzorec, který potkáte nejčastěji: 1/n ∑ je průměr. Když u sumy chybí meze (∑i), sčítá se přes všechna i, která dávají smysl — typicky přes všechny příklady v datech.
x̄ = 1/n ∑i=1n xi
- x̄
- průměr — pruh nad písmenem říká „z hodnot x spočítané jedno typické číslo“
- 1/n
- vydělí součet počtem hodnot; bez něj by „průměr“ rostl s každou přidanou hodnotou a dva seznamy různé délky by nešly srovnat
- ∑i=1n
- projde všechny indexy od 1 do n — meze zaručí, že žádná hodnota nechybí a žádná se nezapočítá dvakrát
- xi
- právě sčítaná hodnota; index i se v každém kroku sumy posune
Věta — počítání se sumou
Nechť n ∈ ℕ, c ∈ ℝ a ai, bi ∈ ℝ pro i = 1, …, n. Pak platí
∑i=1n (c · ai + bi) = c · ∑i=1n ai + ∑i=1n bi a ∑i=1n c = n · c.
Důkaz. Rozepište sumu na n sčítanců, přeskupte je (sčítání je asociativní a komutativní) a z každého c · ai vytkněte c. Konstanta sečtená nkrát je n · c. ∎
Příklad. Pro x = (3, 1, 4, 1, 5): ∑i=15 (2xi + 1) = 2 · 14 + 5 · 1 = 33. Přímo: 7 + 3 + 9 + 3 + 11 = 33.
Pozor: mocninu ani jinou nelineární funkci takhle ze sumy vytknout nejde — ∑ xi2 není (∑ xi)2. Pro našich pět hodnot: 9 + 1 + 16 + 1 + 25 = 52, kdežto 142 = 196.
Když všem v seznamu zdvojnásobíte plat a přidáte korunu, celkový součet je dvojnásobek původního plus tolik korun, kolik je lidí. Na tomhle pravidle stojí většina úprav vzorců v dalších dílech — třeba proč průměr chyb můžeme derivovat člen po členu.
5. Funkce, šipky a argmin
f(x) čteme „f od x“ — hodnota funkce f pro vstup x. Zápis f : X → Y („f z X do Y“) říká, odkud funkce bere vstupy a kam patří výstupy: f : ℝ2 → {0, 1} bere dvojici čísel a vrací 0 nebo 1 — to je klasifikátor bodů v rovině.
Definice — funkce a složení funkcí
Nechť X a Y jsou množiny. Funkce (zobrazení) f z X do Y, psáno f : X → Y, je množina dvojic f ⊆ X × Y (relace, viz díl Množiny a relace), pro kterou platí
∀x ∈ X ∃! y ∈ Y : (x, y) ∈ f,
kde ∃! čteme „existuje právě jedno“. Tento jediný prvek y značíme f(x). Funkce tedy přiřazuje každému prvku x ∈ X právě jeden prvek f(x) ∈ Y. Množina X je definiční obor, Y cílová množina (často se jí říká i obor hodnot).
Nechť X, Y, Z jsou množiny a f : X → Y, g : Y → Z funkce. Složení funkcí f a g je funkce
g ∘ f : X → Z, (g ∘ f)(x) := g(f(x)) pro každé x ∈ X.
Příklad. f(x) = x + 1, g(x) = x2. Pak (g ∘ f)(3) = g(4) = 16, ale (f ∘ g)(3) = f(9) = 10 — na pořadí záleží.
Funkce je automat: hodíte do něj vstup a vypadne vždycky stejný výstup — nikdy dva, nikdy žádný. Složení je zapojení automatů za sebe. Neuronová síť není nic jiného než dlouhý řetěz takhle složených funkcí, jedna vrstva za druhou.
- x ↦ x2 — „x se zobrazí na x na druhou“; popis funkce bez jména,
- fθ(x) — funkce, jejíž chování určují parametry θ („f s parametry théta“),
- g ∘ f — složení: nejdřív f, pak g, tedy g(f(x)),
- θ ← θ − η ∇J — šipka doleva je přiřazení v algoritmu: „nová hodnota θ je…“; := znamená „definujeme jako“.
Poslední řádek je nejdůležitější zápis celé série — krok gradientního sestupu. Rozebraný:
θ ← θ − η ∇J(θ)
- θ
- parametry modelu; vpravo stará hodnota, vlevo nová — stejné písmeno, protože jde o tutéž proměnnou v různém čase
- ←
- přiřazení, ne rovnost: θ = θ − … by platilo jen pro nulový krok, kdežto ← říká „přepiš“
- −
- gradient ukazuje do kopce, my chceme chybu zmenšit, a tak jdeme opačně
- η
- rychlost učení — malé kladné číslo; gradient je jen místní informace, s dlouhým krokem bychom kopec přeskočili
- ∇J(θ)
- gradient chyby J v aktuálním bodě — kterým směrem chyba roste nejrychleji a jak moc
Příklad — tři kroky gradientního sestupu
Hledáme argmin J(θ) = (θ − 2)2. Derivace je J′(θ) = 2(θ − 2). Začneme v θ = 5 s η = 0,25:
krok 1: θ ← 5 − 0,25 · 2 · (5 − 2) = 5 − 1,5 = 3,5
krok 2: θ ← 3,5 − 0,25 · 2 · (3,5 − 2) = 3,5 − 0,75 = 2,75
krok 3: θ ← 2,75 − 0,25 · 2 · (2,75 − 2) = 2,75 − 0,375 = 2,375
(Barvy podle vzorce výše: η, gradient J′(θ), stará a nová hodnota θ.)
Vzdálenost od minima 2 se každým krokem přesně půlí (3; 1,5; 0,75; 0,375), protože po kroku je nová vzdálenost (θ − 2η(θ − 2)) − 2 = (1 − 2η)(θ − 2) a 1 − 2 · 0,25 = 0,5. S η = 0,5 bychom byli v cíli jedním krokem, s η > 1 by se vzdálenost zvětšovala.
Definice — min, max, argmin, argmax
Nechť X je neprázdná množina a f : X → ℝ funkce. Argument minima funkce f na X je množina
argminx ∈ X f(x) := {x* ∈ X : ∀x ∈ X : f(x*) ≤ f(x)}.
Je-li tato množina neprázdná a x* je libovolný její prvek, je minimum funkce f na X číslo
minx ∈ X f(x) := f(x*)
(nezáleží na tom, který prvek vybereme — všechny dávají stejnou hodnotu). Minimum je tedy nejmenší hodnota, které f na X nabývá, argmin množina všech míst, kde jí nabývá. Má-li argmin jediný prvek x*, píše se zkráceně argminx ∈ X f(x) = x*. Na nekonečné množině nemusí minimum existovat: f(x) = x na intervalu (0, 1) se k nule libovolně blíží, ale nikdy jí nenabude, a argmin je prázdný.
argmax a max se definují stejně, jen s nerovností f(x*) ≥ f(x).
min odpovídá na otázku „jak nízko se dá dostat?“, argmin na otázku „kde to je?“. Pro f(x) = (x − 2)2 je min f = 0, ale argmin f = 2. Trénink modelu je hledání argmin — nezajímá nás, jak malá je chyba, ale které parametry ji dávají.
Na konečné množině se argmin najde prostým projitím. Pro f(x) = (x − 2)2 na X = {0, 1, 2, 3, 4} jsou hodnoty 4, 1, 0, 1, 4, takže min = 0 a argmin = 2. Na X = {0, 1, 3, 4} (bez dvojky) je min = 1, ale argmin = {1, 3} — dvě místa se stejnou hodnotou, proto definice mluví o množině.
def argmin(f, X):
nejlepsi, hodnota = [], float("inf") # zatím nic, „nekonečně špatné“
for x in X:
if f(x) < hodnota: # nové minimum: zapomeň dosavadní
nejlepsi, hodnota = [x], f(x)
elif f(x) == hodnota: # remíza: přidej do množiny
nejlepsi.append(x)
return nejlepsi, hodnota # argmin a min najednou
6. Logické spojky a kvantifikátory
| Zápis | Čte se | Příklad |
|---|---|---|
| ¬P | ne P | ¬(x > 3) je totéž co x ≤ 3 |
| P ∧ Q | P a Q | x > 0 ∧ x < 1 — x leží mezi 0 a 1 |
| P ∨ Q | P nebo Q (nebo obojí) | x < 0 ∨ x > 1 |
| P ⇒ Q | jestliže P, pak Q | x > 2 ⇒ x2 > 4 |
| P ⇔ Q | P právě tehdy, když Q | x2 = 0 ⇔ x = 0 |
| ∀x : P(x) | pro každé x platí P | ∀x ∈ ℝ : x2 ≥ 0 |
| ∃x : P(x) | existuje x, pro které platí P | ∃x ∈ ℕ : x > 100 |
Věta — negace kvantifikátorů
Nechť X je množina a P(x) výrok o prvku x, který je pro každé x ∈ X buď pravdivý, nebo nepravdivý. Pak platí
¬(∀x ∈ X : P(x)) ⇔ ∃x ∈ X : ¬P(x),
¬(∃x ∈ X : P(x)) ⇔ ∀x ∈ X : ¬P(x).
Negace tedy prohodí ∀ a ∃ a přesune se k výroku P. Jde o tvrzení plynoucí přímo z významu kvantifikátorů: „neplatí pro všechna“ znamená právě „pro aspoň jedno neplatí“.
„Neplatí, že všechny labutě jsou bílé“ znamená „existuje labuť, která bílá není“. Na vyvrácení tvrzení „pro všechna“ stačí jeden protipříklad — a přesně tak se v matematice často dokazuje.
Pozor na implikaci ⇒: tvrdí jen to, že když platí P, platí i Q. O situaci, kdy P neplatí, neříká nic. Z x > 2 ⇒ x2 > 4 neplyne, že x2 > 4 ⇒ x > 2 — stačí vzít x = −3.
Definice — spojky pravdivostní tabulkou
Označme {0, 1} množinu pravdivostních hodnot (1 = pravda, 0 = nepravda) a nechť P, Q ∈ {0, 1}. Logické spojky jsou funkce
¬ : {0, 1} → {0, 1} a ∧, ∨, ⇒, ⇔ : {0, 1} × {0, 1} → {0, 1}
dané předpisy
- ¬P := 1 − P;
- P ∧ Q := min(P, Q) — rovná se 1, právě když P = 1 a zároveň Q = 1;
- P ∨ Q := max(P, Q) — rovná se 1, právě když P = 1 nebo Q = 1 (nebo obojí);
- P ⇒ Q := max(1 − P, Q) — rovná se 0, právě když P = 1 a Q = 0;
- P ⇔ Q := 1, je-li P = Q, a 0 jinak.
Protože {0, 1} má jen dvě hodnoty, je každá spojka plně určená tabulkou:
| P | Q | ¬P | P ∧ Q | P ∨ Q | P ⇒ Q | P ⇔ Q |
|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 | 1 | 1 |
Implikace je nepravdivá v jediném řádku: P platí a Q ne. Proto P ⇒ Q znamená totéž co ¬P ∨ Q (porovnejte sloupce).
„Když bude pršet, vezmu si deštník.“ Slib porušíte jen tehdy, když prší a deštník nemáte. Když neprší, slib platí, ať deštník máte, nebo ne — o téhle situaci nic neříkal.
7. Další značky, které potkáte
- a/b nebo a / b — dělení, „a lomeno b“ (pro b ≠ 0); oba zápisy znamenají totéž. Lomítko se hodí tam, kde musí vzorec zůstat na jednom řádku (v kódu, v obyčejném textu), zlomek je přehlednější, protože bez závorek ukáže, co přesně se čím dělí: x − μ/σ je totéž co (x − μ) / σ. Na tomhle webu proto sázíme dělení všude jako zlomek,
- |x| — absolutní hodnota (|−3| = 3); ‖x‖ — délka vektoru (norma),
- ⌊x⌋, ⌈x⌉ — zaokrouhlení dolů a nahoru (⌊2,7⌋ = 2, ⌈2,1⌉ = 3),
- ≈ — přibližně rovno; ∝ — úměrné („roste stejně jako“); ≫ — mnohem větší,
- ∞ — nekonečno; [0, 1] — interval včetně krajních bodů, (0, 1) — bez nich,
- ∇f („nabla f“) — gradient, směr nejrychlejšího růstu; ∂f/∂x — parciální derivace,
- O(n2) — „řádově n na druhou“: jak rychle roste čas nebo paměť algoritmu,
- P(A | B) — pravděpodobnost A, když víme, že nastalo B; 𝔼[X] — střední hodnota,
- w⊤ — transpozice: z řádku sloupec a naopak; w⊤x je skalární součin.
Norma a skalární součin se dají napsat sumou, kterou už umíme číst:
‖x‖ = √∑i=1n xi2
- ‖x‖
- délka vektoru x ∈ ℝn; dvojité čáry ji odliší od absolutní hodnoty čísla
- xi2
- čtverec jedné souřadnice — záporná souřadnice přispívá k délce stejně jako kladná
- ∑i=1n
- sečte příspěvky všech souřadnic; to je Pythagorova věta, jen pro libovolný počet rozměrů
- √
- odmocnina (pruh nad výrazem ukazuje, kam sahá) vrátí výsledek do stejných jednotek jako souřadnice — délka (3, 4) má být 5, ne 25
w⊤x = ∑i=1n wi xi
- w⊤x
- skalární součin — jedno číslo ze dvou vektorů stejné délky; ⊤ z w udělá řádek, aby šel „řádek krát sloupec“
- wi
- váha i-tého vstupu — jak moc a kterým směrem (znaménko) na něm záleží
- xi
- i-tý vstup; násobí se jen se svou vlastní vahou
- ∑
- sečte vážené vstupy do jednoho čísla — tak se v neuronu „hlasuje“
Definice — velké O
Nechť g : ℕ → ℝ je funkce s nezápornými hodnotami (g(n) ≥ 0 pro všechna n ∈ ℕ). Velké O funkce g je množina funkcí
O(g) := {f : ℕ → ℝ : f(n) ≥ 0 pro všechna n ∈ ℕ ∧ ∃c ∈ ℝ, c > 0 ∃n0 ∈ ℕ ∀n ∈ ℕ, n ≥ n0 : f(n) ≤ c · g(n)}.
Pro funkci f : ℕ → ℝ s nezápornými hodnotami tedy f ∈ O(g) (často psáno jen f = O(g)), právě když platí podmínka, kterou rozebereme člen po členu:
∃c > 0 ∃n0 ∈ ℕ ∀n ≥ n0 : f(n) ≤ c · g(n)
- ∃c > 0
- smíme g vynásobit konstantou — velké O nezajímá, jestli je počítač dvakrát rychlejší, jen jak čas roste
- ∃n0 ∈ ℕ
- smíme ignorovat malé vstupy — na nich rozhodují drobnosti, ne tvar růstu
- ∀n ≥ n0
- od té hranice ale už pro všechny větší vstupy, bez výjimky
- f(n) ≤ c · g(n)
- samotné tvrzení: f neroste rychleji než g — g je horní odhad
Příklad. f(n) = 3n2 + 5n ∈ O(n2), tj. g(n) = n2: zvolíme c = 4 a n0 = 5. Pak 3n2 + 5n ≤ 4n2 ⇔ 5n ≤ n2 ⇔ n ≥ 5 (pro n > 0). Pro n = 10: 350 ≤ 4 · 100 = 400 (barvy podle rozboru výše).
Definice — podmíněná pravděpodobnost a střední hodnota
Nechť (Ω, 𝓕, P) je pravděpodobnostní prostor (viz díl Co je pravděpodobnost) a A, B ∈ 𝓕 jsou jevy, kde P(B) > 0. Podmíněná pravděpodobnost jevu A za podmínky B je číslo
P(A | B) := P(A ∩ B)/P(B).
Nechť dále X : Ω → ℝ je náhodná veličina (viz díl Náhodná veličina), která nabývá jen konečně mnoha navzájem různých hodnot x1, …, xk, a P(X = x) značí P({ω ∈ Ω : X(ω) = x}). Střední hodnota veličiny X je číslo
𝔼[X] := ∑j=1k xj · P(X = xj),
tedy součet všech možných hodnot, každé vážené svou pravděpodobností.
Příklad. Hod kostkou, A = „padla šestka“, B = „padlo sudé číslo“. P(A ∩ B) = 1/6, P(B) = 3/6, takže P(A | B) = 1/6/3/6 = 1/3: když víme, že padlo sudé, zbývají tři stejně možné výsledky. Střední hodnota hodu: 𝔼[X] = (1 + 2 + 3 + 4 + 5 + 6) · 1/6 = 21/6 = 3,5 — hodnota, která sama padnout nemůže, ale je průměrem dlouhé řady hodů.
8. Přečtěte si celou definici
Teď to složíme dohromady. Tohle je definice tréninku modelu z dílu o druzích strojového učení. Každý člen má barvu a pod vzorcem stejnou barvou stojí, proč tam je:
θ* = argminθ 1/n ∑i=1n L( fθ(xi), yi )
- θ*
- nejlepší parametry modelu — výsledek tréninku; hvězdička je odliší od θ, které během hledání zkoušíme
- argminθ
- chceme místo minima, ne jeho hodnotu — model pak používáme s parametry, ne s číslem chyby; index θ říká, co smíme měnit (data ne)
- 1/n ∑i=1n
- průměr přes všech n příkladů — model má být dobrý v průměru na všech datech, ne jen na jednom příkladu
- L
- ztrátová funkce — převede dvojici „odpověď, správná odpověď“ na jedno číslo, kolik chyba stojí; bez ní by nebylo co minimalizovat
- fθ(xi)
- co model s parametry θ odpoví na i-tý vstup — jediné místo, kde se θ ve vzorci objeví, a tedy jediná cesta, jak chybu ovlivnit
- yi
- správná odpověď k i-tému vstupu — měřítko, se kterým odpověď modelu srovnáváme
Nejlepší parametry modelu jsou ty, se kterými model v průměru přes všechna trénovací data udělá nejmenší chybu mezi tím, co odpoví, a tím, co je správně.
Příklad — empirické riziko s čísly
Data: tři dvojice (xi, yi) = (1, 2), (2, 3), (3, 7). Model fθ(x) = θ · x má jediný parametr, ztráta je čtverec chyby L(ŷ, y) = (ŷ − y)2. Označme průměrnou ztrátu R(θ) = 1/3 ∑i=13 L(fθ(xi), yi). Barvy podle vzorce výše:
θ = 2: odpovědi 2, 4, 6, chyby 0, 1, −1, R = 1/3 (0 + 1 + 1) ≈ 0,667
θ = 2,5: odpovědi 2,5; 5; 7,5, chyby 0,5; 2; 0,5, R = 1/3 (0,25 + 4 + 0,25) = 1,5
Přesné argmin: derivace R′(θ) = 2/3 ∑i=13 (θ xi − yi) xi položená rovna nule dá θ* = ∑ xi yi/∑ xi2 = 2 + 6 + 21/1 + 4 + 9 = 29/14 ≈ 2,071 a R(θ*) ≈ 0,643.
Min je tedy 0,643 (menší chyba s tímhle modelem nejde), argmin je 2,071 — to je naučený model.
A ještě jedna, z dílu o prohledávání — prioritní funkce algoritmu A*:
f(n) = g(n) + h(n)
- f(n)
- priorita stavu n — A* vždy rozvine stav s nejmenším f; proto musí jedno číslo shrnout celou cestu přes n
- g(n)
- cena, kterou už jsme do n zaplatili — přesně známá; bez ní by algoritmus zbytečně preferoval stavy blízko cíle, ke kterým vedla drahá cesta
- h(n)
- odhad, kolik ještě zbývá do cíle (heuristika) — díky němu hledání míří k cíli místo do všech stran; když cenu nikdy nepřecení, najde A* nejlevnější cestu
Čte se „f od n se rovná g od n plus h od n“: odhad ceny celé cesty přes stav n je cena, kterou už jsme do n zaplatili (g), plus odhad, kolik ještě zbývá (h). Stejný postup funguje pro každou definici: najít hlavní vztah (=, ≤, ⇔), rozebrat obě strany na části a každou přeložit do slov.
9. Tahák
| Symbol | Čte se | Význam |
|---|---|---|
| xi | x i-té | i-tý prvek |
| ŷ, x̄, θ* | y se stříškou, x s pruhem, théta s hvězdičkou | odhad, průměr, optimum |
| ∈, ∉ | patří, nepatří | je, není prvkem množiny |
| ⊆, ∪, ∩, × | podmnožina, sjednocení, průnik, krát | operace s množinami |
| ℕ, ℤ, ℝ, ℝn | N, Z, R, R na n-tou | přirozená, celá, reálná čísla, vektory |
| a/b, a / b | a lomeno b | dělení (na webu se sází jako zlomek) |
| ∑, ∏ | suma, součin | sečti, vynásob přes index |
| f : X → Y | f z X do Y | funkce a její vstupy a výstupy |
| argmin, argmax | argument minima, maxima | kde je nejmenší, největší hodnota |
| ←, := | přiřaď, definujeme jako | nová hodnota, definice |
| ¬, ∧, ∨ | ne, a, nebo | logické spojky |
| ⇒, ⇔ | jestliže–pak, právě tehdy když | implikace, ekvivalence |
| ∀, ∃ | pro každé, existuje | kvantifikátory |
| |x|, ‖x‖ | absolutní hodnota, norma | velikost čísla, délka vektoru |
| ≈, ∝, ≫ | přibližně, úměrné, mnohem větší | porovnání |
| ∇, ∂ | nabla, parciální derivace | gradient, derivace podle jedné proměnné |
| O(·) | velké O | řád růstu času nebo paměti |
| P(A | B), 𝔼 | pravděpodobnost A za podmínky B, střední hodnota | pravděpodobnost |
10. Shrnutí
- Matematický zápis je zkratka věty: čte se zleva doprava, symbol po symbolu.
- Indexy rozlišují hodnoty, řecká písmena mají v AI zavedené významy (θ parametry, η rychlost učení, γ diskont).
- ∑ je cyklus, který sčítá; 1/n ∑ je průměr; dělení se píše zlomkem nebo lomítkem; argmin hledá místo, ne hodnotu.
- ∀ a ∃ dělají z vlastností přesná tvrzení; na vyvrácení „pro všechna“ stačí jeden protipříklad.
S tímhle slovníkem přečtete všechny definice v sérii. Když narazíte na symbol, který tu chybí, napište nám — doplníme ho.
Máte na to jiný názor? Napište na support@coden-app.com.