Stručná história umelej inteligencie: od Turinga po jazykové modely
Turingov test, Dartmouthský seminár, zlaté roky, dve zimy AI a expertné systémy, štatistické učenie, hlboké učenie a jazykové modely — časová os s odkazmi na diely série a horká lekcia sedemdesiatich rokov výskumu.
Séria Základy AI Diel 2 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- 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
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Ako sa AI vyvíjala a prečo sa striedalo nadšenie so zimami.
- Odkiaľ pochádzajú myšlienky, na ktorých stoja dnešné modely.
- Čo je horká lekcia a prečo vyhrávajú všeobecné metódy s veľkým výpočtom.
Čo sa hodí vedieť vopred: Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
Umelá inteligencia nie je nová. Jej dejiny sú staršie ako osobné počítače a pripomínajú horskú dráhu: obdobia nadšenia a veľkých sľubov, po nich vytriezvenie a odliv peňazí — „zimy“ —, a potom znova vzostup, keď sa ukázalo, že stará myšlienka zrazu funguje. Väčšinu nápadov, na ktorých stoja dnešné jazykové modely, vymysleli ľudia pred desiatkami rokov. V tomto diele ich prejdeme v poradí, v akom prišli, a pri každej, ktorú v sérii vysvetľujeme, nájdete odkaz na príslušný diel.
Nadväzuje na diel Mapa umelej inteligencie.
1. Začiatky: môže stroj myslieť?
Definícia — Turingov test
Alan Turing v roku 1950 nahradil nejasnú otázku „môžu stroje myslieť?“ skúškou, ktorú sám nazýval „hra na napodobňovanie“. Turingov test má troch účastníkov:
- sudca — človek, ktorý rozhoduje;
- človek — skrytá protistrana;
- stroj — skrytá protistrana, ktorú skúšame.
a prebieha takto:
- sudca komunikuje s oboma protistranami len písaným textom a nevie, ktorá je ktorá (pozná ich len pod označením X a Y);
- počas obmedzeného času im kladie ľubovoľné otázky;
- nakoniec vyhlási, či je strojom X, alebo Y.
Stroj v teste obstojí práve vtedy, keď ho sudca neurčí správne o nič častejšie, než keby len hádal; túto podmienku spresňuje ďalšia definícia. Ak sa stroj takto vydáva za človeka rovnako dobre ako človek sám, nemáme podľa Turinga dôvod mu inteligenciu upierať — to už je Turingov filozofický záver, nie súčasť definície testu.
Namiesto filozofickej debaty praktická skúška: keď si s niekým píšete a nespoznáte, či je to človek, alebo program, je to pre vás inteligencia. Dnešné jazykové modely v krátkom rozhovore takou skúškou často prejdú — a ukazuje sa, že to o inteligencii hovorí menej, než sa čakalo.
Definícia — Turingov test ako štatistická skúška
Nech n ∈ ℕ, n ≥ 1, je počet nezávislých rozhovorov (behov testu vyššie). Pre i = 1, …, n nech Xi ∈ {0, 1} je náhodná premenná, pre ktorú Xi = 1 práve vtedy, keď sudca v i-tom rozhovore určil stroj správne, a nech
S = ∑i=1n Xi
je počet správnych určení. Nulová hypotéza znie: stroj je od človeka nerozlíšiteľný, t. j. sudca len háda, X1, …, Xn sú nezávislé a P(Xi = 1) = 1/2. Potom S ~ Bin(n, 1/2), stredná hodnota ES = n/2 a smerodajná odchýlka σ = √n/2. Testová štatistika je
z = S − n/2/√n/2.
Stroj test splní práve vtedy, keď |z| < 1,96, t. j. práve vtedy, keď obojstranný test na hladine 5 % (s normálnym priblížením binomického rozdelenia) nulovú hypotézu nezamietne. Slovami: výsledok sudcu sa od hádania štatisticky nelíši.
Poznámka. Toto je dnešná formalizácia, nie Turingova. Turing test v roku 1950 opísal slovne a namiesto prahu dal predpoveď: okolo roku 2000 vraj priemerný sudca po piatich minútach rozhovoru nespozná stroj správne s pravdepodobnosťou vyššou ako 70 %.
Jeden rozhovor nič nedokáže — sudca sa môže trafiť aj náhodou. Preto sa rozhovorov vedie veľa a pýtame sa, či sudca spoznáva stroj častejšie, než keby si hádzal mincou. Ak nie, stroj prešiel.
z = S − n/2/√n/2
- S
- koľkokrát sudca stroj spoznal — to jediné, čo sa v teste meria
- n/2
- koľkokrát by sa trafil čistým hádaním; odčítame to, pretože zaujímavé je len to, čo je nad náhodou
- √n/2
- typický rozptyl hádania; delením prebytok porovnáme s bežným šumom — 6 navyše zo 100 rozhovorov je niečo iné ako 6 navyše z 10 000
Príklad — 100 rozhovorov
Sudca spoznal stroj v 56 rozhovoroch zo 100 (farby zodpovedajú členom vzorca vyššie). Hádaním by čakal 100/2 = 50, odchýlka je √100/2 = 5, takže
z = 56 − 50/5 = 1,2.
To je menej ako 1,96 — od hádania sa to nelíši a stroj prešiel. Neprešiel by, keby sudca trafil aspoň 50 + 1,96 · 5 = 59,8, teda 60 rozhovorov.
- 1943 Umelý neurón. Warren McCulloch a Walter Pitts opísali neurón ako logický prvok s prahom. → diel série
- 1950 Turingov test. Alan Turing v článku Computing Machinery and Intelligence navrhol namiesto otázky „myslia stroje?“ hru na napodobňovanie.
- 1950 Šach prehľadávaním. Claude Shannon opísal, ako by počítač hral šach: prehľadávať ťahy do určitej hĺbky a pozície hodnotiť funkciou. → diel série
2. Zlaté roky (1956–1974)
Na seminári v Dartmouthe v lete 1956 sa stretli ľudia, ktorí verili, že „každý aspekt učenia alebo akúkoľvek inú vlastnosť inteligencie možno v princípe opísať tak presne, že ju stroj dokáže napodobniť“. Nasledovali dve desaťročia optimizmu. Programy dokazovali vety, riešili slovné úlohy, hrali dámu a rozprávali o kockách na stole. Herbert Simon v roku 1965 predpovedal, že do dvadsiatich rokov zvládnu stroje akúkoľvek prácu, ktorú robí človek.
- 1956 Dartmouthský seminár. John McCarthy, Marvin Minsky, Nathaniel Rochester a Claude Shannon zvolali letný seminár; názov „artificial intelligence“ sa ujal.
- 1956 Logic Theorist. Allen Newell a Herbert Simon: program, ktorý dokazoval matematické vety prehľadávaním. → diel série
- 1958 Perceptrón. Frank Rosenblatt postavil učiaci sa neurón; noviny písali o stroji, ktorý bude chodiť a hovoriť. → diel série
- 1959 Strojové učenie. Arthur Samuel: program na dámu, ktorý sa zlepšoval hraním sám so sebou. Od neho pochádza výraz machine learning. → diel série
- 1960 Kalmanov filter. Rudolf Kálmán: odhad stavu zo zašumených meraní; letel s ním Apollo. → diel série
- 1965 Fuzzy množiny. Lotfi Zadeh zaviedol príslušnosť do množiny ako číslo medzi 0 a 1. → diel série
- 1966 ELIZA. Joseph Weizenbaum napísal program, ktorý napodobňoval psychoterapeuta niekoľkými pravidlami — a ľudia mu zverovali tajomstvá.
- 1969 Kniha Perceptrons. Marvin Minsky a Seymour Papert ukázali, čo jeden neurón nezvládne (XOR); záujem o neurónové siete opadol. → diel série
- 1971 Shakey a STRIPS. Robot Shakey zo Stanfordu plánoval kroky v jazyku STRIPS. → diel série
- 1973 Lighthillova správa. Britská vláda si dala posúdiť výsledky AI; správa bola kritická a financovanie sa obmedzilo.
Perceptrón: prvý neurón, ktorý sa učí
Definícia — perceptrón
Nech d ∈ ℕ, d ≥ 1, w = (w1, …, wd) ∈ ℝd sú váhy a b ∈ ℝ je posun. Pre x ∈ ℝd označme w · x = w1x1 + … + wdxd skalárny súčin. Perceptrón s váhami w a posunom b je funkcia
hw,b : ℝd → {−1, +1}, hw,b(x) = +1, ak w · x + b > 0, a hw,b(x) = −1 inak.
Nech (x, y) je príklad so vstupom x ∈ ℝd a správnou triedou y ∈ {−1, +1}. Perceptrón sa na ňom pomýli práve vtedy, keď
y · (w · x + b) ≤ 0.
Za chybu sa tu počíta aj prípad w · x + b = 0 (bod leží priamo na hranici), aj keď ho hw,b zaradí do −1. Hranica perceptrónu je množina {x ∈ ℝd : w · x + b = 0}; pre w ≠ 0 je to nadrovina (pre d = 2 priamka).
Každý vstup dostane váhu podľa toho, ako veľmi hovorí za „áno“. Neurón vstupy s váhami sčíta a keď súčet vyjde kladný, povie „áno“. Učenie znamená ladiť váhy tak, aby „áno“ hovoril správne.
Rosenblattovo pravidlo opravuje váhy len vtedy, keď sa perceptrón pomýli:
w ← w + η · y · x
- w
- váhy — jediné, čo sa učí; nová hodnota je stará plus oprava, takže sa učí postupne z jedného príkladu po druhom
- η
- rýchlosť učenia — aký veľký krok; pri perceptróne začínajúcom z núl len zväčšuje všetky váhy rovnako, a hranicu tak nemení
- y
- správna trieda ±1 — určuje smer: kladný príklad váhy pritiahne k sebe, záporný odstrčí
- x
- vstup, na ktorom sa pomýlil — oprava mieri práve tam; vstup s hodnotou 0 k chybe neprispel, a jeho váha sa preto nezmení
perceptron(data, η):
w ← (0, …, 0); b ← 0
opakuj:
chyb ← 0
pre každý príklad (x, y) v data:
ak y · (w · x + b) ≤ 0: # pomýlil sa (alebo stojí na hranici)
w ← w + η · y · x
b ← b + η · y
chyb ← chyb + 1
kým chyb > 0 # celá epocha bez chyby: hotovo
vráť w, b
Príklad — perceptrón sa naučí AND
Dáta: (0, 0) → −1, (0, 1) → −1, (1, 0) → −1, (1, 1) → +1; η = 1, štart w = (0, 0), b = 0. Farby zodpovedajú členom pravidla w ← w + η · y · x vyššie.
- (0, 0), y = −1: −1 · (0 + 0) = 0 ≤ 0, chyba. w = (0, 0) + 1 · (−1) · (0, 0) = (0, 0), b = 0 + 1 · (−1) = −1.
- (0, 1) a (1, 0): −1 · (0 − 1) = 1 > 0, správne, nič sa nemení.
- (1, 1), y = +1: 1 · (0 + 0 − 1) = −1 ≤ 0, chyba. w = (0, 0) + 1 · (+1) · (1, 1) = (1, 1), b = −1 + 1 · (+1) = 0.
Tak to ide ďalej: celkom 18 opráv, posledná v 8. epoche, a výsledok je w = (3, 2), b = −4. Kontrola: 3 · 1 + 2 · 1 − 4 = 1 > 0 a pre ostatné vstupy −4, −2, −1 < 0.
Veta — perceptrón nezvládne XOR (Minsky a Papert, 1969)
Nech d = 2 a hw,b je perceptrón z definície vyššie. Potom neexistujú w = (w1, w2) ∈ ℝ2 a b ∈ ℝ také, že
hw,b(0, 0) = −1 ∧ hw,b(1, 1) = −1 ∧ hw,b(0, 1) = +1 ∧ hw,b(1, 0) = +1,
t. j. žiadny perceptrón nezaradí správne všetky štyri body funkcie XOR.
Dôkaz. Správne zaradenie by znamenalo b ≤ 0, w1 + w2 + b ≤ 0, w2 + b > 0 a w1 + b > 0. Sčítaním posledných dvoch nerovností w1 + w2 + 2b > 0, teda w1 + w2 + b > −b ≥ 0 — spor s druhou nerovnosťou. ∎
Body XOR ležia ako na šachovnici: kladné na jednej uhlopriečke, záporné na druhej. Jedna priamka ich od seba oddeliť nedokáže. Dve vrstvy neurónov to zvládnu — lenže ako ich učiť, sa v roku 1969 nevedelo. Viac v diele Perceptrón.
3. Dve zimy a expertné systémy (1974–1993)
Definícia — zima umelej inteligencie
Zima AI je časové obdobie, pre ktoré platia všetky tri podmienky:
- predchádzalo mu obdobie veľkých očakávaní a sľubov, ktoré sa nesplnili;
- prudko klesne financovanie výskumu AI (štátne granty aj súkromné investície);
- klesne záujem o odbor — menej projektov, firiem a pozornosti odborníkov aj verejnosti.
Je to historický pojem, nie matematický: nemá presné kvantitatívne hranice a letopočty sú približné. Zvyčajne sa hovorí o dvoch zimách: zhruba 1974–1980 (po Lighthillovej správe vo Veľkej Británii a škrtoch amerického grantového úradu DARPA) a 1987–1993 (po zrútení trhu so špecializovanými počítačmi pre jazyk Lisp a vytriezvení z expertných systémov).
Programy, ktoré zvládli hračkové svety kociek, narazili na skutočný svet: priveľa možností, priveľa výnimiek, príliš pomalé počítače. Kto sľuboval stroj, ktorý „o desať rokov bude myslieť“, musel vysvetľovať, prečo nemyslí. Peniaze odišli inam.
Medzi zimami prišla vlna expertných systémov: namiesto všeobecnej inteligencie úzky odbor a stovky pravidiel spísaných s odborníkmi („ak teplota > 38 a … potom …“). Fungovali a zarábali. Lenže pravidlá sa ťažko udržiavali, systémy nevedeli nič mimo svojho odboru a nedokázali sa učiť. V tieni tej doby sa však potichu vrátili neurónové siete: spätné šírenie (1986) ukázalo, ako učiť siete s viacerými vrstvami.
- 1975 Genetické algoritmy. John Holland zhrnul evolúciu populácie riešení s krížením a mutáciou. → diel série
- 1980 Expertné systémy. XCON (R1) konfiguroval počítače firmy DEC pravidlami od expertov a šetril milióny dolárov ročne. → diel série
- 1986 Spätné šírenie. David Rumelhart, Geoffrey Hinton a Ronald Williams ukázali, ako učiť viacvrstvové siete. → diel série
- 1988 Bayesovské siete. Judea Pearl: pravdepodobnostné usudzovanie na grafe závislostí. → diel série
- 1989 Konvolučné siete. Yann LeCun naučil konvolučnú sieť čítať ručne písané PSČ. → diel série
- 1989 Q-learning. Christopher Watkins: učenie hodnoty akcií bez znalosti pravidiel sveta. → diel série
Spätné šírenie: ako učiť viac vrstiev
Definícia — spätné šírenie (backpropagation)
Nech L ≥ 1 je počet vrstiev, n0, …, nL ≥ 1 ich šírky a pre l = 1, …, L nech Wl ∈ ℝnl×nl−1 a bl ∈ ℝnl sú váhy a posuny. Nech φ : ℝ → ℝ je diferencovateľná aktivačná funkcia (na vektory sa používa po zložkách) a sieť počíta
h0 = x, zl = Wlhl−1 + bl, hl = φ(zl) pre l = 1, …, L.
Nech 𝓛 : ℝnL → ℝ je diferencovateľná strata výstupu hL pre danú správnu odpoveď (stratu tu označujeme 𝓛, aby sa nemýlila s počtom vrstiev L). Symbol ⊙ označuje súčin vektorov po zložkách. Spätné šírenie je algoritmus:
- Vstup: vstup siete x ∈ ℝn0, parametre Wl, bl (l = 1, …, L) a strata 𝓛.
- Výstup: gradienty ∂𝓛/∂Wl ∈ ℝnl×nl−1 a ∂𝓛/∂bl ∈ ℝnl pre všetky l = 1, …, L.
- Dopredný prechod: pre l = 1, …, L vypočítaj a ulož zl a hl.
- Chyba výstupu: δL = ∂𝓛/∂hL ⊙ φ′(zL) (všeobecne δl = ∂𝓛/∂zl).
- Spätný prechod: pre l = L, L − 1, …, 1 polož ∂𝓛/∂Wl = δl hl−1T a ∂𝓛/∂bl = δl; ak l > 1, vypočítaj δl−1 = (WlTδl) ⊙ φ′(zl−1).
- Koniec: po spracovaní vrstvy l = 1 vráť všetky gradienty.
Krok 3 je pravidlo pre deriváciu zloženej funkcie (reťazové pravidlo) a každé δl sa použije znova pre nižšiu vrstvu, takže celý gradient stojí rádovo rovnako ako jeden prechod sieťou dopredu.
Sieť sa pomýlila. Koľko z tej chyby ide na vrub ktorej váhy? Spätné šírenie to rozpočíta: začne pri výstupe a vinu posiela dozadu, vrstvu po vrstve, podľa toho, ako veľmi ktorá váha výsledok ovplyvnila.
Pre jeden neurón so vstupom x ∈ ℝ, váhou w ∈ ℝ, posunom b ∈ ℝ a správnou odpoveďou y ∈ ℝ, t. j. z = wx + b, ŷ = σ(z) so sigmoidou σ(z) = 1/1 + e−z, a so stratou L = 1/2(ŷ − y)² vyzerá reťaz takto:
∂L/∂w = ∂L/∂ŷ · ∂ŷ/∂z · ∂z/∂w
- ∂L/∂w
- čo chceme: ako sa zmení chyba, keď pohneme váhou — znamienko hovorí, ktorým smerom váhu posunúť
- ∂L/∂ŷ
- = ŷ − y: ako veľmi chyba závisí od výstupu; tu spätný prechod začína
- ∂ŷ/∂z
- = ŷ(1 − ŷ) pri sigmoide: aká citlivá je aktivácia; pri nasýtenom neuróne je skoro 0 a učenie sa zastaví
- ∂z/∂w
- = x: koľko váha do súčtu priniesla; vo viacvrstvovej sieti tu stojí výstup predchádzajúcej vrstvy a reťaz pokračuje ďalej dozadu
Príklad — jeden krok učenia
x = 1, w = 0,5, b = 0, správne y = 1. Dopredu: z = 0,5, ŷ = σ(0,5) = 1/1 + e−0,5 = 0,6225, L = 1/2 · (0,6225 − 1)² = 0,0713.
Dozadu (farby zodpovedajú členom vzorca vyššie):
- ∂L/∂ŷ = ŷ − y = −0,3775,
- ∂ŷ/∂z = ŷ(1 − ŷ) = 0,6225 · 0,3775 = 0,2350,
- ∂z/∂w = x = 1.
Súčin: ∂L/∂w = −0,3775 · 0,2350 · 1 = −0,0887.
Krok s η = 1: w ← 0,5 − 1 · (−0,0887) =0,5887. Gradient je záporný, takže váha rastie a výstup sa priblíži k 1.
spätné_šírenie(x, y):
h₀ ← x # dopredu: zapamätaj si medzivýsledky
pre l = 1 … L:
zₗ ← Wₗ · hₗ₋₁ + bₗ
hₗ ← φ(zₗ)
δ ← ∂Strata/∂h_L # dozadu: začni pri chybe výstupu
pre l = L … 1:
δ ← δ ⊙ φ′(zₗ) # cez aktiváciu (po zložkách)
∂Strata/∂Wₗ ← δ · hₗ₋₁ᵀ # gradient váh tejto vrstvy
∂Strata/∂bₗ ← δ
δ ← Wₗᵀ · δ # pošli vinu o vrstvu nižšie
vráť všetky ∂Strata/∂Wₗ, ∂Strata/∂bₗ
Do hĺbky: Neurónová sieť od nuly.
4. Štatistické učenie (1993–2012)
Odbor sa premenil. Namiesto „naprogramujme inteligenciu“ prišlo „naučme sa to z dát“ — a s tým pravdepodobnosť, štatistika a starostlivé meranie. Rozpoznávanie reči, filtre spamu, odporúčanie a vyhľadávanie fungovali vďaka skrytým Markovovým modelom, bayesovským metódam, SVM a súborom stromov. Slovo „umelá inteligencia“ sa vtedy veľmi nepoužívalo — hovorilo sa strojové učenie. Deep Blue porazil Kasparova v roku 1997, ale nie učením: hrubou silou prehľadávania a ručne ladenou hodnotiacou funkciou.
- 1995 SVM. Corinna Cortes a Vladimir Vapnik: klasifikácia s najväčším okrajom a jadrový trik. → diel série
- 1997 Deep Blue. Počítač IBM porazil majstra sveta v šachu Garriho Kasparova — prehľadávaním, nie učením. → diel série
- 1997 LSTM. Sepp Hochreiter a Jürgen Schmidhuber: rekurentná sieť s bránami, ktorá si dlho pamätá. → diel série
- 2001 Náhodný les. Leo Breiman: súbor rozhodovacích stromov hlasuje. → diel série
5. Hlboké učenie (2012–2018)
V roku 2012 vyhrala súťaž v rozpoznávaní obrázkov ImageNet hlboká konvolučná sieť AlexNet (Alex Krizhevsky, Ilya Sutskever a Geoffrey Hinton) s takým náskokom, že sa odbor počas pár rokov presťahoval k neurónovým sieťam. Nebol to nový nápad — konvolučné siete existovali od konca 80. rokov. Nové boli tri veci: veľké označené dáta (ImageNet mal vyše milióna obrázkov), grafické karty, ktoré násobia matice tisíckrát rýchlejšie, a niekoľko drobných trikov (ReLU, dropout). Nasledovala lavína: reč, preklad, hry, generovanie.
- 2012 AlexNet. Hlboká konvolučná sieť učená na grafických kartách vyhrala súťaž ImageNet s veľkým náskokom. → diel série
- 2013 word2vec. Tomáš Mikolov a kol.: slová ako vektory, v ktorých sa dajú počítať analógie. → diel série
- 2014 GAN. Ian Goodfellow: dve siete proti sebe generujú obrázky. → diel série
- 2014 Pozornosť. Dzmitry Bahdanau a kol.: prekladová sieť sa pozerá na dôležité slová vety. → diel série
- 2015 DQN. DeepMind naučil jednu sieť hrať desiatky hier na Atari z obrazovky. → diel série
- 2016 AlphaGo. Program DeepMind porazil Lee Se-dola v go 4 : 1; hra sa považovala za doménu ľudskej intuície.
- 2017 Transformer. Článok „Attention Is All You Need“ (Vaswani a kol., Google) — architektúra dnešných jazykových modelov. → diel série
- 2017 PPO. John Schulman a kol. (OpenAI): stabilné učenie stratégie. → diel série
Príklad — prečo pomohla ReLU
Derivácia sigmoidy je σ′(z) = σ(z)(1 − σ(z)) ≤ ¼ (maximum v z = 0). V spätnom šírení sa tieto derivácie násobia cez všetky vrstvy, takže po desiatich sigmoidových vrstvách je gradient najviac (¼)10 = 9,5 · 10-7 pôvodnej veľkosti (váhy ho môžu zväčšiť aj zmenšiť, ale tento faktor zostane). ReLU(z) = max(0, z) má deriváciu 1 pre z > 0 — gradient aktívnymi neurónmi prejde nezmenšený, a hlboké siete sa tak dajú učiť.
6. Jazykové modely (od 2018)
Transformer z roku 2017 sa dal škálovať lepšie než čokoľvek predtým. Modely GPT predtrénované na veľkej časti internetu ukázali, že väčší model a viac dát prináša predvídateľné zlepšenie. GPT-3 v roku 2020 zvládal úlohy, na ktoré ho nikto neučil, len z niekoľkých príkladov v prompte. Doladením podľa ľudských preferencií z neho vznikol ChatGPT (november 2022) — prvý jazykový model, ktorý si vyskúšali stovky miliónov ľudí. Dnes sa z modelov stávajú agenti, ktorí samostatne pracujú v počítači.
- 2020 GPT-3. Jazykový model so 175 miliardami parametrov zvláda nové úlohy len z príkladov v prompte. → diel série
- 2020 Difúzne modely. Jonathan Ho a kol.: obrázok sa vylúpne zo šumu krok za krokom. → diel série
- 2020 AlphaFold 2. DeepMind predpovedá trojrozmerný tvar bielkovín s presnosťou blízkou experimentu.
- 2022 ChatGPT. Jazykový model doladený podľa ľudských preferencií; počas dvoch mesiacov ho podľa odhadov používalo 100 miliónov ľudí. → diel série
- 2024 Nobelove ceny. Za fyziku John Hopfield a Geoffrey Hinton (neurónové siete), za chémiu Demis Hassabis a John Jumper (AlphaFold) spolu s Davidom Bakerom.
- 2024 Agenti. Jazykové modely s nástrojmi samostatne programujú, hľadajú a pracujú v počítači. → diel série
Pozornosť: vzorec, na ktorom stojí transformer
Nech Q ∈ ℝm×dk sú dotazy (každý riadok je jeden dotaz), K ∈ ℝn×dk kľúče a V ∈ ℝn×dv hodnoty (i-tý riadok V patrí k i-tému kľúču). Softmax sa počíta pre každý riadok zvlášť: pre s ∈ ℝn je softmax(s)j = esj/∑i=1n esi. Výsledok je matica z ℝm×dv:
Pozornosť(Q, K, V) = softmax(QKT/√dk) V
- QKT
- skalárne súčiny každého dotazu s každým kľúčom — veľké, keď vektory mieria rovnakým smerom; tak slovo „hľadá“ slová, ktoré sa ho týkajú
- √dk
- skalárny súčin dk náhodných zložiek má rozptyl úmerný dk; bez delenia by sa softmax s rastúcou dimenziou upol na jediné slovo a gradienty by zmizli
- softmax
- z ľubovoľných skóre urobí kladné váhy so súčtom 1 — a na rozdiel od „vyber maximum“ sa dá derivovať, takže sa dá učiť
- V
- hodnoty — informácia, ktorá sa skutočne odovzdáva; výstup je ich vážený priemer
Príklad — jeden dotaz, dva kľúče
q = (1, 0), k1 = (1, 0), k2 = (0, 1), v1 = (10, 0), v2 = (0, 10), dk = 2.
Farby zodpovedajú členom vzorca vyššie.
Skóre: q · k1/√2 = 1/√2 = 0,707 a q · k2/√2 = 0/√2 = 0.
Softmax: e0,707/e0,707 + e0 = 0,670 a e0/e0,707 + e0 = 0,330.
Výstup: 0,670 · (10, 0) + 0,330 · (0, 10) = (6,70; 3,30). Dotaz sa viac „pozrel“ na prvé slovo, pretože jeho kľúč je mu podobný — ale ani druhé neignoroval.
Do hĺbky: Pozornosť a Transformery.
Škálovací zákon: prečo „viac“ funguje predvídateľne
Nech N > 0 je počet parametrov modelu, D > 0 počet trénovacích tokenov a E, A, B, α, β > 0 konštanty preložené meraním. Škálovací zákon (v tvare podľa Hoffmanna a kol.) odhaduje stratu natrénovaného modelu ako
L(N, D) = E + A/Nα + B/Dβ
- E
- neprekonateľná strata: text sám je neistý a ani nekonečný model nespozná ďalšie slovo s istotou
- A/Nα
- daň za malý model (N parametrov); klesá mocninovo — dvojnásobok parametrov ju zníži len o 21 %, a preto modely rastú o rády
- B/Dβ
- daň za málo dát (D tokenov); stojí zvlášť, pretože obrovský model na malých dátach narazí na tento člen
Príklad — Gopher proti Chinchille
Farby zodpovedajú členom vzorca vyššie. Konštanty preložené na stovkách modelov (Hoffmann a kol., 2022): E = 1,69, A = 406,4, B = 410,7, α = 0,34, β = 0,28.
- Gopher: N = 280 mld., D = 300 mld.: L = 1,69 + 0,052 + 0,251 = 1,993; výpočet 5,0 · 1023.
- Chinchilla: N = 70 mld., D = 1 400 mld.: L = 1,69 + 0,083 + 0,163 = 1,937; výpočet 5,9 · 1023.
Pri porovnateľnom výpočte je štyrikrát menšia Chinchilla lepšia: pri Gopheri výrazne prevažoval dátový člen nad parametrovým (0,251 proti 0,052), takže sa oplatilo ubrať parametre a pridať dáta.
7. Čo sa z histórie dá vyčítať
Definícia — horká lekcia (the bitter lesson)
Horká lekcia je téza, ktorú Richard Sutton v eseji z roku 2019 vyvodil zo sedemdesiatich rokov výskumu AI. Je to empirické pozorovanie, nie matematické tvrdenie. Porovnáva dva druhy metód:
- všeobecné metódy, ktorých výsledky sa zlepšujú s rastúcim výpočtovým výkonom — prehľadávanie a učenie;
- metódy s vloženými znalosťami, do ktorých ľudia ručne vkladajú svoje znalosti o konkrétnej úlohe.
Téza znie: keďže výpočet dlhodobo (exponenciálne) zlacňuje, metódy druhu 1 nakoniec prekonajú metódy druhu 2. Ručné znalosti pomôžu krátkodobo, ale nakoniec ich predbehne metóda, ktorá sa potrebné znalosti naučí sama z dát a výpočtu.
Šach vyhralo prehľadávanie, nie pravidlá od veľmajstrov. Obrázky vyhrala sieť, ktorá sa sama naučila, čo je hrana, nie ručne navrhnuté detektory hrán. Jazyk vyhral model, ktorý prečítal internet, nie gramatika spísaná lingvistami. „Horká“ je to preto, že ľudia sa zakaždým znova snažia vložiť do strojov svoje múdre nápady — a zakaždým ich predbehne hrubá sila s dobrou všeobecnou metódou.
A ešte jedna vec je vidieť, keď sa pozrieme, odkiaľ pochádzajú myšlienky, ktoré v sérii vysvetľujeme. Z 37 míľnikov na osi ich 30 má vlastný diel:
Najviac (7) ich je z 2010. rokov — ale skoro rovnako dôležité sú 50. a 80. roky. Perceptrón, spätné šírenie, konvolučné siete, LSTM aj Q-learning sú staré desiatky rokov; čakali na dáta a výpočtový výkon. Väčšina toho, čo dnes vyzerá ako zázrak, je múdra kombinácia starých nápadov vo veľkom meradle. A každá vlna nadšenia zatiaľ skončila vytriezvením — otázka je len, akým hlbokým.
8. Zhrnutie
- 1950 Turingov test, 1956 Dartmouth (názov „umelá inteligencia“ pochádza z návrhu seminára z roku 1955), 1958 perceptrón.
- Po zlatých rokoch prišli dve zimy (zhruba 1974–1980 a 1987–1993), medzi nimi expertné systémy.
- Od 90. rokov štatistické učenie: z dát namiesto pravidiel, s meraním a pravdepodobnosťou.
- 2012 AlexNet a hlboké učenie; 2017 transformer; 2022 ChatGPT; dnes agenti.
- Horká lekcia: dlhodobo vyhrávajú všeobecné metódy, ktoré využijú výpočet — prehľadávanie a učenie.
- Väčšina dnešných myšlienok je stará; nové sú dáta, výpočet a mierka.
Chcete si to vyskúšať? Požiadajte AI agenta, nech vám napíše program ELIZA s dvadsiatimi pravidlami, a porozprávajte sa s ním. Potom porovnajte rovnaký rozhovor s dnešným jazykovým modelom — a zamyslite sa, čo z rozdielu je „inteligencia“.
Máte na to iný názor? Napíšte na support@coden-app.com.