výhonek Co je Backpropagation? - Spojte se.AI
Spojte se s námi
Mistrovská třída AI:

AI 101

Co je Backpropagation?

mm
aktualizováno on

Co je Backpropagation?

Systémy hlubokého učení jsou schopny naučit se extrémně složité vzorce a dosahují toho úpravou své váhy. Jak se přesně upravují váhy hluboké neuronové sítě? Jsou upraveny skrz proces volal zpětná propagace. Bez zpětného šíření by hluboké neuronové sítě nebyly schopny provádět úkoly, jako je rozpoznávání obrázků a interpretace přirozeného jazyka. Pochopení toho, jak funguje backpropagation, je zásadní pro pochopení hlubokých neuronových sítí obecně, takže pojďme diskutovat o backpropagation a uvidíme, jak se proces používá k úpravě vah sítě.

Zpětné šíření může být obtížné pochopit a výpočty použité k provedení zpětného šíření mohou být poměrně složité. Tento článek se pokusí poskytnout vám intuitivní pochopení zpětného šíření pomocí malého množství složité matematiky. Je však nutná určitá diskuse o matematice za backpropagation.

Cíl zpětné propagace

Začněme definováním cíle backpropagation. Váhy hluboké neuronové sítě jsou silou spojení mezi jednotkami neuronové sítě. Když je vytvořena neuronová síť, učiní se předpoklady o tom, jak jsou jednotky v jedné vrstvě spojeny s vrstvami, které jsou k ní připojeny. Jak se data pohybují neuronovou sítí, počítají se váhy a vytvářejí se předpoklady. Když data dosáhnou poslední vrstvy sítě, provede se předpověď o tom, jak funkce souvisí s třídami v datové sadě. Rozdíl mezi předpokládanými hodnotami a skutečnými hodnotami je ztráta/chyba a cíl zpětného šíření je snížit ztrátu. Toho je dosaženo úpravou vah sítě, čímž se předpoklady více podobají skutečným vztahům mezi vstupními prvky.

Školení hluboké neuronové sítě

Před zpětným šířením lze provést na a nervová síť, musí být provedeno pravidelné/dopředné školení neuronové sítě. Když je vytvořena neuronová síť, inicializuje se sada vah. Hodnota vah se bude měnit, jak bude síť trénována. Dopředný tréninkový průchod neuronové sítě lze pojmout jako tři samostatné kroky: aktivaci neuronů, přenos neuronů a dopředné šíření.

Při trénování hluboké neuronové sítě musíme využívat více matematických funkcí. Neurony v hluboké neuronové síti se skládají z příchozích dat a aktivační funkce, která určuje hodnotu potřebnou k aktivaci uzlu. Aktivační hodnota neuronu se vypočítá z několika složek, které jsou váženým součtem vstupů. Váhy a vstupní hodnoty závisí na indexu uzlů použitých k výpočtu aktivace. Při výpočtu aktivační hodnoty je třeba vzít v úvahu další číslo, hodnotu zkreslení. Hodnoty zkreslení nekolísají, takže se nenásobí společně s váhou a vstupy, pouze se sčítají. To vše znamená, že pro výpočet aktivační hodnoty lze použít následující rovnici:

Aktivace = součet (váha * vstup) + zkreslení

Po aktivaci neuronu se použije aktivační funkce k určení toho, jaký bude výstup skutečného výstupu neuronu. Různé aktivační funkce jsou optimální pro různé učební úlohy, ale běžně používané aktivační funkce zahrnují sigmoidní funkci, funkci Tanh a funkci ReLU.

Jakmile jsou výstupy neuronu vypočteny spuštěním aktivační hodnoty přes požadovanou aktivační funkci, provede se dopředné šíření. Dopředné šíření pouze přijímá výstupy jedné vrstvy a dělá z nich vstupy další vrstvy. Nové vstupy se pak použijí k výpočtu nových aktivačních funkcí a výstup této operace se předá následující vrstvě. Tento proces pokračuje až do konce neuronové sítě.

Backpropagation v síti

Proces zpětného šíření přijímá konečná rozhodnutí trénovacího průchodu modelu a poté určuje chyby v těchto rozhodnutích. Chyby se vypočítají porovnáním výstupů/rozhodnutí sítě a očekávaných/požadovaných výstupů sítě.

Jakmile jsou chyby v rozhodnutích sítě vypočítány, tyto informace se zpětně šíří sítí a parametry sítě se během cesty mění. Metoda, která se používá k aktualizaci vah sítě, je založena na kalkulu, konkrétně je založena na řetězovém pravidle. Pochopení kalkulu však není nutné k pochopení myšlenky backpropagation. Vězte, že když je výstupní hodnota poskytnuta z neuronu, vypočítá se strmost výstupní hodnoty pomocí přenosové funkce, čímž vznikne odvozený výstup. Při zpětném šíření se chyba pro konkrétní neuron vypočítá podle následujícího vzorec:

error = (očekávaný_výstup – skutečný_výstup) * sklon výstupní hodnoty neuronu

Při provozu na neuronech ve výstupní vrstvě se jako očekávaná hodnota použije hodnota třídy. Po výpočtu chyby se chyba použije jako vstup pro neurony ve skryté vrstvě, což znamená, že chyba pro tuto skrytou vrstvu jsou vážené chyby neuronů nalezených ve výstupní vrstvě. Výpočty chyb postupují zpět sítí podél sítě vah.

Po výpočtu chyb pro síť je třeba aktualizovat váhy v síti. Jak již bylo zmíněno, výpočet chyby zahrnuje určení strmosti výstupní hodnoty. Po výpočtu sklonu lze k úpravě vah v síti použít proces známý jako gradientní klesání. Gradient je svah, jehož úhel/strmost lze měřit. Sklon se vypočítá vynesením „y nad“ nebo „vzestupu“ nad „během“. V případě neuronové sítě a chybovosti je „y“ vypočtená chyba, zatímco „x“ jsou parametry sítě. Parametry sítě mají vztah k vypočteným chybovým hodnotám a jak se upravují váhy sítě, chyba se zvyšuje nebo snižuje.

„Gradient sestup“ je proces aktualizace vah tak, aby se chybovost snížila. Backpropagation se používá k predikci vztahu mezi parametry neuronové sítě a chybovostí, která nastavuje síť na gradientní sestup. Trénink sítě s gradientním sestupem zahrnoval výpočet vah prostřednictvím dopředného šíření, zpětného šíření chyby a pak aktualizaci vah sítě.

Blogerka a programátorka se specializací v Strojové učení a Hluboké učení témata. Daniel doufá, že pomůže ostatním využívat sílu AI pro společenské dobro.