Algorithm ya kufunza mtandao wa neva wa safu nyingi kwa kutumia mbinu ya uenezaji nyuma. Njia ya uenezaji wa nyuma: hisabati, mifano, nambari

Jisajili
Jiunge na jumuiya ya "koon.ru"!
Kuwasiliana na:

Mbinu ya uenezaji nyuma

Njia ya uenezi wa nyuma ni njia ya kufundisha perceptron ya multilayer, moja ya chaguzi za kujifunza kusimamiwa. Njia hiyo ilielezewa kwanza na Paul J. Verbos. Zaidi ya maendeleo kwa kiasi kikubwa katika 1986 na David I. Rumelhart, J. E. Hinton na Ronald J. Williams. Hii ni algorithm ya kurudia gradient ambayo hutumiwa kupunguza hitilafu ya uendeshaji ya perceptron ya multilayer na kupata pato linalohitajika.

Wazo kuu la njia hii ni kueneza ishara za makosa kutoka kwa matokeo ya mtandao hadi kwa pembejeo zake, kwa mwelekeo kinyume na uenezi wa moja kwa moja wa ishara katika operesheni ya kawaida. Bartsev na Okhonin mara moja walitoa njia ya jumla(“kanuni ya uwili”), inatumika kwa tabaka pana la mifumo, ikijumuisha mifumo iliyochelewa, mifumo iliyosambazwa, n.k.

Mbinu ni marekebisho njia ya classical kushuka kwa gradient.

Algorithm ya uenezi nyuma

Wacha tuwe na mtandao wa usambazaji wa safu nyingi na vigawo vya uzani nasibu. Kuna seti fulani ya mafunzo inayojumuisha jozi za pembejeo za mtandao - matokeo unayotaka. Acha Y ionyeshe thamani halisi ya pato la mtandao wetu, ambayo mwanzoni ni karibu nasibu kwa sababu ya kubahatisha kwa mgawo wa uzani.

Mafunzo yanajumuisha kuchagua mgawo wa uzani kwa njia ya kupunguza utendakazi fulani. Kama lengo la kukokotoa, zingatia jumla ya makosa ya mtandao yenye mraba kwa kutumia mifano kutoka kwa seti ya mafunzo.

iko wapi pato halisi la safu ya pato ya N-th ya mtandao kwa niuroni ya p-th kwenye mfano wa mafunzo ya j-th, pato linalohitajika. Hiyo ni, kwa kupunguza kazi kama hiyo, tunapata suluhisho kwa kutumia njia ndogo ya mraba.

Kwa kuwa migawo ya uzani huingia kwenye utegemezi bila mstari, tutatumia njia ya mteremko mwinuko zaidi kupata kiwango cha chini zaidi. Hiyo ni, katika kila hatua ya kujifunza tutabadilisha coefficients ya uzani kulingana na formula

iko wapi mgawo wa uzito wa niuroni ya j-th ya safu ya n-th kwa mawasiliano na niuroni ya i-th ya safu ya (n-1).

Parameta inaitwa parameter ya kiwango cha kujifunza.

Kwa hivyo, inahitajika kuamua derivatives ya sehemu ya kazi ya lengo E juu ya coefficients zote za uzani wa mtandao. Kulingana na sheria za kutofautisha kazi tata

pato liko wapi, na ni jumla iliyopimwa ya pembejeo za niuroni ya j-th ya safu ya n-th. Kumbuka kwamba, kwa kujua kazi ya uanzishaji, tunaweza kuhesabu. Kwa mfano, kwa sigmoid thamani hii itakuwa sawa na

Jambo la tatu / sio chochote zaidi ya pato la neuroni ya i-th ya safu ya (n-1)-th, ambayo ni.

Baadhi ya derivatives ya utendakazi lengwa kwa heshima na uzani wa niuroni za safu ya pato sasa zinaweza kuhesabiwa kwa urahisi. Kutofautisha (1) kwa na kwa kuzingatia (3) na (5) tutakuwa nayo

Wacha tuanzishe nukuu

Kisha kwa neurons ya safu ya pato

Kwa uzito wa neuroni tabaka za ndani hatuwezi kuandika mara moja kipengele cha kwanza kutoka (4) ni sawa na nini, lakini kinaweza kuwakilishwa kama ifuatavyo:

Kumbuka kuwa katika formula hii mambo mawili ya kwanza sio zaidi ya. Kwa hivyo, kwa kutumia (9) inawezekana kuelezea maadili ya neurons ya safu ya nth kulingana na neurons ya safu ya (n+1). Kwa kuwa kwa safu ya mwisho ni rahisi kuhesabu kwa (8), inawezekana kutumia formula ya kujirudia

pata maadili kwa niuroni zote za tabaka zote.

Mwishowe, fomula (2) ya kurekebisha mgawo wa uzani inaweza kuandikwa kwa fomu

Kwa hivyo, algorithm kamili ya kufunza mtandao wa neva kwa kutumia algorithm ya uenezi nyuma imeundwa kama ifuatavyo.

Tunapeana maadili ya awali bila mpangilio kwa coefficients zote za uzani wa mtandao. Katika kesi hii, mtandao utafanya mabadiliko ya nasibu ya ishara za pembejeo na maadili ya kazi ya lengo (1) yatakuwa kubwa.

Lisha mojawapo ya vekta za ingizo kutoka seti ya mafunzo hadi ingizo la mtandao. Kuhesabu maadili ya pato la mtandao, huku ukikumbuka maadili ya kila moja ya neurons.

Rekebisha uzito wa mtandao:

Tathmini ya Utendaji wa Mtandao

Katika hali ambapo inawezekana kutathmini utendakazi wa mtandao, mafunzo ya mitandao ya neva inaweza kuwakilishwa kama tatizo la uboreshaji. Kutathmini maana yake ni kuashiria kiasi kama mtandao unatatua kazi ulizopewa vizuri au hafifu. Kwa kusudi hili, kazi ya tathmini inaundwa. Kama sheria, inategemea kwa uwazi juu ya ishara za pato za mtandao na kwa uwazi (kupitia operesheni) kwenye vigezo vyake vyote. Mfano rahisi na wa kawaida zaidi wa tathmini ni jumla ya umbali wa mraba kutoka kwa mawimbi ya matokeo ya mtandao hadi maadili yanayohitajika:

iko wapi thamani inayohitajika ya ishara ya pato.

Njia ya angalau mraba sio kila wakati chaguo bora tathmini. Ubunifu wa uangalifu wa kazi ya tathmini inaruhusu mtu kuongeza ufanisi wa mafunzo ya mtandao kwa mpangilio wa ukubwa, na pia kupata. Taarifa za ziada- "kiwango cha kujiamini" cha mtandao katika jibu lililotolewa.

Hasara za algorithm

Licha ya nyingi maombi yenye mafanikio uenezaji wa nyuma sio tiba. Kinacholeta shida zaidi ni mchakato mrefu wa kujifunza. KATIKA kazi ngumu Inaweza kuchukua siku au hata wiki kutoa mafunzo kwa mtandao, au inaweza isijifunze kabisa. Sababu inaweza kuwa mojawapo ya yale yaliyoelezwa hapa chini.

Kupooza kwa Mtandao

Wakati wa mchakato wa mafunzo ya mtandao, maadili ya uzito yanaweza kuwa makubwa sana kama matokeo ya urekebishaji. Hii inaweza kusababisha niuroni zote au nyingi kufanya kazi kwa thamani kubwa sana za OUT, katika eneo ambalo derivative ya kazi ya mkato ni ndogo sana. Kwa kuwa hitilafu iliyorejeshwa wakati wa mchakato wa kujifunza ni sawia na derivative hii, mchakato wa kujifunza unaweza kuganda kivitendo. Kwa mtazamo wa kinadharia, shida hii inaeleweka vibaya. Hii kawaida huepukwa kwa kupunguza saizi ya hatua h, lakini hii huongeza muda wa mafunzo. Heuristics mbalimbali zimetumika kuzuia au kupona kutokana na kupooza, lakini kwa sasa zinaweza tu kuchukuliwa kuwa majaribio.

Minima ya ndani

Uenezaji wa nyuma hutumia aina ya asili ya gradient, yaani, inashuka chini ya uso wa makosa, ikiendelea kurekebisha uzani kuelekea kiwango cha chini. Uso wa hitilafu wa mtandao changamano ni mbaya sana na una vilima, mabonde, mikunjo na mifereji ya maji katika nafasi ya juu-dimensional. Mtandao unaweza kuanguka katika kiwango cha chini cha ndani (bonde la kina kifupi) wakati kuna kiwango cha chini zaidi karibu. Katika kiwango cha chini cha eneo, maelekezo yote yanaelekeza juu, na mtandao hauwezi kutoroka kutoka humo. Ugumu kuu katika mafunzo ya mitandao ya neural ni njia haswa za kutoroka kutoka kwa minima ya kawaida: kila wakati ukiacha kiwango cha chini cha kawaida, kiwango cha chini kinachofuata hutafutwa tena kwa kutumia njia ile ile ya uenezaji wa makosa hadi haiwezekani tena kupata njia ya kutoka. ni.

Ukubwa wa hatua

Uchunguzi wa makini wa uthibitisho wa muunganisho unaonyesha kuwa masahihisho ya uzito yanachukuliwa kuwa yasiyo na kikomo. Ni wazi kwamba hii haiwezekani katika mazoezi, kwa kuwa inaongoza kwa muda usio na mwisho wa kujifunza. Saizi ya hatua inapaswa kuchukuliwa kama kikomo. Ikiwa ukubwa wa hatua umewekwa na ni ndogo sana, basi muunganisho ni polepole sana; ikiwa ni fasta na kubwa sana, kupooza au kutokuwa na utulivu wa mara kwa mara kunaweza kutokea. Ni bora kuongeza hatua hadi uboreshaji wa makadirio katika mwelekeo fulani wa antigradient itaacha na kuipunguza ikiwa uboreshaji kama huo haufanyiki. P. D. Wasserman alielezea algoriti ya uteuzi wa hatua ambayo hurekebisha kiotomati ukubwa wa hatua wakati wa mchakato wa kujifunza. Kitabu cha A. N. Gorban kinapendekeza teknolojia pana ya kuboresha ujifunzaji.

Inapaswa pia kuzingatiwa kuwa mtandao unaweza kufundishwa tena, ambayo ni uwezekano mkubwa wa matokeo ya muundo usio sahihi wa topolojia yake. Wakati pia kiasi kikubwa neurons, uwezo wa mtandao wa kujumlisha habari umepotea. Seti nzima ya picha zinazotolewa kwa mafunzo zitajifunza na mtandao, lakini picha zingine zozote, hata zile zinazofanana sana, zinaweza kuainishwa vibaya.

Mazingira ya maendeleo na sababu za kuichagua

Programu itatengenezwa katika lugha ya programu ya C# kwa mfumo wa .NETFramework4.0 katika mazingira ya ukuzaji ya MicrosoftVisualStudio 2010. Vipande vya msimbo vinavyohitaji mahesabu makubwa hutengenezwa katika C++. MSVisualStudio 2010 inajumuisha seti ya kina ya vipengele vipya na vilivyoboreshwa ambavyo hurahisisha kila hatua ya mchakato wa ukuzaji kutoka kwa muundo hadi kupelekwa.

MicrosoftVisualStudio 2010 Ultimate - Mazingira Iliyounganishwa zana na miundombinu ya seva ambayo hurahisisha mchakato mzima wa ukuzaji wa programu. Programu za biashara hujengwa kwa kutumia michakato bora, inayotabirika na inayoweza kubinafsishwa. Uchanganuzi wa kina huongeza uwazi na ufuatiliaji wa kila kitu mzunguko wa maisha maombi. Iwe inaunda masuluhisho mapya au kuboresha yaliyopo, usanidi unapatikana kwa kutumia prototipu zenye nguvu, muundo wa usanifu na zana za ukuzaji ambazo hukuwezesha kuunda programu za majukwaa na teknolojia mbalimbali, kama vile kompyuta ya wingu na uchakataji sambamba. Uwezo wa juu wa uratibu shughuli za pamoja pamoja na zana za majaribio zilizojumuishwa, za ubunifu na utatuzi zitaboresha tija ya timu na kutoa masuluhisho ya hali ya juu na ya bei ya chini.

Utengenezaji wa programu katika MicrosoftVisualStudio2010 Ultimate katika C# na mfumo wa .NETFramework4.0 unafanywa kwa kutumia programu inayolenga kitu na programu ya kuona.

Makosa kutoka kwa matokeo ya mtandao kwa pembejeo zake, kwa mwelekeo kinyume na uenezi wa mbele wa ishara katika operesheni ya kawaida. Bartsev na Okhonin mara moja walipendekeza njia ya jumla ("kanuni ya pande mbili"), inayotumika kwa tabaka pana la mifumo, pamoja na mifumo iliyochelewa, mifumo iliyosambazwa, n.k.

Ili kuweza kutumia njia ya uenezaji nyuma, kazi ya uhamishaji ya niuroni lazima itofautishwe. Njia hiyo ni marekebisho ya njia ya asili ya kushuka kwa gradient.

Kazi za uanzishaji wa Sigmoid

Vitendaji vinavyotumika sana vya kuwezesha ni aina zifuatazo sigmoid:

Utendakazi wa Fermi (sigmoid kielelezo):

Sigmoid ya busara:

Tanjiti ya hyperbolic:

,

ambapo s ni pato la kiarifu cha niuroni na ni hali isiyobadilika kiholela.

Hesabu ya sigmoid ya busara inahitaji muda mdogo zaidi wa CPU, ikilinganishwa na sigmoid zingine. Kuhesabu tanjenti ya hyperbolic kunahitaji mizunguko mingi ya kichakataji. Ikilinganishwa na kazi za uanzishaji wa kizingiti, sigmoids huhesabiwa polepole sana. Ikiwa baada ya kufupisha katika kazi ya kizingiti unaweza kuanza mara moja kulinganisha na thamani fulani (kizingiti), basi katika kesi ya kazi ya uanzishaji wa sigmoid unahitaji kuhesabu sigmoid (kutumia muda katika bora kesi scenario katika shughuli tatu: kuchukua moduli, kuongeza na kugawanya), na kisha tu kulinganisha na thamani ya kizingiti (kwa mfano, sifuri). Ikiwa tunadhania kwamba shughuli zote rahisi zaidi zinahesabiwa na processor katika takriban wakati huo huo, basi kazi ya kitendakazi cha kuwezesha sigmoidal baada ya majumuisho (ambayo itachukua muda sawa) itakuwa polepole kuliko kuwezesha kizingiti kama 1:4.

Kazi ya tathmini ya mtandao

Katika hali ambapo inawezekana kutathmini utendakazi wa mtandao, mafunzo ya mitandao ya neva inaweza kuwakilishwa kama tatizo la uboreshaji. Kutathmini maana yake ni kuashiria kiasi kama mtandao unatatua kazi ulizopewa vizuri au hafifu. Kwa kusudi hili, kazi ya tathmini inaundwa. Kama sheria, inategemea kwa uwazi juu ya ishara za pato za mtandao na kwa uwazi (kupitia operesheni) kwenye vigezo vyake vyote. Mfano rahisi na wa kawaida zaidi wa tathmini ni jumla ya umbali wa mraba kutoka kwa mawimbi ya matokeo ya mtandao hadi maadili yanayohitajika:

,

iko wapi thamani inayohitajika ya ishara ya pato.

Maelezo ya algorithm

Usanifu wa Multilayer Perceptron

Algorithm ya uenezi wa nyuma inatumika kwa perceptron ya multilayer. Mtandao una pembejeo nyingi, matokeo mengi, na nodi nyingi za ndani. Wacha tuhesabu nodi zote (pamoja na pembejeo na matokeo) na nambari kutoka 1 hadi N (kuhesabu nambari zinazoendelea, bila kujali topolojia ya tabaka). Hebu tuonyeshe kwa uzito uliosimama kwenye makali ya kuunganisha nodi za i-th na j-th, na kwa pato la node ya i-th. Ikiwa tunajua mfano wa mafunzo (majibu sahihi ya mtandao,), basi kazi ya makosa iliyopatikana kwa kutumia njia ndogo ya mraba inaonekana kama hii:

Jinsi ya kurekebisha uzito? Tutatumia asili ya gradient ya stochastic, ambayo ni, tutarekebisha uzani baada ya kila mfano wa mafunzo na, kwa hivyo, "kusonga" katika nafasi ya uzani wa anuwai. Ili "kufikia" kosa la chini, tunahitaji "kusonga" kwa mwelekeo kinyume na gradient, ambayo ni, kulingana na kila kikundi cha majibu sahihi, ongeza kwa kila uzito.

,

iko wapi kizidishi kinachobainisha kasi ya "mwendo".

Derivative imehesabiwa kama ifuatavyo. Hebu kwanza , yaani, uzito tunaopendezwa nao, uingie neuron ya ngazi ya mwisho. Kwanza, tunaona kuwa inathiri pato la mtandao tu kama sehemu ya jumla, ambapo jumla inachukuliwa juu ya pembejeo za nodi ya j-th. Ndiyo maana

Vile vile, inathiri kosa la jumla tu ndani ya pato la node ya jth (kumbuka kuwa hii ni pato la mtandao mzima). Ndiyo maana

Kama jth nodi- si katika ngazi ya mwisho, basi ina exits; hebu tuwaashirie kwa Watoto(j). Kwa kesi hii

, .

Vizuri - hii ni marekebisho sawa, lakini imehesabiwa kwa node ya ngazi inayofuata, tutaashiria kwa - kutoka kwayo hutofautiana kwa kutokuwepo kwa kuzidisha. Kwa kuwa tumejifunza kuhesabu marekebisho kwa nodes ya ngazi ya mwisho na kueleza marekebisho kwa node zaidi kiwango cha chini kupitia marekebisho ya juu, unaweza tayari kuandika algorithm. Ni kwa sababu ya kipengele hiki cha kuhesabu marekebisho ambayo algorithm inaitwa algorithm ya uenezi wa nyuma(kueneza nyuma). Muhtasari mfupi wa kazi iliyofanywa:

  • kwa nodi ya kiwango cha mwisho
  • kwa nodi ya mtandao wa ndani
  • kwa nodi zote

Algorithm inayosababisha imewasilishwa hapa chini. Kama pembejeo kwa algorithm, pamoja na vigezo maalum, ni muhimu pia kuwasilisha muundo wa mtandao katika muundo fulani. Katika mazoezi ni sana matokeo mazuri onyesha mitandao ya muundo rahisi, unaojumuisha viwango viwili vya neurons - ngazi iliyofichwa (vitengo vilivyofichwa) na neurons za pato (vitengo vya pato); kila pembejeo ya mtandao imeunganishwa na neurons zote zilizofichwa, na matokeo ya kazi ya kila neuroni iliyofichwa inalishwa kwa pembejeo ya kila neurons ya pato. Katika kesi hii, inatosha kusambaza idadi ya neurons ya kiwango kilichofichwa kama pembejeo.

Algorithm

Algorithm: BackPropagation

iko wapi mgawo wa inertial kwa kulainisha kuruka mkali wakati wa kusonga kando ya uso wa kazi ya lengo

Ufafanuzi wa hisabati wa mafunzo ya mtandao wa neva

Katika kila marudio ya algorithm ya uenezi wa nyuma, uzani wa mtandao wa neva hurekebishwa ili kuboresha suluhisho la mfano mmoja. Kwa hivyo, wakati wa mchakato wa kujifunza, shida za uboreshaji wa kigezo kimoja hutatuliwa kwa mzunguko.

Mafunzo ya mtandao wa Neural yana sifa ya mapungufu manne ambayo hutofautisha mafunzo ya mtandao wa neva na matatizo ya jumla ya uboreshaji: idadi ya vigezo vya unajimu, hitaji la usawa wa juu wakati wa mafunzo, asili ya vigezo vingi vya shida zinazotatuliwa, na hitaji la kupata suluhisho. eneo pana la kutosha ambalo maadili ya kazi zote zilizopunguzwa ni karibu na ndogo. Vinginevyo, tatizo la kujifunza kwa ujumla linaweza kutengenezwa kama tatizo la kupunguza alama. Tahadhari katika kifungu kilichopita ("kawaida") ni kwa sababu ya ukweli kwamba kwa kweli hatujui na hatutawahi kujua kazi zote zinazowezekana za mitandao ya neva, na labda mahali pengine bila kujulikana kuna kazi ambazo haziwezi kupunguzwa kupunguza. makisio. Kupunguza makadirio ni shida ngumu: kuna idadi ya vigezo vya unajimu (kwa mifano ya kawaida inayotekelezwa kwenye Kompyuta - kutoka 100 hadi 1,000,000), unafuu wa kurekebisha (grafu ya tathmini kama kazi ya vigezo vilivyorekebishwa) ni ngumu na inaweza kuwa na minima nyingi za ndani.

Hasara za algorithm

Licha ya matumizi mengi yaliyofanikiwa ya uenezaji wa nyuma, sio tiba. Kinacholeta shida zaidi ni mchakato mrefu wa kujifunza. Katika matatizo magumu, inaweza kuchukua siku au hata wiki kutoa mafunzo kwa mtandao, au huenda usijifunze kabisa. Sababu inaweza kuwa mojawapo ya yale yaliyoelezwa hapa chini.

Kupooza kwa Mtandao

Wakati wa mchakato wa mafunzo ya mtandao, maadili ya uzito yanaweza kuwa makubwa sana kama matokeo ya urekebishaji. Hii inaweza kusababisha niuroni zote au nyingi kufanya kazi kwa thamani kubwa sana za OUT, katika eneo ambalo derivative ya kazi ya mkato ni ndogo sana. Kwa kuwa hitilafu iliyorejeshwa wakati wa mchakato wa kujifunza ni sawia na derivative hii, mchakato wa kujifunza unaweza kuganda kivitendo. Kwa mtazamo wa kinadharia, shida hii inaeleweka vibaya. Hii kawaida huepukwa kwa kupunguza ukubwa wa hatua η, lakini hii huongeza muda wa mafunzo. Heuristics mbalimbali zimetumika kuzuia au kupona kutokana na kupooza, lakini kwa sasa zinaweza tu kuchukuliwa kuwa majaribio.

Minima ya ndani

Uenezaji wa nyuma hutumia aina ya asili ya gradient, yaani, inashuka chini ya uso wa makosa, ikiendelea kurekebisha uzani kuelekea kiwango cha chini. Uso wa hitilafu wa mtandao changamano ni mbaya sana na una vilima, mabonde, mikunjo na mifereji ya maji katika nafasi ya juu-dimensional. Mtandao unaweza kuanguka katika kiwango cha chini cha ndani (bonde la kina kifupi) wakati kuna kiwango cha chini zaidi karibu. Katika kiwango cha chini cha eneo, maelekezo yote yanaelekeza juu, na mtandao hauwezi kutoroka kutoka humo. Ugumu kuu katika mafunzo ya mitandao ya neural ni njia haswa za kutoroka kutoka kwa minima ya kawaida: kila wakati ukiacha kiwango cha chini cha kawaida, kiwango cha chini kinachofuata hutafutwa tena kwa kutumia njia ile ile ya uenezaji wa makosa hadi haiwezekani tena kupata njia ya kutoka. ni.

Ukubwa wa hatua

Uchunguzi wa makini wa uthibitisho wa muunganisho unaonyesha kuwa masahihisho ya uzito yanachukuliwa kuwa yasiyo na kikomo. Ni wazi kwamba hii haiwezekani katika mazoezi, kwa kuwa inaongoza kwa muda usio na mwisho wa kujifunza. Saizi ya hatua inapaswa kuchukuliwa kama kikomo. Ikiwa ukubwa wa hatua umewekwa na ni ndogo sana, basi muunganisho ni polepole sana; ikiwa ni fasta na kubwa sana, kupooza au kutokuwa na utulivu wa mara kwa mara kunaweza kutokea. Ni bora kuongeza hatua hadi uboreshaji wa makadirio katika mwelekeo fulani wa antigradient itaacha na kuipunguza ikiwa uboreshaji kama huo haufanyiki. P. D. Wasserman alielezea algoriti ya uteuzi wa hatua ambayo hurekebisha kiotomati ukubwa wa hatua wakati wa mchakato wa kujifunza. Kitabu cha A. N. Gorban kinapendekeza teknolojia pana ya kuboresha ujifunzaji.

Inapaswa pia kuzingatiwa kuwa mtandao unaweza kufundishwa tena, ambayo ni uwezekano mkubwa wa matokeo ya muundo usio sahihi wa topolojia yake. Kwa niuroni nyingi sana, uwezo wa mtandao wa kujumlisha taarifa hupotea. Seti nzima ya picha zinazotolewa kwa mafunzo zitajifunza na mtandao, lakini picha zingine zozote, hata zile zinazofanana sana, zinaweza kuainishwa vibaya.

Angalia pia

  • Algorithm ya kasi ya gradient

Fasihi

  1. Wasserman F. Neurocomputing: Nadharia na Mazoezi. - M.: "Mir", 1992.
  2. Khaikin S. Mitandao ya Neural: Kozi kamili. Kwa. kutoka kwa Kiingereza N. N. Kussul, A. Yu. Shelestova. Toleo la 2., Mch. - M.: Williams Publishing House, 2008, 1103 p.

Viungo

  1. Koposov A. I., Shcherbakov I. B., Kislenko N. A., Kislenko O. P., Varivoda Yu. V. et al.. - M.: VNIIGAZ, 1995.

Katika mitandao ya neural ya safu nyingi, maadili bora ya pato la neurons ya tabaka zote isipokuwa ya mwisho, kama sheria, haijulikani; perceptron ya safu tatu au zaidi haiwezi kufunzwa tena, ikiongozwa tu na maadili ya makosa. kwenye matokeo ya mtandao

Mojawapo ya chaguzi za kutatua tatizo hili ni kuendeleza seti za ishara za pato zinazolingana na mawimbi ya pembejeo kwa kila safu ya mtandao wa neva, ambayo, bila shaka, ni operesheni inayohitaji nguvu kazi nyingi na haiwezekani kila wakati. Chaguo la pili ni kurekebisha kwa nguvu mgawo wa uzani wa sinepsi, wakati ambao, kama sheria, viunganisho dhaifu na mabadiliko kwa kiwango kidogo katika mwelekeo mmoja au mwingine, na mabadiliko hayo tu ndio yanahifadhiwa ambayo husababisha kupungua kwa makosa katika matokeo ya mtandao mzima.Ni wazi, njia hii, licha ya

unyenyekevu unaoonekana, unahitaji mahesabu magumu ya kawaida.Na hatimaye, chaguo la tatu, linalokubalika zaidi ni uenezaji wa ishara za makosa kutoka kwa matokeo ya mtandao wa neva hadi pembejeo zake, kwa mwelekeo kinyume na uenezi wa moja kwa moja wa ishara katika operesheni ya kawaida. algorithm inaitwa utaratibu wa uenezi (uenezi wa makosa nyuma) Ni yeye anayejadiliwa hapa chini

Kanuni ya uenezaji nyuma ni algoriti ya kujifunzia iterative gradient ambayo hutumiwa kupunguza mkengeuko wa kawaida wa mkondo kutoka kwa matokeo yanayohitajika ya mitandao ya neva ya safu nyingi yenye miunganisho ya mfululizo.

Kulingana na mbinu ya angalau miraba, hitilafu inayolengwa ya mtandao wa neva itakayopunguzwa ni thamani

iko wapi hali halisi ya pato la niuroni kwenye safu ya pato la mtandao wa neva wakati picha inapotolewa kwa pembejeo zake, hali ya pato inayohitajika ya niuroni hii.

Muhtasari unafanywa juu ya niuroni zote za safu ya pato na juu ya picha zote zinazochakatwa na mtandao. Kupunguza kwa kutumia mbinu ya mteremko wa upinde rangi huhakikisha marekebisho ya vigawo vya uzito kama ifuatavyo.

iko wapi mgawo wa uzani wa muunganisho wa sinepsi inayounganisha niuroni ya safu na niuroni ya safu - mgawo wa kasi ya kujifunza,

Kwa mujibu wa kanuni ya kutofautisha kazi ngumu

iko wapi jumla iliyopimwa ya mawimbi ya ingizo ya niuroni na hoja ya chaguo za kukokotoa za kuwezesha. Kwa kuwa kitoleo cha chaguo za kukokotoa cha kuwezesha lazima kibainishwe kwenye mhimili mzima wa abscissa, kitendakazi cha mruko wa kitengo na vitendaji vingine vya kuwezesha vyenye inhomogeneities hazifai. mitandao ya neva inayozingatiwa.Wanatumia yafuatayo kazi laini, kama tanjiti ya hyperbolic au sigmoid ya zamani yenye kielelezo (ona Jedwali 1 1) Kwa mfano, katika kesi ya tanjiti ya hyperbolic

Kizidishi cha tatu ni sawa na pato la neuroni ya safu ya awali

Kama ilivyo kwa sababu ya kwanza katika (1.11), inaweza kupanuliwa kwa urahisi kama ifuatavyo:

Hapa muhtasari unafanywa kati ya nyuroni za safu kwa kuanzisha utaftaji mpya:

tunapata formula ya kujirudia ya kuhesabu maadili ya safu kutoka kwa maadili ya safu ya zamani.

Kwa safu ya pato:

Sasa tunaweza kuandika (1.10) katika fomu iliyopanuliwa:

Wakati mwingine, ili kutoa mchakato wa kurekebisha uzito baadhi ya hali, kulainisha kuruka mkali wakati wa kusonga kando ya uso wa kazi ya lengo, (1.17) huongezewa na thamani ya mabadiliko ya uzito katika iteration ya awali.

iko wapi mgawo wa inertia; nambari ya kurudia ya sasa.

Kwa hivyo, algorithm kamili ya kufunza mtandao wa neva kwa kutumia utaratibu wa uenezaji nyuma imeundwa kama ifuatavyo.

HATUA YA 1. Tumia moja ya picha zinazowezekana kwa pembejeo za mtandao na, katika hali ya operesheni ya kawaida ya mtandao wa neva, wakati ishara zinaenea kutoka kwa pembejeo hadi matokeo, hesabu maadili ya mwisho. Hebu tukumbushe kwamba:

ambapo ni idadi ya neurons katika safu, kwa kuzingatia neuron na hali ya pato mara kwa mara ambayo huweka upendeleo; pembejeo ya neuroni kwenye safu

sigmoid iko wapi,

iko wapi sehemu ya vekta ya picha ya kuingiza.

HATUA YA 4. Rekebisha uzani wote katika mtandao wa neva:

HATUA YA 5. Ikiwa kosa la mtandao ni kubwa, nenda kwenye hatua ya 1. Vinginevyo, mwisho.

Katika Hatua ya 1, mtandao unawasilishwa kwa mpangilio wa nasibu na picha zote za mafunzo ili mtandao, kwa kusema kwa njia ya mfano, usisahau zingine unapokariri zingine.

Kutoka kwa usemi (1.17) inafuata kwamba wakati thamani ya pato inaelekea sifuri, ufanisi wa kujifunza hupungua dhahiri. Na vekta za pembejeo za binary, kwa wastani nusu ya uzani haitarekebishwa, kwa hivyo kanda maadili iwezekanavyo Inapendekezwa kuhamisha matokeo ya neuroni ndani ya mipaka, ambayo hupatikana kwa marekebisho rahisi ya kazi za vifaa. Kwa mfano, sigmoid iliyo na kielelezo hubadilishwa kuwa fomu:

Hebu fikiria swali la uwezo wa mtandao wa neural, yaani, idadi ya picha zilizowasilishwa kwa pembejeo zake ambazo zinaweza kujifunza kutambua. Kwa mitandao iliyo na tabaka zaidi ya mbili, swali hili linabaki wazi. Kwa mitandao iliyo na tabaka mbili, uwezo wa mtandao wa kuamua unakadiriwa kama ifuatavyo:

iko wapi idadi ya uzani unaoweza kubadilishwa, ni idadi ya nyuroni kwenye safu ya pato.

Usemi huu ulipatikana kwa kuzingatia vizuizi fulani. Kwanza, idadi ya pembejeo na niuroni katika safu iliyofichwa lazima itimize ukosefu wa usawa Pili, hata hivyo, makadirio ya hapo juu yalifanywa kwa mitandao yenye kazi za kuwezesha neurons, na uwezo wa mitandao yenye kazi laini za kuwezesha, kwa mfano (1.23), kawaida ni kubwa zaidi. Kwa kuongeza, neno deterministic linamaanisha kuwa makadirio ya uwezo yanayotokana yanafaa kwa mifumo yote ya ingizo ambayo inaweza kuwakilishwa na ingizo. Kwa kweli, usambazaji wa mifumo ya uingizaji huwa na utaratibu fulani, ambao huruhusu mtandao wa neva kufanya jumla na hivyo kuongeza uwezo wake halisi. Kwa kuwa usambazaji wa picha, kwa hali ya jumla, haujulikani mapema, tunaweza tu kuzungumza juu ya uwezo halisi kwa tentatively, lakini kwa kawaida ni kubwa mara mbili kuliko uwezo wa kuamua.

Swali la uwezo wa mtandao wa neural linahusiana kwa karibu na swali la nguvu inayohitajika ya safu ya pato ya mtandao ambayo hufanya uainishaji wa mwisho wa picha. Kwa mfano, kugawanya seti ya picha za pembejeo katika madarasa mawili, neuroni moja ya pato inatosha. Katika kesi hii, kila ngazi ya kimantiki itateua darasa tofauti. Kwenye niuroni mbili za pato zilizo na kitendakazi cha kuwezesha kizingiti, madarasa manne yanaweza kusimba. Ili kuongeza kuegemea kwa uainishaji, inashauriwa kuanzisha upungufu kwa kugawa kwa kila darasa neuroni moja kwenye safu ya pato au, bora zaidi, kadhaa, ambayo kila moja imefunzwa kuamua ikiwa picha ni ya darasa na kiwango chake cha uainishaji. kujiamini, kwa mfano: juu, kati na chini. Mitandao kama hiyo ya neva hufanya iwezekane kuainisha picha za ingizo zikiwa zimeunganishwa katika seti zisizo na fuzzy (zisizo na uwazi au zinazokatiza). Mali hii huleta mitandao hiyo karibu na hali halisi ya uendeshaji wa mitandao ya neural ya kibaolojia.

Mtandao wa neva unaohusika una vikwazo kadhaa. Kwanza, katika mchakato huo, maadili makubwa chanya au hasi ya uzani yanaweza kuhamisha sehemu ya kufanya kazi kwenye sigmoids ya neurons kwenye eneo la kueneza. Maadili madogo ya derivative ya kazi ya vifaa itasababisha, kwa mujibu wa (1.15) na (1.16), kuacha kujifunza, ambayo inapooza mtandao. Pili, kutumia mbinu ya mteremko wa gradient hakuhakikishii kupata kima cha chini cha kimataifa cha utendakazi wa lengo. Hii inahusiana kwa karibu na suala la kuchagua kiwango cha kujifunza. Ongezeko la uzito na, kwa hiyo, kiwango cha kujifunza kupata uliokithiri lazima kiwe na ukomo, lakini katika kesi hii kujifunza kutakuwa.

kinachotokea polepole bila kukubalika. Kwa upande mwingine, marekebisho makubwa sana kwa uzito yanaweza kusababisha kutokuwa na utulivu wa kudumu katika mchakato wa kujifunza. Kwa hivyo, nambari iliyo chini ya 1 (kwa mfano, 0.1) huchaguliwa kama mgawo wa kiwango cha ujifunzaji 1], ambayo hupungua polepole wakati wa mchakato wa kujifunza. Kwa kuongezea, ili kuwatenga kugonga kwa bahati mbaya kwa mtandao katika minima ya ndani, wakati mwingine, baada ya kuleta utulivu wa maadili ya uzani wa uzani, 7 huongezeka sana kwa muda mfupi ili kuanza kushuka kwa gradient kutoka kwa hatua mpya. Ikiwa kurudia utaratibu huu mara kadhaa huleta mtandao kwa hali sawa, tunaweza kudhani kuwa kiwango cha chini cha kimataifa kimepatikana.

Kuna njia nyingine ya kuondoa ulemavu mdogo wa ndani na mtandao, ambayo ni kutumia mitandao ya neva ya stochastic.

Wacha tutoe tafsiri ya kijiometri hapo juu.

Katika algorithm ya uenezi wa nyuma, vekta ya gradient ya uso wa makosa huhesabiwa. Vekta hii inaonyesha mwelekeo wa kushuka kwa muda mfupi kando ya uso kutoka kwa hatua ya sasa, harakati ambayo husababisha kupungua kwa makosa. Mlolongo wa hatua za kupungua utasababisha kiwango cha chini cha aina moja au nyingine. Ugumu hapa ni suala la kuchagua urefu wa hatua.

Kwa saizi kubwa ya hatua, muunganisho utakuwa haraka, lakini kuna hatari ya kuruka juu ya suluhisho au katika kesi hiyo. sura tata makosa nyuso kwenda katika mwelekeo mbaya, kwa mfano, kusonga kando ya bonde nyembamba na miteremko mikali, kuruka kutoka upande mmoja hadi mwingine. Kinyume chake, kwa hatua ndogo na mwelekeo sahihi, marudio mengi yatahitajika. Katika mazoezi, ukubwa wa hatua unachukuliwa kuwa sawa na mwinuko wa mteremko, ili algorithm ipunguze karibu na kiwango cha chini. Chaguo sahihi kasi ya kujifunza inategemea kazi maalum na kawaida hufanywa kwa majaribio. Hii mara kwa mara inaweza pia kutegemea wakati, ikipungua kadiri algorithm inavyoendelea.

Kwa kawaida algoriti hii hurekebishwa ili kujumuisha neno la kasi (au hali ya hewa). Hii inakuza maendeleo katika mwelekeo uliowekwa, hivyo ikiwa hatua kadhaa zimechukuliwa kwa mwelekeo huo huo, algorithm huongeza kasi, ambayo wakati mwingine inakuwezesha kuepuka kiwango cha chini cha ndani, na pia kupitia maeneo ya gorofa kwa kasi.

Katika kila hatua ya algorithm, mifano yote ya mafunzo hutolewa kwa pembejeo ya mtandao kwa zamu, maadili halisi ya pato la mtandao yanalinganishwa na maadili yanayotakiwa, na kosa linahesabiwa. Thamani ya hitilafu pamoja na upinde rangi ya uso wa hitilafu

kutumika kurekebisha mizani, baada ya hapo vitendo vyote hurudiwa. Mchakato wa kujifunza hukoma wakati idadi fulani ya nyakati zimepita, au wakati kosa linapofikia kiwango fulani kidogo, au wakati kosa linapoacha kupungua.

Wacha tuzingatie shida za ujanibishaji na urekebishaji wa mtandao wa neva kwa undani zaidi. Ujumla ni uwezo wa mtandao wa neva kufanya ubashiri sahihi kwenye data ambayo si ya seti asili ya mafunzo. Uwekaji kupita kiasi ni uwekaji kupita kiasi ambao hutokea wakati kanuni ya mafunzo inachukua muda mrefu na mtandao ni changamano sana kwa kazi au kiasi cha data kinachopatikana.

Wacha tuonyeshe shida za ujanibishaji na urekebishaji kwa kutumia mfano wa kukadiria utegemezi fulani sio kwa mtandao wa neva, lakini kwa njia ya polynomials, na kiini cha jambo hilo kitakuwa sawa kabisa.

Grafu za polynomial zinaweza kuwa sura tofauti, na kiwango cha juu na idadi ya maneno, fomu hii inaweza kuwa ngumu zaidi. Kwa data ya awali, unaweza kuchagua curve ya polynomial (mfano) na hivyo kupata maelezo ya utegemezi uliopo. Data inaweza kuwa na kelele, kwa hivyo haiwezi kudhaniwa kuwa mfano bora hupitia hasa pointi zote zinazopatikana. Polynomia ya mpangilio wa chini inaweza kuelezea uhusiano vizuri zaidi lakini haiwezi kunyumbulika vya kutosha kutoshea data, ilhali ile polynomia ya mpangilio wa juu inaweza kunyumbulika kupita kiasi lakini itafuata data kwa karibu huku ikichukua sura iliyochanganyika ambayo haina uhusiano wowote na uhusiano wa kweli..

Mitandao ya neva inakabiliwa na matatizo sawa. Mitandao iliyo na uzani zaidi husanifu utendakazi changamano zaidi na kwa hivyo huwa na uwezekano wa kutoshea kupita kiasi. Mitandao iliyo na idadi ndogo ya uzani inaweza isinyumbulike vya kutosha kuiga vitegemezi vilivyopo. Kwa mfano, mtandao usio na tabaka zilizofichwa huonyesha tu kazi ya kawaida ya mstari.

Jinsi ya kuchagua kiwango sahihi cha ugumu wa mtandao? Karibu kila mara mtandao ngumu zaidi hutoa hitilafu ndogo, lakini hii inaweza kuonyesha ubora mzuri mfano, lakini juu ya kufundisha tena mtandao.

Suluhisho ni kutumia uthibitishaji wa msalaba wa benchmark. Kwa kusudi hili, sehemu ya sampuli ya mafunzo imehifadhiwa, ambayo haitumiki kwa mafunzo ya mtandao kwa kutumia algorithm ya uenezi wa nyuma, lakini kwa udhibiti wa kujitegemea wa matokeo wakati wa algorithm. Mwanzoni mwa kazi, hitilafu ya mtandao ilitokea kwenye mafunzo na

seti za udhibiti zitakuwa sawa. Mtandao unapofunzwa, makosa ya mafunzo hupungua, kama vile makosa kwenye seti ya udhibiti. Kama angalia hitilafu iliacha kupungua au hata kuanza kuongezeka, hii inaonyesha kuwa mtandao ulianza kukadiria data kwa karibu sana (imefunzwa kupita kiasi) na mafunzo yanapaswa kusimamishwa. Ikiwa hii itatokea, basi idadi ya vipengele vilivyofichwa na / au tabaka zinapaswa kupunguzwa, kwa sababu mtandao una nguvu sana kwa kazi hii. Ikiwa makosa yote mawili (mafunzo na uthibitisho wa msalaba) hayafikii kiwango kidogo cha kutosha, basi urekebishaji wa kawaida haukutokea, na mtandao, kinyume chake, hauna nguvu ya kutosha kuiga utegemezi uliopo.

Matatizo yaliyoelezwa husababisha ukweli kwamba wakati kazi ya vitendo Ukiwa na mitandao ya neva, lazima ujaribu na idadi kubwa ya mitandao tofauti, wakati mwingine ufundisha kila mmoja wao mara kadhaa na kulinganisha matokeo. Kiashiria kuu cha ubora wa matokeo ni kosa la udhibiti. Wakati huo huo, kwa mujibu wa kanuni ya mfumo mzima, ya mitandao miwili yenye makosa takriban sawa ya udhibiti, ni mantiki kuchagua moja ambayo ni rahisi zaidi.

Uhitaji wa majaribio ya mara kwa mara husababisha ukweli kwamba seti ya udhibiti huanza kuchukua jukumu muhimu katika kuchagua mfano na inakuwa sehemu ya mchakato wa kujifunza. Hii inadhoofisha jukumu lake kama kigezo huru cha ubora wa mfano. Katika idadi kubwa majaribio, kuna uwezekano mkubwa wa kuchagua mtandao uliofanikiwa ambao hutoa matokeo mazuri kwenye seti ya udhibiti. Hata hivyo, ili kutoa mfano wa mwisho kuegemea sahihi, mara nyingi (wakati kiasi cha mifano ya mafunzo inaruhusu) kufanya yafuatayo: hifadhi seti ya mtihani wa mifano. Muundo wa mwisho unajaribiwa kwenye data kutoka kwa seti hii ili kuhakikisha kuwa matokeo yaliyopatikana kwenye mafunzo na seti za majaribio ya mifano ni halisi na si vizalia vya mchakato wa kujifunza. Bila shaka, ili kutekeleza jukumu lake vizuri, seti ya mtihani inapaswa kutumika mara moja tu: ikiwa inatumiwa tena kurekebisha mchakato wa kujifunza, itageuka kwa ufanisi katika seti ya udhibiti.

Ili kuharakisha mchakato wa kujifunza mtandao, marekebisho mengi ya algorithm ya uenezaji wa makosa yamependekezwa, yanayohusiana na matumizi ya kazi mbalimbali za makosa, taratibu za kuamua mwelekeo na ukubwa wa hatua.

1) Vitendo vya makosa:

Hitilafu muhimu hufanya kazi juu ya seti nzima ya mifano ya mafunzo;

Hitilafu za utendakazi wa nguvu kamili na sehemu

2) Taratibu za kuamua saizi ya hatua kwa kila marudio

Dichotomy;

Mahusiano ya inertial (tazama hapo juu);

3) Taratibu za kuamua mwelekeo wa hatua.

Kutumia matrix ya derivatives ya mpangilio wa pili (njia ya Newton);

Kutumia maelekezo katika hatua kadhaa (njia ya sehemu).

Malengo ya uenezaji nyuma ni rahisi: rekebisha kila uzito kulingana na ni kiasi gani inachangia kosa la jumla. Ikiwa tunapunguza mara kwa mara makosa ya kila uzito, hatimaye tutakuwa na seti ya uzani ambayo hufanya utabiri mzuri.

Kusasisha Kanuni ya Mnyororo

Inaweza kuzingatiwa kama mfululizo mrefu wa milinganyo iliyopangwa. Ikiwa ndivyo unavyofikiria juu ya uenezi wa mbele, basi uenezaji wa nyuma ni programu tumizi sheria za mnyororo(utofautishaji changamano wa utendakazi) ili kupata viambajengo vya hasara kuhusiana na tofauti yoyote katika mlinganyo uliowekwa. Kwa kuzingatia kazi ya uenezi wa mbele:

F(x)=A(B(C(x)))

A, B, na C ziko kwenye tabaka tofauti. Kwa kutumia sheria ya mnyororo, tunaweza kuhesabu kwa urahisi derivative ya f(x) kwa heshima na x:

F′(x)=f′(A)⋅A′(B)⋅B′(C)⋅C′(x)

Vipi kuhusu derivative kwa heshima na B? Ili kupata derivative kwa heshima na B, unaweza kujifanya kuwa B(C(x)) ni ya mara kwa mara, ibadilishe na kutofautisha kishikilia nafasi B, na kuendelea kutafuta derivative kwa heshima na B kiwango.

F′(B)=f′(A)⋅A′(B)

Njia hii rahisi inaenea kwa tofauti yoyote ndani ya kazi na inaruhusu sisi kuamua kwa usahihi athari kila tofauti kwa matokeo ya jumla.

Kutumia kanuni ya mnyororo

Wacha tutumie sheria ya mnyororo kuhesabu derivative ya upotezaji kwa heshima na uzito wowote kwenye mtandao. Sheria ya minyororo itatusaidia kuamua ni kiasi gani kila uzito huchangia kwa kosa letu la jumla na mwelekeo ambao kila uzito unapaswa kusasishwa ili kupunguza kosa. Hapa kuna milinganyo unayohitaji kufanya utabiri na kuhesabu jumla ya makosa au hasara:

Kwa kuzingatia mtandao unaojumuisha niuroni moja, jumla ya hasara ya mtandao wa neva inaweza kuhesabiwa kama:

Gharama=C(R(Z(XW))))

Kwa kutumia sheria ya mnyororo, tunaweza kupata derivative ya hasara kwa urahisi kwa heshima na uzito W.

C′(W)=C′(R)⋅R′(Z)⋅Z′(W)=(y^−y)⋅R′(Z)⋅X

Sasa kwa kuwa tuna equation ya kuhesabu derivative ya hasara kwa heshima na uzito wowote, hebu tuangalie mfano wa mtandao wa neural:

Nini derivative ya hasara kwa heshima na Wo!?

C′(WO)=C′(y^)⋅y^′(ZO)⋅Z′O(WO)=(y^−y)⋅R′(ZO)⋅H

Na nini kuhusu Wh? Ili kujua, tunaendelea tu kurudi kwenye utendaji wetu, tukitumia kanuni ya mnyororo kwa kurudia, hadi tutakapofika kwenye kitendakazi ambacho kina kipengele. Wh.

C′(Wh)=C′(y^)⋅O′(Zo)⋅Z′o(H)⋅H′(Zh)⋅Z′h(Wh)=(y^−y)⋅R′(Zo )⋅Wo⋅R′(Zh)⋅X

Na kwa kujifurahisha tu, vipi ikiwa mtandao wetu ulikuwa na tabaka 10 zilizofichwa. Je, ni derivative ya hasara kwa uzito wa kwanza w1?

C(w1)=(dC/dy^)⋅(dy^/dZ11)⋅(dZ11/dH10)⋅(dH10/dZ10)⋅(dZ10/dH9)⋅(dH9/dZ9)⋅(dZ9/dH8)⋅( dH8/dZ8)⋅(dZ8/dH7)⋅(dH7/dZ7)⋅(dZ7/dH6)⋅(dH6/dZ6)⋅(dZ6/dH5)⋅(dH5/dZ5)⋅(dZ5/dH4)⋅(dZ5/dH4)/ dZ4)⋅(dZ4/dH3)⋅(dH3/dZ3)⋅(dZ3/dH2)⋅(dH2/dZ2)⋅(dZ2/dH1)⋅(dH1/dZ1)⋅(dZ1/dW1)

Unaona muundo? Kiasi cha hesabu kinachohitajika ili kukokotoa hasara inayotokana na matumizi huongezeka kadri mtandao wetu unavyozidi kuwa wa kina. Pia kumbuka redundancy katika hesabu zetu derivative. Derivative ya hasara ya kila safu inaongeza vipengele viwili vipya kwa vipengele ambavyo tayari vimehesabiwa na tabaka zilizo juu yake. Je, ikiwa kungekuwa na njia fulani ya kuokoa kazi yetu na kuepuka hesabu hizi zinazojirudia?

Kuhifadhi kazi kwa kukariri

Kukariri ni neno katika sayansi ya kompyuta ambalo lina maana rahisi: usihesabu vitu sawa tena na tena. Katika kukariri, tunahifadhi matokeo yaliyokokotolewa awali ili kuepuka kukokotoa tena utendakazi sawa. Hii ni muhimu kwa kuharakisha kazi za kujirudia, moja ambayo ni uenezaji wa nyuma. Zingatia muundo katika milinganyo ya derivative hapa chini.

Kila moja ya tabaka hizi huhesabu tena derivatives sawa! Badala ya kuandika milinganyo mirefu ya derivative kwa kila uzani, tunaweza kutumia kukariri kuhifadhi kazi yetu tunaporudisha hitilafu kupitia mtandao. Ili kufanya hivyo, tunafafanua milinganyo 3 (chini) ambayo kwa pamoja inaelezea ndani fomu fupi mahesabu yote yanayohitajika kwa uenezaji wa nyuma. Hesabu ni sawa, lakini milinganyo hutoa njia ya mkato nzuri ambayo tunaweza kutumia kufuatilia hesabu ambazo tayari tumefanya na kuhifadhi kazi yetu tunaporudi nyuma kupitia mtandao.

Kwanza tunahesabu kosa la safu ya pato na kupitisha matokeo kwa safu iliyofichwa mbele yake. Baada ya kuhesabu kosa la safu iliyofichwa, tunapitisha thamani yake kwenye safu ya awali iliyofichwa. Na kadhalika na kadhalika. Kurudi kupitia mtandao, tunatumia fomula ya 3 katika kila safu ili kuhesabu derivative ya hasara kwa heshima na uzito wa safu hiyo. Derivative hii inatuambia katika mwelekeo gani wa kurekebisha uzani wetu kupunguza hasara kwa ujumla.

Kumbuka: muda kosa la safu inahusu derivative ya hasara kwa heshima na mlango wa safu. Inajibu swali: matokeo ya kazi ya upotezaji hubadilikaje wakati pembejeo kwenye safu hii inabadilika?

Hitilafu ya Safu ya Pato

Ili kuhesabu kosa la safu ya pato, ni muhimu kupata derivative ya hasara kwa heshima na pembejeo kwa safu ya pato, Zo. Hii inajibu swali: uzani wa safu ya mwisho huathirije kosa la jumla kwenye mtandao? Kisha derivative ni:

C′(Zo)=(y^−y)⋅R′(Zo)

Ili kurahisisha kurekodi, watendaji MO kawaida kuchukua nafasi ya mlolongo (y^−y)∗R"(Zo) muda Eo. Kwa hivyo formula yetu ya kosa la safu ya pato ni:

Eo=(y^−y)⋅R′(Zo)

Hitilafu ya safu iliyofichwa

Ili kuhesabu kosa la safu iliyofichwa, unahitaji kupata derivative ya hasara kwa heshima na pembejeo ya safu iliyofichwa, Zh.

Eh=Eo⋅Wo⋅R′(Zh)

Njia hii ndio msingi wa uenezaji wa nyuma. Tunahesabu kosa la safu ya sasa na kupitisha kosa la uzito nyuma kwenye safu ya awali, kuendelea na mchakato mpaka tufikie safu yetu ya kwanza iliyofichwa. Njiani, tunasasisha uzani kwa kutumia derivative ya hasara kwa heshima na kila uzito.

Derivative ya kupoteza kwa heshima na uzito wowote

Wacha turudi kwenye fomula yetu ya derivative ya hasara kwa heshima na uzito wa safu ya pato Wo!.

C′(WO)=(y^−y)⋅R′(ZO)⋅H

Tunajua kuwa tunaweza kuchukua nafasi ya sehemu ya kwanza na equation kwa kosa la safu ya pato Mh. H inawakilisha uanzishaji wa safu iliyofichwa.

C′(Wo)=Eo⋅H

Kwa hivyo, ili kupata derivative ya hasara kwa heshima na uzito wowote katika mtandao wetu, sisi tu kuzidisha makosa ya safu sambamba na pembejeo yake (matokeo ya safu ya awali).

C′(w)=CurrentLayerError⋅CurrentLayerInput

Kumbuka: Ingång inarejelea uanzishaji kutoka kwa safu iliyotangulia, sio ingizo lenye uzani, Z.

Kufupisha

Hapa kuna milinganyo 3 ya mwisho ambayo kwa pamoja huunda msingi wa uenezaji nyuma.

Hapa kuna mchakato unaoonyeshwa kwa kutumia mfano wetu wa mtandao wa neural hapo juu:

Uenezaji wa Nyuma: Msimbo wa Mfano

def relu_prime(z): kama z > 0: kurudi 1 kurudi 0 def gharama (yHat, y): kurudi 0.5 * (yHat - y)**2 def cost_prime(yHat, y): kurudi yHat-y def backprop(x, y, Wh, Wo, lr): yHat = feed_forward(x, Wh, Wo) # Hitilafu ya Tabaka Eo = (yHat - y) * relu_prime(Zo) Eh = Eo * Wo * relu_prime(Zh) # Derivative ya gharama ya uzani dWo = Eo * H dWh = Eh * x # Sasisha uzani Wh -= lr * dWh Wo -= lr * dWo

Makosa kutoka kwa matokeo ya mtandao kwa pembejeo zake, kwa mwelekeo kinyume na uenezi wa mbele wa ishara katika operesheni ya kawaida. Bartsev na Okhonin mara moja walipendekeza njia ya jumla ("kanuni ya pande mbili"), inayotumika kwa tabaka pana la mifumo, pamoja na mifumo iliyochelewa, mifumo iliyosambazwa, n.k.

Ili kuweza kutumia njia ya uenezaji nyuma, kazi ya uhamishaji ya niuroni lazima itofautishwe. Njia hiyo ni marekebisho ya njia ya asili ya kushuka kwa gradient.

Kazi za uanzishaji wa Sigmoid

Aina zifuatazo za sigmoid hutumiwa mara nyingi kama kazi za kuwezesha:

Utendakazi wa Fermi (sigmoid kielelezo):

Sigmoid ya busara:

Tanjiti ya hyperbolic:

,

ambapo s ni pato la kiarifu cha niuroni na ni hali isiyobadilika kiholela.

Hesabu ya sigmoid ya busara inahitaji muda mdogo zaidi wa CPU, ikilinganishwa na sigmoid zingine. Kuhesabu tanjenti ya hyperbolic kunahitaji mizunguko mingi ya kichakataji. Ikilinganishwa na kazi za uanzishaji wa kizingiti, sigmoids huhesabiwa polepole sana. Ikiwa, baada ya kufupisha katika kazi ya kizingiti, unaweza kuanza mara moja kulinganisha na thamani fulani (kizingiti), basi katika kesi ya kazi ya uanzishaji wa sigmoid unahitaji kuhesabu sigmoid (kutumia muda, bora, kwa shughuli tatu: kuchukua. moduli, kuongeza na kugawanya), na kisha tu kulinganisha na thamani ya kizingiti (kwa mfano, sifuri). Ikiwa tunadhania kwamba shughuli zote rahisi zaidi zinahesabiwa na processor kwa takriban wakati huo huo, basi uendeshaji wa kazi ya uanzishaji wa sigmoidal baada ya majumuisho (ambayo itachukua wakati huo huo) itakuwa polepole zaidi kuliko kazi ya uanzishaji wa kizingiti kwa sababu ya 1:4.

Kazi ya tathmini ya mtandao

Katika hali ambapo inawezekana kutathmini utendakazi wa mtandao, mafunzo ya mitandao ya neva inaweza kuwakilishwa kama tatizo la uboreshaji. Kutathmini maana yake ni kuashiria kiasi kama mtandao unatatua kazi ulizopewa vizuri au hafifu. Kwa kusudi hili, kazi ya tathmini inaundwa. Kama sheria, inategemea kwa uwazi juu ya ishara za pato za mtandao na kwa uwazi (kupitia operesheni) kwenye vigezo vyake vyote. Mfano rahisi na wa kawaida zaidi wa tathmini ni jumla ya umbali wa mraba kutoka kwa mawimbi ya matokeo ya mtandao hadi maadili yanayohitajika:

,

iko wapi thamani inayohitajika ya ishara ya pato.

Maelezo ya algorithm

Usanifu wa Multilayer Perceptron

Algorithm ya uenezi wa nyuma inatumika kwa perceptron ya multilayer. Mtandao una pembejeo nyingi, matokeo mengi, na nodi nyingi za ndani. Wacha tuhesabu nodi zote (pamoja na pembejeo na matokeo) na nambari kutoka 1 hadi N (kuhesabu nambari zinazoendelea, bila kujali topolojia ya tabaka). Hebu tuonyeshe kwa uzito uliosimama kwenye makali ya kuunganisha nodi za i-th na j-th, na kwa pato la node ya i-th. Ikiwa tunajua mfano wa mafunzo (majibu sahihi ya mtandao,), basi kazi ya makosa iliyopatikana kwa kutumia njia ndogo ya mraba inaonekana kama hii:

Jinsi ya kurekebisha uzito? Tutatumia asili ya gradient ya stochastic, ambayo ni, tutarekebisha uzani baada ya kila mfano wa mafunzo na, kwa hivyo, "kusonga" katika nafasi ya uzani wa anuwai. Ili "kufikia" kosa la chini, tunahitaji "kusonga" kwa mwelekeo kinyume na gradient, ambayo ni, kulingana na kila kikundi cha majibu sahihi, ongeza kwa kila uzito.

,

iko wapi kizidishi kinachobainisha kasi ya "mwendo".

Derivative imehesabiwa kama ifuatavyo. Hebu kwanza , yaani, uzito tunaopendezwa nao, uingie neuron ya ngazi ya mwisho. Kwanza, tunaona kuwa inathiri pato la mtandao tu kama sehemu ya jumla, ambapo jumla inachukuliwa juu ya pembejeo za nodi ya j-th. Ndiyo maana

Vile vile, inathiri kosa la jumla tu ndani ya pato la node ya jth (kumbuka kuwa hii ni pato la mtandao mzima). Ndiyo maana

Ikiwa nodi ya j-th haiko katika ngazi ya mwisho, basi ina matokeo; hebu tuwaashirie kwa Watoto(j). Kwa kesi hii

, .

Vizuri - hii ni marekebisho sawa, lakini imehesabiwa kwa node ya ngazi inayofuata, tutaashiria kwa - kutoka kwayo hutofautiana kwa kutokuwepo kwa kuzidisha. Kwa kuwa tumejifunza kuhesabu marekebisho ya nodes za ngazi ya mwisho na kueleza marekebisho kwa node ya ngazi ya chini kupitia marekebisho ya juu, tunaweza tayari kuandika algorithm. Ni kwa sababu ya kipengele hiki cha kuhesabu marekebisho ambayo algorithm inaitwa algorithm ya uenezi wa nyuma(kueneza nyuma). Muhtasari mfupi wa kazi iliyofanywa:

  • kwa nodi ya kiwango cha mwisho
  • kwa nodi ya mtandao wa ndani
  • kwa nodi zote

Algorithm inayosababisha imewasilishwa hapa chini. Kama pembejeo kwa algorithm, pamoja na vigezo maalum, ni muhimu pia kuwasilisha muundo wa mtandao katika muundo fulani. Katika mazoezi, matokeo mazuri sana yanaonyeshwa na mitandao ya muundo wa haki rahisi, unaojumuisha viwango viwili vya neurons - ngazi iliyofichwa (vitengo vilivyofichwa) na neurons za pato (vitengo vya pato); kila pembejeo ya mtandao imeunganishwa na neurons zote zilizofichwa, na matokeo ya kazi ya kila neuroni iliyofichwa inalishwa kwa pembejeo ya kila neurons ya pato. Katika kesi hii, inatosha kusambaza idadi ya neurons ya kiwango kilichofichwa kama pembejeo.

Algorithm

Algorithm: BackPropagation

iko wapi mgawo wa inertial kwa kulainisha kuruka mkali wakati wa kusonga kando ya uso wa kazi ya lengo

Ufafanuzi wa hisabati wa mafunzo ya mtandao wa neva

Katika kila marudio ya algorithm ya uenezi wa nyuma, uzani wa mtandao wa neva hurekebishwa ili kuboresha suluhisho la mfano mmoja. Kwa hivyo, wakati wa mchakato wa kujifunza, shida za uboreshaji wa kigezo kimoja hutatuliwa kwa mzunguko.

Mafunzo ya mtandao wa Neural yana sifa ya mapungufu manne ambayo hutofautisha mafunzo ya mtandao wa neva na matatizo ya jumla ya uboreshaji: idadi ya vigezo vya unajimu, hitaji la usawa wa juu wakati wa mafunzo, asili ya vigezo vingi vya shida zinazotatuliwa, na hitaji la kupata suluhisho. eneo pana la kutosha ambalo maadili ya kazi zote zilizopunguzwa ni karibu na ndogo. Vinginevyo, tatizo la kujifunza kwa ujumla linaweza kutengenezwa kama tatizo la kupunguza alama. Tahadhari katika kifungu kilichopita ("kawaida") ni kwa sababu ya ukweli kwamba kwa kweli hatujui na hatutawahi kujua kazi zote zinazowezekana za mitandao ya neva, na labda mahali pengine bila kujulikana kuna kazi ambazo haziwezi kupunguzwa kupunguza. makisio. Kupunguza makadirio ni shida ngumu: kuna idadi ya vigezo vya unajimu (kwa mifano ya kawaida inayotekelezwa kwenye Kompyuta - kutoka 100 hadi 1,000,000), unafuu wa kurekebisha (grafu ya tathmini kama kazi ya vigezo vilivyorekebishwa) ni ngumu na inaweza kuwa na minima nyingi za ndani.

Hasara za algorithm

Licha ya matumizi mengi yaliyofanikiwa ya uenezaji wa nyuma, sio tiba. Kinacholeta shida zaidi ni mchakato mrefu wa kujifunza. Katika matatizo magumu, inaweza kuchukua siku au hata wiki kutoa mafunzo kwa mtandao, au huenda usijifunze kabisa. Sababu inaweza kuwa mojawapo ya yale yaliyoelezwa hapa chini.

Kupooza kwa Mtandao

Wakati wa mchakato wa mafunzo ya mtandao, maadili ya uzito yanaweza kuwa makubwa sana kama matokeo ya urekebishaji. Hii inaweza kusababisha niuroni zote au nyingi kufanya kazi kwa thamani kubwa sana za OUT, katika eneo ambalo derivative ya kazi ya mkato ni ndogo sana. Kwa kuwa hitilafu iliyorejeshwa wakati wa mchakato wa kujifunza ni sawia na derivative hii, mchakato wa kujifunza unaweza kuganda kivitendo. Kwa mtazamo wa kinadharia, shida hii inaeleweka vibaya. Hii kawaida huepukwa kwa kupunguza ukubwa wa hatua η, lakini hii huongeza muda wa mafunzo. Heuristics mbalimbali zimetumika kuzuia au kupona kutokana na kupooza, lakini kwa sasa zinaweza tu kuchukuliwa kuwa majaribio.

Minima ya ndani

Uenezaji wa nyuma hutumia aina ya asili ya gradient, yaani, inashuka chini ya uso wa makosa, ikiendelea kurekebisha uzani kuelekea kiwango cha chini. Uso wa hitilafu wa mtandao changamano ni mbaya sana na una vilima, mabonde, mikunjo na mifereji ya maji katika nafasi ya juu-dimensional. Mtandao unaweza kuanguka katika kiwango cha chini cha ndani (bonde la kina kifupi) wakati kuna kiwango cha chini zaidi karibu. Katika kiwango cha chini cha eneo, maelekezo yote yanaelekeza juu, na mtandao hauwezi kutoroka kutoka humo. Ugumu kuu katika mafunzo ya mitandao ya neural ni njia haswa za kutoroka kutoka kwa minima ya kawaida: kila wakati ukiacha kiwango cha chini cha kawaida, kiwango cha chini kinachofuata hutafutwa tena kwa kutumia njia ile ile ya uenezaji wa makosa hadi haiwezekani tena kupata njia ya kutoka. ni.

Ukubwa wa hatua

Uchunguzi wa makini wa uthibitisho wa muunganisho unaonyesha kuwa masahihisho ya uzito yanachukuliwa kuwa yasiyo na kikomo. Ni wazi kwamba hii haiwezekani katika mazoezi, kwa kuwa inaongoza kwa muda usio na mwisho wa kujifunza. Saizi ya hatua inapaswa kuchukuliwa kama kikomo. Ikiwa ukubwa wa hatua umewekwa na ni ndogo sana, basi muunganisho ni polepole sana; ikiwa ni fasta na kubwa sana, kupooza au kutokuwa na utulivu wa mara kwa mara kunaweza kutokea. Ni bora kuongeza hatua hadi uboreshaji wa makadirio katika mwelekeo fulani wa antigradient itaacha na kuipunguza ikiwa uboreshaji kama huo haufanyiki. P. D. Wasserman alielezea algoriti ya uteuzi wa hatua ambayo hurekebisha kiotomati ukubwa wa hatua wakati wa mchakato wa kujifunza. Kitabu cha A. N. Gorban kinapendekeza teknolojia pana ya kuboresha ujifunzaji.

Inapaswa pia kuzingatiwa kuwa mtandao unaweza kufundishwa tena, ambayo ni uwezekano mkubwa wa matokeo ya muundo usio sahihi wa topolojia yake. Kwa niuroni nyingi sana, uwezo wa mtandao wa kujumlisha taarifa hupotea. Seti nzima ya picha zinazotolewa kwa mafunzo zitajifunza na mtandao, lakini picha zingine zozote, hata zile zinazofanana sana, zinaweza kuainishwa vibaya.

Angalia pia

  • Algorithm ya kasi ya gradient

Fasihi

  1. Wasserman F. Neurocomputing: Nadharia na Mazoezi. - M.: "Mir", 1992.
  2. Khaikin S. Mitandao ya Neural: Kozi kamili. Kwa. kutoka kwa Kiingereza N. N. Kussul, A. Yu. Shelestova. Toleo la 2., Mch. - M.: Williams Publishing House, 2008, 1103 p.

Viungo

  1. Koposov A. I., Shcherbakov I. B., Kislenko N. A., Kislenko O. P., Varivoda Yu. V. et al.. - M.: VNIIGAZ, 1995.

Rudi

×
Jiunge na jumuiya ya "koon.ru"!
Kuwasiliana na:
Tayari nimejiandikisha kwa jamii "koon.ru"