stubs Kas ir atpakaļpavairošana? - Apvienojieties.AI
Savienoties ar mums
AI meistarklase:

AI 101

Kas ir atpakaļpavairošana?

mm
Atjaunināts on

Kas ir atpakaļpavairošana?

Dziļās mācīšanās sistēmas spēj apgūt ārkārtīgi sarežģītus modeļus, un viņi to panāk, pielāgojot svaru. Kā precīzi tiek pielāgoti dziļā neironu tīkla svari? Tie ir pielāgoti cauri process aicināja atpakaļpavairošana. Bez backpropagation dziļi neironu tīkli nespētu veikt tādus uzdevumus kā attēlu atpazīšana un dabiskās valodas interpretācija. Izpratne par to, kā darbojas atpakaļejoša izplatīšana, ir ļoti svarīga, lai izprastu dziļos neironu tīklus kopumā, tāpēc apspriedīsim atpakaļejošo pavairošanu un redzēsim, kā process tiek izmantots, lai pielāgotu tīkla svaru.

Atpakaļpavairošana var būt grūti saprotama, un aprēķini, ko izmanto, lai veiktu atpakaļpavairošanu, var būt diezgan sarežģīti. Šis raksts centīsies sniegt jums intuitīvu izpratni par atpakaļpavairošanu, izmantojot maz sarežģītās matemātikas. Tomēr ir nepieciešamas dažas diskusijas par matemātiku, kas ir aiz muguras.

Backpropagation mērķis

Sāksim ar atpakaļpavairošanas mērķa definēšanu. Dziļā neironu tīkla svari ir savienojumu stiprums starp neironu tīkla vienībām. Kad neironu tīkls ir izveidots, tiek izdarīti pieņēmumi par to, kā vienības vienā slānī ir savienotas ar slāņiem, kas ar to savienoti. Kad dati pārvietojas pa neironu tīklu, tiek aprēķināti svari un izdarīti pieņēmumi. Kad dati sasniedz galīgo tīkla slāni, tiek prognozēts, kā līdzekļi ir saistīti ar datu kopas klasēm. Atšķirība starp prognozētajām vērtībām un faktiskajām vērtībām ir zaudējumi/kļūda un atpakaļpavairošanas mērķis ir samazināt zaudējumus. Tas tiek panākts, pielāgojot tīkla svarus, padarot pieņēmumus vairāk līdzīgus patiesajām attiecībām starp ievades funkcijām.

Dziļa neironu tīkla apmācība

Pirms atpakaļpavairošanas var veikt a neironu tīklu, ir jāveic neironu tīkla regulārā/uz priekšu apmācības caurlaide. Kad tiek izveidots neironu tīkls, tiek inicializēta svaru kopa. Atsvaru vērtība tiks mainīta, kad tīkls tiks apmācīts. Neironu tīkla priekšējo apmācību var uztvert kā trīs atsevišķus soļus: neironu aktivāciju, neironu pārnešanu un izplatīšanos uz priekšu.

Apmācot dziļu neironu tīklu, mums ir jāizmanto vairākas matemātiskas funkcijas. Neironi dziļajā neironu tīklā sastāv no ienākošajiem datiem un aktivizācijas funkcijas, kas nosaka mezgla aktivizēšanai nepieciešamo vērtību. Neirona aktivizācijas vērtību aprēķina no vairākiem komponentiem, kas ir ievades svērtā summa. Svari un ievades vērtības ir atkarīgas no to mezglu indeksa, kas tiek izmantoti aktivizēšanas aprēķināšanai. Aprēķinot aktivizācijas vērtību, ir jāņem vērā vēl viens skaitlis, nobīdes vērtība. Novirzes vērtības nemainās, tāpēc tās netiek reizinātas kopā ar svaru un ievades datiem, tās vienkārši tiek pievienotas. Tas viss nozīmē, ka aktivizācijas vērtības aprēķināšanai var izmantot šādu vienādojumu:

Aktivizēšana = summa (svars * ievade) + novirze

Pēc neirona aktivizēšanas tiek izmantota aktivizācijas funkcija, lai noteiktu, kāda būs neirona faktiskā izvade. Dažādas aktivizēšanas funkcijas ir optimālas dažādiem mācību uzdevumiem, bet parasti izmantotās aktivizācijas funkcijas ietver sigmoid funkciju, Tanh funkciju un ReLU funkciju.

Kad neirona izejas ir aprēķinātas, palaižot aktivizācijas vērtību, izmantojot vēlamo aktivizācijas funkciju, tiek veikta izplatīšanās uz priekšu. Izplatīšana uz priekšu ir tikai viena slāņa izvadu ņemšana un padarīšana par nākamā slāņa ievadi. Pēc tam jaunās ievades tiek izmantotas, lai aprēķinātu jaunās aktivizēšanas funkcijas, un šīs darbības izvade tiek nodota nākamajam slānim. Šis process turpinās līdz pat neironu tīkla beigām.

Pavairošana tīklā

Atpakaļpavairošanas process pieņem galīgos lēmumus par modeļa apmācību, un pēc tam tas nosaka kļūdas šajos lēmumos. Kļūdas tiek aprēķinātas, kontrastējot tīkla izejas/lēmumus un sagaidāmās/vēlamās tīkla izejas.

Kad ir aprēķinātas kļūdas tīkla lēmumos, šī informācija tiek izplatīta tīklā un tīkla parametri tiek mainīti. Metode, kas tiek izmantota, lai atjauninātu tīkla svaru, ir balstīta uz aprēķiniem, konkrēti, tā ir balstīta uz ķēdes kārtulu. Tomēr aprēķinu izpratne nav nepieciešama, lai saprastu aizmugures pavairošanas ideju. Vienkārši ziniet, ka, ja izejas vērtība tiek nodrošināta no neirona, izvades vērtības slīpums tiek aprēķināts ar pārsūtīšanas funkciju, radot atvasinātu izvadi. Veicot atpakaļpavairošanu, kļūda konkrētam neironam tiek aprēķināta saskaņā ar sekojošo formula:

kļūda = (expected_output – faktiskā_izvade) * neirona izvades vērtības slīpums

Darbojoties ar neironiem izvades slānī, klases vērtība tiek izmantota kā paredzamā vērtība. Pēc kļūdas aprēķināšanas kļūda tiek izmantota kā ievade slēptā slāņa neironiem, kas nozīmē, ka šī slēptā slāņa kļūda ir izvades slānī atrasto neironu svērtās kļūdas. Kļūdu aprēķini virzās atpakaļ pa tīklu pa svaru tīklu.

Pēc tīkla kļūdu aprēķināšanas ir jāatjaunina svari tīklā. Kā minēts, kļūdas aprēķināšana ietver izejas vērtības slīpuma noteikšanu. Pēc slīpuma aprēķināšanas var izmantot procesu, kas pazīstams kā gradienta nolaišanās, lai pielāgotu svarus tīklā. Gradients ir slīpums, kura leņķi/stāvumu var izmērīt. Slīpums tiek aprēķināts, uzzīmējot “y virs” vai “kāpumu” virs “skrējiena”. Neironu tīkla un kļūdu īpatsvara gadījumā “y” ir aprēķinātā kļūda, bet “x” ir tīkla parametri. Tīkla parametriem ir saistība ar aprēķinātajām kļūdu vērtībām, un, pielāgojot tīkla svarus, kļūda palielinās vai samazinās.

“Gradienta nolaišanās” ir svaru atjaunināšanas process, lai kļūdu līmenis samazinātos. Backpropagation tiek izmantota, lai prognozētu attiecības starp neironu tīkla parametriem un kļūdu biežumu, kas iestata tīklu gradienta nolaišanai. Tīkla apmācība ar gradienta nolaišanos ietvēra svaru aprēķināšanu, izmantojot tālāku izplatīšanos, kļūdas izplatīšanu atpakaļ un pēc tam tīkla svaru atjaunināšanu.

Emuāru autors un programmētājs ar specialitātēm Mašīnu mācīšana un Dziļa mācīšanās tēmas. Daniels cer palīdzēt citiem izmantot mākslīgā intelekta spēku sociālā labuma gūšanai.