škrbina Kaj je širjenje nazaj? - Združi se.AI
Povežite se z nami

AI 101

Kaj je širjenje nazaj?

mm
Posodobljeno on

Kaj je širjenje nazaj?

Sistemi globokega učenja se lahko naučijo izjemno zapletenih vzorcev, to pa dosežejo s prilagajanjem svojih uteži. Kako so natančno prilagojene uteži globoke nevronske mreže? Prilagodijo se skozi postopek se imenuje povratno širjenje. Brez povratnega širjenja globoke nevronske mreže ne bi mogle izvajati nalog, kot sta prepoznavanje slik in interpretacija naravnega jezika. Razumevanje delovanja širjenja nazaj je ključnega pomena za razumevanje globokih nevronskih mrež na splošno, zato se pogovorimo o širjenju nazaj in poglejmo, kako se postopek uporablja za prilagajanje uteži omrežja.

Širjenje nazaj je lahko težko razumljivo, izračuni za izvedbo širjenja nazaj pa so lahko precej zapleteni. Ta članek vam bo poskušal ponuditi intuitivno razumevanje povratnega širjenja, pri čemer bo malo uporabljal zapleteno matematiko. Vendar pa je potrebna razprava o matematiki za širjenjem nazaj.

Cilj širjenja nazaj

Začnimo z opredelitvijo cilja povratnega širjenja. Uteži globoke nevronske mreže so moč povezav med enotami nevronske mreže. Ko je nevronska mreža vzpostavljena, se predpostavi, kako so enote v eni plasti povezane s plastmi, ki so z njo povezane. Ko se podatki premikajo po nevronski mreži, se izračunajo uteži in naredijo predpostavke. Ko podatki dosežejo končno plast omrežja, se naredi napoved o tem, kako so funkcije povezane z razredi v naboru podatkov. Razlika med predvidenimi in dejanskimi vrednostmi je izguba/napaka in cilj širjenja nazaj je zmanjšanje izgube. To se doseže s prilagajanjem uteži omrežja, zaradi česar so predpostavke bolj podobne pravim razmerjem med vhodnimi funkcijami.

Usposabljanje globoke nevronske mreže

Preden se lahko izvede povratno širjenje na a nevronska mreža, je treba izvesti redno/naprej usposabljanje nevronske mreže. Ko je ustvarjena nevronska mreža, se inicializira niz uteži. Vrednost uteži se bo spremenila, ko se bo omrežje usposabljalo. Usposabljanje naprej nevronske mreže je mogoče zamisliti kot tri ločene korake: aktivacijo nevrona, prenos nevrona in širjenje naprej.

Ko treniramo globoko nevronsko mrežo, moramo uporabiti več matematičnih funkcij. Nevroni v globoki nevronski mreži so sestavljeni iz vhodnih podatkov in aktivacijske funkcije, ki določa vrednost, potrebno za aktivacijo vozlišča. Aktivacijska vrednost nevrona se izračuna z več komponentami, ki so ponderirana vsota vnosov. Uteži in vhodne vrednosti so odvisne od indeksa vozlišč, ki se uporabljajo za izračun aktivacije. Pri izračunu aktivacijske vrednosti je treba upoštevati še eno številko, vrednost pristranskosti. Vrednosti pristranskosti ne nihajo, zato se ne pomnožijo skupaj s težo in vložki, le seštejejo se. Vse to pomeni, da bi lahko za izračun aktivacijske vrednosti uporabili naslednjo enačbo:

Aktivacija = vsota (teža * vnos) + pristranskost

Ko se nevron aktivira, se aktivacijska funkcija uporabi za določitev, kakšen bo izhod dejanskega izhoda nevrona. Različne aktivacijske funkcije so optimalne za različne učne naloge, vendar pogosto uporabljene aktivacijske funkcije vključujejo sigmoidno funkcijo, funkcijo Tanh in funkcijo ReLU.

Ko so izhodi nevrona izračunani z izvajanjem aktivacijske vrednosti skozi želeno aktivacijsko funkcijo, se izvede naprej propagacija. Širjenje naprej je samo sprejemanje izhodov ene plasti in njihovo spreminjanje v vhode naslednje plasti. Novi vhodi se nato uporabijo za izračun novih aktivacijskih funkcij, izhod te operacije pa se prenese na naslednjo plast. Ta proces se nadaljuje vse do konca nevronske mreže.

Širjenje nazaj v omrežju

Proces povratnega širjenja sprejme končne odločitve o prehodu usposabljanja modela, nato pa določi napake v teh odločitvah. Napake se izračunajo s primerjavo rezultatov/odločitev omrežja in pričakovanih/želenih rezultatov omrežja.

Ko so napake v omrežnih odločitvah izračunane, se te informacije posredujejo nazaj po omrežju, parametri omrežja pa se na tej poti spremenijo. Metoda, ki se uporablja za posodabljanje uteži omrežja, temelji na računu, natančneje na verižnem pravilu. Vendar pa razumevanje računa ni potrebno za razumevanje ideje širjenja v ozadju. Vedite le, da ko je izhodna vrednost zagotovljena iz nevrona, se naklon izhodne vrednosti izračuna s funkcijo prenosa, kar proizvede izpeljano izhodno vrednost. Pri povratnem širjenju se napaka za določen nevron izračuna v skladu z naslednjim Formula:

napaka = (pričakovani_izhod – dejanski_izhod) * naklon izhodne vrednosti nevrona

Pri delu z nevroni v izhodni plasti se kot pričakovana vrednost uporabi vrednost razreda. Ko je napaka izračunana, se napaka uporabi kot vhod za nevrone v skritem sloju, kar pomeni, da so napake za ta skriti sloj utežene napake nevronov, najdenih v izhodnem sloju. Izračuni napak potujejo nazaj po omrežju vzdolž omrežja uteži.

Ko so napake za omrežje izračunane, je treba posodobiti uteži v omrežju. Kot že omenjeno, izračun napake vključuje določitev naklona izhodne vrednosti. Ko je naklon izračunan, lahko za prilagoditev uteži v omrežju uporabite postopek, znan kot gradientni spust. Gradient je naklon, katerega kot/strmost je mogoče izmeriti. Naklon se izračuna tako, da se nariše "y nad" ali "vzpon" nad "tekom". V primeru nevronske mreže in stopnje napake je "y" izračunana napaka, "x" pa parametri omrežja. Parametri omrežja so povezani z izračunanimi vrednostmi napak in ko se uteži omrežja prilagodijo, se napaka poveča ali zmanjša.

»Gradientni spust« je postopek posodabljanja uteži, tako da se stopnja napak zmanjša. Širjenje nazaj se uporablja za napovedovanje razmerja med parametri nevronske mreže in stopnjo napake, ki vzpostavi omrežje za gradientni spust. Usposabljanje omrežja z gradientnim spuščanjem je vključevalo izračun uteži s širjenjem naprej, širjenje napake nazaj in nato posodabljanje uteži omrežja.

Bloger in programer s posebnostmi v strojno učenje in Globoko učenje teme. Daniel upa, da bo drugim pomagal uporabiti moč umetne inteligence za družbeno dobro.