Sieť má gombíky. Ako ich nastaviť?
V prvej prednáške si videl sieť, ktorá číta rukou písané číslice. Má 13 002 nastaviteľných čísel: váhy a biasy. Keď sú nastavené dobre, sieť odpovedá správne. Keď sú náhodné, sieť tipuje naslepo.
Učenie teda znamená jedno: nájsť dobré nastavenie gombíkov. Nikto ich neladí ručne. Robí to počítač sám, krok za krokom. Aby to vedel, potrebuje dve veci:
- Číslo, ktoré povie, ako zle na tom sieť je. Volá sa chyba (anglicky cost alebo loss). Čím menšia, tým lepšie.
- Spôsob, ako zistiť, ktorým smerom ktorý gombík otočiť, aby chyba klesla. Na to slúži sklon, teda derivácia, a pri viacerých gombíkoch gradient.
Toto je celá matematika, ktorú potrebuješ na pochopenie učenia neurónových sietí, aj tých najväčších. Nebudeme nič dokazovať. Ukážeme si, čo jednotlivé veci znamenajú, a všetko si vyskúšaš.
Jeden príklad cez celú prednášku
Namiesto 13 002 gombíkov začneme s jedným. Stánok predáva zmrzlinu: kornútok s 1 kopčekom stojí 2,50 €, s 2 kopčekmi 4,00 € a s 3 kopčekmi 5,50 €. Náš „model“ má z počtu kopčekov odhadnúť cenu. Na tomto príklade si ukážeme chybu, sklon aj gradient. Na konci pridáme druhý neurón a dostaneme sa k reťazovému pravidlu.
Opakovanie: funkcia je stroj na čísla
Funkcia je stroj: dnu vložíš číslo, von vypadne iné číslo. Pre ten istý vstup vypadne vždy ten istý výstup. Zapisujeme ju napríklad takto:
Ak nastavíš w = 2, stroj z 3 kopčekov spraví cenu 2 · 3 = 6 €. Toto je presne jeden neurón z prvej prednášky: jeden vstup, jedna váha, zatiaľ bez biasu a bez aktivačnej funkcie.
Graf je obrázok funkcie. Na vodorovnú os dáš vstup, na zvislú výstup a pre každý vstup nakreslíš bod. Funkcia w · x má za graf priamku, ktorá ide cez nulu. Čím väčšie w, tým je priamka strmšia.
| kopčeky x | skutočná cena y | odhad pri w = 1 | odhad pri w = 2 |
|---|---|---|---|
| 1 | 2,50 € | 1,00 € | 2,00 € |
| 2 | 4,00 € | 2,00 € | 4,00 € |
| 3 | 5,50 € | 3,00 € | 6,00 € |
Pri w = 1 model ceny všade podceňuje. Pri w = 2 je to oveľa lepšie, no stále nie presne. Ktoré w je najlepšie? Na to potrebujeme jedno číslo, ktoré „zle“ zmeria.
Dva druhy čísel
Všimni si rozdiel. x a y sú dáta: tie sú dané a nemeníme ich. w je parameter: ten ladíme. Pri učení sa celý čas pýtame, čo sa stane, keď pohneme parametrom, a dáta držíme pevne.
Chyba: jedno číslo, ktoré hovorí „ako zle“
Pre každý príklad vieme, čo model odhadol a aká je skutočnosť. Ich rozdiel je odchýlka. Pri w = 1 a jednom kopčeku je odchýlka 1,00 − 2,50 = −1,50.
Odchýlky môžu byť kladné aj záporné a pri sčítaní by sa navzájom rušili. Preto každú umocníme na druhú. Druhá mocnina je vždy kladná a veľké chyby trestá oveľa viac než malé: odchýlka 2 dá štvorec 4, odchýlka 0,5 dá len 0,25. Nakoniec štvorce spriemerujeme cez všetky príklady:
Pri w = 1 vyjde (2,25 + 4 + 6,25) / 3 ≈ 4,167. Pri w = 2 vyjde (0,25 + 0 + 0,25) / 3 ≈ 0,167. Menšie číslo, lepší model. Doslova sa dá chyba aj nakresliť: odchýlka je strana štvorca a chyba je priemerná plocha štvorcov.
Nájdi cenu za kopček s najmenšou chybou
Posúvaj w posuvníkom alebo ťahaj priamo v grafoch. Vľavo vidíš priamku modelu a červené štvorce odchýlok. Vpravo je chyba C pre všetky možné w a oranžový bod je tvoje w.
Úloha: nájdi w s čo najmenšou chybou. Skončíš okolo w ≈ 1,93 s chybou asi 0,143. Všimni si, že na nulu sa nedostaneš nikdy: priamka cez nulu nevie trafiť všetky tri body naraz.
Graf vpravo je kľúčový obrázok celej prednášky. Chyba je tiež funkcia. Jej vstupom nie sú kopčeky, ale parameter w. Pre každé nastavenie gombíka povie, ako zle model funguje. Učenie znamená nájsť najnižší bod tejto krivky.
Prečo sa chyba nedostane na nulu? Lebo skutočná cena je 1 € za kornútok + 1,50 € za kopček. Kornútok stojí niečo aj bez kopčekov a priamka cez nulu to nevie vyjadriť. Potrebujeme druhý gombík, bias b: cena = w · x + b. K nemu sa vrátime v kapitole 7.
Ako je to pri sieti na číslice
Sieť z prvej prednášky má 10 výstupov. Pri obrázku trojky chceme, aby výstup „3“ bol 1 a ostatné 0. Chyba pre jeden obrázok je súčet 10 štvorcov odchýlok. Celková chyba je priemer cez všetkých 60 000 trénovacích obrázkov. Princíp je rovnaký, len čísel je viac. A chyba je funkcia všetkých 13 002 parametrov naraz.
Sklon: čo sa stane, keď gombíkom trochu pohneš
Pri jednom gombíku by sme najlepšie w našli aj tak, že vyskúšame tisíc hodnôt. Pri 13 002 gombíkoch to nejde, kombinácií je viac než atómov vo vesmíre. Potrebujeme múdrejšiu otázku: keď gombíkom trochu pohnem, stúpne chyba, alebo klesne? A o koľko?
Odpoveď je sklon krivky v danom mieste. Poznáš ho z cesty: stúpanie 10 % znamená, že na 100 metrov dopredu vystúpiš o 10 metrov hore. Sklon je „o koľko hore“ delené „o koľko dopredu“:
Na krivke sa sklon mení od miesta k miestu. Preto berieme čo najmenšie štuchnutie. Keď sa Δx blíži k nule, pomer Δf / Δx sa ustáli na jednom čísle. To číslo je derivácia funkcie v danom bode. Zapisuje sa f′(x) alebo df/dx. Graficky je to sklon dotyčnice: priamky, ktorá sa krivky v tom bode len dotkne.
Štuchni do funkcie a zmeraj sklon
Ťahaním v grafe vyberáš bod x. Modrá priamka prechádza bodom x a bodom o Δx ďalej. Oranžová je dotyčnica, teda presný sklon. Zmenšuj Δx a sleduj, ako sa modrá priamka priblíži k oranžovej.
Úloha: pri f(x) = x² zmeraj sklon v bodoch 1, 2 a −1. Uhádneš pravidlo? (Je to vždy 2·x.) Potom prepni na „kopec a údolie“ a nájdi miesta, kde je sklon nula. Sú to vrcholy kopcov a dná údolí.
Derivácia nesie dve informácie a obe budeme potrebovať:
- Znamienko hovorí smer. Kladný sklon: keď x zväčšíš, f stúpne. Záporný sklon: keď x zväčšíš, f klesne.
- Veľkosť hovorí citlivosť. Sklon 8 znamená, že štuchnutie o 0,01 zmení výstup asi o 0,08. Sklon 0,1 znamená, že výstup sa takmer nepohne.
Hlavná myšlienka
Derivácia odpovedá na otázku: ak trochu pohnem vstupom, koľkokrát viac sa pohne výstup? Zmena výstupu ≈ derivácia × zmena vstupu. Táto jedna veta stačí na celý zvyšok prednášky.
Päť pravidiel, ktoré naozaj treba
Derivácie sa nemusia merať štuchaním. Pre bežné funkcie existujú hotové pravidlá. Neukážeme si ich dôkazy, iba čo hovoria a prečo dávajú zmysel. Na neurónové siete stačí táto hŕstka:
| funkcia | derivácia | prečo to dáva zmysel |
|---|---|---|
| c (konštanta) | 0 | Číslo, ktoré sa nemení, sa nezmení, ani keď pohneš x. Sklon vodorovnej čiary je nula. |
| a · x | a | Priamka má všade rovnaký sklon. Napríklad w · x má podľa w sklon x: keď zdvihneš cenu za kopček o 1 cent, cena 3 kopčekov stúpne o 3 centy. |
| x² | 2 · x | Parabola je pri nule plochá a čím ďalej, tým je strmšia. Overil si si to v ukážke vyššie. |
| c · f(x) | c · f′(x) | Keď je funkcia trikrát vyššia, aj jej stúpanie je trikrát väčšie. |
| f(x) + g(x) | f′(x) + g′(x) | Keď sa sčítavajú výšky, sčítavajú sa aj stúpania. Preto môžeme derivovať chybu po jednotlivých príkladoch a výsledky spriemerovať. |
| σ(x) sigmoid | σ(x) · (1 − σ(x)) | Sklon „esíčka“ sa dá vypočítať z jeho vlastnej hodnoty. Najväčší je v strede (0,5 · 0,5 = 0,25) a na okrajoch, kde je σ blízko 0 alebo 1, je skoro nulový. |
Vyskúšajme si to na našej zmrzline. Keď vo vzorci pre chybu roznásobíš zátvorky a sčítaš rovnaké členy, dostaneš obyčajnú parabolu:
Pri w = 1 je sklon 9,333 − 18 = −8,67. Je záporný, takže zväčšenie w chybu zníži. Pri w = 2 je sklon +0,67, takže sme mierne prestrelili. A sklon je nula pri w = 18 / 9,333 ≈ 1,93. To je presne dno, ktoré si našiel v prvej ukážke.
Prečo sa nevypočíta dno rovno?
Pri parabole áno, stačí položiť deriváciu rovnú nule. Pri sieti s tisícami parametrov a sigmoidmi sa také rovnice vyriešiť nedajú. Vieme však vždy vypočítať sklon v mieste, kde práve sme. A to stačí na to, aby sme sa k dnu dostali krokmi.
Gradient descent: guľôčka sa kotúľa dolu kopcom
Predstav si krivku chyby ako údolie a na nej guľôčku. Guľôčka nevidí celé údolie, cíti len sklon pod sebou. Ak sa svah dvíha doprava, kotúľa sa doľava. Ak sa dvíha doľava, kotúľa sa doprava. A na strmom svahu sa pohne viac než na plochom.
Presne toto robí algoritmus gradient descent (zostup po gradiente). Opakuje jediný krok:
Príklad: sme pri w = 1, sklon je −8,67 a learning rate η = 0,05. Nové w = 1 − 0,05 · (−8,67) = 1 + 0,43 = 1,43. Záporný sklon nás posunul doprava, k dnu. Blízko dna je sklon malý, takže aj kroky sa samy zmenšujú.
Pusti guľôčku dolu krivkou chyby
Guľôčka stojí na krivke chyby zo zmrzlinového príkladu. Oranžová šípka ukazuje jej ďalší krok. Tabuľka pod grafom vypisuje čísla každého kroku. Ťahaním v grafe zmeníš štart.
Úloha: skús learning rate 0,02 (pomalé plazenie), 0,10 (skoro jedným skokom), 0,20 (skáče zo strany na stranu) a 0,25 (vyletí). Potom prepni na „hrboľatú krajinu“ a štartuj raz vpravo, raz vľavo od kopčeka. Nie vždy skončíš v najhlbšom údolí.
Learning rate je jedno z najdôležitejších nastavení pri trénovaní akejkoľvek siete:
Každý krok je istý, ale treba ich tisíce. Pri veľkej sieti to znamená dni výpočtov navyše.
Pár krokov a sme tam. Dobrú hodnotu sa nedá vypočítať vopred, hľadá sa skúšaním.
Krok preskočí dno na druhú stranu ešte vyššie. Chyba rastie namiesto toho, aby klesala.
Trocha histórie
Metódu zostupu po sklone opísal francúzsky matematik Augustin-Louis Cauchy už v roku 1847, keď hľadal riešenia sústav rovníc v astronómii. Neurónové siete ju používajú takmer bez zmeny.
Dva gombíky: parciálne derivácie a gradient
Pridajme bias, aby model vedel zaplatiť aj kornútok: cena = w · x + b. Teraz má chyba dva vstupy, w a b. Už to nie je krivka, ale krajina: každá dvojica (w, b) má svoju „nadmorskú výšku“ C. Nakreslíme ju zhora ako mapu, kde tmavšia farba znamená nižšiu chybu a čiary spájajú miesta s rovnakou chybou, ako vrstevnice na turistickej mape.
Ako zistiť sklon v krajine? Jednoducho: pohneme vždy len jedným gombíkom a druhý necháme tak. Tak dostaneme dva sklony, ktoré sa volajú parciálne derivácie:
Obe čísla dáme dokopy do dvojice. Tá dvojica je gradient, zapisuje sa ∇C (čítaj „nabla C“). Dá sa nakresliť ako šípka v mape a má krásnu vlastnosť: ukazuje smerom, kde chyba stúpa najprudšie. My chceme dolu, takže ideme presne opačne, smerom −∇C. Krok gradient descentu je rovnaký ako predtým, len pre každý gombík zvlášť:
Mapa chyby a zostup v dvoch rozmeroch
Mapa ukazuje chybu pre všetky dvojice (w, b). Klikni alebo ťahaj v mape a vyber štart. Biela šípka je smer −∇C, kam vedie ďalší krok. Vpravo hore vidíš priamku, ktorú dané (w, b) nakreslí cez dáta.
Úloha: spusti zostup a sleduj, ako sa priamka vpravo ukladá na body. Na dne bude w = 1,50 a b = 1,00, presne skutočný cenník. Všimni si, že stopa najprv rýchlo zíde do dlhého úzkeho žľabu a potom sa ním pomaly plazí. Pri learning rate 0,19 a viac sa zostup rozkmitá a vyletí z mapy.
Prečo stopa nejde priamo k cieľu? Lebo gradient ukazuje najstrmší smer tam, kde práve stojíš, nie smer k cieľu. V úzkom žľabe je najstrmšie ísť cez žľab, nie pozdĺž neho. Zostup je lokálny a krátkozraký, ale spoľahlivý.
Od dvoch gombíkov k 13 002
Krajinu s dvoma gombíkmi vieme nakresliť. Sieť na číslice má 13 002 gombíkov a jej chyba je krajina v 13 002 rozmeroch. Tú nenakreslí nikto. Ale recept sa nemení ani o písmeno:
- Pre každý z 13 002 parametrov vypočítaj parciálnu deriváciu chyby.
- Tých 13 002 čísel tvorí gradient, šípku v 13 002-rozmernom priestore.
- Každý parameter posuň o −η krát jeho číslo z gradientu. Opakuj.
Gradient hovorí, na ktorom gombíku záleží
Každé číslo v gradiente má rovnaký význam ako sklon v jednom rozmere. Znamienko povie, či parameter zväčšiť alebo zmenšiť. Veľkosť povie, ako citlivo na ňom chyba závisí. Ak je pri jednej váhe číslo 3,2 a pri inej 0,01, tak prvá váha je pre chybu asi 300-krát dôležitejšia. Gradient je teda aj rebríček: ktoré zmeny dajú najviac za najmenej.
Lokálne minimá
V hrboľatej krajine z ukážky v kapitole 6 si videl, že guľôčka skončí v najbližšom údolí, nie nutne v najhlbšom. Takému údoliu sa hovorí lokálne minimum. Gradient descent nemá žiadnu záruku, že nájde najlepšie možné nastavenie.
Prekvapivo to pri veľkých sieťach až tak nevadí. Údolí je obrovské množstvo a väčšina z nich je skoro rovnako dobrá. Navyše v tisíckach rozmerov je ťažké uviaznuť: aj keď je to v jednom smere dno, v niektorom z tisícov iných smerov sa zvyčajne ešte dá ísť nadol.
Hlavná myšlienka
Učenie neurónovej siete = gradient descent na funkcii chyby. Jediný ťažký krok je vypočítať gradient, teda 13 002 parciálnych derivácií (pri GPT-3 je ich 175 miliárd). Na to slúži reťazové pravidlo, ktoré prichádza teraz, a algoritmus backpropagation z ďalšej prednášky.
Reťazové pravidlo: štuchnutia sa násobia
V sieti nezávisí chyba od váhy priamo. Váha ovplyvní vážený súčet, ten ovplyvní aktiváciu neurónu, aktivácia ovplyvní ďalší neurón a až ten chybu. Je to reťaz. Ako zistiť, ako veľmi chyba závisí od váhy na začiatku reťaze?
Predstav si ozubené kolesá. Prvé koleso otáča druhé trikrát rýchlejšie, druhé otáča tretie dvakrát rýchlejšie. O koľko rýchlejšie sa točí tretie koleso oproti prvému? 3 · 2 = 6-krát. Presne tak funguje reťazové pravidlo: lokálne sklony jednotlivých článkov sa násobia.
Postavíme si najmenšiu možnú „hlbokú“ sieť: dva neuróny za sebou, každý s jednou váhou a sigmoidom. Nech je to hračka zo zmrzlinového stánku: vstup x = 2 kopčeky, výstup má povedať, či bude zákazník spokojný, a cieľ je y = 1 (bol). Výpočet ide takto:
Ako veľmi chyba závisí od prvej váhy? Vynásobíme sklony všetkých článkov reťaze:
Reťaz dvoch neurónov: násob sklony a over to štuchnutím
Posúvaj váhy w₁ a w₂. V reťazi vidíš hodnotu každého článku a medzi nimi lokálne derivácie. Ich súčin je ∂C/∂w₁. Tlačidlo „Štuchni“ zmení w₁ o 0,01 a porovná skutočnú zmenu chyby s predpoveďou.
Úloha: stlač „Štuchni w₁“ a porovnaj dve čísla. Takmer sa zhodujú: zmena chyby ≈ derivácia × 0,01. Potom niekoľkokrát stlač „Krok učenia“ a sleduj, ako chyba klesá. Nakoniec nastav w₁ = 4: sigmoid je nasýtený, a₁(1−a₁) je skoro nula a celý súčin zhasne. Prvá váha sa vtedy skoro neučí.
Posledný bod z úlohy je dôležitý. Keď je ktorýkoľvek článok reťaze skoro nulový, je skoro nulový celý súčin. Pri hlbokých sieťach so sigmoidmi sa tak sklon smerom k prvým vrstvám stráca. Hovorí sa tomu miznúci gradient a je to jeden z dôvodov, prečo dnešné siete používajú radšej ReLU.
Rovnako ako v sieti na číslice
V skutočnej sieti má každý neurón veľa vstupov a bias: z = w·a + … + b. Reťaz sa vetví, ale pravidlo sa nemení. Derivácia podľa biasu je ešte jednoduchšia, lebo ∂z/∂b = 1. Toto je presne výpočet z videa 3Blue1Brown Backpropagation calculus.
Stochastic gradient descent: rýchlo a trochu opito
Chyba je priemer cez všetky trénovacie príklady. Aby sme spravili jeden poctivý krok, museli by sme prejsť všetkých 60 000 obrázkov číslic. Pri jazykových modeloch sú to stovky miliárd slov. To je príliš pomalé.
Trik: dáta náhodne zamiešame a rozdelíme na malé kôpky, napríklad po 100 príkladov. Kôpka sa volá mini-batch. Gradient vypočítame len z jedného mini-batchu a hneď spravíme krok. Je to len odhad skutočného gradientu, trochu nepresný, no stojí zlomok výpočtu. Tomuto postupu sa hovorí stochastic gradient descent (SGD, „stochastický“ znamená náhodný). Keď takto prejdeme všetky dáta raz, uplynula jedna epocha.
3Blue1Brown to prirovnáva k rozdielu medzi opatrným pánom, ktorý pred každým krokom presne premeria svah, a opitým pánom, ktorý sa potáca, ale krokov spraví oveľa viac. Dolu kopcom je opitý pán skoro vždy skôr.
Preteky: celé dáta proti mini-batchom
Model cena = w·x + b sa učí na 12 nákupoch. Tyrkysový bežec počíta gradient vždy zo všetkých 12 príkladov. Oranžový ho odhadne z mini-batchu a hneď kráča. Oba spracujú rovnaký počet príkladov. Kliknutím do mapy zmeníš štart.
Úloha: spusti preteky s mini-batchom 1 a pozri, kto je skôr pri zelenom krížiku. Oranžová stopa je kľukatá, ale pri rovnakej práci je ďalej. Potom skús mini-batch 6. Stopa je pokojnejšia, ale krokov je menej.
Z nej sa počíta jeden odhad gradientu a robí jeden krok. Typicky desiatky až tisíce príkladov.
Sieť na číslice sa trénuje desiatky epoch. Veľké jazykové modely často vidia väčšinu dát len raz.
Najväčší GPT-3 sa učil na mini-batchoch s 3,2 miliónmi tokenov a s learning rate 0,00006 (Brown a kol., 2020).
Mini skúška
Osem otázok, niektoré sú na počítanie. Kalkulačka je dovolená, papier odporúčaný. Nič sa nikam neposiela.
1. Model cena = 2 · x. Dáta: 1 kopček za 2,50 € a 2 kopčeky za 4,00 €. Aká je chyba C (priemer štvorcov odchýlok)?
Odhady sú 2 a 4. Odchýlky −0,5 a 0. Štvorce 0,25 a 0. Priemer (0,25 + 0) / 2 = 0,125. Chyba nikdy nie je záporná, lebo štvorce sú vždy kladné alebo nulové.
2. Aký je sklon (derivácia) funkcie f(x) = x² v bode x = 3?
Pravidlo: derivácia x² je 2·x, teda 2 · 3 = 6. Ak štuchneš x z 3 na 3,01, f sa zmení z 9 na 9,0601, teda asi o 0,06 = 6 × 0,01.
3. Parameter w = 3, sklon chyby C′(w) = 4, learning rate η = 0,1. Aké bude w po jednom kroku gradient descentu?
w ← w − η · C′(w) = 3 − 0,1 · 4 = 2,6. Sklon je kladný, takže chyba rastie doprava, a preto ideme doľava.
4. Sklon chyby podľa váhy vyšiel záporný. Čo urobí gradient descent?
Záporný sklon znamená, že keď váhu zväčšíš, chyba klesne. Krok −η · (záporné číslo) je kladný, takže váha rastie.
5. Gradient chyby pre dva parametre je (∂C/∂w, ∂C/∂b) = (−0,2; 5). Čo z toho vyčítaš?
Veľkosť 5 oproti 0,2 znamená, že na b záleží 25-krát viac. Kladné znamienko znamená, že chyba s b rastie, takže b treba zmenšiť. Krok −η · ∇C posunie w trochu hore a b výrazne dole.
6. Neurón so sigmoidom má aktiváciu a = σ(z) = 0,8. Aký je sklon ∂a/∂z?
σ′ = σ · (1 − σ) = 0,8 · 0,2 = 0,16. Najväčší možný sklon sigmoidu je 0,25 pri σ = 0,5.
7. V reťazi w → z → a → C sú lokálne sklony ∂z/∂w = 3, ∂a/∂z = 0,5 a ∂C/∂a = −2. Koľko je ∂C/∂w?
Reťazové pravidlo: sklony sa násobia. 3 · 0,5 · (−2) = −3. Štuchnutie w o 0,01 teda zníži chybu asi o 0,03.
8. Prečo sa pri trénovaní používajú mini-batche?
Gradient z mini-batchu je len nepresný odhad, ale stojí zlomok výpočtu. Za ten istý čas spravíš oveľa viac krokov a celkovo sa dostaneš k dobrému riešeniu rýchlejšie. Nič však nezaručuje najhlbšie minimum.
Čo si odnášaš
- Chyba (cost) je jedno číslo: priemer štvorcov odchýlok cez všetky príklady. Je to funkcia parametrov siete.
- Derivácia je sklon: o koľko sa zmení výstup, keď trochu pohneš vstupom. Znamienko hovorí smer, veľkosť citlivosť.
- Gradient descent opakuje krok w ← w − η · sklon. Learning rate η nesmie byť ani príliš malý, ani príliš veľký.
- Gradient je zoznam parciálnych derivácií podľa všetkých parametrov. Ukazuje do kopca, preto ideme opačne. Jeho čísla hovoria, na ktorom gombíku najviac záleží.
- Reťazové pravidlo: keď sa výpočet skladá z článkov, ich sklony sa násobia.
- Mini-batche (SGD) robia veľa lacných, trochu nepresných krokov namiesto málo drahých.
Teraz máš v ruke všetky nástroje. Ostáva vyriešiť, ako efektívne vypočítať 13 002 parciálnych derivácií naraz, keď je sieť reťaz s tisíckami vetiev. Odpoveďou je backpropagation: reťazové pravidlo použité šikovne odzadu dopredu, tak aby sa nič nepočítalo dvakrát. To je téma ďalšej prednášky.
Druhá prednáška je za tebou
Zdroje
- 3Blue1Brown: Gradient descent, how neural networks learn (video, 2017).
- 3Blue1Brown: Backpropagation calculus (video, 2017).
- D. E. Rumelhart, G. E. Hinton, R. J. Williams: Learning representations by back-propagating errors. Nature, 1986.
- T. B. Brown a kol.: Language Models are Few-Shot Learners (GPT-3), 2020. Veľkosť batchu a learning rate v tabuľke 2.1.
- A.-L. Cauchy: Méthode générale pour la résolution des systèmes d'équations simultanées. Comptes rendus, 1847.