Backpropagation

.
Zpětné šíření je běžná metoda výcviku umělých neuronových sítí tak, aby se minimalizovala objektivní funkce. Arthur E. Bryson a Yu-Chi Ho ji v roce 1969 popsali jako vícestupňovou dynamickou metodu optimalizace systému. Až v roce 1974 a později, když byla aplikována v kontextu neuronových sítí a díky práci Paula Werbose, Davida E. Rumelharta, Geoffreyho E. Hintona a Ronalda J. Williamse, získala uznání a vedla k „renesanci“ v oblasti výzkumu umělých neuronových sítí.

Je to metoda učení pod dohledem a je zobecněním pravidla delta. Vyžaduje datovou sadu požadovaného výstupu pro mnoho vstupů, tvořících tréninkovou sadu. Nejužitečnější je pro feed-forward sítě (sítě, které nemají zpětnou vazbu, nebo jednoduše, které nemají spojení, které se smyčkou). Termín je zkratkou pro „zpětné šíření chyb“. Backpropagation vyžaduje, aby aktivační funkce používaná umělými neurony (nebo „uzly“) byla diferencovatelná.

Každé rozmnožování zahrnuje tyto kroky:

Pro každou hmotnost-synapsi postupujte podle následujících kroků:

Tento poměr ovlivňuje rychlost a kvalitu učení; říká se mu rychlost učení. Znak gradientu váhy označuje, kde se chyba zvětšuje, proto musí být váha aktualizována v opačném směru.

Opakujte fáze 1 a 2, dokud není výkon sítě uspokojivý.

Na výběr jsou dva způsoby učení: Jedním je on-line (přírůstkové) učení a druhým dávkové učení. V on-line (přírůstkovém) učení následuje po každém šíření ihned aktualizace váhy. V dávkovém učení dochází k mnoha šířením dříve, než dojde k aktualizaci váhy. Dávkové učení vyžaduje větší kapacitu paměti, ale on-line učení vyžaduje více aktualizací.

Skutečný algoritmus pro třívrstvou síť (pouze jedna skrytá vrstva):

Jak název algoritmu napovídá, chyby se šíří zpětně z výstupních uzlů do vnitřních uzlů. Technicky řečeno, backpropagation vypočítává gradient chyby sítě vzhledem k modifikovatelným vahám sítě. Tento gradient se téměř vždy používá v jednoduchém stochastickém gradientním sestupovém algoritmu k nalezení vah, které minimalizují chybu. Často se termín „backpropagation“ používá v obecnějším smyslu, k označení celé procedury zahrnující jak výpočet gradientu, tak jeho použití při stochastickém gradientním sestupu. Backpropagation obvykle umožňuje rychlou konvergenci na vyhovujících lokálních minimech chyby v druhu sítí, ke kterým se hodí.

Sítě zpětného šíření jsou nutně vícevrstvé perceptrony (obvykle s jedním vstupem, jedním skrytým a jednou výstupní vrstvou). Aby mohla skrytá vrstva sloužit nějaké užitečné funkci, musí mít vícevrstvé sítě nelineární aktivační funkce pro vícevrstvé vrstvy: vícevrstvá síť používající pouze lineární aktivační funkce je ekvivalentní k nějaké jednovrstvé lineární síti. Mezi nelineární aktivační funkce, které se běžně používají, patří logistická funkce, funkce softmax a gaussovská funkce.

Algoritmus zpětného šíření pro výpočet gradientu byl mnohokrát znovu objeven a je speciálním případem obecnější techniky zvané automatická diferenciace v režimu zpětné akumulace.

Je také úzce spjat s Gaussovým-Newtonovým algoritmem a je také součástí pokračujícího výzkumu v oblasti neuronového backpropagace.

Multithreaded backpropagation

Backpropagation je iterační proces, jehož dokončení může často trvat mnoho času. Při použití vícejádrových počítačů mohou vícevláknové techniky výrazně snížit dobu, po kterou se backpropagation konverguje. Pokud se používá dávkování, je relativně jednoduché přizpůsobit backpropagační algoritmus tak, aby pracoval vícevláknovým způsobem.

Procvičovací data jsou rozdělena do stejně velkých dávek pro každé z vláken. Každé vlákno provádí dopředné a zpětné šíření. Váhové a prahové delty jsou sečteny pro každé z vláken. Na konci každé iterace se musí všechna vlákna krátce pozastavit, aby byly váhové a prahové delty sečteny a aplikovány na neuronovou síť. Tento proces pokračuje pro každou iteraci. Tento vícevláknový přístup k zpětnému šíření používá Encog Neural Network Framework.