Zpětné šíření v neuronové síti: algoritmus strojového učení a příklad
⚡ Chytré shrnutí
Zpětné šíření algoritmu (backpropagation) je základním trénovacím algoritmem neuronové sítě, který dolaďuje každou váhu z chyby naměřené v předchozí epoše tak, aby model lépe zobecňoval na neviditelná data, jednu vrstvu po druhé.
Co je umělá neuronová síť?
Umělá neuronová síť je skupina propojených I/O jednotek, kde každé spojení nese váhu. Pomáhá vám vytvářet prediktivní modely z velkých databází a návrh si vypůjčuje slovní zásobu z lidského nervového systému. Sítě tohoto druhu podporují porozumění obrazu, strojové učení, počítačovou řeč a mnoho dalších úkolů rozpoznávání vzorů.
Zpětné šíření je algoritmus, který rozhoduje o tom, jaké by měly být tyto váhy, takže je nejlepší číst tyto dva pojmy společně.
Co je Backpropagation?
Zpětné šíření (backpropagation) je podstatou trénování neuronové sítě. Je to metoda jemného doladění vah neuronové sítě na základě chybovosti získané v předchozí epoše (tj. iteraci). Správné doladění vah umožňuje snížit chybovost a zvýšit spolehlivost modelu zvýšením jeho zobecnění.
Backpropagation v neuronové síti je zkratka pro „zpětné šíření chyb“. Jde o standardní metodu trénování umělých neuronových sítí. Tato metoda pomáhá vypočítat gradient ztrátové funkce vzhledem ke všem vahám v síti.
Dva pojmy se často zaměňují. Pouze zpětné šíření. počítá gradient; optimalizátor, jako je gradientní sestup, je to, co vlastně změny váhy pomocí daného gradientu. Téměř každý moderní framework provádí zpětné šíření automaticky pomocí svého enginu pro automatické porovnávání.
Jak funguje algoritmus zpětné propagace
Algoritmus zpětného šíření v neuronové síti počítá gradient ztrátové funkce pro jednu váhu pomocí pravidla řetězce. Efektivně počítá jednu vrstvu najednou, na rozdíl od naivního přímého výpočtu. Počítá gradient, ale nedefinuje, jak se gradient používá. Zobecňuje výpočet v pravidle delta.
Efektivní je řetězové pravidlo. Vliv jedné rané váhy na konečnou ztrátu je součinem lokálních derivací podél cesty k výstupu, takže algoritmus ukládá do mezipaměti mezivýsledek každé vrstvy na cestě zpět a znovu jej používá pro každou váhu ve vrstvě níže, místo aby přepočítával celou síť pro každou váhu.
Pro pochopení zvažte následující příklad diagramu neuronové sítě se zpětným šířením. Obrázek tracjeden plný průchod: vstupy vstupují zleva, aktivace postupují skrytou vrstvou k výstupu a naměřená chyba se poté vrací zpět po stejných spojích, aby se opravily váhy.
- Vstupy X přicházejí přes předem připojenou cestu
- Vstup je modelován pomocí reálných vah W. Váhy jsou obvykle vybírány náhodně.
- Vypočítejte výstup pro každý neuron ze vstupní vrstvy, přes skryté vrstvy až po výstupní vrstvu.
- Vypočítejte chybu ve výstupech:
ErrorB= Actual Output – Desired Output
- Přejděte zpět z výstupní vrstvy do skryté vrstvy a upravte váhy tak, aby se chyba snížila.
- Postup opakujte, dokud nedosáhnete požadovaného výstupu.
Mnoho učebnic uvádí stejné množství jako požadované mínus skutečnéObě konvence fungují, protože znaménko je absorbováno, když optimalizační subtracts gradient, za předpokladu, že v celé síti dodržíte jednu konvenci.
V praxi je chyba zřídka holým subtracZtrátová funkce, jako je střední kvadratická chyba pro regresi nebo křížová entropie pro klasifikaci, převádí rozdíly na výstup na jedno číslo, jehož zpětné šíření gradientu skutečně vypočítá.
Proč potřebujeme backpropagation?
Nejvýraznější výhody Backpropagation jsou:
- Backpropagation je rychlý, jednoduchý a snadno programovatelný
- Nepřidává žádné nové vlastní parametry; ladění, které provádíte, patří optimalizátoru a síti, zejména rychlosti učení a počtu vstupů.
- Je to flexibilní metoda, protože nevyžaduje předchozí znalosti o síti
- Je to standardní metoda, která obecně funguje dobře
- Nepotřebuje žádnou zvláštní zmínku o vlastnostech funkce, která se má naučit.
Jednoduše řečeno, bez efektivního způsobu získávání přechodů by bylo trénování čehokoli hlubšího než jedné vrstvy výpočetně nepraktické.
Co je to Feed Forward Network?
Dopředná neuronová síť je umělá neuronová síť, kde uzly nikdy netvoří cyklus. Tento druh neuronové sítě má vstupní vrstvu, skryté vrstvy a výstupní vrstvu. Je to první a nejjednodušší typ umělé neuronové sítě.
Toto rozlišení je zde důležité, protože dopředný průchod zpětného šíření je přesně dopředným průchodem; pouze korekce chyb probíhá v opačném směru.
Typy Backpropagation Networks
Dva typy backpropagation sítí jsou:
- Statické zpětné šíření
- Opakované zpětné šíření
Statické zpětné šíření
Je to jeden druh sítě se zpětným šířením, která vytváří mapuping statického vstupu pro statický výstup. Je užitečný pro řešení problémů statické klasifikace, jako je optické rozpoznávání znaků.
Opakované zpětné šíření
Rekurentní zpětné šíření v data mining se posouvá dopředu, dokud není dosaženo pevné hodnoty. Poté se vypočítá chyba a šíří se zpět.
Hlavní rozdíl mezi těmito dvěma metodami je v tom, že mapaping je rychlý ve statickém zpětném šíření, zatímco je nestatický v rekurentním zpětném šíření. Níže uvedená tabulka srovnává tyto dva příklady vedle sebe.
| Kritérium | Statické zpětné šíření | Rekurentní zpětné šíření |
|---|---|---|
| Mapaping | Statický vstup na statický výstup | Nestatické; síť se ustálí před použitím chyby |
| Rychlost | Rychlý, jeden průchod na vzorek | Pomalejší, aktivace se opakuje, dokud se nestabilizuje |
| Tvar sítě | Dopředná vazba, žádné cykly | Obsahuje zpětnovazební spojení |
| Typické použití | Optické rozpoznávání znaků, klasifikace s pevnou velikostí | Problémy, jejichž výsledek závisí na ustáleném vnitřním stavu |
Historie Backpropagation
- V roce 1961 odvodili základní koncept spojitého zpětného šíření v kontextu teorie řízení J. Kelly, Henry Arthur a E. Bryson.
- V roce 1969 dali Bryson a Ho metodu vícestupňové dynamické optimalizace systému.
- V roce 1970 publikoval Seppo Linnainmaa reverzní režim automatického derivování, výpočetní metodu, na které je postavena moderní zpětná propagace.
- V roce 1974 Werbos uvedl možnost aplikace tohoto principu v umělé neuronové síti.
- V roce 1982 Hopfield přinesl svůj nápad neuronové sítě.
- V roce 1986, úsilím Davida E. Rumelharta, Geoffreyho E. Hintona, Ronalda J. Williamse, získala zpětná propagace uznání.
- V roce 1989 Yann LeCun a jeho kolegové natrénovali konvoluční síť se zpětným šířením pro čtení ručně psaných číslic, což bylo jedno z prvních rozsáhlých praktických využití.
- V roce 1993 byl Wan prvním člověkem, který vyhrál mezinárodní soutěž v rozpoznávání vzorů pomocí metody backpropagation.
- V roce 2006 Hintonova práce na hlubokých sítích víry a vrstveném předtrénování oživila zájem o trénování hlubokých sítí, který se zastavil kvůli mizejícím gradientům.
- V roce 2010 Xavier Glorot a Yoshua Bengio analyzovali, proč je obtížné trénovat hluboké sítě, a zavedli vylepšenou inicializaci vah, která spolu s aktivacemi ReLU učinila hluboké zpětné šíření praktickým.
- V roce 2012 vyhrála společnost AlexNet (Krizhevsky, Sutskever a Hinton) soutěž ImageNet s využitím zpětného šíření dat akcelerovaného GPU, což spustilo moderní boom hlubokého učení.
- V roce 2014 byl představen optimalizátor Adam (Kingma a Ba), který se rychle stal výchozí variantou gradientního sestupu používanou se zpětným šířením.
- V roce 2015 řešily dávkové normalizace a reziduální sítě (ResNet) problémy s gradientním tokem ve velmi hlubokých sítích, což umožnilo zpětné šíření přes stovky vrstev.
- V letech 2015–2017, TensorFlow a PyTorch učinil z automatické diferenciace standardní softwarovou funkci, takže gradienty již nebylo nutné odvozovat ručně.
- V roce 2017 byla představena architektura Transformer, která je trénována end-to-end metodou zpětného šíření kódu, stejně jako rozsáhlé jazykové modely na ní postavené.
- V roce 2019 Bengio, Hinton a LeCun obdrželi cenu ACM AM Turing Award za svou práci na hlubokých neuronových sítích.
- V roce 2020 článek „Backpropagation and the Brain“ (Lillicrap, Santoro, Marris, Akerman a Hinton) tvrdil, že mozek se může aproximovat k učení podobnému zpětnému šíření, čímž znovu otevřel debatu o biologické věrohodnosti.
- V roce 2022 Hinton navrhl algoritmus Forward-Forward, což je tréninková metody, která se zcela vyhýbá zpětnému průchodu.
- V roce 2024 získali John Hopfield a Geoffrey Hinton Nobelovu cenu za fyziku za základní objevy, které umožnily strojové učení s využitím umělých neuronových sítí.
- V roce 2025 byly metody forward-forward rozšířeny na konvoluční sítě, což ukazuje, že trénování bez zpětného šíření by mohlo fungovat na úkolech klasifikace obrázků.
- Od roku 2026 zůstává zpětné šíření standardním tréninkovým algoritmem pro prakticky všechny modely hlubokého učení, zatímco výzkum pokračuje v bezgradientových, lokálních a paralelních metodách učení, které snižují jeho paměťové a výpočetní náklady.
Klíčové body zpětné propagace
- Zjednodušuje strukturu sítě odstraněním vážených odkazů, které mají nejmenší vliv na trénovanou síť.
- Musíte prostudovat skupinu vstupních a aktivačních hodnot, abyste vyvinuli vztah mezi vstupními a skrytými vrstvami jednotek.
- Pomáhá posoudit dopad, který má daná vstupní proměnná na výstup sítě. Poznatky získané z této analýzy by měly být zastoupeny v pravidlech.
- Zpětné šíření je zvláště užitečné pro hluboké neuronové sítě pracující na projektech náchylných k chybám, jako je rozpoznávání obrazu nebo řeči.
- Zpětné šíření využívá pravidla řetězení a mocninného rozdělení, což mu umožňuje fungovat s libovolným počtem výstupů.
Nejlepší postup pro zpětné šíření
Zpětné šíření v neuronové síti lze vysvětlit pomocí analogie s „tkaničkou do boty“. Aktualizace váhy se chovají podobně jako napětí na tkaničce: příliš málo a nic nedrží pohromadě, příliš mnoho a něco praskne.
| Napětí krajky | Co to znamená během tréninku |
|---|---|
| Příliš malé napětí | Nedostatečné omezení a velmi volné – model se nehodí |
| Příliš mnoho napětí | Příliš mnoho omezení (přetrénování); příliš mnoho času (relativně pomalý proces); vyšší pravděpodobnost zlomení |
| Tahání za jednu tkaničku víc než za druhou | Nepohodlí (zkreslení) – jedna část sítě dominuje přizpůsobivosti |
Z analogie vyplývají dva praktické návyky: škálovat vstupy před trénováním tak, aby žádná funkce nepůsobila silněji než ostatní, a sledovat ztrátu validace, aby se napětí uvolnilo dříve, než dojde k přetrénování.
Nevýhody použití Backpropagation
- Skutečný výkon zpětného šíření na konkrétním problému závisí na vstupních datech.
- Algoritmus zpětného šíření při dolování dat může být poměrně citlivý na hlučná data
- V rámci mini-dávky by mělo být zpětné šíření implementováno s využitím maticového přístupu; looping zpracování jednoho příkladu najednou je výrazně pomalejší.
- V hlubokých sítích může opakované násobení malých derivací zmenšit gradienty směrem k nule, takže se nejranější vrstvy sotva učí – problém mizejícího gradientu popsaný v Google Havarijní kurz strojového učení.
Nic z toho nevylučuje danou metodu. Jsou to důvody, proč odborníci sahají po aktivacích ReLU, normalizaci a pečlivých harmonogramech rychlosti učení, když přecházejí z mělké sítě do... hluboké učení model.

