
Programmatisko produktu kods maŔīnmÄcīŔanÄs jomÄ bieži ir sarežģīts un diezgan pÄrsteidzoÅ”s. Kļūdu atklÄÅ”ana un novÄrÅ”ana ir resursietilpÄ«gs uzdevums. Pat visvienkÄrÅ”ÄkÄs prasa nopietnu pieeju tÄ«kla arhitektÅ«rai, svaru inicializÄcijai un tÄ«kla optimizÄcijai. Pat neliela kļūda var novest pie nepatÄ«kamÄm problÄmÄm.
Šis raksts ir veltīts jūsu neironu tīklu atkļūdoŔanas algoritmam.
Skillbox iesaka: Praktiskais kurss .
AtgÄdinÄm: visiem Ā«HabrĀ» lasÄ«tÄjiem ā atlaide 10 000 rubļu reÄ£istrÄjoties jebkurÄ Skillbox kursÄ ar promo kodu Ā«HabrĀ».
Algoritms sastÄv no pieciem posmiem:
- vienkÄrÅ”s sÄkums;
- zaudÄjumu apstiprinÄÅ”ana;
- starpposmu rezultÄtu un savienojumu pÄrbaude;
- parametru diagnostika;
- darbÄ«bas kontrolÄÅ”ana.
Ja jums kaut kas Ŕķiet interesantÄks par citÄm daļÄm, varat tÅ«lÄ«t pÄriet uz Å”iem posmiem.
VienkÄrÅ”s sÄkums
Neironu tÄ«klu ar sarežģītu arhitektÅ«ru, regulÄru un mÄcÄ«bu Ätruma plÄnotÄju ir grÅ«tÄk atkļūdot nekÄ parasto. MÄs Å”eit nedaudz krÄpjÄm, jo Å”is punkts ir netieÅ”i saistÄ«ts ar atkļūdoÅ”anu, taÄu tas joprojÄm ir svarÄ«gs ieteikums.
VienkÄrÅ”a sÄkuma bÅ«tÄ«ba ir vienkÄrÅ”otas modeļa izveide un tÄs apmÄcÄ«ba uz vienu datu kopu (punktu).
Vispirms izveidojam vienkÄrÅ”otu modeli
Lai Ätri sÄktu, izveidojam nelielu tÄ«klu ar vienu slÄpto slÄni un pÄrbaudÄm, vai viss darbojas pareizi. Tad pakÄpeniski sarežģījam modeli, pÄrbaudot katru jauno struktÅ«ras aspektu (papildu slÄni, parametru utt.), un virzÄmies tÄlÄk.
ApmÄcÄm modeli uz vienas datu kopas (punkta)
KÄ Ätru jÅ«su projekta darbÄ«bas pÄrbaudi varat izmantot mÄcÄ«bÄm vienu vai divas datu vietas, lai apstiprinÄtu, vai sistÄma darbojas pareizi. Neironu tÄ«klam jÄparÄda 100% precizitÄte mÄcÄ«bÄs un pÄrbaudÄs. Ja tas tÄ nav, tad vai nu modelis ir pÄrÄk mazs, vai arÄ« jums jau ir kļūda.
Pat ja viss ir labi, sagatavojiet modeli nepiecieÅ”amÄ laika gaidīŔanai pirms doÅ”anÄs tÄlÄk.
ZaudÄjumu novÄrtÄjums
ZaudÄjumu novÄrtÄÅ”ana ir galvenais veids, kÄ precizÄt modeļa veiktspÄju. Jums jÄnodroÅ”ina, ka zaudÄjums atbilst uzdevumam, un ka zaudÄjumu funkcijas tiek novÄrtÄtas pareizÄ skalÄ. Ja izmantojat vairÄk nekÄ viena veida zaudÄjumus, pÄrliecinieties, ka visi tie ir vienÄdÄ kÄrtÄ«bÄ un pareizi sakalibruoti.
Ir svarÄ«gi pievÄrst uzmanÄ«bu sÄkotnÄjiem zaudÄjumiem. PÄrbaudiet, cik tuvu faktiskais rezultÄts ir gaidÄmajam, ja modelis sÄk darboties ar nejauÅ”u pieÅÄmumu. : āPÄrliecinieties, ka saÅemat rezultÄtu, kas ir gaidÄms, uzsÄkot darbu ar nelielu parametru skaitu. LabÄk ir uzreiz pÄrbaudÄ«t datu zaudÄjumu (iestatot regulÄriÅ”anas pakÄpi uz nulli). PiemÄram, CIFAR-10 ar Softmax klasifikatoru mÄs gaidÄm, ka sÄkotnÄjie zaudÄjumi bÅ«s 2.302, jo gaidÄmÄ izkliedÄtÄ varbÅ«tÄ«ba ir 0.1 katram klasei (jo ir 10 klases), un Softmax zaudÄjums ir negatÄ«vÄ logaritmiskais varbÅ«tÄ«bas attiecÄ«bas precÄ«zajai klasei, kas ir āln (0.1) = 2.302ā.
Binarajam piemÄram tiek veikts lÄ«dzÄ«gs aprÄÄ·ins katrai klasei. PiemÄram, ir dati: 20% 0 un 80% 1. GaidÄmie sÄkotnÄjie zaudÄjumi bÅ«s lÄ«dz ā0.2ln (0.5) ā0.8ln (0.5) = 0.693147. Ja rezultÄts ir lielÄks par 1, tas var norÄdÄ«t uz to, ka neirotÄ«klam nav lÄ«dzsvarotas svars, vai dati nav normalizÄti.
PÄrbaudÄm starpposma rezultÄtus un savienojumus
NeirotÄ«kla atkļūdoÅ”anai ir svarÄ«gi saprast iekÅ”Äjos procesus tÄ«klÄ un atseviŔķu starpposma slÄÅu lomu, jo tie ir saistÄ«ti. Å eit ir tipiskas kļūdas, ar kurÄm jÅ«s varat saskarties:
- nepareizi izteikumi gradientu atjauninÄÅ”anai;
- svara atjauninÄjumi netiek piemÄroti;
- iznÄ«kstoÅ”i vai eksplodÄjoÅ”i gradienti (exploding gradients).
Ja gradienta vÄrtÄ«bas ir nulles, tas nozÄ«mÄ, ka mÄcīŔanÄs Ätrums optimizÄtÄjÄ ir pÄrÄk zems, vai arÄ« jÅ«s esat sastapuÅ”ies ar nepareizu izteikumu gradienta atjauninÄÅ”anai.
TurklÄt vajadzÄtu uzraudzÄ«t aktivizÄcijas funkciju, svaru un katra slÄÅa atjauninÄjumus. PiemÄram, parametru (svaru un noviržu) atjauninÄjumu apjomam .
PastÄv parÄdÄ«ba, kas iegÅ«st nosaukumu āDying ReLUā vai , kad ReLU neironi izvada nulli pÄc liela negatÄ«va vÄrtÄ«bas (bias) atvieglinÄÅ”anas svaram. Å ie neironi vairs nekad netiks aktivizÄti nevienÄ datu vietÄ.
JÅ«s varat izmantot gradienta pÄrbaudi, lai identificÄtu Ŕīs kļūdas, apgÅ«stot gradientu, izmantojot numurisku pieeju. Ja tas ir tuvu aprÄÄ·inÄtajiem gradientiem, tad atpakaļizplatīŔana ir Ä«stenota pareizi. Lai izveidotu gradienta pÄrbaudi, iepazÄ«stieties ar Å”iem lieliskajiem resursiem no CS231. un , kÄ arÄ« ar no EndrjÅ« Nga (Andrew Nga) Å”ajÄ tÄmÄ.
norÄda trÄ«s galvenÄs metodes neironu tÄ«kla vizualizÄÅ”anai:
- PriekÅ”izvÄrtÄÅ”anas ā vienkÄrÅ”as metodes, kas rÄda mums apmÄcÄ«tÄ modeļa kopÄjo struktÅ«ru. TÄs ietver atsauksmju formas vai filtrus atseviŔķiem neironu tÄ«kla slÄÅiem un parametru katrÄ slÄnÄ«.
- Pamatotas uz aktivizÄcijÄm. TajÄs mÄs dekodÄjam atseviŔķu neironu vai neironu grupu aktivizÄcijas, lai izprastu viÅu funkcijas.
- Pamatotas uz gradientiem. Å Ä«s metodes mÄdz manipulÄt ar gradientiem, kas veidojas, ejot uz priekÅ”u un atpakaļ mÄcÄ«bu modeļa procesÄ (iekļaujot svarÄ«guma kartes un klases aktivizÄcijas kartes).
Ir vairÄki noderÄ«gi rÄ«ki atseviŔķu slÄÅu aktivizÄciju un savienojumu vizualizÄÅ”anai, piemÄram, un .

Parametru diagnostika
Neironu tÄ«klos ir daudz parametru, kas mijiedarbojas savÄ starpÄ, kas apgrÅ«tina optimizÄciju. Patiess Ŕī sadaļa ir aktÄ«vu pÄtÄ«jumu priekÅ”mets speciÄlistiem, tÄpÄc zemÄk minÄtie ieteikumi bÅ«tu jÄuzskata tikai par padomiem, sÄkumpunktiem, no kuriem var sÄkt.
Partijas lielums (batch size) ā ir jÄbÅ«t pietiekami lielam, lai iegÅ«tu precÄ«zus gradientu kļūdas novÄrtÄjumus, bet pietiekami mazam, lai stohastiskais gradienta nolaiÅ”anÄs (SGD) varÄtu sakÄrtot jÅ«su tÄ«klu. Mazie partiju izmÄri izraisÄ«s Ätru konverÄ£enci trokÅ”Åa dÄļ mÄcÄ«bu procesÄ un vÄlÄk radÄ«s grÅ«tÄ«bas optimizÄcijÄ. DetalizÄtÄk par to ir aprakstÄ«ts .
MÄcÄ«bu Ätrums ā pÄrÄk zems nov brings pie lÄnas konverÄ£ences vai risku iestrÄgt lokÄlajÄs minimumos. TajÄ paÅ”Ä laikÄ augstÄks mÄcÄ«bu Ätrums radÄ«s optimizÄcijas sadalÄ«jumu, jo jÅ«s riskÄjat "izlekt" pÄri dziļai, bet Å”aurai funkcionÄlajai zudumam. MÄÄ£iniet izmantot plÄnoÅ”anas Ätrumu, lai to samazinÄtu neironu tÄ«kla mÄcÄ«bu procesÄ. CS231n kursÄ. .
Gradientu apgrieÅ”anaā gradientu apgrieÅ”ana parametru laikÄ atpakaļejoÅ”ajÄ izplatīŔanÄ pÄc maksimÄlÄs vÄrtÄ«bas vai ierobežojoÅ”Äs normas. Noder, lai risinÄtu problÄmas ar jebkuriem lidojoÅ”iem gradientiem, ar kuriem varat saskarties treÅ”ajÄ punktÄ.
PakotÅu normalizÄcija ā tiek izmantota, lai normalizÄtu katra slÄÅa ieejas datus, kas ļauj atrisinÄt iekÅ”ÄjÄ kovariÄta svÄrstīŔanÄs problÄmu. Ja izmantojat Dropout un Batch Normalization kopÄ, .
Stohastiskais gradienta kritums (SGD) ā ir vairÄki SGD veidi, kas izmanto impulsu, pielÄgojamas mÄcÄ«bu Ätrumus un Nesterova metodi. TomÄr nevienam no tiem nav acÄ«mredzama priekÅ”rocÄ«ba attiecÄ«bÄ uz mÄcīŔanÄs efektivitÄti vai vispÄrinÄÅ”anu ().
RegulÄraizÄcija ā ir izŔķiroÅ”a nozÄ«me vispÄrÄ«gÄs modeļa izveidÄ, jo tÄ pievieno sodu par modeļa sarežģītÄ«bu vai ekstremÄlÄm parametru vÄrtÄ«bÄm. Tas ir veids, kÄ samazinÄt modeļa dispersiju, nepalielinot tÄ novirzi. VairÄk .
Lai visu novÄrtÄtu pats, jÄatspÄjo regulÄraizÄcija un jÄnoskaidro gradientu zaudÄjumu datu patstÄvÄ«gi.
DroŔība ā vÄl viena metode jÅ«su tÄ«kla sakÄrtoÅ”anai, lai novÄrstu pÄrslodzi. MÄcÄ«bu laikÄ droŔība tiek veikta tikai ar neirona aktÄ«vÄs uzturÄÅ”anas varbÅ«tÄ«bu p (hiperparametrs) vai tÄ nulles iestatīŔanu citÄdi. RezultÄtÄ tÄ«kls katrai mÄcÄ«bu partijai izmanto citu parametru apakÅ”kopu, samazinot konkrÄtu parametru izmaiÅas, kas kļūst dominÄjoÅ”i.
SvarÄ«gi: ja izmantojat gan droŔību, gan pakotÅu normalizÄciju, esiet uzmanÄ«gi ar Å”o operÄciju secÄ«bu vai pat to koplietojumu. Viss Å”is joprojÄm tiek aktÄ«vi apspriests un papildinÄts. Å eit ir divas svarÄ«gas diskusijas par Å”o tÄmu un .
Darba kontrole
RunÄ par darba procesu un eksperimentu dokumentÄÅ”anu. Ja nekas netiek dokumentÄts, var tikt aizmirsts, piemÄram, kÄda mÄcīŔanÄs Ätruma vai klaÅ”u svars tiek izmantots. Pateicoties uzraudzÄ«bai, iepriekÅ”Äjos eksperimentus var viegli apskatÄ«t un reproducÄt. Tas ļauj samazinÄt dublÄjoÅ”o eksperimentu skaitu.
TomÄr roku dokumentÄÅ”ana var kļūt par sarežģītu uzdevumu lielÄ darba apjoma dÄļ. Å eit palÄ«gÄ nÄk tÄdi rÄ«ki kÄ Comet.ml, kas palÄ«dz automÄtiski reÄ£istrÄt datu kopas, koda izmaiÅas, eksperimentu vÄsturi un ražot modeļus, tostarp svarÄ«go informÄciju par jÅ«su modeli (hiperparametri, modeļa snieguma rÄdÄ«tÄji un informÄcija par vidi).
Neironu tÄ«kli var bÅ«t diezgan jutÄ«gi pret nelielÄm izmaiÅÄm, kas var novest pie modeļa veiktspÄjas samazinÄÅ”anÄs. Darba uzraudzÄ«ba un dokumentÄÅ”ana ir pirmais solis, ko vajadzÄtu veikt, lai standartizÄtu vidi un modelÄÅ”anu.

Ceru, ka Å”is ieraksts var kļūt par sÄkumpunktu, no kura sÄksiet sava neironu tÄ«kla atkļūdoÅ”anu.
Skillbox iesaka:
- Divu gadu praktiskais kurss .
- TieŔsaistes kurss .
- Praktiskais gada kurss .
Avots: habr.com
