peň Čo je to Backpropagation? - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Čo je to Backpropagation?

mm
Aktualizované on

Čo je to Backpropagation?

Systémy hlbokého učenia sa dokážu naučiť extrémne zložité vzorce a dosahujú to úpravou svojich váh. Ako sa presne upravujú váhy hlbokej neurónovej siete? Sú upravené cez proces tzv spätné šírenie. Bez spätného šírenia by hlboké neurónové siete neboli schopné vykonávať úlohy, ako je rozpoznávanie obrázkov a interpretácia prirodzeného jazyka. Pochopenie toho, ako funguje backpropagation, je rozhodujúce pre pochopenie hlbokých neurónových sietí vo všeobecnosti, takže poďme diskutovať o backpropagation a uvidíme, ako sa tento proces používa na úpravu váh siete.

Spätné šírenie môže byť ťažké pochopiť a výpočty použité na vykonanie spätného šírenia môžu byť dosť zložité. Tento článok sa bude snažiť poskytnúť vám intuitívne pochopenie spätného šírenia, pričom použije len málo zo zložitej matematiky. Je však potrebná určitá diskusia o matematike za spätnou propagáciou.

Cieľ spätnej propagácie

Začnime definovaním cieľa spätnej propagácie. Váhy hlbokej neurónovej siete sú silou spojení medzi jednotkami neurónovej siete. Keď sa vytvorí neurónová sieť, urobia sa predpoklady o tom, ako sú jednotky v jednej vrstve spojené s vrstvami, ktoré sú s ňou spojené. Ako sa dáta pohybujú cez neurónovú sieť, počítajú sa váhy a robia sa predpoklady. Keď údaje dosiahnu konečnú vrstvu siete, urobí sa predpoveď o tom, ako funkcie súvisia s triedami v množine údajov. Rozdiel medzi predpokladanými hodnotami a skutočnými hodnotami je strata/chyba a cieľ spätného šírenia je znížiť stratu. To sa dosiahne úpravou váh siete, čím sa predpoklady viac podobajú skutočným vzťahom medzi vstupnými vlastnosťami.

Školenie hlbokej neurónovej siete

Pred spätným šírením možno vykonať na a neurónové sieť, musí sa vykonať pravidelný/dopredný tréningový priechod neurónovej siete. Keď sa vytvorí neurónová sieť, inicializuje sa množina váh. Hodnota váh sa bude meniť, keď bude sieť trénovaná. Dopredný tréningový priechod neurónovej siete možno chápať ako tri samostatné kroky: aktivácia neurónov, prenos neurónov a dopredné šírenie.

Pri trénovaní hlbokej neurónovej siete musíme využívať viaceré matematické funkcie. Neuróny v hlbokej neurónovej sieti sa skladajú z prichádzajúcich údajov a aktivačnej funkcie, ktorá určuje hodnotu potrebnú na aktiváciu uzla. Aktivačná hodnota neurónu sa vypočíta s niekoľkými komponentmi, ktoré sú váženým súčtom vstupov. Váhy a vstupné hodnoty závisia od indexu uzlov použitých na výpočet aktivácie. Pri výpočte aktivačnej hodnoty je potrebné vziať do úvahy ďalšie číslo, hodnotu odchýlky. Hodnoty odchýlky nekolísajú, preto sa spolu s hmotnosťou a vstupmi nenásobia, iba sa sčítavajú. To všetko znamená, že na výpočet aktivačnej hodnoty možno použiť nasledujúcu rovnicu:

Aktivácia = súčet (váha * vstup) + odchýlka

Po aktivácii neurónu sa použije aktivačná funkcia na určenie toho, aký bude výstup skutočného výstupu neurónu. Rôzne aktivačné funkcie sú optimálne pre rôzne učebné úlohy, ale bežne používané aktivačné funkcie zahŕňajú sigmoidnú funkciu, funkciu Tanh a funkciu ReLU.

Akonáhle sú výstupy neurónu vypočítané spustením aktivačnej hodnoty cez požadovanú aktivačnú funkciu, vykoná sa dopredné šírenie. Dopredné šírenie je len prevzatie výstupov jednej vrstvy a ich premena na vstupy ďalšej vrstvy. Nové vstupy sa potom použijú na výpočet nových aktivačných funkcií a výstup tejto operácie sa prenesie do nasledujúcej vrstvy. Tento proces pokračuje až do konca neurónovej siete.

Backpropagation v sieti

Proces spätného šírenia prijíma konečné rozhodnutia pri trénovaní modelu a potom určuje chyby v týchto rozhodnutiach. Chyby sa vypočítajú porovnaním výstupov/rozhodnutí siete a očakávaných/požadovaných výstupov siete.

Po vypočítaní chýb v rozhodnutiach siete sa tieto informácie spätne šíria sieťou a parametre siete sa počas cesty menia. Metóda, ktorá sa používa na aktualizáciu váh siete, je založená na kalkulácii, konkrétne je založená na reťazovom pravidle. Pochopenie kalkulu však nie je potrebné na pochopenie myšlienky spätnej propagácie. Len vedzte, že keď je výstupná hodnota poskytnutá z neurónu, sklon výstupnej hodnoty sa vypočíta pomocou prenosovej funkcie, čím sa vytvorí odvodený výstup. Pri spätnom šírení sa chyba pre konkrétny neurón vypočíta podľa nasledujúceho vzorec:

chyba = (očakávaný_výstup – skutočný_výstup) * sklon výstupnej hodnoty neurónu

Pri práci s neurónmi vo výstupnej vrstve sa ako očakávaná hodnota použije hodnota triedy. Po vypočítaní chyby sa chyba použije ako vstup pre neuróny v skrytej vrstve, čo znamená, že chyba pre túto skrytú vrstvu sú vážené chyby neurónov nájdených vo výstupnej vrstve. Výpočty chýb sa pohybujú dozadu cez sieť pozdĺž siete váh.

Po vypočítaní chýb pre sieť je potrebné aktualizovať váhy v sieti. Ako už bolo spomenuté, výpočet chyby zahŕňa určenie sklonu výstupnej hodnoty. Po vypočítaní sklonu možno na úpravu váh v sieti použiť proces známy ako gradientný zostup. Gradient je svah, ktorého uhol/strmosť možno merať. Sklon sa vypočíta vynesením „y nad“ alebo „nárastu“ nad „behom“. V prípade neurónovej siete a chybovosti je „y“ vypočítaná chyba, zatiaľ čo „x“ sú parametre siete. Parametre siete majú vzťah k vypočítaným chybovým hodnotám a pri úprave váh siete sa chyba zvyšuje alebo znižuje.

„Gradient zostup“ je proces aktualizácie váh, aby sa chybovosť znížila. Backpropagation sa používa na predpovedanie vzťahu medzi parametrami neurónovej siete a chybovosťou, ktorá nastavuje sieť na gradientný zostup. Trénovanie siete s gradientovým zostupom zahŕňalo výpočet váh prostredníctvom šírenia dopredu, spätného šírenia chyby a následnej aktualizácie váh siete.

Bloger a programátor so špecializáciou v Strojové učenie a Deep Learning témy. Daniel dúfa, že pomôže ostatným využívať silu AI pre sociálne dobro.