Metoda zpětného šíření

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 15. července 2022; ověření vyžaduje 1 úpravu .

Metoda zpětného šíření je metoda  výpočtu gradientu, která se používá při aktualizaci vah vícevrstvého perceptronu . Metodu poprvé popsal v roce 1974 A. I. Galushkin [1] a také nezávisle a současně Paul J. Verbos [2] . Dále podstatně vyvinutý v roce 1986 Davidem I. Rumelhartem , J. E. Hintonem a Ronaldem J. Williamsem [3] a nezávisle a současně S.I. Bartsev a V.A. Okhonin (Krasnojarská skupina) [4] . toiterativní gradientový algoritmus , který se používá k minimalizaci chyby vícevrstvého perceptronu a získání požadovaného výstupu.

Hlavní myšlenkou této metody je šíření chybových signálů z výstupů sítě na její vstupy v opačném směru, než je dopředné šíření signálů v běžném provozu. Bartsev a Okhonin navrhli zobecněnou metodu („princip duality“) použitelnou pro širší třídu systémů, včetně systémů se zpožděním , distribuovaných systémů atd. [5]

Aby bylo možné použít metodu zpětného šíření chyb, musí být přenosová funkce neuronů diferencovatelná . Metoda je variací klasické metody gradientního klesání .

Sigmoidální aktivační funkce

Nejčastěji se jako aktivační funkce používají následující typy sigmoidu :

Fermiho funkce (exponenciální sigmoid):

Racionální sigmoid (při degeneraci do tzv. prahové aktivační funkce):

Hyperbolická tečna:

,

kde  je výstup sčítačky neuronů,  je libovolná konstanta.

Nejmenší množství času procesoru ve srovnání s jinými sigmoidami vyžaduje výpočet racionálního sigmoidu. K výpočtu hyperbolické tečny je zapotřebí nejvíce cyklů procesoru. Ve srovnání s prahovými aktivačními funkcemi jsou sigmoidy počítány velmi pomalu. Pokud po sečtení prahové funkce můžete okamžitě začít porovnávat s určitou hodnotou (prahovou hodnotou), pak v případě aktivační funkce sigmatu musíte sigmoid vypočítat (v nejlepším případě strávit čas třemi operacemi: modul, sčítání a dělení) a teprve poté porovnat s prahovou hodnotou (například nulou). Pokud předpokládáme, že všechny nejjednodušší operace vypočítá procesor přibližně za stejnou dobu, pak bude činnost funkce aktivace sigmoidea po sečtení (která zabere stejnou dobu) 4x pomalejší než funkce prahové aktivace.

Funkce vyhodnocení sítě

V těch případech, kdy je možné hodnotit výkon sítě, lze trénování neuronových sítí reprezentovat jako optimalizační problém. Hodnotit – znamená kvantifikovat, zda síť funguje dobře nebo špatně při plnění úkolů, které jsou jí přiděleny. K tomu je vytvořena vyhodnocovací funkce. Zpravidla explicitně závisí na výstupních signálech sítě a implicitně (prostřednictvím provozu) na všech jejích parametrech. Nejjednodušším a nejběžnějším příkladem odhadu je součet druhých mocnin vzdáleností od výstupních signálů sítě k jejich požadovaným hodnotám:

,

kde  je požadovaná hodnota výstupního signálu.

Metoda nejmenších čtverců není vždy nejlepším odhadem. Pečlivý návrh vyhodnocovací funkce umožňuje řádově zvýšit efektivitu trénování sítě a také získat další informace - "úroveň spolehlivosti" sítě v dané odpovědi [6] .

Popis algoritmu

Algoritmus zpětného šíření je aplikován na vícevrstvý perceptron . Síť má mnoho vstupů , mnoho výstupů a výstupů a mnoho vnitřních uzlů. Přečíslujme všechny uzly (včetně vstupů a výstupů) čísly od 1 do N (přes číslování, bez ohledu na topologii vrstev). Označme závažím stojícím na hraně spojující i -tý a j -tý uzel a  - výstupem i -tého uzlu. Pokud známe trénovací příklad (správné síťové odezvy , ), pak chybová funkce získaná metodou nejmenších čtverců vypadá takto:

Jak upravit váhy? Zavedeme stochastický gradient sestup , tedy po každém tréninkovém příkladu upravíme závaží a tím se "pohybujeme" ve vícerozměrném prostoru závaží. Abychom se "dostali" na minimální chybu, musíme se "posunout" ve směru opačném k gradientu , to znamená, že na základě každé skupiny správných odpovědí ke každé váze přičteme

,

kde  je multiplikátor, který udává rychlost "pohybu".

Derivát se vypočítá následovně. Nechť nejprve vstoupí váha, která nás zajímá, do neuronu poslední úrovně. Za prvé, všimněte si, že to ovlivňuje výstup sítě pouze jako součást sum , kde součet přebírá vstupy j -tého uzlu. Proto

Podobně ovlivňuje celkovou chybu pouze v rámci výstupu j -tého uzlu (připomeňme, že se jedná o výstup celé sítě). Proto

kde  je odpovídající sigmoid, v tomto případě exponenciální

Pokud j -tý uzel není na poslední úrovni, pak má výstupy; označme je Děti( j ). V tomto případě

,

a

.

Ale  - to je přesně stejná oprava, ale vypočítaná pro uzel další úrovně. Budeme ho označovat skrz  - od toho se liší nepřítomností faktoru . Protože jsme se naučili vypočítat korekci pro uzly poslední úrovně a vyjádřit opravu pro uzel nižší úrovně pomocí korekcí vyšší úrovně, můžeme již napsat algoritmus. Právě kvůli této vlastnosti výpočtu korekcí se tento algoritmus nazývá algoritmus zpětného šíření . Krátké shrnutí provedené práce:

,

kde je totéž ve vzorci pro .

Výsledný algoritmus je uveden níže. Na vstupu algoritmu je kromě zadaných parametrů nutné předložit také strukturu sítě v nějakém formátu. V praxi velmi dobré výsledky vykazují sítě vcelku jednoduché struktury, skládající se ze dvou úrovní neuronů - skryté úrovně (skryté jednotky) a výstupních neuronů (výstupních jednotek); každý síťový vstup je připojen ke všem skrytým neuronům a výsledek každého skrytého neuronu je přiváděn na vstup každého z výstupních neuronů. V tomto případě stačí jako vstup zadat počet neuronů skryté úrovně.

Algoritmus

Algoritmus: BackPropagation

  1. Inicializovat s malými náhodnými hodnotami,
  2. Opakujte NUMBER_OF_STEPSkrát: .Pro všechna d od 1 do m:
    1. Aplikujte na vstup sítě a spočítejte výstupy každého uzlu.
    2. Pro všechny .
    3. Pro každou úroveň l, počínaje předposledním: Pro každý uzel j úrovně l vypočítejte .
    4. Pro každou hranu sítě {i, j} . .
  3. Návratové hodnoty .

kde  je koeficient setrvačnosti pro vyhlazení ostrých skoků při pohybu po povrchu objektivní funkce

Příklad implementace


Režimy implementace

Existují dva způsoby, jak implementovat backpropagation:

  1. Stochastický gradient sestup _
  2. dávkový gradient klesání

Pro sestup dávkového gradientu se vypočítá ztrátová funkce pro všechny vzorky odebrané společně po skončení epochy a poté se váhy neuronů upraví podle metody zpětného šíření.

Stochastická metoda ihned po výpočtu síťového výkonu na jednom vzorku zavádí korekce váhových koeficientů.

Dávková metoda je rychlejší a stabilnější, ale má tendenci se zastavit a uvíznout v místních minimech. Proto, abyste se dostali z lokálních minim, musíte použít speciální techniky, například algoritmus simulace žíhání .

Stochastická metoda je pomalejší, ale protože neprovádí přesný gradientový sestup, ale zavádí „šum“ pomocí podvypočítaného gradientu, dokáže se dostat z lokálních minim a může vést k lepšímu výsledku.

Jako kompromis se také doporučuje používat mini-batch, kdy jsou požadované hmotnosti korigovány po zpracování více vzorků (mini-batch), tedy méně často než u stochastického sestupu, ale častěji než u vsádkového sestupu.

Matematická interpretace učení neuronové sítě

Při každé iteraci algoritmu zpětného šíření jsou váhy neuronové sítě upraveny, aby se zlepšilo řešení jednoho příkladu. V procesu učení se tak cyklicky řeší problémy optimalizace s jedním kritériem.

Trénink neuronové sítě se vyznačuje čtyřmi specifickými omezeními, která odlišují trénování neuronové sítě od obecných optimalizačních problémů: astronomický počet parametrů, potřeba vysokého paralelismu při trénování, multikriteria řešených úloh, potřeba najít poměrně širokou oblast v které se hodnoty všech minimalizovaných funkcí blíží minimu. Jinak lze problém učení obvykle formulovat jako problém minimalizace odhadu. Opatrnost předchozí věty („zpravidla“) je dána tím, že ve skutečnosti neznáme a nikdy nebudeme znát všechny možné úlohy pro neuronové sítě a možná někde v neznámu existují úlohy, které jsou neredukovatelné na minimalizaci. odhad.  Minimalizace odhadů je obtížný problém: existuje astronomicky mnoho parametrů ( od 100 do 1 000 000 pro standardní příklady implementované na PC ), adaptivní terén (graf odhadu jako funkce nastavitelných parametrů) je složitý a může obsahovat mnoho lokálních minim.

Nevýhody algoritmu

Navzdory četným úspěšným aplikacím backpropagation se nejedná o univerzální řešení. Většina potíží přináší nekonečně dlouhý proces učení. U složitých úkolů může trvat dny nebo dokonce týdny, než se síť natrénuje, nebo se nemusí učit vůbec. Důvod může být jeden z následujících.

Paralýza sítě

V procesu trénování sítě se hodnoty vah mohou v důsledku korekce stát velmi velkými hodnotami. To může vést k tomu, že všechny nebo většina neuronů bude pracovat při velmi vysokých hodnotách OUT v oblasti, kde je derivace stlačovací funkce velmi malá. Protože chyba odeslaná zpět v procesu učení je úměrná této derivaci, proces učení může téměř zamrznout. Teoreticky je tento problém špatně pochopen. Tomu se obvykle zabrání zmenšením velikosti kroku η, ale tím se prodlouží doba tréninku. K prevenci nebo zotavení z paralýzy byly použity různé heuristiky, ale zatím je lze považovat pouze za experimentální.

Místní minima

Zpětné šíření využívá variaci sestupu gradientu, to znamená, že klesá dolů po chybovém povrchu, přičemž se průběžně nastavují váhy směrem k minimu. Chybový povrch komplexní sítě je vysoce členitý a skládá se z kopců, údolí, záhybů a roklí ve vysokorozměrném prostoru. Síť může spadnout do místního minima (mělkého údolí), když je v blízkosti mnohem hlubší minimum. V místě lokálního minima vedou všechny směry nahoru a síť se z něj nedokáže dostat. Hlavním problémem při trénování neuronových sítí jsou právě metody, jak se dostat z lokálních minim: pokaždé, když opustíme lokální minimum, další lokální minimum se znovu hledá stejnou metodou zpětného šíření chyb, dokud již není možné najít cestu ven. toho.

Za nevýhodu metody byly považovány problémy nedostatečné konvexnosti chybové funkce az toho vyplývající potíže s místními minimy a plochými oblastmi, ale Jan LeCun v přehledovém článku z roku 2015 tvrdí, že z praktického hlediska tyto jevy nejsou tak nebezpečné. [7]

Velikost kroku

Pokud je velikost kroku pevná a velmi malá, konvergence je příliš pomalá, pokud je fixní a příliš velká, může dojít k paralýze nebo trvalé nestabilitě. Je efektivní krok zvyšovat, dokud se zlepšení odhadu v daném směru antigradientu nezastaví a snižovat, pokud k takovému zlepšení nedochází. P.D. Wasserman [8] popsal adaptivní algoritmus výběru kroků, který automaticky koriguje velikost kroku v procesu učení. Kniha A. N. Gorbana [9] navrhuje rozvětvenou technologii optimalizace učení.

Podle [9] je metoda backpropagation metodou pro rychlý výpočet gradientu, která se dále používá v různých algoritmech hladké optimalizace a nejslibnější je použití kvazi-newtonských metod (BFGS) pro výpočet směru sestupu v kombinaci s jednorozměrnou optimalizací v tomto směru. Odhady pro takové metody se počítají buď pro celou knihu problémů (optimalizace dávky) nebo pro její podmnožiny ("stránky" knihy problémů, [9] které se později staly známými jako "mini-dávky"). Toto hledisko se nyní stalo všeobecně akceptovaným. [deset]

Je třeba také zmínit možnost přeplnění sítě, což je pravděpodobnější důsledek chybného návrhu její topologie a/nebo nesprávné volby kritéria ukončení tréninku. Při přeškolování se ztrácí vlastnost sítě zobecňovat informace. Síť se naučí celou sadu obrázků poskytnutých pro školení, ale jakékoli jiné obrázky, i velmi podobné, mohou být rozpoznány nesprávně.

Literatura

  1. Wasserman F. Neurocomputer Engineering: Teorie a praxe . - M. : "Mir", 1992. Archivní kopie z 30. června 2009 na Wayback Machine
  2. Khaikin S. Neuronové sítě: Celý kurz. Za. z angličtiny. N. N. Kussul, A. Yu. Shelestova. 2. vydání, rev. - M .: Williams Publishing House, 2008, 1103 s.

Odkazy

  1. Gorban A. N., Rossiev D. A., Neuronové sítě na osobním počítači . - Novosibirsk: Nauka, 1996. - 276 s.
  2. Koposov A. I., Shcherbakov I. B., Kislenko N. A., Kislenko O. P., Varivoda Yu. V. et al . technologie plynu“ . - M. : VNIIGAZ, 1995. Archivní kopie z 8. ledna 2007 na Wayback Machine
  3. Neuroinformatické knihy na webu NeuroSchool.
  4. Terekhov S. A. , Přednášky o teorii a aplikacích umělých neuronových sítí. Archivováno 26. ledna 2010 na Wayback Machine
  5. Mirkes E.M. , Neuroinformatika : Proc. příspěvek pro studenty s programy pro provádění laboratorních prací. Krasnojarsk: CPI KSTU, 2002, 347 s. Rýže. 58, tab. 59, bibliografie. 379 položek. ISBN 5-7636-0477-6
  6. Princip trénování vícevrstvé neuronové sítě pomocí algoritmu backpropagation
  7. Algoritmus backpropagation s regularizací v C#

Poznámky

  1. Galushkin A.I. Syntéza vícevrstvých systémů rozpoznávání vzorů. - M.: "Energie", 1974.
  2. Werbos PJ , Beyond regression: Nové nástroje pro predikci a analýzu v behaviorálních vědách. Ph.D. práce, Harvard University, Cambridge, MA, 1974.
  3. Rumelhart DE, Hinton GE, Williams RJ , Learning Internal Representations by Error Propagation. In: Parallel Distributed Processing, roč. 1, str. 318-362. Cambridge, MA, MIT Press. 1986.
  4. Bartsev S.I., Okhonin V.A. Adaptivní sítě zpracování informací. Krasnojarsk: Ústav fyziky SO AN SSSR, 1986. Předtisk N 59B. — 20 s.
  5. Bartsev S. I., Gilev S. E., Okhonin V. A. , Princip duality v organizaci adaptivních sítí zpracování informací, V knize: Dynamika chemických a biologických systémů. - Novosibirsk: Nauka, 1989. - S. 6-55.
  6. Mirkes E.M. , Neurocomputer. Návrh standardu archivován 15. června 2009 na Wayback Machine . - Novosibirsk: Nauka, Siberian Publishing Company RAS, 1999. - 337 s. ISBN 5-02-031409-9 Další výtisky online:アーカイブされたコピー. Získáno 15. října 2008. Archivováno z originálu 3. července 2009. .
  7. LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey. Hluboké učení  (anglicky)  // Nature. - 2015. - Sv. 521 . - str. 436-444 . - doi : 10.1038/příroda14539 .
  8. Wasserman PD Experimenty s překladem čínských znaků pomocí backpropagation. Sborník z třicáté třetí mezinárodní konference IEEE Computer Society. — Washington: DC: Computer Society Press of the IEEE, 1988.
  9. 1 2 3 Gorban A.N. Trénink neuronových sítí . - M .: SSSR-USA SP ParaGraph, 1990.
  10. Goodfellow I, Bengio Y, Courville A. Deep learning Archivováno 18. srpna 2019 na Wayback Machine . MIT Press; 2016, 10. listopadu.