Preskočiť na obsah
coden

Funkcie a zobrazenia: prečo je každý model v AI funkcia

Definičný obor, obraz, injektivita, skladanie, inverzia, funkcie viacerých premenných a konvexnosť — s grafmi sigmoidy, ReLU a chybovej krajiny.

13 minút Matěj Žalmánek 2026-10-15

Séria Základy AI Diel 6 z 52
  1. Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
  2. Stručná história umelej inteligencie: od Turinga po jazykové modely
  3. Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
  4. Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
  6. Funkcie a zobrazenia: prečo je každý model v AI funkcia
  7. Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
  8. Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
  9. Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
  10. Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
  11. Gradientný zostup: ako sa model učí
  12. Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
  13. Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
  14. Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
  15. Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
  16. Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
  17. Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
  18. Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
  19. Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
  20. Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
  21. Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
  22. Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
  23. Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
  24. Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
  25. Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
  26. Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
  27. Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
  28. Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
  29. Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
  30. Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
  31. Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
  32. Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
  33. Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
  34. Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
  35. Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
  36. Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
  38. Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
  39. Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
  40. Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
  41. Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
  42. Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
  43. Prompty, kontext a RAG: ako modelu dať správne informácie
  44. Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
  45. Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
  46. Difúzne modely: ako sa z čistého šumu stane obrázok
  47. Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
  48. Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
  49. Policy gradient a PPO: učenie priamo stratégie
  50. Ako funguje AI agent: jazykový model v slučke s nástrojmi
  51. Programovanie s AI agentmi: zadanie, testy a kontrola
  52. Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť

Celá osnova série Hotovo: 52 z 83 tém

Čo si odnesiete
  • Čo je funkcia, definičný obor a obraz — a ktoré funkcie stretnete v AI najčastejšie.
  • Čo znamená injektívna, surjektívna a bijektívna, prečo je neurónová sieť zloženie funkcií a kedy existuje inverzia.
  • Prečo je stratová funkcia krajina a prečo na konvexnosti záleží pri hľadaní jej dna.

Čo sa hodí vedieť vopred: Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory, Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI

Každý model v umelej inteligencii je funkcia. Klasifikátor spamu berie e-mail a vracia „spam“ alebo „nie-spam“, jazykový model berie text a vracia pravdepodobnosti ďalšieho slova, neurónová sieť je funkcia zložená z tisícov menších funkcií. Učenie potom nie je nič iné než hľadanie tej správnej funkcie.

Predchádzajúci diel skončil definíciou funkcie ako zvláštnej relácie. Tu na ňu nadviažeme: ako funkcie vyzerajú, aké majú vlastnosti, ako sa skladajú a prečo na tom v AI záleží.

1. Čo je funkcia

Definícia — funkcia (zobrazenie)

Nech X a Y sú množiny a X × Y = {(x, y) : x ∈ X, y ∈ Y} ich karteziánsky súčin (pozri diel Množiny a relácie). Funkcia (zobrazenie) z X do Y je relácia f ⊆ X × Y, pre ktorú platí

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

(∃! čítame „existuje práve jedno“). Toto jediné y označujeme f(x) a píšeme f : X → Y, x ↦ f(x). Funkcia teda priraďuje každému prvku x ∈ X práve jeden prvok f(x) ∈ Y.

Pre funkciu f : X → Y sa zavádza:

  1. definičný obor je množina X;
  2. obor hodnôt (cieľová množina) je množina Y;
  3. obraz funkcie je množina hodnôt, ktoré f naozaj nadobúda: f(X) = {y ∈ Y : ∃x ∈ X : f(x) = y} = {f(x) : x ∈ X} ⊆ Y;
  4. graf funkcie je množina dvojíc {(x, f(x)) : x ∈ X} ⊆ X × Y.

Dve funkcie f, g : X → Y sa rovnajú práve vtedy, keď f(x) = g(x) pre všetky x ∈ X.

Laicky povedané

Funkcia je automat: vhodíte vstup a vypadne presne jeden výstup — zakaždým rovnaký. Definičný obor hovorí, čo sa do automatu smie vhodiť, obor hodnôt, čo z neho môže vypadnúť. Obraz je to, čo z neho naozaj vypadne.

Rozdiel medzi oborom hodnôt a obrazom je vidieť na sigmoide σ : ℝ → ℝ: smie vracať ľubovoľné reálne číslo, ale naozaj vracia len čísla medzi 0 a 1. Preto sa z nej dá čítať pravdepodobnosť.

Príklad — obor hodnôt a obraz funkcie x2

f : ℝ → ℝ, f(x) = x2. Obor hodnôt je ℝ, ale obraz je len f(ℝ) = [0, ∞).

Prečo: x2 ≥ 0 pre každé reálne x, takže záporné čísla sa nikdy neobjavia. A každé y ≥ 0 sa objaví: f(√y) = y, napríklad f(3) = 9.

2. Funkcie, ktoré stretnete v AI

Funkciu jednej premennej najlepšie pochopíte z jej grafu. Tieto sa v umelej inteligencii objavujú stále dookola — ako modely, ako aktivačné funkcie neurónových sietí alebo ako stratové funkcie:

x (bez jednotky) f(x) (bez jednotky) lineárna: 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)
Funkcie jednej premennej, ktoré stretnete najčastejšie
  • Lineárna funkcia je najjednoduchší model — lineárna regresia nie je nič iné.
  • Kvadratická funkcia je základ strednej kvadratickej chyby: trest rastie s druhou mocninou odchýlky.
  • Exponenciála a logaritmus sú navzájom inverzné; logaritmus prevádza násobenie na sčítanie, a preto ho nájdete v každej strate založenej na pravdepodobnosti.
  • Sigmoida a tanh „stlačia“ ľubovoľné číslo do intervalu (0, 1), respektíve (−1, 1).
  • ReLU nechá kladné čísla prejsť a záporné vynuluje. Je taká jednoduchá, že sa dlho neverilo, že bude fungovať — dnes je najpoužívanejšou aktivačnou funkciou.
Definícia — sigmoida, hyperbolický tangens a ReLU

Nech e ≈ 2,718 je Eulerovo číslo (základ prirodzeného logaritmu). Všetky tri funkcie sú definované pre každé x ∈ ℝ.

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

Menovatele v 1. a 2. sú vždy kladné (et > 0 pre každé t ∈ ℝ), takže sa nikdy nedelí nulou. Obraz sigmoidy je interval (0, 1), obraz tanh interval (−1, 1) a obraz ReLU interval [0, ∞). Hyperbolický tangens je len posunutá a natiahnutá sigmoida: tanh x = 2σ(2x) − 1 pre všetky x ∈ ℝ.

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

σ(x)
výsledok medzi 0 a 1 — chceme z ľubovoľného skóre urobiť niečo, čo sa dá čítať ako pravdepodobnosť
e−x
vždy kladné; pre veľké x sa blíži k 0, pre veľmi záporné x rastie nad všetky medze — to je „páka“, ktorá celý výsledok posúva
1 +
menovateľ je tak vždy väčší než 1: výsledok nikdy neprekročí 1 a nikdy sa nedelí nulou
1
jednotka v čitateli a zlomková čiara prevracajú: veľký menovateľ (veľmi záporné x) dá skoro 0, menovateľ blízko 1 (veľké x) dá skoro 1
Sigmoida je rastúca a stlačí celú reálnu os do intervalu (0, 1).
Príklad — sigmoida v niekoľkých bodoch

Farby zodpovedajú členom vzorca vyššie.

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

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

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

Všimnite si, že σ(2) + σ(−2) = 1. Platí to všeobecne, σ(−x) = 1 − σ(x): opačné skóre dá opačnú pravdepodobnosť.

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

Kvadratická funkcia sa v AI najčastejšie objaví v strednej kvadratickej chybe (mean squared error, MSE). Model odhadne n čísel ŷ1, …, ŷn, správne malo vyjsť y1, …, yn:

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

yi − ŷi
odchýlka pri i-tom príklade — o koľko sa model pomýlil a ktorým smerom
2
druhá mocnina urobí z každej odchýlky kladné číslo (chyby nahor a nadol sa nevyrušia) a veľké chyby trestá viac než úmerne
∑i=1n
sčíta tresty cez všetky príklady — hodnotíme model na celých dátach, nie na jednom bode
1/n
z celkového súčtu urobí priemer, aby sa dala porovnať chyba na 10 a na 10 000 príkladoch
Príklad — MSE troch odhadov

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

Farby zodpovedajú členom vzorca vyššie.

Odchýlky: 3 − 2,5 = 0,5; 5 − 5 = 0; 2 − 4 = −2.

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

MSE = 1/3 · 4,25 = 4,25/3 ≈ 1,42. Jediná veľká chyba (−2) tvorí 4 zo 4,25 — presne to „veľké chyby trestá viac“.

Veta — logaritmus prevádza súčin na súčet

Veta. Nech ln : (0, ∞) → ℝ je prirodzený logaritmus, t. j. funkcia inverzná k x ↦ ex (pozri kapitolu o inverzných funkciách nižšie), a nech a, b ∈ ℝ, a > 0, b > 0. Potom

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

Dôkaz. Podľa pravidla pre mocniny es + t = es · et je eln a + ln b = eln a · eln b = a · b. Zlogaritmovaním oboch strán, keďže ln je inverzný k ex, dostaneme ln a + ln b = ln(ab). ∎

Príklad. Model dal trom správnym odpovediam pravdepodobnosti 0,9; 0,8 a 0,5. Pravdepodobnosť všetkých troch (pri nezávislosti) je 0,9 · 0,8 · 0,5 = 0,36. V logaritmoch: ln 0,9 + ln 0,8 + ln 0,5 ≈ −0,105 + (−0,223) + (−0,693) ≈ −1,02 = ln 0,36. Pri milióne príkladov by súčin podtiekol k nule, súčet logaritmov zostane rozumné číslo — preto straty pracujú s logaritmami.

3. Injektívna, surjektívna a bijektívna

Definícia — prostá, na a vzájomne jednoznačná funkcia

Nech X, Y sú množiny a f : X → Y je funkcia.

  1. f je injektívna (prostá) práve vtedy, keď ∀x1, x2 ∈ X : f(x1) = f(x2) ⇒ x1 = x2. Ekvivalentne: x1 ≠ x2 ⇒ f(x1) ≠ f(x2) — rôzne vstupy dávajú rôzne výstupy.
  2. f je surjektívna (zobrazenie „na“) práve vtedy, keď ∀y ∈ Y ∃x ∈ X : f(x) = y, t. j. práve vtedy, keď f(X) = Y — funkcia sa trafí do každého prvku Y.
  3. f je bijektívna (vzájomne jednoznačná) práve vtedy, keď je injektívna a zároveň surjektívna, t. j. práve vtedy, keď ∀y ∈ Y ∃! x ∈ X : f(x) = y.
Laicky povedané

Injektívna: žiadne dva vstupy nezdieľajú výstup — z výstupu sa dá spoznať, odkiaľ prišiel. Surjektívna: nič v cieľovej množine nezostane opustené. Bijektívna: každému vstupu zodpovedá presne jeden výstup a naopak — ako šatňa, kde každý kabát má svoj lístok.

AB 123 abcd injektívne injektívne: áno surjektívne: nie
AB 1234 abc surjektívne injektívne: nie surjektívne: áno
AB 123 abc bijektívne injektívne: áno surjektívne: áno
AB 123 abc ani jedno injektívne: nie surjektívne: nie
Štyri zobrazenia medzi malými množinami

V AI je takmer každý model neinjektívny: klasifikátor pošle tisíce rôznych fotiek mačiek do jedinej triedy „mačka“. Informácia o tom, ktorá fotka to bola, sa tým stratí — a to je v poriadku, práve to od klasifikátora chceme. Naopak kompresné modely (autoenkodéry) sa snažia byť „takmer injektívne“, aby sa zo skomprimovaného tvaru dal vstup znova rekonštruovať.

Príklad — ako sa vlastnosť overí alebo vyvráti

f(x) = x2 na ℝ nie je injektívna: stačí jeden protipríklad, f(−2) = f(2) = 4, pritom −2 ≠ 2.

Na [0, ∞) injektívna je: z x12 = x22 vyplýva (x1 − x2)(x1 + x2) = 0, a keďže pre nezáporné čísla je x1 + x2 = 0 len pri x1 = x2 = 0, vyjde vždy x1 = x2.

f(x) = 2x + 1 na ℝ je bijektívna: k ľubovoľnému y nájdeme jediné x = y − 1/2.

Veta — koľko je funkcií, prostých a vzájomne jednoznačných

Veta. Nech X, Y sú konečné množiny, |X| = m a |Y| = n, kde |M| označuje počet prvkov množiny M a m, n ∈ ℕ, m, n ≥ 1. Potom

  1. všetkých funkcií f : X → Y je nm;
  2. injektívnych funkcií f : X → Y je n · (n − 1) · … · (n − m + 1) pre m ≤ n a 0 pre m > n;
  3. ak m = n, je funkcia f : X → Y injektívna práve vtedy, keď je bijektívna, a bijekcií je n! = n · (n − 1) · … · 1.

Dôkaz. 1. Každý z m vstupov si nezávisle vyberie jeden z n výstupov. 2. Prvý vstup má n možností, druhý už len n − 1 (nesmie trafiť obsadený výstup) atď.; m-tý vstup má n − m + 1 možností. Pre m > n by (n + 1)-vý vstup nemal žiadnu voľnú možnosť — viac holubov než holubníkov. 3. Injektívna funkcia trafí m = n rôznych prvkov n-prvkovej množiny Y, teda všetky, a je aj surjektívna; dosadením m = n do 2. vyjde n!. ∎

Overené hrubou silou (prejdením všetkých funkcií):

|X| → |Y|všetkýchinjektívnychsurjektívnychbijektívnych
3 → 333 = 273 · 2 · 1 = 666
3 → 443 = 644 · 3 · 2 = 2400
4 → 334 = 810360

Surjekcií 4 → 3 je 36: vyberieme, ktoré dva zo štyroch vstupov zdieľajú výstup (6 možností), a potom rozdelíme tri výstupy medzi tri skupiny (3! = 6 možností); 6 · 6 = 36.

4. Skladanie funkcií

Definícia — zložená funkcia

Nech X, Y, Z sú množiny a f : X → Y, g : Y → Z sú funkcie (cieľová množina f je definičným oborom g). Zložená funkcia („g po f“) je funkcia

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

Najprv sa teda použije f, potom g. Vlastnosti:

  1. asociatívnosť: ak je navyše W množina a h : Z → W funkcia, potom h ∘ (g ∘ f) = (h ∘ g) ∘ f, pretože obe strany posielajú každé x ∈ X na h(g(f(x)));
  2. vo všeobecnosti nie komutatívnosť: aj keď X = Y = Z a existujú obe zloženia, môže byť g ∘ f ≠ f ∘ g (príklad nižšie).
Laicky povedané

Skladanie je montážna linka: výstup jedného stroja ide rovno do ďalšieho. Záleží na poradí — najprv sa obliecť a potom umyť dopadne inak než naopak.

Vezmime 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

Toto je presne stavba neurónovej siete. Každá vrstva je funkcia — lineárny krok nasledovaný aktivačnou funkciou — a celá sieť je ich zložením: f = f3 ∘ f2 ∘ f1. „Hlboká“ sieť je jednoducho dlhé zloženie. A keď sa v ďalších dieloch budeme učiť derivovať, reťazové pravidlo bude hovoriť, ako derivovať práve zložené funkcie.

h = φ(W x + b)

h
výstup vrstvy (vektor) — pôjde ako vstup do ďalšej vrstvy; tým vzniká zloženie
x
vstup vrstvy: dáta, alebo výstup predchádzajúcej vrstvy
W
matica váh: každý výstup je vážený súčet všetkých vstupov a váhy určujú, na ktorých záleží — práve tie sa sieť učí
b
posun (bias): bez neho by pri nulovom vstupe musel vyjsť nulový súčet; posun dovolí nastaviť prah, od ktorého neurón „zapne“
φ
aktivačná funkcia po zložkách (ReLU, sigmoida, tanh) — jediná nelineárna časť; bez nej by sa celá sieť zložila do jednej lineárnej funkcie
Lineárny krok Wx + b, potom nelinearita φ; sieť je táto dvojica zopakovaná a zložená.
Príklad — jedna vrstva s dvoma neurónmi

W = ( 1 −1 ; 0,5 2 ) (dva riadky, jeden na neurón), b = (−2, −1), x = (2, 1), φ = ReLU (farby podľa vzorca vyššie).

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

2. neurón: 0,5 · 2 + 2 · 1 + (−1) = 2, ReLU(2) = 2.

Výstup vrstvy h = (0, 2) ide ako vstup do ďalšej 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 jednej vrstvy je vstupom ďalšej
    return h
Veta — zloženie lineárnych funkcií je lineárna funkcia

Veta. Nech a, b, c, d ∈ ℝ a f, g : ℝ → ℝ sú funkcie f(x) = ax + b a g(x) = cx + d. Potom pre všetky x ∈ ℝ

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

t. j. g ∘ f je opäť funkcia tvaru x ↦ a′x + b′ s a′ = ca a b′ = cb + d.

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

Pre vektory a matice rovnako: nech W1 ∈ ℝk×n, b1 ∈ ℝk, W2 ∈ ℝm×k a b2 ∈ ℝm. Potom pre každé x ∈ ℝn je W2(W1x + b1) + b2 = (W2W1)x + (W2b1 + b2), kde W2W1 ∈ ℝm×n.

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

Preto siete potrebujú aktivačné funkcie: desať lineárnych vrstiev bez φ vie presne to isté čo jedna.

5. Inverzná funkcia

Definícia — inverzná funkcia

Nech X, Y sú množiny a f : X → Y je funkcia. Funkcia g : Y → X je inverzná k f práve vtedy, keď platia obe podmienky

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

kde idX : X → X, x ↦ x je identita na X. Inverznú funkciu označujeme f−1. Slovami: g vráti každý výstup f na vstup, z ktorého vznikol, a naopak.

Veta. Nech f : X → Y je funkcia. Inverzná funkcia k f existuje práve vtedy, keď je f bijektívna; ak existuje, je jediná a pre každé y ∈ Y je f−1(y) to jediné x ∈ X, pre ktoré f(x) = y.

Laicky povedané

Inverzná funkcia robí krok späť: z výstupu zistí vstup. Ide to len vtedy, keď žiadne dva vstupy nevedú na rovnaký výstup (inak by nebolo jasné, kam sa vrátiť) a keď každý výstup naozaj niekam vedie.

Exponenciála a logaritmus sú dvojica inverzných funkcií: ln(ex) = x. K sigmoide, chápanej ako bijekcia σ : ℝ → (0, 1), je inverznou funkciou logit : (0, 1) → ℝ, logit(p) = ln p/1 − p — z pravdepodobnosti urobí späť ľubovoľné reálne číslo. Preto sa výstupom siete pred sigmoidou alebo softmaxom hovorí „logity“.

Príklad — odvodenie logitu krok za krokom

Inverziu nájdeme tak, že rovnicu p = σ(x) vyriešime pre x (pre p ∈ (0, 1)):

p = 1/1 + e−x

1 + e−x = 1/p  (prevrátenie oboch strán)

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

−x = ln 1 − p/p  (ln je inverzia 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. Späť (farby podľa rozboru sigmoidy vyššie): σ(ln 4) = 1/1 + 1/4 = 0,8, pretože e−ln 4 = 1/4. Podiel p/1 − p = 4 sú šance („4 : 1“); logit je ich logaritmus.

6. Funkcie viacerých premenných

Definícia — funkcia viacerých premenných

Nech n, m ∈ ℕ, n, m ≥ 1, a ℝn = ℝ × … × ℝ (n-krát) je množina všetkých n-tíc reálnych čísel (vektorov) x = (x1, …, xn).

  1. Funkcia n premenných (reálna) je funkcia f : ℝn → ℝ,   (x1, …, xn) ↦ f(x1, …, xn), t. j. každému vektoru priradí práve jedno reálne číslo.
  2. Vektorová funkcia je funkcia f : ℝn → ℝm,   x ↦ (f1(x), …, fm(x)), kde fi : ℝn → ℝ pre i = 1, …, m sú jej zložky; každému vektoru priradí práve jeden vektor.
Laicky povedané

Väčšina skutočných funkcií berie viac vstupov naraz: cena bytu závisí od plochy, polohy aj veku. Vrstva neurónovej siete berie celý vektor a vracia iný vektor.

Funkciu dvoch premenných si môžeme nakresliť ako mapu: každý bod (x, y) zafarbíme podľa hodnoty f(x, y). Tu je Himmelblauova funkcia, klasický test optimalizačných algoritmov. Tmavé miesta sú údolia s malou hodnotou, biele body sú štyri minimá, v ktorých je funkcia rovná nule:

x (bez jednotky) y (bez jednotky)
Funkcia dvoch premenných ako krajina: štyri rovnako hlboké údolia
Príklad — Himmelblauova funkcia a prečo má minimá v nule

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

Obe zátvorky sú na druhú, takže f ≥ 0 všade. Nula vyjde presne tam, kde sú obe zátvorky nulové zároveň — kde platí sústava x2 + y = 11 a x + y2 = 7. Tá má štyri riešenia, odtiaľ štyri údolia.

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

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

Presne takto si predstavte stratovú funkciu modelu: vstupom sú jeho parametre, výstupom chyba. Tréning je hľadanie najnižšieho miesta v krajine — len namiesto dvoch rozmerov ich má krajina skutočného modelu milióny.

7. Monotónnosť a konvexnosť

Definícia — rastúca a konvexná funkcia

Nech I ⊆ ℝ je interval a f : I → ℝ je funkcia.

  1. f je rastúca práve vtedy, keď ∀x1, x2 ∈ I : x1 < x2 ⇒ f(x1) < f(x2). Rastúca funkcia je vždy injektívna (z x1 ≠ x2 vyplýva x1 < x2 alebo x2 < x1, a teda f(x1) ≠ f(x2)).
  2. f je konvexná práve vtedy, keď ∀x1, x2 ∈ I ∀t ∈ [0, 1] : f(tx1 + (1 − t)x2) ≤ t f(x1) + (1 − t) f(x2). (Bod tx1 + (1 − t)x2 leží medzi x1 a x2, a teda v intervale I.)
  3. Bod x* ∈ I je lokálne minimum f práve vtedy, keď ∃δ > 0 ∀x ∈ I : |x − x*| < δ ⇒ f(x*) ≤ f(x), a globálne minimum práve vtedy, keď ∀x ∈ I : f(x*) ≤ f(x).

Veta. Nech I ⊆ ℝ je interval, f : I → ℝ je konvexná funkcia a x* ∈ I je lokálne minimum f. Potom x* je globálne minimum f.

Laicky povedané

Konvexná funkcia má tvar misy: úsečka medzi dvoma bodmi grafu leží vždy nad grafom. V mise je len jedno dno — kto ide stále z kopca, nájde ho. Pri nekonvexnej funkcii môže skončiť v menšej jame a o hlbšej vedľa sa nedozvie.

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

tx1 + (1 − t)x2
bod medzi x1 a x2; váhy t a 1 − t dávajú dohromady 1, takže pre t od 1 do 0 prejdeme celý úsek od x1 do x2
f( … )
výška grafu v tom bode
t f(x1) + (1 − t) f(x2)
výška úsečky (tetivy) medzi bodmi grafu nad x1 a x2 — s rovnakými váhami, takže je nad tým istým bodom
≤
graf nikdy nevystúpi nad tetivu — to je tvar misy; keby niekde vystúpil, je tam „hrb“, za ktorým sa môže skrývať ďalšie údolie
Príklad — nerovnosť konvexnosti v číslach

Farby zodpovedajú členom nerovnosti vyššie.

f(x) = x2, x1 = −1, x2 = 3, t = 1/2: bod uprostred je 1, vľavo f(1) = 1, vpravo 1 + 9/2 = 5. 1 ≤ 5 ✓.

f(x) = x4 − 3x2 + x, za x1, x2 vezmeme obe minimá −1,30 a 1,13, t = 1/2: bod uprostred je −0,085,

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

−0,11 > −2,29 — nerovnosť ≤ neplatí, funkcia nie je konvexná. Ten „hrb“ medzi minimami je presne to, čo oddeľuje dve údolia.

globálne x (bez jednotky) f(x) (bez jednotky)

konvexná: x², jediné minimum

globálne lokálne x (bez jednotky) f(x) (bez jednotky)

nekonvexná: x⁴ − 3x² + x

Konvexná a nekonvexná funkcia

Nekonvexná funkcia x4 − 3x2 + x má dve minimá: globálne pri x ≈ −1,30 s hodnotou ≈ −3,51 a lokálne pri x ≈ 1,13 s hodnotou ≈ −1,07. Kto začne hľadať vpravo a ide stále dole, skončí v tom horšom. Stratové funkcie lineárnej a logistickej regresie sú konvexné — preto ich tréning spoľahlivo nájde najlepšie riešenie. Straty neurónových sietí konvexné nie sú, a o tom, ako sa s tým žije, bude diel o gradientnom zostupe.

Minimá v grafe vyššie sme našli numericky, bez derivácií: hustou mriežkou kandidátov, ktoré potom doladí metóda zlatého rezu. Tá v každom kroku zahodí časť intervalu, v ktorej minimum byť nemôže, a interval sa zmenší na ≈ 0,618 predchádzajúcej dĺžky.

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ž susedia
            l, p = x - krok, x + krok
            z = (5 ** 0.5 - 1) / 2                        # ≈ 0,618
            for _ in range(60):                           # zlatý rez
                c, d = p - z * (p - l), l + z * (p - l)
                if f(c) < f(d): p = d                     # minimum je vľavo od d
                else:           l = c                     # minimum je vpravo od c
            vysledek.append((l + p) / 2)
    return vysledek

8. Funkcie v umelej inteligencii

Teraz sa už dá celé strojové učenie povedať jazykom funkcií:

  • Model je funkcia fθ : X → Y s parametrami θ — celá rodina funkcií, jedna pre každú voľbu parametrov.
  • Stratová funkcia L : Y × Y → ℝ hovorí, koľko stojí odpoveď ŷ, keď správne je y.
  • Učenie je výber jednej funkcie z rodiny: argmin cez θ priemernej straty — funkcie parametrov, ktorú sme práve kreslili ako krajinu.
  • Aktivačné funkcie (sigmoida, tanh, ReLU) robia z lineárnych vrstiev nelineárnu sieť; bez nich by zloženie lineárnych funkcií bolo zase len lineárnou funkciou.

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

θ*
naučené parametre — tým je z celej rodiny vybraná jedna funkcia fθ*
argminθ
nechceme najmenšiu chybu samotnú, ale miesto, kde nastane — parametre, nie číslo
1/n ∑i=1n
priemer cez všetkých n trénovacích príkladov — model má byť dobrý na dátach ako celku
L
stratová funkcia — prevedie rozdiel medzi odpoveďou a pravdou na jedno číslo, ktoré sa dá minimalizovať (napríklad druhú mocninu odchýlky ako v MSE)
fθ(xi)
odpoveď modelu na i-tý vstup; jediné miesto, kde vo vzorci vystupuje θ
yi
správna odpoveď z dát, s ktorou odpoveď modelu porovnávame
Učenie = nájsť najnižšie miesto krajiny, ktorej súradnice sú parametre a výška priemerná strata.

9. Zhrnutie

  • Funkcia priraďuje každému vstupu práve jeden výstup; obraz je to, kam sa naozaj trafí.
  • Injektívna funkcia nezamení dva vstupy, surjektívna pokryje celý cieľ, bijektívna má inverziu.
  • Skladanie funkcií je montážna linka — a neurónová sieť je zloženie vrstiev.
  • Stratová funkcia je krajina nad priestorom parametrov; konvexná krajina má jediné dno, nekonvexná ich môže mať viac.

Máte na to iný názor? Napíšte na support@coden-app.com.

Agent na vašom počítači, ovládaný z telefónu