TakébackpropExpertní
Definice
Backpropagation je algoritmus, kterým neuronová síť zjistí, jak moc se má každá váha změnit. Spočítá chybu na výstupu a pomocí řetízkového pravidla ji postupně rozpočítá zpět přes všechny vrstvy až na vstup.
Jak to probíhá
Trénink má dvě fáze. V dopředném průchodu síť ze vstupu spočítá výstup a porovná ho se správnou odpovědí. Ve zpětném průchodu se spočítá, jak citlivá je výsledná chyba na každou jednotlivou váhu, a váhy se posunou opačným směrem.
Celé je to opakované použití řetízkového pravidla z diferenciálního počtu, jen aplikované na graf o milionech uzlů.
Proč to bylo přelomové
Bez backpropagation by se hluboké sítě nedaly trénovat v rozumném čase. Naivní výpočet vlivu každé váhy zvlášť by u sítě s miliardou parametrů znamenal miliardu průchodů. Backpropagation to zvládne v jednom.
Příklady z praxe
Rozpoznávání číslic
Síť dostane obrázek číslice a odpoví, že je to sedmička, i když jde o jedničku. Backpropagation spočítá, které váhy k té chybě přispěly nejvíc, a ty se upraví nejvýrazněji.
Časté omyly
- MýtusBackpropagation je způsob, jak se síť učí.
- Ve skutečnostiBackpropagation pouze spočítá gradient, tedy směr a velikost vlivu každé váhy na chybu. Samotnou změnu vah provádí optimalizátor, například stochastický gradientní sestup nebo Adam. Jsou to dva oddělené kroky.
Časté dotazy
- Potřebuji backpropagation implementovat sám?
- V praxi ne. Frameworky jako PyTorch nebo TensorFlow gradienty počítají automaticky pomocí automatické derivace. Rozumět principu se ale vyplatí, protože většina problémů při tréninku, typicky mizející nebo explodující gradienty, vychází právě z chování zpětného průchodu.
Zdroje
- Autograd mechanics(otevře se v novém okně)