Miasa amin'ny tambajotra neural: lisitry ny fanamarinana ho an'ny debugging

Miasa amin'ny tambajotra neural: lisitry ny fanamarinana ho an'ny debugging

Ny fehezan-dalΓ na momba ny vokatra lozisialy fianarana milina dia matetika saro-takarina sy mampisafotofoto. Ny fitadiavana sy ny famongorana ireo bibikely ao aminy dia asa be loharanon-karena. Na ny tsotra indrindra aza tambajotra neural feedforward mitaky fomba fiasa matotra amin'ny rafitry ny tambajotra, ny fanombohana ny lanja, ary ny fanatsarana ny tambajotra. Ny fahadisoana kely dia mety hiteraka olana tsy mahafinaritra.

Ity lahatsoratra ity dia momba ny algorithm amin'ny fametahana ny tambajotra neural anao.

Skillbox dia manoro hevitra: Mazava ho azy Mpamorona Python hatramin'ny voalohany.

Mampahatsiahy izahay: ho an'ny mpamaky rehetra ny "Habr" - fihenam-bidy 10 roubles rehefa misoratra anarana amin'ny taranja Skillbox rehetra mampiasa ny code promotional "Habr".

Ny algorithm dia misy dingana dimy:

  • fanombohana mora;
  • fanamafisana ny fatiantoka;
  • fanamarinana ny vokatra sy ny fifandraisana eo anelanelany;
  • diagnostika parameter;
  • fanaraha-maso ny asa.

Raha toa ka misy zavatra mahaliana anao kokoa noho ny ambiny dia azonao atao ny mitsambikina avy hatrany amin'ireo fizarana ireo.

Manomboka mora

Ny tamba-jotra neural miaraka amin'ny maritrano saro-takarina, ny fandrindrana, ary ny fandaharam-potoana ny tahan'ny fianarana dia sarotra kokoa ny debug noho ny mahazatra. Somary saro-takarina ihany isika eto, satria ny teboka dia mifandray ankolaka amin'ny debugging, saingy mbola tolo-kevitra manan-danja ihany izany.

Ny fanombohana tsotra dia ny mamorona modely notsotsotra ary mampiofana azy amin'ny angona iray (teboka).

Voalohany dia mamorona modely tsotra isika

Mba hanombohana haingana dia mamorona tambajotra kely misy sosona miafina tokana isika ary manamarina fa mandeha tsara ny zava-drehetra. Avy eo dia manasarotra tsikelikely ny modely isika, manamarina ny lafiny vaovao amin'ny rafitra misy azy (sosona fanampiny, parameter, sns.), Ary mandroso.

Mampiofana ny modely amin'ny angon-drakitra iray (teboka) izahay

Ho fanamarinana haingana ny tetikasanao, azonao atao ny mampiasa teboka iray na roa ho an'ny fiofanana hanamafisana raha mandeha tsara ny rafitra. Ny tambajotra neural dia tsy maintsy mampiseho ny fahamarinan'ny 100% amin'ny fiofanana sy fitsapana. Raha tsy izany no izy, dia na kely loatra ilay modely na efa manana bug ianao.

Na dia tsara aza ny zava-drehetra, omano ny modely amin'ny vanim-potoana iray na maromaro alohan'ny handrosoana.

Tombanana fatiantoka

Ny fanombanana ny fatiantoka no fomba lehibe indrindra hanadiovana ny fahombiazan'ilay modely. Mila miantoka ianao fa ny fatiantoka dia mifanaraka amin'ny olana ary ny asa fatiantoka dia naoty amin'ny ambaratonga marina. Raha mampiasa karazana fatiantoka mihoatra ny iray ianao, dia ataovy azo antoka fa mitovy ny filaharana sy ny filaharana araka ny tokony ho izy.

Zava-dehibe ny mandinika ny fatiantoka voalohany. Hamarino hoe hatraiza ny tena vokatra marina amin'ny vokatra andrasana raha nanomboka tamin'ny vinavina kisendrasendra ny modely. IN Ny asan'i Andrey Karpathy dia manolotra izao manaraka izao:: β€œAtaovy azo antoka fa mahazo ny vokatra antenainao ianao rehefa manomboka amin'ny mari-pamantarana vitsivitsy. Tsara kokoa ny manamarina avy hatrany ny fahaverezan'ny angon-drakitra (miaraka amin'ny haavon'ny regularization napetraka ho aotra). Ohatra, ho an'ny CIFAR-10 miaraka amin'ny fanasokajiana Softmax, manantena izahay fa ho 2.302 ny fatiantoka voalohany satria 0,1 ho an'ny kilasy tsirairay ny fatiantoka andrasana amin'ny kilasy tsirairay (satria misy kilasy 10) ary ny fahaverezan'ny Softmax dia ny mety ho lozisialy ratsy amin'ny kilasy marina. toy ny βˆ’ ln (0.1) = 2.302.”

Ho an'ny ohatra mimari-droa, ny kajy mitovitovy amin'izany dia natao fotsiny ho an'ny kilasy tsirairay. Eto, ohatra, ny angona: 20% 0 sy 80% 1. Ny fatiantoka voalohany andrasana dia hahatratra -0,2ln (0,5) -0,8ln (0,5) = 0,693147. Raha mihoatra ny 1 ny vokatra, dia mety manondro fa tsy voalanjalanja tsara ny lanjan'ny tambajotra neural na tsy ara-dalΓ na ny angon-drakitra.

Fanamarinana ny valin'ny intermediate sy ny fifandraisana

Mba hanesorana ny tamba-jotra neural, ilaina ny mahatakatra ny dinamikan'ny dingana ao anatin'ny tambajotra sy ny andraikitry ny sosona mpanelanelana tsirairay rehefa mifandray izy ireo. Ireto ny lesoka mahazatra mety ho hitanao:

  • fitenenana diso ho an'ny fanavaozana gradle;
  • tsy ampiharina ny fanavaozana lanja;
  • mipoitra gradients.

Raha aotra ny soatoavina gradient, midika izany fa miadana loatra ny tahan'ny fianarana ao amin'ny optimizer, na sendra fitenenana diso ianao amin'ny fanavaozana ny gradient.

Ankoatr'izay, ilaina ny manara-maso ny soatoavin'ny asa fampahavitrihana, ny lanjany ary ny fanavaozana ny tsirairay amin'ireo sosona. Ohatra, ny halehiben'ny fanavaozana paramètre (lanja sy fitongilanana) tokony 1-e3.

Misy tranga antsoina hoe "Dying ReLU" na "olana gradient manjavona", rehefa hamoaka aotra ny neurons ReLU rehefa avy nianatra sanda miiba miiba lehibe ho an'ny lanjany. Ireo neurons ireo dia tsy voaroaka intsony na oviana na oviana amin'ny angon-drakitra.

Azonao atao ny mampiasa fisavana gradient hamantarana ireo lesoka ireo amin'ny alΓ lan'ny fanombanana ny gradient amin'ny fampiasana fomba fiasa nomerika. Raha akaiky ny gradients kajy, dia nampiharina tsara ny backpropagation. Mba hamoronana fisavana gradient dia jereo ireto loharano lehibe ireto avy amin'ny CS231 eto ΠΈ etoary koa miaraka lesona Andrew Nga momba ity lohahevitra ity.

Faizan Sheikh dia manondro fomba telo lehibe amin'ny fijerena ny tambajotra neural:

  • Ny preliminaries dia fomba tsotra izay mampiseho amintsika ny rafitra ankapobeny amin'ny modely voaofana. Anisan'izany ny famoahana endrika na sivana amin'ny sosona tsirairay amin'ny tambajotra neural sy ny masontsivana ao anatin'ny sosona tsirairay.
  • Miorina amin'ny fampahavitrihana. Ao amin'izy ireo, dia mamaritra ny fampahavitrihana ny neurons tsirairay na vondrona neurons isika mba hahatakarana ny asany.
  • Mifototra amin'ny gradients. Ireo fomba ireo dia mazΓ na manodinkodina ny gradient izay miforona avy amin'ny lalana mandroso sy mihemotra amin'ny fanofanana modely (anisan'izany ny sarintany saliency sy ny sarintany fampahavitrihana kilasy).

Misy fitaovana mahasoa maromaro ahafahana mijery ny fampahavitrihana sy ny fampifandraisana ny sosona tsirairay, ohatra. ConX ΠΈ Tensorboard.

Miasa amin'ny tambajotra neural: lisitry ny fanamarinana ho an'ny debugging

Parameter diagnostics

Ny tambajotra neural dia manana mari-pamantarana maro mifandray amin'ny tsirairay, izay manasarotra ny fanatsarana. Raha ny marina, ity fizarana ity dia lohahevitra fikarohana mavitrika ataon'ny manam-pahaizana manokana, ka ny soso-kevitra etsy ambany dia tokony ho raisina ho toy ny toro-hevitra ihany, manomboka amin'ny fananganana.

Haben'ny fonosana (haben'ny batch) - Raha tianao ho lehibe ny haben'ny batch mba hahazoana tombantomban'ny gradient lesoka marina, fa kely ampy ho an'ny fidinana gradient stochastic (SGD) mba hanamafisana ny tambajotranao. Ny haben'ny batch kely dia hitarika amin'ny fifandonana haingana noho ny tabataba mandritra ny dingan'ny fanofanana ary avy eo amin'ny fahasarotana amin'ny fanatsarana. Izany dia voalaza amin'ny antsipiriany bebe kokoa eto.

Ny tahan'ny fianarana - Ny ambany loatra dia hitarika ho amin'ny fivondronana miadana na mety hikorontana amin'ny minima eo an-toerana. Amin'izay fotoana izay ihany koa, ny tahan'ny fianarana ambony dia hiteraka fahasamihafan'ny fanatsarana satria mety hitsambikina amin'ny ampahany lalina nefa tery amin'ny asa fatiantoka ianao. Andramo ny fampiasana fandaharam-potoana haingana mba hampihenana izany eo am-panaofana ny tambajotra neural. Vaovao mifandraika amin'ny CS231N misy fizarana lehibe natokana ho an'ity olana ity.

Clipping gradientβ€Š - manapaka ny gradients paramΓ¨tre mandritra ny backpropagation amin'ny sanda ambony indrindra na norma marginal. Mahasoa amin'ny famahana olana izay mipoitra mety ho hitanao amin'ny teboka telo.

Normalization batch - ampiasaina hamerenana ny angon-drakitra fidirana isaky ny sosona, izay ahafahantsika mamaha ny olan'ny fiovan'ny covariate anatiny. Raha mampiasa Dropout sy Batch Norma miaraka ianao, jereo ity lahatsoratra ity.

Fidinana gradient Stochastic (SGD) - misy karazany maromaro ny SGD izay mampiasa ny fotoana, ny tahan'ny fianarana adaptive ary ny fomba Nesterov. Na izany aza, tsy misy amin'izy ireo manana tombony mazava eo amin'ny lafiny fahaiza-mianatra sy ny generalization (antsipiriany eto).

Regularization - zava-dehibe amin'ny fananganana modely azo ankapobe, satria manampy sazy ho an'ny fahasarotan'ny modely na ny soatoavina faran'izay henjana. Izany dia fomba iray hampihenana ny variana modely nefa tsy mampitombo be ny fitongilanana. Bebe kokoa fampahalalana amin'ny antsipiriany - eto.

Mba hanombanana ny zava-drehetra dia mila manaisotra ny fandrindrana ianao ary manamarina ny gradient very data.

MialΓ  dia fomba iray hafa hanamafisana ny tambajotranao mba hisorohana ny fitohanana. Mandritra ny fiofanana, ny fialana dia tsy atao afa-tsy amin'ny fitazonana ny asan'ny neuron miaraka amin'ny mety ho p (hyperparameter) na mametraka azy ho aotra amin'ny tranga mifanohitra. Vokatr'izany, ny tambajotra dia tsy maintsy mampiasa sombim-pamantarana hafa ho an'ny andiana fanofanana tsirairay, izay mampihena ny fiovan'ny mari-pamantarana sasany izay lasa manjaka.

Zava-dehibe: Raha toa ianao ka mampiasa ny fandaozana sy ny batch normalization, mitandrema amin'ny filaharan'ireo hetsika ireo na mampiasa azy ireo miaraka. Izany rehetra izany dia mbola mazoto miady hevitra sy manampy. Ireto misy dinika roa manan-danja momba ity lohahevitra ity amin'ny Stackoverflow ΠΈ tahiry.

Fanaraha-maso ny asa

Mikasika ny fandraketana ny fizotran'ny asa sy ny andrana izany. Raha tsy mirakitra na inona na inona ianao dia mety ho hadino, ohatra, ny tahan'ny fianarana na ny lanjan'ny kilasy ampiasaina. Noho ny fanaraha-maso dia afaka mijery sy mamerina mora foana ny fanandramana teo aloha ianao. Izany dia ahafahanao mampihena ny isan'ny andrana dika mitovy.

Na izany aza, ny antontan-taratasy amin'ny tanana dia mety ho lasa asa sarotra raha misy asa be dia be. Eo no idiran'ny fitaovana toa an'i Comet.ml hanampy anao hisoratra anarana ho azy ireo angon-drakitra, fanovana kaody, tantara andrana ary maodely famokarana, ao anatin'izany ny fampahalalana fototra momba ny maodelinao (hyperparameters, metrika fampisehoana modely, ary fampahalalana momba ny tontolo iainana).

Ny tambajotra neural dia mety ho saro-pady amin'ny fiovana kely, ary izany dia hitarika amin'ny fihenan'ny fampisehoana modely. Ny fanaraha-maso sy ny fandraketana ny asanao no dingana voalohany azonao atao mba hanamafisana ny tontolo iainanao sy ny fanaovana modely.

Miasa amin'ny tambajotra neural: lisitry ny fanamarinana ho an'ny debugging

Manantena aho fa ity lahatsoratra ity dia mety ho fanombohana anao hanombohana ny fametahana ny tambajotra neural anao.

Skillbox dia manoro hevitra:

Source: www.habr.com

Add a comment