Yin aiki tare da cibiyoyin sadarwa na jijiyoyi: jerin abubuwan dubawa don gyara kuskure

Yin aiki tare da cibiyoyin sadarwa na jijiyoyi: jerin abubuwan dubawa don gyara kuskure

Lambar samfuran software na koyon injin galibi yana da rikitarwa kuma yana da ruɗani sosai. Ganowa da kawar da kwari a cikinsa aiki ne mai tarin albarkatu. Ko da mafi sauki hanyoyin sadarwa na jijiya na buƙatar babbar hanya zuwa tsarin gine-ginen cibiyar sadarwa, ƙaddamar da ma'auni, da haɓaka cibiyar sadarwa. Ƙananan kuskure na iya haifar da matsaloli mara kyau.

Wannan labarin yana game da algorithm don gyara hanyoyin sadarwar ku.

Skillbox yana ba da shawarar: Hakikanin hanya Python developer daga karce.

Muna tunatarwa: ga duk masu karatu na "Habr" - rangwame na 10 rubles lokacin yin rajista a kowane kwas na Skillbox ta amfani da lambar talla "Habr".

Algorithm ya ƙunshi matakai biyar:

  • farawa mai sauƙi;
  • tabbatar da asarar;
  • duba matsakaicin sakamako da haɗin kai;
  • bincike na siga;
  • sarrafa aiki.

Idan wani abu ya fi ban sha'awa a gare ku fiye da sauran, zaku iya tsallake waɗannan sassan nan da nan.

Sauƙi farawa

Cibiyar sadarwa na jijiyoyi tare da hadaddun gine-gine, daidaitawa, da mai tsara ƙimar koyo ya fi wahalar cirewa fiye da na yau da kullum. Muna zama ɗan wayo a nan, tun da ma'anar kanta tana da alaƙa a kaikaice da gyara kuskure, amma wannan har yanzu shawara ce mai mahimmanci.

Farawa mai sauƙi shine ƙirƙirar samfurin sauƙaƙan da horar da shi akan saiti ɗaya (ma'ana) na bayanai.

Da farko mun ƙirƙiri samfurin sauƙaƙan

Don farawa da sauri, muna ƙirƙirar ƙaramin cibiyar sadarwa tare da ɓoye guda ɗaya kuma duba cewa komai yana aiki daidai. Sa'an nan kuma sannu a hankali mu rikitar da samfurin, muna duba kowane sabon fasalin tsarinsa (ƙarin Layer, siga, da sauransu), sannan mu ci gaba.

Muna horar da samfurin akan saiti ɗaya (ma'ana) na bayanai

A matsayin saurin duba lafiyar aikin ku, zaku iya amfani da maki ɗaya ko biyu na bayanan horo don tabbatar da ko tsarin yana aiki daidai. Dole ne hanyar sadarwar jijiyoyi ta nuna daidaito 100% a horo da gwaji. Idan ba haka lamarin yake ba, to ko dai samfurin ya yi ƙanƙanta ko kuma kun riga kun sami bug.

Ko da komai yana da kyau, shirya samfurin don lokaci ɗaya ko fiye kafin ci gaba.

Ƙimar hasara

Ƙimar hasara ita ce babbar hanyar da za a daidaita aikin ƙirar. Kuna buƙatar tabbatar da cewa asarar ta dace da matsalar kuma an ƙididdige ayyukan asarar akan ma'auni daidai. Idan kun yi amfani da nau'in asarar fiye da ɗaya, tabbatar da cewa duk tsari iri ɗaya ne kuma an daidaita su daidai.

Yana da mahimmanci a kula da asarar farko. Bincika yadda ainihin sakamakon yake kusa da sakamakon da ake sa ran idan samfurin ya fara da zato bazuwar. IN Ayyukan Andrey Karpathy yana ba da shawara mai zuwa:: “Tabbatar kun sami sakamakon da kuke tsammani lokacin da kuka fara da ƙaramin adadin sigogi. Yana da kyau a duba asarar bayanai nan da nan (tare da matakin daidaitawa da aka saita zuwa sifili). Misali, don CIFAR-10 tare da Softmax classifier, muna tsammanin asarar farko ta zama 2.302 saboda yuwuwar yiwuwar watsawa da ake tsammanin shine 0,1 ga kowane aji (tun da akwai nau'ikan 10) kuma asarar Softmax shine yiwuwar log mara kyau na daidaitaccen aji. kamar -ln (0.1) = 2.302."

Don misalin binary, ana yin lissafin irin wannan kawai don kowane azuzuwan. Anan, misali, shine bayanan: 20% 0's da 80% 1's. Asarar farko da ake tsammanin zata kasance har zuwa -0,2ln (0,5) -0,8ln (0,5) = 0,693147. Idan sakamakon ya fi 1 girma, yana iya nuna cewa ma'aunin cibiyar sadarwar jijiyoyi ba su daidaita daidai ba ko kuma bayanan ba a daidaita su ba.

Duba matsakaicin sakamako da haɗin kai

Don cire hanyar sadarwa na jijiyoyi, wajibi ne a fahimci yanayin tafiyar matakai a cikin hanyar sadarwa da kuma rawar tsaka-tsakin tsaka-tsakin mutum yayin da aka haɗa su. Ga kurakuran gama-gari da za ku iya fuskanta:

  • maganganun da ba daidai ba don sabuntawar gradle;
  • ba a amfani da sabuntawar nauyi;
  • fashe gradients.

Idan darajar gradient ba su da sifili, wannan yana nufin cewa ƙimar koyo a cikin na'urar ingantawa ya yi jinkiri sosai, ko kuma kuna cin karo da kalmar da ba daidai ba don ɗaukaka gradient.

Bugu da kari, shi wajibi ne don saka idanu da dabi'u na kunnawa ayyuka, nauyi da kuma updates na kowane daga cikin yadudduka. Misali, girman sabunta sigogi (masu nauyi da son zuciya) ya kamata 1-e3.

Akwai wani al'amari mai suna "Mutuwar ReLU" ko "matsalar bacewa", lokacin da ReLU neurons za su fitar da sifili bayan sun koyi babban ƙimar ƙima don nauyinsa. Wadannan neurons ba a sake kora su a kowane lokaci a cikin bayanan.

Kuna iya amfani da duban gradient don gano waɗannan kurakurai ta hanyar ƙididdige gradient ta amfani da hanyar lambobi. Idan yana kusa da gradients masu ƙididdigewa, to an aiwatar da aikin baya daidai. Don ƙirƙirar rajistan gradient, bincika waɗannan manyan albarkatu daga CS231 a nan и a nankuma tare da darasi Andrew Nga akan wannan batu.

Faizan Sheikh yana nuna manyan hanyoyi guda uku don ganin hanyar sadarwar jijiya:

  • Gabatarwa hanyoyi ne masu sauƙi waɗanda ke nuna mana tsarin gaba ɗaya na ƙirar horarwa. Waɗannan sun haɗa da fitowar sifofi ko tacewa na kowane yadudduka na cibiyar sadarwar jijiya da sigogin da ke cikin kowane Layer.
  • tushen kunnawa. A cikin su, muna ƙididdige abubuwan da ke kunna jijiya ɗaya ko ƙungiyoyin jijiyoyi don fahimtar ayyukansu.
  • Dangane da gradients. Waɗannan hanyoyin suna ƙoƙarin sarrafa gradients waɗanda aka samo su daga gaba da baya na horon ƙira (ciki har da taswirorin saliency da taswirar kunna aji).

Akwai kayan aiki masu amfani da yawa don ganin abubuwan kunnawa da haɗin kai na kowane yadudduka, misali. ConX и Tensorboard.

Yin aiki tare da cibiyoyin sadarwa na jijiyoyi: jerin abubuwan dubawa don gyara kuskure

Sigar bincike

Cibiyoyin jijiyoyi suna da sigogi da yawa waɗanda ke hulɗa da juna, wanda ke dagula haɓakawa. A gaskiya, wannan sashe shine batun bincike mai aiki da kwararru, don haka shawarwarin da ke ƙasa ya kamata a yi la'akari da su kawai a matsayin shawara, farawa daga abin da za a gina.

Girman kunshin (Girman batch) - Idan kuna son girman tsari ya zama babba don samun daidaitattun ƙididdige ƙididdiga na kuskure, amma ƙarami isa ga zuriyar stochastic gradient (SGD) don daidaita hanyar sadarwar ku. Ƙananan ƙananan ƙananan za su haifar da haɗuwa da sauri saboda hayaniya yayin aikin horo kuma daga bisani zuwa matsalolin ingantawa. An bayyana wannan dalla-dalla a nan.

Yawan koyo - ƙananan ƙananan zai haifar da jinkirin haɗuwa ko haɗarin makale a cikin ƙananan ƙananan gida. A lokaci guda, ƙimar koyo mai girma zai haifar da haɓaka haɓakawa saboda kuna haɗarin tsalle ta cikin zurfi amma kunkuntar ɓangaren aikin asara. Gwada yin amfani da jadawalin gaggawa don rage shi yayin horar da cibiyar sadarwar jijiya. Saukewa: CS231N akwai babban sashe da aka keɓe don wannan matsala.

Yanke gradient  - trimming siga gradients a lokacin backpropagation a matsakaicin darajar ko gefe na al'ada. Yana da amfani don magance duk wani fashewar gradients da zaku iya fuskanta a aya ta uku.

Batch normalization - ana amfani dashi don daidaita bayanan shigarwa na kowane Layer, wanda ke ba mu damar magance matsalar canjin covariate na ciki. Idan kuna amfani da Dropout da Batch Norma tare, duba wannan labarin.

Zuriyar ƙwararrun ƙwararru (SGD) - akwai nau'ikan SGD da yawa waɗanda ke amfani da kuzari, ƙimar koyo mai daidaitawa da hanyar Nesterov. Duk da haka, babu ɗayansu da ke da fa'ida bayyananniya dangane da ingancin koyo da gama gari (cikakkun bayanai a nan).

Tsayawa - yana da mahimmanci don gina samfuri na gabaɗaya, tunda yana ƙara ladabtar da ƙima ko ƙima mai ƙima. Wannan wata hanya ce ta rage bambance-bambancen samfurin ba tare da ƙara yawan son zuciya ba. Kara cikakken bayani - nan.

Don kimanta komai da kanku, kuna buƙatar musaki daidaitawa kuma duba ƙimar asarar bayanai da kanku.

Faduwa wata hanya ce ta daidaita hanyar sadarwar ku don hana cunkoso. A lokacin horo, ƙaddamarwa ana aiwatar da shi ne kawai ta hanyar kiyaye ayyukan neuron tare da takamaiman yuwuwar p (hyperparameter) ko saita shi zuwa sifili a cikin sabanin haka. A sakamakon haka, dole ne cibiyar sadarwa ta yi amfani da nau'i daban-daban na sigogi don kowane batch na horo, wanda ke rage canje-canje a wasu sigogi da suka zama rinjaye.

Muhimmi: Idan kun yi amfani da juzu'i da daidaita tsarin batch, yi hankali game da tsarin waɗannan ayyukan ko ma amfani da su tare. Duk waɗannan har yanzu ana tattaunawa sosai kuma ana ƙara su. Anan akwai muhimman tattaunawa guda biyu akan wannan batu a kan Stackoverflow и rumbun adana bayanai.

Sarrafa aikin

Yana game da rubuta ayyukan aiki da gwaje-gwaje. Idan ba ku rubuta komai ba, kuna iya mantawa, misali, menene ƙimar koyo ko ma'aunin aji ake amfani da su. Godiya ga sarrafawa, zaka iya dubawa da sake haifar da gwaje-gwajen da suka gabata a sauƙaƙe. Wannan yana ba ku damar rage adadin gwaje-gwajen kwafi.

Duk da haka, takardun hannu na iya zama aiki mai wuyar gaske a cikin yanayin babban ƙarar aiki. Wannan shine inda kayan aikin kamar Comet.ml ke shigowa don taimaka muku shiga bayanan bayanan kai tsaye, sauye-sauyen lamba, tarihin gwaji, da samfuran samarwa, gami da mahimman bayanai game da ƙirar ku (masu girman ma'aunin nauyi, ma'aunin aikin ƙira, da bayanan muhalli).

Cibiyar sadarwa na jijiyoyi na iya zama mai matukar damuwa ga ƙananan canje-canje, kuma wannan zai haifar da raguwa a aikin samfurin. Bibiya da rubuta aikinku shine matakin farko da zaku iya ɗauka don daidaita yanayin ku da ƙirar ƙira.

Yin aiki tare da cibiyoyin sadarwa na jijiyoyi: jerin abubuwan dubawa don gyara kuskure

Ina fatan wannan sakon zai iya zama mafari a gare ku don fara lalata hanyar sadarwar ku.

Skillbox yana ba da shawarar:

source: www.habr.com

Add a comment