Darbs ar neironu tīkliem: kontrolsaraksts atkļūdoŔanai
MaŔīnmÄcÄ«Å”anÄs programmatÅ«ras produktu kods bieži ir sarežģīts un diezgan mulsinoÅ”s. Kļūdu noteikÅ”ana un novÄrÅ”ana tajÄ ir resursietilpÄ«gs uzdevums. Pat visvienkÄrÅ”ÄkÄ uz priekÅ”u vÄrstie neironu tÄ«kli nepiecieÅ”ama nopietna pieeja tÄ«kla arhitektÅ«rai, atsvaru inicializÄcijai un tÄ«kla optimizÄcijai. Neliela kļūda var radÄ«t nepatÄ«kamas problÄmas.
Šis raksts ir par neironu tīklu atkļūdoŔanas algoritmu.
Ja kaut kas jums Ŕķiet interesantÄks par pÄrÄjo, varat nekavÄjoties pÄriet uz Ŕīm sadaļÄm.
Viegls sÄkums
Neironu tÄ«klu ar sarežģītu arhitektÅ«ru, regularizÄciju un mÄcÄ«Å”anÄs Ätruma plÄnotÄju ir grÅ«tÄk atkļūdot nekÄ parasto. Å eit mÄs esam nedaudz viltÄ«gi, jo pats punkts ir netieÅ”i saistÄ«ts ar atkļūdoÅ”anu, taÄu tas joprojÄm ir svarÄ«gs ieteikums.
VienkÄrÅ”s sÄkums ir izveidot vienkÄrÅ”otu modeli un apmÄcÄ«t to uz vienu datu kopu (punktu).
Vispirms izveidojam vienkÄrÅ”otu modeli
Lai Ätri sÄktu darbu, mÄs izveidojam nelielu tÄ«klu ar vienu slÄptu slÄni un pÄrbaudÄm, vai viss darbojas pareizi. Tad mÄs pakÄpeniski sarežģījam modeli, pÄrbaudot katru jaunu tÄ struktÅ«ras aspektu (papildu slÄni, parametru utt.), un turpinÄm.
MÄs apmÄcÄm modeli uz vienu datu kopu (punktu).
Lai Ätri pÄrbaudÄ«tu sava projekta saprÄtu, apmÄcÄ«bai varat izmantot vienu vai divus datu punktus, lai pÄrliecinÄtos, vai sistÄma darbojas pareizi. Neironu tÄ«klam apmÄcÄ«bÄ un pÄrbaudÄs jÄuzrÄda 100% precizitÄte. Ja tas tÄ nav, vai nu modelis ir pÄrÄk mazs, vai arÄ« jums jau ir kļūda.
Pat ja viss ir kÄrtÄ«bÄ, pirms turpinÄt, sagatavojiet modeli vienam vai vairÄkiem laikmetiem.
ZaudÄjumu novÄrtÄjums
ZaudÄjumu aplÄse ir galvenais veids, kÄ uzlabot modeļa veiktspÄju. Jums ir jÄpÄrliecinÄs, ka zaudÄjumi ir atbilstoÅ”i problÄmai un ka zaudÄjumu funkcijas ir novÄrtÄtas pareizajÄ skalÄ. Ja izmantojat vairÄk nekÄ vienu zaudÄjumu veidu, pÄrliecinieties, vai tie visi ir vienÄ secÄ«bÄ un pareizi mÄrogoti.
Ir svarÄ«gi pievÄrst uzmanÄ«bu sÄkotnÄjiem zaudÄjumiem. PÄrbaudiet, cik tuvu faktiskais rezultÄts ir sagaidÄmajam rezultÄtam, ja modelis tika sÄkts ar nejauÅ”u minÄjumu. IN Andreja Karpatija darbs liecina:: āPÄrliecinieties, ka saÅemat gaidÄ«to rezultÄtu, kad sÄkat ar nelielu parametru skaitu. LabÄk ir nekavÄjoties pÄrbaudÄ«t datu zudumu (ar regulÄcijas pakÄpi, kas iestatÄ«ta uz nulli). PiemÄram, CIFAR-10 ar Softmax klasifikatoru mÄs sagaidÄm, ka sÄkotnÄjie zaudÄjumi bÅ«s 2.302, jo paredzamÄ difÅ«zÄ varbÅ«tÄ«ba ir 0,1 katrai klasei (jo ir 10 klases), un Softmax zudums ir pareizÄs klases negatÄ«vÄ log iespÄjamÄ«ba. kÄ ā ln (0.1) = 2.302.
BinÄrajÄ piemÄrÄ lÄ«dzÄ«gs aprÄÄ·ins tiek vienkÄrÅ”i veikts katrai no klasÄm. Å eit, piemÄram, ir dati: 20% 0 un 80% 1. Paredzamie 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, ka neironu tÄ«kla svari nav pareizi lÄ«dzsvaroti vai dati nav normalizÄti.
StarprezultÄtu un savienojumu pÄrbaude
Lai atkļūdotu neironu tÄ«klu, ir jÄsaprot tÄ«klÄ notiekoÅ”o procesu dinamika un atseviŔķu starpslÄÅu loma, kad tie ir savienoti. TÄlÄk ir norÄdÄ«tas izplatÄ«tÄkÄs kļūdas, ar kurÄm jÅ«s varat saskarties.
nepareizas izteiksmes gradle atjauninÄjumiem;
svara atjauninÄjumi netiek piemÄroti;
sprÄdzienbÄ«stami gradienti.
Ja gradienta vÄrtÄ«bas ir nulle, tas nozÄ«mÄ, ka optimizÄtÄjÄ mÄcÄ«Å”anÄs Ätrums ir pÄrÄk lÄns vai arÄ« jÅ«s saskaraties ar nepareizu gradienta atjauninÄÅ”anas izteiksmi.
TurklÄt ir jÄuzrauga katra slÄÅa aktivizÄcijas funkciju vÄrtÄ«bas, svars un atjauninÄjumi. PiemÄram, parametru atjauninÄjumu apjoms (svÄrumi un novirzes) jÄbÅ«t 1-e3.
PastÄv parÄdÄ«ba, ko sauc par āDying ReLUā vai "pazÅ«doÅ”a gradienta problÄma", kad ReLU neironi izdos nulli pÄc tam, kad bÅ«s uzzinÄjuÅ”i lielu negatÄ«vu nobÄ«des vÄrtÄ«bu tÄ svariem. Å ie neironi nekad vairs netiek izÅ”auti nevienÄ datu punktÄ.
Varat izmantot gradienta pÄrbaudi, lai identificÄtu Ŕīs kļūdas, tuvinot gradientu, izmantojot skaitlisku pieeju. Ja tas ir tuvu aprÄÄ·inÄtajiem gradientiem, tad atpakaļpavairoÅ”ana tika ieviesta pareizi. Lai izveidotu gradienta pÄrbaudi, skatiet Å”os lieliskos CS231 resursus Å”eit Šø Å”eitKÄ arÄ« nodarbÄ«ba EndrjÅ« Nga par Å”o tÄmu.
SagatavoÅ”anÄs ir vienkÄrÅ”as metodes, kas parÄda apmÄcÄ«tÄ modeļa vispÄrÄjo struktÅ«ru. Tie ietver atseviŔķu neironu tÄ«kla slÄÅu formu vai filtru izvadi un katra slÄÅa parametrus.
Pamatojas uz aktivizÄciju. Tajos mÄs atÅ”ifrÄjam atseviŔķu neironu vai neironu grupu aktivÄcijas, lai izprastu to funkcijas.
Pamatojoties uz gradientiem. Å Ä«s metodes mÄdz manipulÄt ar gradientiem, kas tiek veidoti no modeļa apmÄcÄ«bas uz priekÅ”u un atpakaļ ejÄm (tostarp pamanÄmÄ«bas kartes un klaÅ”u aktivizÄcijas kartes).
Ir vairÄki noderÄ«gi rÄ«ki atseviŔķu slÄÅu aktivizÄciju un savienojumu vizualizÄÅ”anai, piem. ConX Šø Tensorboard.
Parametru diagnostika
Neironu tÄ«kliem ir daudz parametru, kas mijiedarbojas viens ar otru, kas sarežģī optimizÄciju. Faktiski Ŕī sadaļa ir speciÄlistu aktÄ«vas izpÄtes priekÅ”mets, tÄpÄc tÄlÄk sniegtie ieteikumi ir uzskatÄmi tikai par padomiem, izejas punktiem, no kuriem veidot.
Iepakojuma izmÄrs (partijas lielums) ā ja vÄlaties, lai partijas lielums bÅ«tu pietiekami liels, lai iegÅ«tu precÄ«zus kļūdu gradienta aprÄÄ·inus, bet pietiekami mazs, lai stohastiskÄ gradienta nolaiÅ”anÄs (SGD) varÄtu normalizÄt jÅ«su tÄ«klu. Nelieli partiju izmÄri izraisÄ«s strauju konverÄ£enci apmÄcÄ«bas procesa trokÅ”Åa dÄļ un pÄc tam optimizÄcijas grÅ«tÄ«bÄs. Tas ir aprakstÄ«ts sÄ«kÄk Å”eit.
MÄcÄ«bu lÄ«menis - pÄrÄk zems radÄ«s lÄnu konverÄ£enci vai risku iestrÄgt vietÄjos minimumos. TajÄ paÅ”Ä laikÄ augsts mÄcÄ«Å”anÄs Ätrums izraisÄ«s optimizÄcijas novirzes, jo jÅ«s riskÄjat izlÄkt cauri dziļajai, bet Å”aurai zaudÄjuma funkcijas daļai. MÄÄ£iniet izmantot Ätruma plÄnoÅ”anu, lai to samazinÄtu, apmÄcot neironu tÄ«klu. AtjauninÄts ar CS231n Å”ai problÄmai ir veltÄ«ta liela sadaļa.
Gradienta izgrieÅ”anaā ā parametru gradientu apgrieÅ”ana atpakaļpavairoÅ”anas laikÄ pie maksimÄlÄs vÄrtÄ«bas vai robežnormas. NoderÄ«ga, lai novÄrstu jebkÄdus sprÄgstoÅ”us gradientus, ar kuriem jÅ«s varat saskarties treÅ”ajÄ punktÄ.
Partijas normalizÄcija - izmanto, lai normalizÄtu katra slÄÅa ievades datus, kas ļauj atrisinÄt iekÅ”ÄjÄs kovariÄcijas nobÄ«des problÄmu. Ja izmantojat Dropout un Batch Norma kopÄ, iepazÄ«stieties ar Å”o rakstu.
StohastiskÄ gradienta nolaiÅ”anÄs (SGD) ā ir vairÄkas SGD Ŕķirnes, kas izmanto impulsu, adaptÄ«vos mÄcÄ«Å”anÄs Ätrumus un Nesterova metodi. TomÄr nevienam no tiem nav skaidru priekÅ”rocÄ«bu gan mÄcÄ«bu efektivitÄtes, gan vispÄrinÄÅ”anas ziÅÄ (sÄ«kÄka informÄcija Å”eit).
RegularizÄcija - ir ļoti svarÄ«gi, lai izveidotu vispÄrinÄmu modeli, jo tas 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, bÅ«tiski nepalielinot tÄ novirzi. VairÄk sÄ«kÄka informÄcija - Å”eit.
Lai pats novÄrtÄtu visu, jums ir jÄatspÄjo legalizÄcija un paÅ”am jÄpÄrbauda datu zuduma gradients.
IzstÄjos ir vÄl viena tÄ«kla racionalizÄcijas metode, lai novÄrstu sastrÄgumus. ApmÄcÄ«bas laikÄ atbirums tiek veikts, tikai saglabÄjot neirona aktivitÄti ar noteiktu varbÅ«tÄ«bu p (hiperparametrs) vai pretÄjÄ gadÄ«jumÄ iestatot to uz nulli. RezultÄtÄ tÄ«klam katrai apmÄcÄ«bas partijai ir jÄizmanto atŔķirÄ«ga parametru apakÅ”kopa, kas samazina noteiktu parametru izmaiÅas, kas kļūst par dominÄjoÅ”Äm.
SvarÄ«gi! Ja izmantojat gan atlaiÅ”anas, gan pakeÅ”u normalizÄciju, esiet piesardzÄ«gs attiecÄ«bÄ uz Å”o darbÄ«bu secÄ«bu vai pat to izmantoÅ”anu kopÄ. Tas viss joprojÄm tiek aktÄ«vi apspriests un papildinÄts. Å eit ir divas svarÄ«gas diskusijas par Å”o tÄmu vietnÄ Stackoverflow Šø arhÄ«vs.
Darba kontrole
Tas ir par darbplÅ«smu un eksperimentu dokumentÄÅ”anu. Ja neko nedokumentÄjat, varat aizmirst, piemÄram, kÄds mÄcÄ«Å”anÄs Ätrums vai klases svari tiek izmantoti. Pateicoties kontrolei, varat viegli skatÄ«t un reproducÄt iepriekÅ”Äjos eksperimentus. Tas ļauj samazinÄt eksperimentu dublikÄtu skaitu.
TomÄr liela darba apjoma gadÄ«jumÄ manuÄla dokumentÄÅ”ana var kļūt par sarežģītu uzdevumu. Å eit tiek izmantoti tÄdi rÄ«ki kÄ Comet.ml, kas palÄ«dz automÄtiski reÄ£istrÄt datu kopas, koda izmaiÅas, eksperimentÄlo vÄsturi un ražoÅ”anas modeļus, tostarp galveno informÄciju par modeli (hiperparametri, modeļa veiktspÄjas rÄdÄ«tÄji un vides informÄcija).
Neironu tÄ«kls var bÅ«t ļoti jutÄ«gs pret nelielÄm izmaiÅÄm, un tas novedÄ«s pie modeļa veiktspÄjas krituma. Darba izsekoÅ”ana un dokumentÄÅ”ana ir pirmais solis, ko varat spert, lai standartizÄtu savu vidi un modelÄÅ”anu.
Es ceru, ka Ŕī ziÅa var bÅ«t sÄkumpunkts, lai sÄktu neironu tÄ«kla atkļūdoÅ”anu.