Matematika umělých neuronových sítí - Mathematics of artificial neural networks
Umělá neuronová síť (ANN) kombinuje biologické principy s pokročilými statistikami k řešení problémů v doménách, jako je rozpoznávání vzorů a hraní her. ANN přijímají základní model analogů neuronů navzájem spojených různými způsoby.
Struktura
Neuron
Neuron se štítkem přijímání vstupu z předchůdců neuronů se skládá z následujících složek:[1]
- an aktivace , stav neuronu, v závislosti na diskrétním časovém parametru,
- volitelný práh , která zůstane pevná, pokud nebude změněna učením
- an aktivační funkce který počítá novou aktivaci v daném čase z , a čistý vstup vzniknout vztahu
- a výstupní funkce výpočet výstupu z aktivace
Výstupní funkce je často jednoduše funkce identity.
An vstupní neuron nemá předchůdce, ale slouží jako vstupní rozhraní pro celou síť. Podobně výstupní neuron nemá nástupce a slouží tedy jako výstupní rozhraní celé sítě.
Propagační funkce
The propagační funkce počítá vstup k neuronu z výstupů a obvykle má formu[2]
Zaujatost
Lze přidat zkreslený výraz, který změní formu na následující:[3]
- kde je zaujatost.
Neuronové sítě jako funkce
Na modely neuronové sítě lze pohlížet jako na definování funkce, která bere vstup (pozorování) a vytváří výstup (rozhodnutí).
nebo distribuce přes nebo oboje a . Někdy jsou modely úzce spojeny s určitým pravidlem učení. Běžným používáním výrazu „model ANN“ je ve skutečnosti definice a třída takových funkcí (kde se členové třídy získávají proměnlivými parametry, váhami připojení nebo specifiky architektury, jako je počet neuronů, počet vrstev nebo jejich konektivita).
Matematicky síťová funkce neuronu je definována jako složení dalších funkcí , které lze dále rozložit na jiné funkce. To lze pohodlně představit jako síťovou strukturu se šipkami znázorňujícími závislosti mezi funkcemi. Široce používaným typem složení je nelineární vážený součet, kde , kde (běžně označované jako aktivační funkce[4]) je nějaká předdefinovaná funkce, například hyperbolická tečna, sigmoidní funkce, funkce softmax nebo funkce usměrňovače. Důležitou charakteristikou aktivační funkce je, že poskytuje plynulý přechod při změně vstupních hodnot, tj. Malá změna ve vstupu způsobí malou změnu ve výstupu. Následující odkazuje na kolekci funkcí jako vektor .

Tento obrázek znázorňuje takový rozklad , se závislostmi mezi proměnnými označenými šipkami. Lze je interpretovat dvěma způsoby.
První pohled je funkční: vstup se transformuje do trojrozměrného vektoru , který je poté transformován do 2-dimenzionálního vektoru , který je nakonec transformován do . S tímto pohledem se nejčastěji setkáváme v kontextu optimalizace.
Druhým pohledem je pravděpodobnostní pohled: náhodná proměnná závisí na náhodné proměnné , na čem záleží , což závisí na náhodné proměnné . S tímto pohledem se nejčastěji setkáváme v kontextu grafické modely.
Tyto dva pohledy jsou do značné míry rovnocenné. V obou případech jsou pro tuto konkrétní architekturu komponenty jednotlivých vrstev nezávislé na sobě (např. Komponenty jsou na sobě navzájem nezávislé vzhledem k jejich vstupu ). To přirozeně umožňuje určitý stupeň paralelismu při implementaci.

Sítě jako ta předchozí se běžně nazývají dopředu, protože jejich graf je a směrovaný acyklický graf. Sítě s cykly se běžně nazývají opakující se. Takové sítě jsou běžně zobrazovány způsobem znázorněným v horní části obrázku, kde je zobrazen jako závislý na sobě. Předpokládaná časová závislost však není zobrazena.
Zpětná propagace
Algoritmy školení backpropagation spadají do tří kategorií:
- nejstrmější sestup (s proměnnou míra učení a hybnost, odolná zpětná propagace );
- kvazi-Newton (Broyden – Fletcher – Goldfarb – Shanno, jeden krok secant );
- Levenberg – Marquardt a konjugovaný gradient (Aktualizace Fletcher – Reeves, aktualizace Polak – Ribiére, restart Powell – Beale, škálovaný gradient konjugátu).[5]
Algoritmus
Nechat být sítí s spojení, vstupy a výstupy.
Níže, označuje vektory v , vektory v , a vektory v . Tito se nazývají vstupy, výstupy a závaží, resp.
Síť odpovídá funkci který, vzhledem k hmotnosti , mapuje vstup na výstup .
V učení pod dohledem, sekvence příklady školení vytvoří posloupnost závaží počínaje nějakou počáteční hmotností , obvykle vybrány náhodně.
Tyto váhy se počítají postupně: první výpočet pouze pomocí pro . Výstup algoritmu je pak , dává novou funkci . Výpočet je v každém kroku stejný, tedy pouze v případě je popsán.
se počítá z zvážením proměnné hmotnosti a přihlašování klesání k funkci najít místní minimum od .
To dělá minimalizující hmotnost zjištěná sestupným spádem.
Učení pseudokódu
K implementaci výše uvedeného algoritmu jsou vyžadovány explicitní vzorce pro přechod funkce kde je funkce .
Algoritmus učení lze rozdělit do dvou fází: šíření a aktualizace hmotnosti.
Propagace
Propagace zahrnuje následující kroky:
- Šíření vpřed po síti za účelem generování výstupních hodnot
- Výpočet nákladů (chybový termín)
- Šíření výstupních aktivací zpět přes síť pomocí cíle tréninkových vzorů ke generování delt (rozdíl mezi cílovými a skutečnými hodnotami výstupu) všech výstupních a skrytých neuronů.
Aktualizace hmotnosti
Pro každou váhu:
- Vynásobte hmotnostní deltu výstupu a aktivaci vstupu, abyste našli gradient hmotnosti.
- Odečtěte poměr (procento) gradientu hmotnosti od hmotnosti.
The míra učení je poměr (procento), který ovlivňuje rychlost a kvalitu učení. Čím větší je poměr, tím rychleji se neuron trénuje, ale čím nižší je poměr, tím přesnější je trénink. Znaménko gradientu váhy označuje, zda se chyba mění přímo s váhou nebo naopak. Proto musí být váha aktualizována v opačném směru a „sestupovat“ po přechodu.
Učení se opakuje (na nových dávkách), dokud síť nebude fungovat adekvátně.
Pseudo kód
Pseudo kód pro stochastický gradient algoritmus pro trénování třívrstvé sítě (jedna skrytá vrstva):
inicializovat váhy sítě (často malé náhodné hodnoty)dělat pro každého příklad tréninku s názvem např dělat předpověď = neuronový čistý výstup(síť, ex) // vpřed aktuální = učitelský výstup(ex) výpočetní chyba (predikce - skutečná) na výstupních jednotkách vypočítat pro všechny váhy od skryté vrstvy po výstupní vrstvu // zpětný průchod vypočítat pro všechny váhy od vstupní vrstvy po skrytou vrstvu // zpětný průchod pokračoval aktualizovat váhy sítě // vstupní vrstva není upravena odhadem chybydokud chybovost se stává přijatelně nízkouvrátit se síť
Řádky označené „zpětný průchod“ lze implementovat pomocí algoritmu zpětného šíření, který vypočítává gradient chyby sítě, pokud jde o upravitelné váhy sítě.[6]
Reference
- ^ Zell, Andreas (2003). „kapitola 5.2“. Simulační neuronář Netze [Simulace neuronových sítí] (v němčině) (1. vydání). Addison-Wesley. ISBN 978-3-89319-554-1. OCLC 249017987.
- ^ Zell, Andreas (2003). „kapitola 5.2“. Simulační neuronář Netze [Simulace neuronových sítí] (v němčině) (1. vydání). Addison-Wesley. ISBN 978-3-89319-554-1. OCLC 249017987.
- ^ DAWSON, CHRISTIAN W (1998). „Přístup umělé neuronové sítě k modelování odtoku srážek“. Hydrologické vědy Journal. 43 (1): 47–66. doi:10.1080/02626669809492102.
- ^ „Slovník strojového učení“. www.cse.unsw.edu.au. Archivovány od originál dne 26. 8. 2018. Citováno 2019-08-18.
- ^ M. Forouzanfar; H. R. Dajani; V. Z. Groza; M. Bolic & S.Rajan (červenec 2010). Srovnání algoritmů výcviku neuronových sítí s předáváním pro oscilometrický odhad krevního tlaku. 4. Int. Workshop Soft Computing Applications. Arad, Rumunsko: IEEE.
- ^ Werbos, Paul J. (1994). Kořeny backpropagation. Od objednaných derivátů po neuronové sítě a politické prognózy. New York, NY: John Wiley & Sons, Inc.