Základy AI

Co je zpětná propagace?

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Backpropagation je algoritmus používaný k výpočtu, jak se mění ztráta neuronové sítě vzhledem k jejím trénovatelným parametrům. Aplikuje řetězové pravidlo kalkulu zpětně přes operace zaznamenané během předního průchodu.

Backpropagation vypočítává gradienty; sama o sobě neurčuje aktualizaci. Optimalizér, jako je stochastický gradientní sestup nebo AdamW, používá tyto gradienty ke změně vah, biasů a dalších trénovatelných parametrů.

Klíčové poznatky

  • Přední průchod vytváří mezivýsledky a generuje predikci.
  • Funkce ztráty převádí predikci a cíl na skalární tréninkový cíl.
  • Backpropagation používá lokální derivace a řetězové pravidlo k efektivnímu výpočtu gradientů parametrů.
  • Moderní frameworky implementují reverzní režim automatické diferenciace nad výpočetním grafem.
Computational graph showing a forward pass from inputs and trainable weights to loss, followed by backward gradient arrows using the chain rule
Backpropagation znovu využívá lokální derivace k přenosu informace ze ztráty zpět ke všem přispívajícím parametrům.

Přední průchod

Uvažujme jednoduchou jednotku:

z = wx + b
ŷ = activation(z)

Vstup je x, zatímco w a b jsou trénovatelné parametry váhy a biasu. Biasy se během trénování obvykle mění stejně jako váhy. Síť kombinuje mnoho takových operací, plus normalizaci, pozornost, konvoluce, reziduální spojení nebo jiné diferencovatelné bloky.

Přední průchod vyhodnocuje tyto operace a generuje predikci. Ztráta, například křížová entropie nebo střední kvadratická chyba, měří cíl. Nejvhodnější ztráta závisí na úloze a interpretaci výstupu.

Řetězové pravidlo

Pokud ztráta L závisí na mezihodnotě z a z závisí na parametru w, řetězové pravidlo dává:

∂L/∂w = (∂L/∂z) × (∂z/∂w)

Hluboká síť obsahuje mnoho cest. Backpropagation prochází výpočetní graf reverzně a akumuluje příspěvky, když hodnota ovlivňuje ztrátu skrze více než jednu cestu. Výsledkem je gradient pro každý trénovatelný parametr, který se podílel na předním výpočtu.

Malý číselný příklad

Předpokládejme ŷ = wx + b, kde x = 2, w = 3 a b = 1. Predikce je 7. Pokud je cíl 5 a ztráta je L = ½(ŷ - y)², pak:

  • ∂L/∂ŷ = ŷ - y = 2
  • ∂ŷ/∂w = x = 2
  • ∂L/∂w = 2 × 2 = 4
  • ∂L/∂b = 2 × 1 = 2

Optimalizér může poté posunout w a b ve směru záporného gradientu. Tento vzorec je specifický pro zvolenou lineární jednotku a čtvercovou chybu; univerzální pravidlo zpětné propagace je řetězové pravidlo aplikované na skutečný graf, nikoli jedna pevná „chybová“ rovnice.

Zpětná propagace vs. gradientní sestup

Gradient descent je optimalizační metoda. Backpropagation poskytuje potřebné gradienty. Tréninkový krok obvykle následuje:

  1. Vymazat nebo resetovat uložené gradienty.
  2. Spustit přední průchod.
  3. Vypočítat ztrátu.
  4. Spustit zpětný průchod.
  5. Aplikovat aktualizaci optimalizéru.

Oddělení těchto konceptů usnadňuje pochopení momenta, AdamW, akumulace gradientů a tréninku s míchanou přesností.

Automatická diferenciace

Frameworky jako PyTorch zaznamenávají operace a během předního průchodu vytvářejí graf. Reverzní režim automatické diferenciace pak efektivně vypočítává vektor‑Jacobiho součiny od výstupů zpět k parametrům. To je obecnější než ruční kódování derivací pro pevnou síť a je základem moderních deep learning frameworků.

Některé operace nejsou diferencovatelné nebo mají nestabilní derivace. Frameworky v určitých případech definují subgradienty nebo dokumentované konvence, avšak uživatelé musí stále rozumět odpojeným tenzorům, operacím prováděným na místě a číselné přesnosti.

Mizící a explodující gradienty

Opakované násobení přes mnoho vrstev nebo časových kroků může způsobit, že gradienty jsou extrémně malé nebo velké. Mizící gradienty zpomalují učení v raných vrstvách; explodující gradienty destabilizují aktualizace. Aktivace z rodiny ReLU, opatrná inicializace, reziduální spojení, normalizace, řízená rekurze a ořezávání gradientů pomáhají, ale žádná z nich není univerzálním řešením.

Kontrola gradientů

Kontrola gradientů pomocí konečných diferencí porovnává analytický nebo automatický gradient s numerickým odhadem. Je pomalá, ale užitečná při ladění vlastních operací. Sledování norem gradientů a detekce NaN či nekonečných hodnot může odhalit nestabilitu během tréninku.

Řetězové pravidlo v rámci výpočetního grafu

Backpropagation efektivně vypočítává gradienty skalární ztráty vzhledem ke každému diferencovatelnému parametru. Přední průchod zaznamenává mezihodnoty ve výpočetním grafu. Začínaje od ztráty, reverzní režim automatické diferenciace aplikuje řetězové pravidlo, násobí lokální derivace a akumuluje příspěvky tam, kde se cesty setkávají. Pro vrstvu y=f(x,w) se upstreamová citlivost na y kombinuje s parciálními derivacemi a vytváří citlivosti pro x a w. Backpropagation vypočítává gradienty; optimalizér rozhoduje, jak se parametry mění.

Jednoduchá afinní vrstva produkuje y=Wx+b. Gradient pro W je vnější součin upstreamového gradientu a vstupu, gradient pro b sčítá upstreamové hodnoty a gradient vstupu se násobí transponovanou maticí vah. Aktivace přidávají elementwise derivace. Konvoluce, normalizace, pozornost a opakované použití v rekurenci následují stejný princip grafu, ale vyžadují správné tvary tenzorů, broadcastování, maskování a sdílení parametrů. Frameworky uvolňují uložené aktivace po zpětném průchodu, pokud nejsou zachovány, takže paměť často roste s velikostí batch, hloubkou a délkou sekvence.

Selhání gradientů, verifikace a inženýrská praxe

Součiny mnoha derivací mohou mizet nebo explodovat. Aktivace podobné ReLU, opatrná inicializace, normalizace, reziduální spojení, gating a ořezávání gradientů řeší různé mechanismy. Nasycené aktivace a nediferencovatelné operace mohou blokovat užitečné signály; oříznutá zpětná propagace omezuje historii sekvence; smíšená přesnost může podtečovat bez škálování ztráty. Explodující gradienty jsou symptom, takže ořezávání by mělo doprovázet zkoumání učící rychlosti, dat, architektury a numerických chyb, místo aby je skrývalo.

Ověřujte vlastní operace pomocí kontrol gradientů metodou konečných diferencí na malých dvojité přesnosti vstupů, vyhýbající se nediferencovatelným bodům. Prohlížejte normy gradientů, NaN hodnoty, neaktivní parametry a zda gradienty dosahují očekávaných modulů. Úmyslně vymažte akumulované gradienty a rozlišujte chování během tréninku a evaluace pro dropout a normalizaci. Checkpointing přepočítává aktivace pro úsporu paměti; distribuovaný trénink musí gradienty agregovat konzistentně. Klesající tréninková ztráta ukazuje, že existuje optimalizační cesta, ne že jsou gradienty konceptuálně správné, data jsou bez úniku nebo že model generalizuje.

Praktický příklad: ověření vlastní neuronové vrstvy

Inženýr implementuje diferencovatelnou spektrální vrstvu pro audio síť. Malý test v dvojité přesnosti porovnává automatické gradienty s centrálními konečnými diferencemi napříč vstupy a parametry, s výjimkou bodů, kde je operace úmyslně nediferencovatelná. Tvar, broadcastování, padding a konverze komplex‑na‑reálný dostávají samostatné případy. Test ověřuje akumulované gradienty, když je parametr znovu použit, a potvrzuje, že maskované audio rámce nevytvářejí gradient.

Během tréninku dashboardy sledují normy gradientů a aktivací, NaN hodnoty, neaktivní parametry a škálování ztráty. Úmyslně poškozený batch potvrzuje, že validace zachytí nefinální výstup před aktualizací optimalizéru. Smíšená přesnost a exportované implementace jsou porovnávány s referencí. Testy obnovy checkpointu zahrnují stav optimalizéru a náhodné pořadí. Vrstva není přijata jen proto, že celková ztráta klesá; jednotkové gradienty, numerická stabilita a downstream generalizace musí poskytovat konzistentní důkazy.

Důkazy o implementaci a provozní připravenost

Rozhodnutí o nasazení vyžaduje více než úspěšnou demonstraci. Definujte zamýšlené uživatele, provozní prostředí, vstupy, výstupy, závislosti, vlastníka a důsledky každého důležitého selhání. Stanovte reprodukovatelnou základní linii a verzovanou evaluační sadu před laděním. Testujte běžné případy, okrajové podmínky, poškozené nebo chybějící vstupy, posun distribuce, výpadek závislosti, zneužití a skupiny či prostředí, která jsou pravděpodobně nedostatečně obsloužena. Měřte kvalitu úlohy spolu s kalibrací či nejistotou, latencí, propustností, náklady na zdroje, přístupností, soukromím a bezpečností. Zaznamenejte každou transformaci a prahovou hodnotu, aby nezávislý recenzent mohl výsledek reprodukovat a odlišit důkazy od atraktivního prototypu.

Před nasazením přiřaďte pravomoci pro vydání, výjimky, změny, rollback a ukončení. Použijte postupné nasazení, zachovejte bezpečnou záložní možnost a ověřte monitorování s úmyslně vloženými selháními. Provozní telemetrie by měla odhalovat kvalitu vstupů, chování výstupů, verzi modelu či pravidla, stav závislostí, lidské zásahy a potvrzené výsledky, aniž by sbírala zbytečná citlivá data. Definujte prahové hodnoty upozornění a odpovědného za reakci, poté po nasazení přezkoumejte reálné důkazy místo předpokladu, že offline výkon přetrvá. Přehodnoťte vždy, když se změní zdroje dat, uživatelé, modely, dodavatelé, zásady, hardware nebo cíle. Udržovaný systém také potřebuje dokumentované postupy obnovy, učení z incidentů, mazání a uchovávání a jasný bod, kdy by měl být deaktivován nebo nahrazen.

Často kladené otázky

Zpětná propagace aktualizuje váhy?

Backpropagation vypočítává gradienty. Optimalizér provádí aktualizaci pomocí těchto gradientů, své učící rychlosti a případně stavů jako momentum nebo adaptivních momentů.

Je zpětná propagace biologicky realistická?

Standardní zpětná propagace je inženýrský algoritmus a není považována za podrobný model učení v biologických mozcích. Historická analogie s neurony by neměla být považována za biologickou ekvivalenci.

Primární reference

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.