Přeskočit na obsah
coden

Funkce a zobrazení: proč je každý model v AI funkce

Definiční obor, obraz, injektivita, skládání, inverze, funkce více proměnných a konvexita — s grafy sigmoidy, ReLU a chybové krajiny.

13 minut Matěj Žalmánek 2026-10-15

Série Základy AI Díl 6 z 83
  1. Mapa umělé inteligence: co je co a jak to do sebe zapadá
  2. Stručná historie umělé inteligence: od Turinga po jazykové modely
  3. Data, model, trénink, inference: základní pojmy na jednom příkladu
  4. Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relace: stavebnice, ze které se skládají definice v AI
  6. Funkce a zobrazení: proč je každý model v AI funkce
  7. Logika a důkazy: pravidla, podle kterých se v AI uvažuje
  8. Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
  9. Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
  10. Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
  11. Gradientní sestup: jak se model učí
  12. Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
  13. Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
  14. Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
  15. Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
  16. Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
  17. Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
  18. Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
  19. Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
  20. Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
  21. Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
  22. Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
  23. Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
  24. Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
  25. Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
  26. Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
  27. Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
  28. Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
  29. Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
  30. Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
  31. Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
  32. Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
  33. Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
  34. Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
  35. Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
  36. Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
  38. Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
  39. Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
  40. Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
  41. Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
  42. Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
  43. Přeučení a regularizace: proč model, který zná data nazpaměť, selže
  44. Vyhodnocení modelu: křížová validace, F1 a křivka ROC
  45. Shlukování a snížení dimenze: k-means, PCA a t-SNE
  46. Klasifikace a regrese: dvě úlohy učení s učitelem
  47. Lineární regrese: nejmenší čtverce geometricky i maticově
  48. Polynomiální a nelineární regrese: jak přímku ohnout
  49. Logistická regrese: sigmoida, šance a křížová entropie
  50. Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
  51. Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
  52. Ztrátové funkce: co přesně model minimalizuje
  53. Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
  54. Ansámbly: náhodný les a gradient boosting
  55. SVM a jádrový trik: nejširší hranice a jak ji ohnout
  56. Signál a vzorkování: proč platí Nyquistův teorém
  57. Fourierova transformace: rozklad signálu na frekvence
  58. Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
  59. Zvuk a řeč: spektrogram, melová škála a MFCC
  60. Obraz jako signál: pixely, barvy, konvoluce a hrany
  61. Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
  62. Neuronová síť od nuly: zpětné šíření chyby krok za krokem
  63. Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
  64. Konvoluční sítě: jak síť poznává obrázky
  65. Rekurentní sítě: paměť pro posloupnosti a mizející gradient
  66. LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
  67. Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
  68. Embeddingy a word2vec: jak se slovo stane vektorem
  69. Mechanismus pozornosti: jak se model naučí, kam se dívat
  70. Transformery a velké jazykové modely: architektura krok za krokem
  71. Tokenizace: jak se text rozseká na kousky pro model
  72. Předtrénování a škálování: proč větší model a víc dat funguje
  73. Doladění a RLHF: jak se z doplňovače textu stane asistent
  74. Prompty, kontext a RAG: jak modelu dát správné informace
  75. Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
  76. Generativní adversariální sítě (GAN): padělatel proti detektivovi
  77. Difúzní modely: jak se z čistého šumu stane obrázek
  78. Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
  79. Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
  80. Policy gradient a PPO: učení přímo strategie
  81. Jak funguje AI agent: jazykový model ve smyčce s nástroji
  82. Programování s AI agenty: zadání, testy a kontrola
  83. Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat

Celá osnova série 83 z 83 témat hotovo

Co si odnesete
  • Co je funkce, definiční obor a obraz — a které funkce potkáte v AI nejčastěji.
  • Co znamená injektivní, surjektivní a bijektivní, proč neuronová síť je složení funkcí a kdy existuje inverze.
  • Proč je ztrátová funkce krajina a proč na konvexitě záleží při hledání jejího dna.

Co se hodí znát předem: Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory, Množiny a relace: stavebnice, ze které se skládají definice v AI

Každý model v umělé inteligenci je funkce. Klasifikátor spamu bere e-mail a vrací „spam“ nebo „ne-spam“, jazykový model bere text a vrací pravděpodobnosti dalšího slova, neuronová síť je funkce složená z tisíců menších funkcí. Učení pak není nic jiného než hledání té správné funkce.

Předchozí díl skončil definicí funkce jako zvláštní relace. Tady na ni navážeme: jak funkce vypadají, jaké mají vlastnosti, jak se skládají a proč na tom v AI záleží.

1. Co je funkce

Definice — funkce (zobrazení)

Nechť X a Y jsou množiny a X × Y = {(x, y) : x ∈ X, y ∈ Y} jejich kartézský součin (viz díl Množiny a relace). Funkce (zobrazení) z X do Y je relace f ⊆ X × Y, pro kterou platí

∀x ∈ X ∃! y ∈ Y : (x, y) ∈ f

(∃! čteme „existuje právě jedno“). Toto jediné y značíme f(x) a píšeme f : X → Y, x ↦ f(x). Funkce tedy přiřazuje každému prvku x ∈ X právě jeden prvek f(x) ∈ Y.

Pro funkci f : X → Y se zavádí:

  1. definiční obor je množina X;
  2. obor hodnot (cílová množina) je množina Y;
  3. obraz funkce je množina hodnot, kterých f opravdu nabývá: f(X) = {y ∈ Y : ∃x ∈ X : f(x) = y} = {f(x) : x ∈ X} ⊆ Y;
  4. graf funkce je množina dvojic {(x, f(x)) : x ∈ X} ⊆ X × Y.

Dvě funkce f, g : X → Y jsou si rovny, právě když f(x) = g(x) pro všechna x ∈ X.

Laicky řečeno

Funkce je automat: vhodíte vstup a vypadne přesně jeden výstup — pokaždé stejný. Definiční obor říká, co se do automatu smí vhodit, obor hodnot, co z něj může vypadnout. Obraz je to, co z něj opravdu vypadne.

Rozdíl mezi oborem hodnot a obrazem je vidět na sigmoidě σ : ℝ → ℝ: smí vracet libovolné reálné číslo, ale opravdu vrací jen čísla mezi 0 a 1. Proto se z ní dá číst pravděpodobnost.

Příklad — obor hodnot a obraz funkce x2

f : ℝ → ℝ, f(x) = x2. Obor hodnot je ℝ, ale obraz je jen f(ℝ) = [0, ∞).

Proč: x2 ≥ 0 pro každé reálné x, takže záporná čísla se nikdy neobjeví. A každé y ≥ 0 se objeví: f(√y) = y, třeba f(3) = 9.

2. Funkce, které potkáte v AI

Funkci jedné proměnné nejlíp pochopíte z jejího grafu. Tyhle se v umělé inteligenci objevují pořád dokola — jako modely, jako aktivační funkce neuronových sítí nebo jako ztrátové funkce:

x (bez jednotky) f(x) (bez jednotky) lineární: f(x) = ax + b
x (bez jednotky) f(x) (bez jednotky) kvadratická: x2
x (bez jednotky) f(x) (bez jednotky) exponenciála: ex
x (bez jednotky) f(x) (bez jednotky) logaritmus: ln x
x (bez jednotky) f(x) (bez jednotky) sigmoida: 1/1 + e−x
x (bez jednotky) f(x) (bez jednotky) hyperbolický tangens: tanh x
x (bez jednotky) f(x) (bez jednotky) ReLU: max(0, x)
Funkce jedné proměnné, které potkáte nejčastěji
  • Lineární funkce je nejjednodušší model — lineární regrese není nic jiného.
  • Kvadratická funkce je základ střední kvadratické chyby: trest roste s druhou mocninou odchylky.
  • Exponenciála a logaritmus jsou navzájem inverzní; logaritmus převádí násobení na sčítání, a proto ho najdete v každé ztrátě založené na pravděpodobnosti.
  • Sigmoida a tanh „stlačí“ libovolné číslo do intervalu (0, 1), respektive (−1, 1).
  • ReLU nechá kladná čísla projít a záporná vynuluje. Je tak jednoduchá, že se dlouho nevěřilo, že bude fungovat — dnes je nejpoužívanější aktivační funkcí.
Definice — sigmoida, hyperbolický tangens a ReLU

Nechť e ≈ 2,718 je Eulerovo číslo (základ přirozeného logaritmu). Všechny tři funkce jsou definované pro každé x ∈ ℝ.

  1. Sigmoida (logistická funkce) je funkce σ : ℝ → ℝ, σ(x) = 1/1 + e−x.
  2. Hyperbolický tangens je funkce tanh : ℝ → ℝ, tanh x = ex − e−x/ex + e−x.
  3. ReLU (rectified linear unit) je funkce ReLU : ℝ → ℝ, ReLU(x) = max(0, x) = x pro x > 0,   ReLU(x) = 0 pro x ≤ 0.

Jmenovatelé v 1. a 2. jsou vždy kladné (et > 0 pro každé t ∈ ℝ), takže se nikdy nedělí nulou. Obraz sigmoidy je interval (0, 1), obraz tanh interval (−1, 1) a obraz ReLU interval [0, ∞). Hyperbolický tangens je jen posunutá a natažená sigmoida: tanh x = 2σ(2x) − 1 pro všechna x ∈ ℝ.

σ(x) = 1/1 + e−x

σ(x)
výsledek mezi 0 a 1 — chceme z libovolného skóre udělat něco, co se dá číst jako pravděpodobnost
e−x
vždy kladné; pro velké x se blíží 0, pro velmi záporné x roste nade všechny meze — to je „páka“, která celý výsledek posouvá
1 +
jmenovatel je tak vždy větší než 1: výsledek nikdy nepřekročí 1 a nikdy se nedělí nulou
1
jednička v čitateli a zlomková čára převracejí: velký jmenovatel (velmi záporné x) dá skoro 0, jmenovatel blízko 1 (velké x) dá skoro 1
Sigmoida je rostoucí a stlačí celou reálnou osu do intervalu (0, 1).
Příklad — sigmoida v několika bodech

Barvy odpovídají členům vzorce výše.

σ(0) = 1/1 + e0 = 1/1 + 1 = 0,5 — skóre 0 znamená „nevím“.

σ(2) = 1/1 + e−2 ≈ 1/1 + 0,1353 ≈ 0,881

σ(−2) = 1/1 + e2 ≈ 1/1 + 7,389 ≈ 0,119

Všimněte si, že σ(2) + σ(−2) = 1. Platí to obecně, σ(−x) = 1 − σ(x): opačné skóre dá opačnou pravděpodobnost.

A tanh 1 = 2σ(2) − 1 ≈ 2 · 0,8808 − 1 ≈ 0,762.

Kvadratická funkce se v AI nejčastěji objeví ve střední kvadratické chybě (mean squared error, MSE). Model odhadne n čísel ŷ1, …, ŷn, správně mělo vyjít y1, …, yn:

MSE = 1/n ∑i=1n (yi − ŷi)2

yi − ŷi
odchylka u i-tého příkladu — o kolik se model spletl a kterým směrem
2
druhá mocnina udělá z každé odchylky kladné číslo (chyby nahoru a dolů se nevyruší) a velké chyby trestá víc než úměrně
∑i=1n
sečte tresty přes všechny příklady — hodnotíme model na celých datech, ne na jednom bodě
1/n
z celkového součtu udělá průměr, aby šlo porovnat chybu na 10 a na 10 000 příkladech
Příklad — MSE tří odhadů

Správně: y = (3, 5, 2), model: ŷ = (2,5; 5; 4).

Barvy odpovídají členům vzorce výše.

Odchylky: 3 − 2,5 = 0,5; 5 − 5 = 0; 2 − 4 = −2.

Druhé mocniny: 0,25; 0; 4. Součet 4,25.

MSE = 1/3 · 4,25 = 4,25/3 ≈ 1,42. Jediná velká chyba (−2) tvoří 4 ze 4,25 — přesně to „velké chyby trestá víc“.

Věta — logaritmus převádí součin na součet

Věta. Nechť ln : (0, ∞) → ℝ je přirozený logaritmus, tj. funkce inverzní k x ↦ ex (viz kapitolu o inverzních funkcích níže), a nechť a, b ∈ ℝ, a > 0, b > 0. Pak

ln(a · b) = ln a + ln b.

Důkaz. Podle pravidla pro mocniny es + t = es · et je eln a + ln b = eln a · eln b = a · b. Zlogaritmováním obou stran, protože ln je inverzní k ex, dostaneme ln a + ln b = ln(ab). ∎

Příklad. Model dal třem správným odpovědím pravděpodobnosti 0,9; 0,8 a 0,5. Pravděpodobnost všech tří (při nezávislosti) je 0,9 · 0,8 · 0,5 = 0,36. V logaritmech: ln 0,9 + ln 0,8 + ln 0,5 ≈ −0,105 + (−0,223) + (−0,693) ≈ −1,02 = ln 0,36. U milionu příkladů by součin podtekl k nule, součet logaritmů zůstane rozumné číslo — proto ztráty pracují s logaritmy.

3. Injektivní, surjektivní a bijektivní

Definice — prostá, na a vzájemně jednoznačná funkce

Nechť X, Y jsou množiny a f : X → Y je funkce.

  1. f je injektivní (prostá), právě když ∀x1, x2 ∈ X : f(x1) = f(x2) ⇒ x1 = x2. Ekvivalentně: x1 ≠ x2 ⇒ f(x1) ≠ f(x2) — různé vstupy dávají různé výstupy.
  2. f je surjektivní (zobrazení „na“), právě když ∀y ∈ Y ∃x ∈ X : f(x) = y, tj. právě když f(X) = Y — funkce se trefí do každého prvku Y.
  3. f je bijektivní (vzájemně jednoznačná), právě když je injektivní a zároveň surjektivní, tj. právě když ∀y ∈ Y ∃! x ∈ X : f(x) = y.
Laicky řečeno

Injektivní: žádné dva vstupy nesdílejí výstup — z výstupu se dá poznat, odkud přišel. Surjektivní: nic v cílové množině nezůstane opuštěné. Bijektivní: každému vstupu odpovídá přesně jeden výstup a naopak — jako šatna, kde každý kabát má svůj lísteček.

AB 123 abcd injektivní injektivní: ano surjektivní: ne
AB 1234 abc surjektivní injektivní: ne surjektivní: ano
AB 123 abc bijektivní injektivní: ano surjektivní: ano
AB 123 abc ani jedno injektivní: ne surjektivní: ne
Čtyři zobrazení mezi malými množinami

V AI je skoro každý model neinjektivní: klasifikátor pošle tisíce různých fotek koček do jediné třídy „kočka“. Informace o tom, která fotka to byla, se tím ztratí — a to je v pořádku, právě to po klasifikátoru chceme. Naopak kompresní modely (autoenkodéry) se snaží být „skoro injektivní“, aby se ze zkomprimovaného tvaru dal vstup zase rekonstruovat.

Příklad — jak se vlastnost ověří nebo vyvrátí

f(x) = x2 na ℝ není injektivní: stačí jeden protipříklad, f(−2) = f(2) = 4, přitom −2 ≠ 2.

Na [0, ∞) injektivní je: z x12 = x22 plyne (x1 − x2)(x1 + x2) = 0, a protože pro nezáporná čísla je x1 + x2 = 0 jen při x1 = x2 = 0, vyjde vždy x1 = x2.

f(x) = 2x + 1 na ℝ je bijektivní: k libovolnému y najdeme jediné x = y − 1/2.

Věta — kolik je funkcí, prostých a vzájemně jednoznačných

Věta. Nechť X, Y jsou konečné množiny, |X| = m a |Y| = n, kde |M| značí počet prvků množiny M a m, n ∈ ℕ, m, n ≥ 1. Pak

  1. všech funkcí f : X → Y je nm;
  2. injektivních funkcí f : X → Y je n · (n − 1) · … · (n − m + 1) pro m ≤ n a 0 pro m > n;
  3. je-li m = n, je funkce f : X → Y injektivní, právě když je bijektivní, a bijekcí je n! = n · (n − 1) · … · 1.

Důkaz. 1. Každý z m vstupů si nezávisle vybere jeden z n výstupů. 2. První vstup má n možností, druhý už jen n − 1 (nesmí trefit obsazený výstup), atd.; m-tý vstup má n − m + 1 možností. Pro m > n by (n + 1)-ní vstup neměl žádnou volnou možnost — víc holubů než holubníků. 3. Injektivní funkce trefí m = n různých prvků nprvkové množiny Y, tedy všechny, a je i surjektivní; dosazením m = n do 2. vyjde n!. ∎

Ověřeno hrubou silou (projitím všech funkcí):

|X| → |Y|všechinjektivníchsurjektivníchbijektivních
3 → 333 = 273 · 2 · 1 = 666
3 → 443 = 644 · 3 · 2 = 2400
4 → 334 = 810360

Surjekcí 4 → 3 je 36: vybereme, které dva ze čtyř vstupů sdílejí výstup (6 možností), a pak rozdělíme tři výstupy mezi tři skupiny (3! = 6 možností); 6 · 6 = 36.

4. Skládání funkcí

Definice — složená funkce

Nechť X, Y, Z jsou množiny a f : X → Y, g : Y → Z jsou funkce (cílová množina f je definičním oborem g). Složená funkce („g po f“) je funkce

g ∘ f : X → Z,   (g ∘ f)(x) = g(f(x)) pro všechna x ∈ X.

Nejdřív se tedy použije f, pak g. Vlastnosti:

  1. asociativita: je-li navíc W množina a h : Z → W funkce, pak h ∘ (g ∘ f) = (h ∘ g) ∘ f, protože obě strany posílají každé x ∈ X na h(g(f(x)));
  2. obecně ne komutativita: i když X = Y = Z a existují obě složení, může být g ∘ f ≠ f ∘ g (příklad níže).
Laicky řečeno

Skládání je montážní linka: výstup jednoho stroje jde rovnou do dalšího. Záleží na pořadí — nejdřív obléct a pak se umýt dopadne jinak než naopak.

Vezměme f(x) = 2x + 1 a g(x) = x2:

(g ∘ f)(3) = g(f(3)) = g(7) = 49

(f ∘ g)(3) = f(g(3)) = f(9) = 19

Tohle je přesně stavba neuronové sítě. Každá vrstva je funkce — lineární krok následovaný aktivační funkcí — a celá síť je jejich složení: f = f3 ∘ f2 ∘ f1. „Hluboká“ síť je prostě dlouhé složení. A až se v dalších dílech budeme učit derivovat, řetízkové pravidlo bude říkat, jak derivovat právě složené funkce.

h = φ(W x + b)

h
výstup vrstvy (vektor) — půjde jako vstup do další vrstvy; tím vzniká složení
x
vstup vrstvy: data, nebo výstup předchozí vrstvy
W
matice vah: každý výstup je vážený součet všech vstupů a váhy určují, na kterých záleží — právě je se síť učí
b
posun (bias): bez něj by při nulovém vstupu musel vyjít nulový součet; posun dovolí nastavit práh, od kterého neuron „zapne“
φ
aktivační funkce po složkách (ReLU, sigmoida, tanh) — jediná nelineární část; bez ní by se celá síť složila do jedné lineární funkce
Lineární krok Wx + b, pak nelinearita φ; síť je tahle dvojice zopakovaná a složená.
Příklad — jedna vrstva se dvěma neurony

W = ( 1 −1 ; 0,5 2 ) (dva řádky, jeden na neuron), b = (−2, −1), x = (2, 1), φ = ReLU (barvy podle vzorce výše).

1. neuron: 1 · 2 + (−1) · 1 + (−2) = −1, ReLU(−1) = 0 — neuron mlčí.

2. neuron: 0,5 · 2 + 2 · 1 + (−1) = 2, ReLU(2) = 2.

Výstup vrstvy h = (0, 2) jde jako vstup do další vrstvy.

def sit(x, vrstvy):                     # vrstvy = [(W1, b1), (W2, b2), ...]
    h = x
    for W, b in vrstvy:                  # f = f_k ∘ ... ∘ f_2 ∘ f_1
        h = relu(W @ h + b)              # výstup jedné vrstvy je vstupem další
    return h
Věta — složení lineárních funkcí je lineární funkce

Věta. Nechť a, b, c, d ∈ ℝ a f, g : ℝ → ℝ jsou funkce f(x) = ax + b a g(x) = cx + d. Pak pro všechna x ∈ ℝ

(g ∘ f)(x) = (ca)x + (cb + d),

tj. g ∘ f je opět funkce tvaru x ↦ a′x + b′ s a′ = ca a b′ = cb + d.

Důkaz. g(f(x)) = c(ax + b) + d = cax + cb + d. ∎

Pro vektory a matice stejně: nechť W1 ∈ ℝk×n, b1 ∈ ℝk, W2 ∈ ℝm×k a b2 ∈ ℝm. Pak pro každé x ∈ ℝn je W2(W1x + b1) + b2 = (W2W1)x + (W2b1 + b2), kde W2W1 ∈ ℝm×n.

Příklad. f(x) = 2x + 1, g(x) = 3x − 4 ⇒ (g ∘ f)(x) = 6x − 1. Kontrola v bodě 3: g(f(3)) = g(7) = 17 a 6 · 3 − 1 = 17.

Proto potřebují sítě aktivační funkce: deset lineárních vrstev bez φ umí přesně totéž co jedna.

5. Inverzní funkce

Definice — inverzní funkce

Nechť X, Y jsou množiny a f : X → Y je funkce. Funkce g : Y → X je inverzní k f, právě když platí obě podmínky

  1. ∀x ∈ X : g(f(x)) = x   (tj. g ∘ f = idX),
  2. ∀y ∈ Y : f(g(y)) = y   (tj. f ∘ g = idY),

kde idX : X → X, x ↦ x je identita na X. Inverzní funkci značíme f−1. Slovy: g vrátí každý výstup f na vstup, ze kterého vznikl, a naopak.

Věta. Nechť f : X → Y je funkce. Inverzní funkce k f existuje, právě když je f bijektivní; pokud existuje, je jediná a pro každé y ∈ Y je f−1(y) to jediné x ∈ X, pro které f(x) = y.

Laicky řečeno

Inverzní funkce dělá krok zpátky: z výstupu zjistí vstup. Jde to jen tehdy, když žádné dva vstupy nevedou na stejný výstup (jinak by nebylo jasné, kam se vrátit) a když každý výstup opravdu někam vede.

Exponenciála a logaritmus jsou dvojice inverzních funkcí: ln(ex) = x. K sigmoidě, chápané jako bijekce σ : ℝ → (0, 1), je inverzní funkce logit : (0, 1) → ℝ, logit(p) = ln p/1 − p — z pravděpodobnosti udělá zpátky libovolné reálné číslo. Proto se výstupům sítě před sigmoidou nebo softmaxem říká „logity“.

Příklad — odvození logitu krok za krokem

Inverzi najdeme tak, že rovnici p = σ(x) vyřešíme pro x (pro p ∈ (0, 1)):

p = 1/1 + e−x

1 + e−x = 1/p  (převrácení obou stran)

e−x = 1/p − 1 = 1 − p/p

−x = ln 1 − p/p  (ln je inverze ex)

x = −ln 1 − p/p = ln p/1 − p = logit(p)

Čísla: logit(0,8) = ln 0,8/0,2 = ln 4 ≈ 1,386. Zpátky (barvy podle rozboru sigmoidy výše): σ(ln 4) = 1/1 + 1/4 = 0,8, protože e−ln 4 = 1/4. Podíl p/1 − p = 4 jsou šance („4 : 1“); logit je jejich logaritmus.

6. Funkce více proměnných

Definice — funkce více proměnných

Nechť n, m ∈ ℕ, n, m ≥ 1, a ℝn = ℝ × … × ℝ (nkrát) je množina všech n-tic reálných čísel (vektorů) x = (x1, …, xn).

  1. Funkce n proměnných (reálná) je funkce f : ℝn → ℝ,   (x1, …, xn) ↦ f(x1, …, xn), tj. každému vektoru přiřadí právě jedno reálné číslo.
  2. Vektorová funkce je funkce f : ℝn → ℝm,   x ↦ (f1(x), …, fm(x)), kde fi : ℝn → ℝ pro i = 1, …, m jsou její složky; každému vektoru přiřadí právě jeden vektor.
Laicky řečeno

Většina skutečných funkcí bere víc vstupů naráz: cena bytu závisí na ploše, poloze i stáří. Vrstva neuronové sítě bere celý vektor a vrací jiný vektor.

Funkci dvou proměnných si můžeme nakreslit jako mapu: každý bod (x, y) obarvíme podle hodnoty f(x, y). Tady je Himmelblauova funkce, klasický test optimalizačních algoritmů. Tmavá místa jsou údolí s malou hodnotou, bílé body jsou čtyři minima, ve kterých je funkce rovna nule:

x (bez jednotky) y (bez jednotky)
Funkce dvou proměnných jako krajina: čtyři stejně hluboká údolí
Příklad — Himmelblauova funkce a proč má minima v nule

f(x, y) = (x2 + y − 11)2 + (x + y2 − 7)2.

Obě závorky jsou na druhou, takže f ≥ 0 všude. Nula vyjde přesně tam, kde jsou obě závorky nulové zároveň — kde platí soustava x2 + y = 11 a x + y2 = 7. Ta má čtyři řešení, odtud čtyři údolí.

V bodě (3, 2): (9 + 2 − 11)2 + (3 + 4 − 7)2 = 0 + 0 = 0 — minimum.

V bodě (0, 0): (−11)2 + (−7)2 = 121 + 49 = 170 — vysoko na kopci.

Přesně takhle si představte ztrátovou funkci modelu: vstupem jsou jeho parametry, výstupem chyba. Trénink je hledání nejnižšího místa v krajině — jen místo dvou rozměrů jich má krajina skutečného modelu miliony.

7. Monotonie a konvexita

Definice — rostoucí a konvexní funkce

Nechť I ⊆ ℝ je interval a f : I → ℝ je funkce.

  1. f je rostoucí, právě když ∀x1, x2 ∈ I : x1 < x2 ⇒ f(x1) < f(x2). Rostoucí funkce je vždy injektivní (z x1 ≠ x2 plyne x1 < x2 nebo x2 < x1, a tedy f(x1) ≠ f(x2)).
  2. f je konvexní, právě když ∀x1, x2 ∈ I ∀t ∈ [0, 1] : f(tx1 + (1 − t)x2) ≤ t f(x1) + (1 − t) f(x2). (Bod tx1 + (1 − t)x2 leží mezi x1 a x2, a tedy v intervalu I.)
  3. Bod x* ∈ I je lokální minimum f, právě když ∃δ > 0 ∀x ∈ I : |x − x*| < δ ⇒ f(x*) ≤ f(x), a globální minimum, právě když ∀x ∈ I : f(x*) ≤ f(x).

Věta. Nechť I ⊆ ℝ je interval, f : I → ℝ je konvexní funkce a x* ∈ I je lokální minimum f. Pak x* je globální minimum f.

Laicky řečeno

Konvexní funkce má tvar mísy: úsečka mezi dvěma body grafu leží vždycky nad grafem. V míse je jen jedno dno — kdo jde pořád z kopce, najde ho. U nekonvexní funkce může skončit v menší jámě a o hlubší vedle se nedozví.

f(tx1 + (1 − t)x2) ≤ t f(x1) + (1 − t) f(x2)

tx1 + (1 − t)x2
bod mezi x1 a x2; váhy t a 1 − t dávají dohromady 1, takže pro t od 1 do 0 projdeme celý úsek od x1 do x2
f( … )
výška grafu v tom bodě
t f(x1) + (1 − t) f(x2)
výška úsečky (tětivy) mezi body grafu nad x1 a x2 — se stejnými vahami, takže je nad tímtéž bodem
≤
graf nikdy nevystoupí nad tětivu — to je tvar mísy; kdyby někde vystoupil, je tam „hrb“, za kterým se může schovat další údolí
Příklad — nerovnost konvexity v číslech

Barvy odpovídají členům nerovnosti výše.

f(x) = x2, x1 = −1, x2 = 3, t = 1/2: bod uprostřed je 1, vlevo f(1) = 1, vpravo 1 + 9/2 = 5. 1 ≤ 5 ✓.

f(x) = x4 − 3x2 + x, za x1, x2 vezmeme obě minima −1,30 a 1,13, t = 1/2: bod uprostřed je −0,085,

vlevo f(−0,085) ≈ −0,11, vpravo −3,51 + (−1,07)/2 = −2,29.

−0,11 > −2,29 — nerovnost ≤ neplatí, funkce není konvexní. Ten „hrb“ mezi minimy je přesně to, co odděluje dvě údolí.

globální x (bez jednotky) f(x) (bez jednotky)

konvexní: x², jediné minimum

globální lokální x (bez jednotky) f(x) (bez jednotky)

nekonvexní: x⁴ − 3x² + x

Konvexní a nekonvexní funkce

Nekonvexní funkce x4 − 3x2 + x má dvě minima: globální u x ≈ −1,30 s hodnotou ≈ −3,51 a lokální u x ≈ 1,13 s hodnotou ≈ −1,07. Kdo začne hledat vpravo a jde pořád dolů, skončí v tom horším. Ztrátové funkce lineární a logistické regrese jsou konvexní — proto jejich trénink spolehlivě najde nejlepší řešení. Ztráty neuronových sítí konvexní nejsou, a o tom, jak se s tím žije, bude díl o gradientním sestupu.

Minima v grafu výše jsme našli numericky, bez derivací: hustou mřížkou kandidátů, které pak doladí metoda zlatého řezu. Ta v každém kroku zahodí část intervalu, ve které minimum být nemůže, a interval se zmenší na ≈ 0,618 předchozí délky.

def minima(f, a, b, n=2000):
    krok = (b - a) / n
    vysledek = []
    for i in range(1, n):
        x = a + i * krok
        if f(x) < f(x - krok) and f(x) < f(x + krok):   # kandidát: nižší než sousedé
            l, p = x - krok, x + krok
            z = (5 ** 0.5 - 1) / 2                        # ≈ 0,618
            for _ in range(60):                           # zlatý řez
                c, d = p - z * (p - l), l + z * (p - l)
                if f(c) < f(d): p = d                     # minimum je vlevo od d
                else:           l = c                     # minimum je vpravo od c
            vysledek.append((l + p) / 2)
    return vysledek

8. Funkce v umělé inteligenci

Teď už se dá celé strojové učení říct jazykem funkcí:

  • Model je funkce fθ : X → Y s parametry θ — celá rodina funkcí, jedna pro každou volbu parametrů.
  • Ztrátová funkce L : Y × Y → ℝ říká, kolik stojí odpověď ŷ, když správně je y.
  • Učení je výběr jedné funkce z rodiny: argmin přes θ průměrné ztráty — funkce parametrů, kterou jsme právě kreslili jako krajinu.
  • Aktivační funkce (sigmoida, tanh, ReLU) dělají z lineárních vrstev nelineární síť; bez nich by složení lineárních funkcí bylo zase jen lineární funkcí.

θ* = argminθ 1/n ∑i=1n L(fθ(xi), yi)

θ*
naučené parametry — tím je z celé rodiny vybraná jedna funkce fθ*
argminθ
nechceme nejmenší chybu samotnou, ale místo, kde nastane — parametry, ne číslo
1/n ∑i=1n
průměr přes všech n trénovacích příkladů — model má být dobrý na datech jako celku
L
ztrátová funkce — převede rozdíl mezi odpovědí a pravdou na jedno číslo, které jde minimalizovat (třeba druhou mocninu odchylky jako v MSE)
fθ(xi)
odpověď modelu na i-tý vstup; jediné místo, kde ve vzorci vystupuje θ
yi
správná odpověď z dat, se kterou odpověď modelu srovnáváme
Učení = najít nejnižší místo krajiny, jejíž souřadnice jsou parametry a výška průměrná ztráta.

9. Shrnutí

  • Funkce přiřazuje každému vstupu právě jeden výstup; obraz je to, kam se opravdu trefí.
  • Injektivní funkce nesplete dva vstupy, surjektivní pokryje celý cíl, bijektivní má inverzi.
  • Skládání funkcí je montážní linka — a neuronová síť je složení vrstev.
  • Ztrátová funkce je krajina nad prostorem parametrů; konvexní krajina má jediné dno, nekonvexní jich může mít víc.

Máte na to jiný názor? Napište na support@coden-app.com.

Agent na vašem počítači, ovládaný z telefonu