Algorithm ya uenezi wa nyuma. Kujifunza kwa uenezaji nyuma

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

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 walitoa njia ya jumla(“Kanuni ya uwili”), inatumika kwa tabaka pana la mifumo, ikijumuisha mifumo iliyochelewa, mifumo iliyosambazwa, n.k.

Ili kuweza kutumia mbinu uenezaji wa nyuma makosa, 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, 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 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 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. 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.

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.

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 tuwaashiria kwa Watoto(j). Kwa kesi hii

, .

Vizuri - hii ni marekebisho sawa, lakini imehesabiwa kwa node ya ngazi inayofuata, tutaashiria kwa - kutoka kwake 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.

Uenezaji nyuma ni njia ya kawaida ya kufundisha mtandao wa neva, ingawa kuna njia zingine (zaidi juu yao katika sura ya baadaye). Kanuni ya uendeshaji ni kitu kama hiki:

1. Seti ya data ya pembejeo ambayo mtandao utafunzwa hutolewa kwa safu ya pembejeo ya mtandao, na mtandao hufanya kazi kwa kawaida (yaani, huhesabu pato).

2. Data inayotokana inalinganishwa na data inayojulikana ya pato kwa seti ya pembejeo inayozingatiwa. Tofauti kati ya data iliyopokelewa na inayojulikana (ya majaribio) ni vekta ya makosa.


3. Vekta ya hitilafu hutumiwa kurekebisha uzito wa safu ya pato ili wakati seti sawa ya data ya pembejeo inalishwa tena, vekta ya makosa hupungua.

4. Kisha mgawo wa uzani wa safu iliyofichwa hurekebishwa kwa njia ile ile, wakati huu ishara za pato za neurons za safu iliyofichwa na ishara za pembejeo za neurons za safu ya pato hulinganishwa, madhumuni ya kulinganisha hii ni tengeneza vekta ya makosa kwa safu iliyofichwa.

5. Hatimaye, ikiwa kuna safu ya pembejeo kwenye mtandao (yaani safu, si mfululizo wa maadili ya pembejeo), basi vitendo sawa vinafanywa nayo.

Ikumbukwe kwamba hitilafu inaweza kuenezwa kwa kiwango chochote kinachohitajika (yaani, mtandao wa neural unaweza kuwa na idadi isiyo na kikomo ya tabaka zilizofichwa ambazo tunahesabu vector ya makosa kwa kutumia mpango sawa). Uenezaji wa nyuma unanikumbusha mawimbi ya kuteleza - ishara za pembejeo husogea kuelekea safu ya pato (yaani ufuo), na makosa husogea upande mwingine (kama vile wimbi la bahari linavyolazimika kurudi nyuma kutoka ardhini).

Mtandao unafunzwa kwa kuwasilisha kila seti ya data ya ingizo na kisha kueneza hitilafu. Mzunguko huu unarudiwa mara nyingi. Kwa mfano, ikiwa unatambua nambari kutoka 0 hadi 9, basi tabia "0" inasindika kwanza, tabia "1" na kadhalika hadi "9", basi mzunguko wote unarudiwa mara nyingi. Haupaswi kufanya vinginevyo, yaani, fundisha mtandao kando, kwanza na ishara "0" (nambari ya nth ya nyakati), kisha "1", kisha "2", nk, kwa sababu mtandao huzalisha uzani "mkali" sana kwa seti ya mwisho ya pembejeo (yaani, kwa "9"), "kusahau" ya awali. Kwa mfano, kwa marudio ya elfu ya mafunzo ya alama "1", mgawo wa uzani wa kutambua alama "0" hupotea. Kwa kurudia kitanzi kizima kwa seti nzima ya ingizo la kamusi, tunadhania kuwa kila herufi ina athari sawa kwenye thamani za mgawo wa uzito.

Kumbuka
Wacha tutumie NUM_HID lahaja kuashiria idadi ya niuroni kwenye safu iliyofichwa (idadi inaanza kutoka faharasa 1). NUM_OUT - idadi ya niuroni katika safu ya pato.

Uenezaji wa nyuma na fomula.
Sasa, sikiliza! Nitatoa hesabu nyingi hapa chini.

    Kwanza, tunaanzisha maadili ya kizingiti na mgawo wa uzani na maadili madogo ya nasibu (sio zaidi ya 0.4)

    Sasa hebu tuendeshe mtandao katika hali ya operesheni ya moja kwa moja - utaratibu wa run_network (tazama sura ya mwisho)

    Wacha tuhesabu makosa kwa safu ya pato. Katika kesi hii, tunatumia fomula ifuatayo kwa kila thamani ya i-th ya safu ya pato (yaani, tunapitia nodi zote za safu ya pato):

    E i = (t i - a i).a i .(1 - a i)

    Hapa E i ni kosa kwa node ya i-th ya safu ya pato, i ni shughuli ya node hii, t i ni shughuli inayohitajika kwa ajili yake (yaani, thamani ya pato inayohitajika).

    Hapa kuna nambari katika Pascal:

    utaratibu wa kukokotoa_output_layer_errors; var i : byte; (kwa utofautishaji wa kitanzi) anza kwa i: = 1 hadi NUM_OUT fanya na ol[ i] fanya E: = (toto_la_kuhitajika[ i] - a) * a * (1 - a) mwisho ;

    Hapa unaweza kuona kwa nini nilianzisha utofauti wa makosa moja kwa moja kwenye maelezo ya neuroni. Hii inafanya kuwa sio lazima kuunda safu tofauti kwa maadili ya makosa.

    Sasa tunaweza kutumia maadili ya makosa ya safu ya pato kuamua makosa kwenye safu iliyofichwa. Fomula ni sawa, lakini sasa maadili ya pato unayotaka hayajafafanuliwa. - Tunahesabu jumla ya uzani wa maadili ya makosa ya safu ya pato:

    E i = a i . (1-a) . S j E j .w ij

    Maana ya viambishi imebadilika kidogo ikilinganishwa na fomula iliyopita. faharisi i inatumika kwa niuroni katika safu iliyofichwa (sio ile ya pato), kwa hivyo E i ni thamani ya makosa ya niuroni katika safu iliyofichwa, na a i ni ishara kwenye tokeo la niuroni. Index j inarejelea niuroni za safu ya pato: wij ni uzito (kigawo cha uzani) cha muunganisho kati ya nironi ya i-th iliyofichwa na niuroni ya pato ya j-th, na E j ni thamani ya makosa ya neuroni j. Muhtasari unafanywa kwa uzito wote wa miunganisho kati ya neuroni moja ya i-th na niuroni zote za safu ya pato.

    Na tena Turbo Pascal. Kumbuka kuwa jumla inajumuisha miunganisho yenye uzito kati ya niuroni ya safu iliyofichwa inayozingatiwa kwa sasa na niuroni zote kwenye safu ya matokeo.

    utaratibu wa kukokotoa_hidden_layer_errors; var i,j : byte; jumla: halisi; anza kwa i: = 1 hadi NUM_HID kufanya (tunahesabu safu nzima iliyofichwa) na hl[i] fanya jumla: = 0; (jumla ya maadili ya makosa kutoka kwa safu ya O/P) kwa j: = 1 hadi NUM_OUT fanya jumla: = jumla + ol[ j] .E * ol[ j].w[ i] (uzito pekee unaohusiana na neuron i) E: = a * (1 - a) * jumla (hakuna thamani nyingine ya w) mwisho; mwisho;
  • Tunatumia maadili ya makosa yaliyopatikana kwa safu ya pato ili kubadilisha mgawo wa uzito kati ya tabaka zilizofichwa na za pato. Lazima tuhesabu maadili yote ya makosa kabla ya kurekebisha migawo ya uzito, kwa kuwa maadili ya zamani ya uzito pia yapo. katika fomula. Ikiwa kwanza tunahesabu coefficients ya uzani, na kisha tu maadili ya makosa, basi mchakato wa kujifunza utasimama.

    Tunatumia equation:

    mpya w ij= mzee w ij+h.d j .x i

    Wapi w ij ni uzito wa muunganisho kati ya niuroni i ya safu iliyofichwa na niuroni j ya safu ya pato, d j- ongezeko la makosa kwa neuron ya pato j na Xi- ishara kwenye pato la neuron iliyofichwa i, h - mara kwa mara. Hii mara kwa mara hutumiwa ili kuhakikisha kuwa mafunzo hayafanyiki haraka sana, yaani, uzani haubadilika sana katika hatua moja ya mafunzo (ambayo husababisha kuruka kwa muunganisho wakati wa mafunzo ya mtandao).

    Vipi kuhusu viwango vya kizingiti cha nyuroni? Pia huanzishwa na nambari ndogo za nasibu na zinahitaji mafunzo. Viwango vya kizingiti vinachukuliwa kwa njia sawa na mgawo wa uzani, isipokuwa kwamba maadili ya pembejeo kwao huwa sawa na -1 (ishara ya minus - kwa sababu viwango vinatolewa wakati wa uendeshaji wa mtandao):

    kizingiti kipya = kizingiti cha zamani + h.d j.(-1)

    au zaidi fomu rahisi):

    kizingiti kipya = kizingiti cha zamani - h.d j

    Utaratibu huu hufunza mgawo wa uzani na viwango vya kizingiti:

    Katika nambari hii, nilitumia j kuashiria nodi za safu ya pato ili kulinganisha equation (yaani E inalingana d j ) Vivyo hivyo hl[i].out mechi Xi, na w[i] - w ij .

  • Mwishowe, lazima turekebishe uzani wa safu iliyofichwa. Kwa kweli, ikiwa kuna tabaka za ziada, nambari iliyo hapo juu pia itafanya kazi.

    sasisha_uzito_zilizofichwa; const LEARNING_RATE = 0.025; (hakuna sababu kwamba thamani hii haipaswi kuwa tofauti na ile inayotumika kwa nodi za pato) var i,j : byte; start kwa j : = 1 hadi NUM_HID fanya (tunazunguka nodi zote zilizofichwa) na hl[ j] anza (tunasindika miunganisho yote kutoka kwa safu ya uingizaji hadi nodi hii) kwa i : = 1 hadi NUM_INP kufanya w[ i] : = w[ i] + LEARNING_RATE * E * test_pat[ i] ; (tunarekebisha kiwango cha kizingiti cha nodi hii) kizingiti : = kizingiti - LEARNING_RATE * E mwisho mwisho ;

Kila kitu ni sawa katika JAVA
Ifuatayo ni utekelezaji wa mtandao wa neural uliofunzwa na uenezaji nyuma katika JAVA:

Ikiwa unahitaji maandishi chanzo, kisha bofya. Bila shaka, ibadilishe unavyotaka.

Ikiwa unataka msimbo uliokusanywa, ambao bila shaka unaweza kujumuisha kwenye ukurasa wako wa wavuti, kisha ubofye.

Mtandao, kama ilivyoonyeshwa hapa, una idadi maalum ya pembejeo (6) na idadi isiyobadilika ya matokeo (5). Vifundo vilivyofichwa katikati vinaonyeshwa kama miduara ya samawati.

Vifaa vya elimu vinawasilishwa kwa upande wa kushoto. Ili kubadilisha seti za ingizo ziwe za towe zinazohitajika, bofya kwenye safu wima ya miraba sita ya pembejeo au safu ya miraba mitano towe. Kila click mouse giza mraba (nyeupe - 0, mwanga kijivu - 0.3, kijivu giza - 0.7, nyeusi - 1).

Mchanganyiko huu, kwa mfano, inamaanisha kuwa seti ya pembejeo imewekwa (1, 0, 0, 0.3, 0, 0.7) na seti ya pato ni (0, 0, 0.7, 0.7, 0). Bofya kwenye + au - ishara (karibu na maneno "Mifumo ya mafunzo") ili kubadilisha idadi ya seti.

Ili kufundisha mtandao, bonyeza kitufe cha "Treni". Ili kujaribu mtandao, ingiza thamani ya sehemu ya seti ya pembejeo kwenye yanayopangwa hapo juu, kisha ubofye sehemu ya kuweka pembejeo (moja ya maadili hayo ya maandishi kwenye kisanduku upande wa kushoto wa mchoro wa kuzuia mtandao). Anzisha mtandao - kitufe cha "Run".

Algorithm ya uenezi wa nyuma

Visawe: Algorithm ya BackProp, Algorithm ya Uenezi wa Nyuma, BackProp

Loginom: Mtandao wa Neural (uainishaji) (processor), Mtandao wa Neural (regression) (processor)

Algorithm ya uenezi nyuma ni algoriti maarufu ya mafunzo ya mitandao ya neva ya safu iliyopangwa iliyopangwa (vipimo vya safu nyingi). Inarejelea mbinu za ujifunzaji zinazosimamiwa, na kwa hivyo inahitaji kwamba maadili lengwa yabainishwe katika mifano ya mafunzo. Pia ni mojawapo ya kanuni za kujifunza mashine maarufu.

Wazo la algorithm ni msingi wa utumiaji wa kosa la pato la mtandao wa neural:

kuhesabu maadili ya urekebishaji wa uzani wa niuroni katika tabaka zake zilizofichwa, ambapo idadi ya nyuroni za pato za mtandao, ni dhamana inayolengwa, ndio dhamana halisi ya pato. Algorithm ni ya kujirudia na hutumia kanuni ya kujifunza "kwa hatua" (kujifunza mtandaoni), wakati uzito wa niuroni za mtandao hurekebishwa baada ya mfano mmoja wa mafunzo kulishwa kwa mchango wake.

Katika kila iteration, kuna njia mbili za mtandao - mbele na nyuma. Kwenye moja kwa moja, vekta ya pembejeo hueneza kutoka kwa pembejeo za mtandao hadi kwa matokeo yake na hufanya vector fulani ya pato inayolingana na hali ya sasa (halisi) ya mizani. Kisha kosa la mtandao wa neva huhesabiwa kama tofauti kati ya maadili halisi na yalengwa. Kwenye kibali cha kurudi, kosa hili huenea kutoka kwa pato la mtandao hadi kwa pembejeo zake, na uzani wa neuroni hurekebishwa kwa mujibu wa sheria:

uzito uko wapi muunganisho wa i-th jth neuron, ni kigezo cha kiwango cha ujifunzaji, ambacho hukuruhusu kudhibiti zaidi saizi ya hatua ya kusahihisha ili kurekebisha kwa usahihi kosa la chini na huchaguliwa kwa majaribio wakati wa mchakato wa kujifunza (mabadiliko katika safu kutoka 0 hadi 1).

Ikizingatiwa kuwa jumla ya pato la jth neuron ni sawa na

inaweza kuonyeshwa hivyo

Kutoka kwa maneno ya mwisho inafuata kwamba tofauti ya kazi ya uanzishaji wa neurons ya mtandao lazima iwepo na isiwe sawa na sifuri wakati wowote, i.e. kitendakazi cha kuwezesha lazima kitofautishwe kwenye mstari mzima wa nambari. Kwa hivyo, ili kutumia mbinu ya uenezaji nyuma, vitendaji vya kuwezesha sigmoidal kama vile tangent ya vifaa au hyperbolic hutumiwa.

Kwa hivyo, algorithm hutumia kinachojulikana kama kushuka kwa gradient ya stochastic, "kusonga" katika nafasi ya uzani wa pande nyingi katika mwelekeo wa antigradient ili kufikia kiwango cha chini cha kazi ya makosa.

Kwa mazoezi, mafunzo hayaendelei hadi mtandao urekebishwe kwa kiwango cha chini cha kazi ya makosa, lakini hadi makadirio sahihi ya kutosha yanapatikana. Hii itawawezesha, kwa upande mmoja, kupunguza idadi ya marudio ya mafunzo, na kwa upande mwingine, ili kuepuka kurejesha mtandao.

Hivi sasa, marekebisho mengi ya algorithm ya uenezi wa nyuma yametengenezwa. Kwa mfano, mafunzo hayatumiwi "hatua kwa hatua", wakati kosa la pato linahesabiwa na uzani hurekebishwa kwa kila mfano, lakini "kwa nyakati" katika hali ya nje ya mkondo, wakati uzani hubadilishwa baada ya mifano yote ya mafunzo. seti inalishwa kwa pembejeo ya mtandao, na kosa linakadiriwa kwa mifano yote.

Kujifunza kwa Epoch-by-epoch kunakabiliwa zaidi na wauzaji wa nje na maadili yasiyo ya kawaida ya utofauti unaolengwa kwa sababu ya kukadiria makosa juu ya mifano mingi. Lakini hii huongeza uwezekano wa algorithm kukwama katika minima ya ndani. Uwezekano wa hii kwa ajili ya kujifunza "hatua kwa hatua" ni kidogo, kwani matumizi ya mifano ya mtu binafsi hujenga "kelele" ambayo "husukuma" algorithm kutoka kwa mashimo ya misaada ya gradient.

Faida za algoriti ya uenezaji nyuma ni pamoja na urahisi wa utekelezaji na upinzani dhidi ya hitilafu na bidhaa za nje katika data. Hasara ni pamoja na:

  • mchakato wa kujifunza kwa muda mrefu:
  • uwezekano wa "kupooza kwa mtandao", wakati kwa viwango vikubwa sehemu ya kufanya kazi ya uanzishaji inaishia katika eneo la kueneza kwa sigmoid na derivative katika usemi (1) inakuwa karibu na 0, na kwa kweli hakuna marekebisho ya uzani hufanyika na mchakato wa kujifunza "hufungia";
  • kuathirika kwa algoriti kuangukia kwenye minima ya ndani ya chaguo za kukokotoa za hitilafu.

Algorithm ilielezewa kwanza mnamo 1974.

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 hutengeneza muundo zaidi kazi ngumu na kwa hivyo huwa na uwezekano wa kufanya mazoezi 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 wenye mafanikio unaotoa 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).

Rudi

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