Základy AI

Co je Backpropagation?

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Co je Backpropagation?

Systémy hlubokého učení jsou schopny se učit velmi komplexním vzorcům a tohle dosahují úpravou svých váh. Jak jsou přesně upraveny váhy hluboké neuronové sítě? Upravují se prostřednictvím procesu nazývaného backpropagation. Bez backpropagation by hluboké neuronové sítě nebyly schopny vykonávat úkoly jako rozpoznávání obrazů a interpretace přirozeného jazyka. Porozumění tomu, jak backpropagation funguje, je kritické pro porozumění hlubokým neuronovým sítím obecně, takže se budeme bavit o backpropagation a uvidíme, jak se proces používá k úpravě váh sítě.

Backpropagation může být obtížné pochopit a výpočty, které se používají k provedení backpropagation, mohou být quite komplexní. Tento článek se pokusí vám dát intuitivní pochopení backpropagation, pomocí málo komplexní matematiky. Nicméně, некоторá diskuse o matematice za backpropagation je nutná.

Cíl Backpropagation

Začněme definicí cíle backpropagation. Váhy hluboké neuronové sítě jsou síla spojení mezi jednotkami neuronové sítě. Když je neuronová síť založena, jsou učiněny předpoklady o tom, jak jsou jednotky v jedné vrstvě spojeny s vrstvami spojenými s ní. Když data procházejí neuronovou sítí, jsou váhy vypočteny a jsou učiněny předpoklady. Když data dosáhnou konečné vrstvy sítě, je učiněna předpověď o tom, jak jsou funkce spojeny s třídami v datové sadě. Rozdíl mezi předpovězenými hodnotami a skutečnými hodnotami je ztráta/chyba a cíl backpropagation je snížit ztrátu. To je dosaženo úpravou váh sítě, což dělá předpoklady více podobné skutečným vztahům mezi vstupními funkcemi.

Trénování Hluboké Neuronové Sítě

Předtím, než může být provedena backpropagation na neuronové síti, musí být proveden běžný/forward trénovací průchod neuronové sítě. Když je neuronová síť vytvořena, je inicializována sada váh. Hodnota váh bude upravena, když je síť trénována. Forward trénovací průchod neuronové sítě lze považovat za tři samostatné kroky: aktivace neuronu, přenos neuronu a forward propagace.

Když trénujeme hlubokou neuronovou síť, musíme použít několik matematických funkcí. Neurony v hluboké neuronové síti se skládají z vstupních dat a aktivační funkce, která určuje hodnotu nutnou k aktivaci uzlu. Aktivační hodnota neuronu je vypočtena pomocí několika komponent, being váženým součtem vstupů. Váhy a vstupní hodnoty závisí na indexu uzlů, které se používají k výpočtu aktivační hodnoty. Další číslo musí být vzato v úvahu při výpočtu aktivační hodnoty, bias hodnota. Bias hodnoty se nemění, takže nejsou násobeny společně s váhou a vstupními hodnotami, jsou pouze přidány. To vše znamená, že následující rovnice by mohla být použita k výpočtu aktivační hodnoty:

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

Po aktivaci neuronu je použita aktivační funkce k určení, co bude skutečný výstup neuronu. Rozdílné aktivační funkce jsou optimální pro rozdílné učební úkoly, ale běžně používané aktivační funkce zahrnují sigmoidní funkci, Tanh funkci a ReLU funkci.

Jakmile jsou výstupy neuronu vypočteny spuštěním aktivační hodnoty через požadovanou aktivační funkci, je provedena forward propagace. Forward propagace je prostě přebírání výstupů jedné vrstvy a dělání jich vstupů pro následující vrstvu. Nová vstupní data jsou poté použita k výpočtu nových aktivačních funkcí a výstupu této operace je předán do následující vrstvy. Tento proces pokračuje až do konce neuronové sítě.

Backpropagation v Sítí

Proces backpropagation přebírá konečná rozhodnutí modelu během trénovacího průchodu a poté určuje chyby v těchto rozhodnutích. Chyby jsou vypočteny 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čteny, jsou tato informace backpropagována prostřednictvím sítě a parametry sítě jsou upraveny během cesty. Metoda, která se používá k aktualizaci váh sítě, je založena na kalkulu, konkrétně, je založena na chain-rule. Nicméně, porozumění kalkulu není nutné k porozumění ideji za backpropagation. Stačí vědět, že když je výstupní hodnota poskytnuta z neuronu, je vypočtena sklon výstupní hodnoty pomocí transferové funkce, produkující odvozený výstup. Když se provádí backpropagation, chyba pro konkrétní neuron je vypočtena podle následujícího formule:

chyba = (očekávaný výstup – skutečný výstup) * sklon neuronovy výstupní hodnoty

Když se pracuje s neurony ve výstupní vrstvě, je třída hodnota použita jako očekávaná hodnota. Po vypočtení chyby je chyba použita jako vstup pro neurony ve skryté vrstvě, což znamená, že chyba pro tuto skrytou vrstvu je váženými chybami neuronů nalezených ve výstupní vrstvě. Chybové výpočty cestují zpět prostřednictvím sítě podél váh sítě.

Po vypočtení chyb pro síť musí být váhy v síti aktualizovány. Jak je zmíněno, výpočet chyby zahrnuje určení sklonu výstupní hodnoty. Po vypočtení sklonu lze použít proces nazývaný gradientní sestup k úpravě váh v síti. Gradient je sklon, jehož úhel/strmost může být měřen. Sklon je vypočten pomocí “y přes” nebo “růst” přes “běh”. V případě neuronové sítě a chybové rychlosti je “y” vypočtená chyba, zatímco “x” jsou parametry sítě. Parametry sítě mají vztah k vypočteným chybám a když jsou váhy sítě upraveny, chyba se zvyšuje nebo snižuje.

“Gradientní sestup” je proces aktualizace váh tak, aby se chyba snížila. Backpropagation se používá k předpovědi vztahu mezi parametry neuronové sítě a chybou, což nastavuje síť pro gradientní sestup. Trénování sítě pomocí gradientního sestupu zahrnuje výpočet váh prostřednictvím forward propagace, backpropagaci chyby a poté aktualizaci váh sítě.

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.