Primer za omrežje s širjenjem nazaj. Algoritem povratnega širjenja

Metoda širjenja nazaj

Metoda širjenje nazaj napake - metoda urjenja večplastnega perceptrona, ena od možnosti za nadzorovano učenje. Metodo je prvi opisal Paul J. Verbos. Nadalje so ga leta 1986 znatno razvili David I. Rumelhart, J. E. Hinton in Ronald J. Williams. To je iterativni gradientni algoritem, ki se uporablja za zmanjšanje napake delovanja večplastnega perceptrona in pridobitev želenega rezultata.

Glavna ideja te metode je širjenje signalov napake od omrežnih izhodov do njegovih vhodov v smeri, nasprotni neposrednemu širjenju signalov pri normalnem delovanju. Bartsev in Okhonin sta se takoj ponudila splošna metoda(»načelo dvojnosti«), ki se uporablja za širši razred sistemov, vključno s sistemi z zakasnitvijo, porazdeljenimi sistemi itd.

Metoda je modifikacija klasična metoda gradientni spust.

Algoritem širjenja nazaj

Imejmo večslojno posredovano omrežje z naključnimi utežnimi koeficienti. Obstaja nekaj vadbenih nizov, sestavljenih iz parov omrežni vhod – želeni izhod. Z Y označimo realno izhodno vrednost našega omrežja, ki je zaradi naključnosti utežnih koeficientov na začetku skoraj naključna.

Usposabljanje je sestavljeno iz izbire utežnih koeficientov na tak način, da minimizirajo nekatere objektivne funkcije. Kot objektivna funkcija Razmislimo o vsoti kvadratov omrežnih napak z uporabo primerov iz učnega niza.

kjer je dejanski izhod N-te izhodne plasti omrežja za p-ti nevron na j-tem primeru usposabljanja, želeni izhod. To pomeni, da z minimizacijo te funkcionalnosti dobimo rešitev z uporabo metode najmanjši kvadrati.

Ker utežni koeficienti vstopajo v odvisnost nelinearno, bomo z metodo poiskali minimum najstrmejši spust. To pomeni, da bomo na vsakem koraku učenja spremenili utežne koeficiente v skladu s formulo

kjer je utežni koeficient j-tega nevrona n-te plasti za komunikacijo i-ti nevron(n-1) plast.

Parameter se imenuje parameter stopnje učenja.

Tako je treba določiti delne odvode ciljne funkcije E po vseh utežnih koeficientih omrežja. Po pravilih za razlikovanje kompleksne funkcije

kjer je izhod in utežena vsota vhodov j-tega nevrona n-te plasti. Upoštevajte, da lahko izračunamo, če poznamo aktivacijsko funkcijo. Na primer, za sigmoid bo ta vrednost enaka

Tretji faktor / ni nič drugega kot rezultat i-tega nevrona (n-1)-te plasti, tj.

Parcialne odvode ciljne funkcije glede na uteži nevronov izhodne plasti je zdaj mogoče enostavno izračunati. Z razlikovanjem (1) in upoštevanjem (3) in (5) bomo imeli

Uvedemo notacijo

Nato za nevrone izhodne plasti

Za uteži nevronov notranje plasti ne moremo takoj zapisati, čemu je enak prvi faktor iz (4), lahko pa ga predstavimo takole:

Upoštevajte, da v tej formuli prva dva faktorja nista nič drugega kot. Tako je z uporabo (9) mogoče izraziti vrednosti za nevrone n-te plasti v smislu nevronov (n+1)-te plasti. Ker je za zadnjo plast enostavno izračunati z (8), je to mogoče z uporabo rekurzivne formule

pridobite vrednosti za vse nevrone vseh plasti.

Končno lahko formulo (2) za spreminjanje utežnih koeficientov zapišemo v obliki

Tako je popoln algoritem učenja nevronska mreža z uporabo algoritma povratnega širjenja je sestavljen na naslednji način.

Vsem utežem omrežja dodelimo naključne koeficiente teže začetne vrednosti. V tem primeru bo omrežje izvedlo nekaj naključna transformacija vhodni signali in vrednosti ciljne funkcije (1) bodo velike.

Napajajte enega od vhodnih vektorjev iz učnega nabora na omrežni vhod. Izračunajte izhodne vrednosti omrežja, pri tem pa si zapomnite izhodne vrednosti vsakega od nevronov.

Prilagodite uteži omrežja:

Ocena zmogljivosti omrežja

V primerih, ko je mogoče oceniti delovanje omrežja, lahko učne nevronske mreže predstavimo kot optimizacijski problem. Oceniti pomeni kvantitativno navesti, ali omrežje dobro ali slabo rešuje naloge, ki so mu dodeljene. V ta namen je izdelana funkcija vrednotenja. Praviloma je eksplicitno odvisen od izhodnih signalov omrežja in implicitno (skozi delovanje) od vseh njegovih parametrov. Najenostavnejši in najpogostejši primer vrednotenja je vsota kvadratov razdalj od omrežnih izhodnih signalov do njihovih zahtevanih vrednosti:

kjer je zahtevana vrednost izhodnega signala.

Metoda najmanjših kvadratov ni vedno najboljša izbira ocene. Skrbno načrtovanje ocenjevalne funkcije omogoča povečanje učinkovitosti mrežnega usposabljanja za red velikosti in tudi pridobitev dodatne informacije- “stopnja zaupanja” omrežja v podani odgovor.

Slabosti algoritma

Kljub številnim uspešnih aplikacijširjenje nazaj ni zdravilo. Največ težav povzroča neskončno dolg proces učenja. IN kompleksne naloge Za usposabljanje omrežja lahko traja nekaj dni ali celo tednov ali pa se sploh ne nauči. Razlog je lahko eden od spodaj opisanih.

Omrežna paraliza

Med procesom mrežnega treninga lahko vrednosti teže postanejo zelo velike zaradi popravka. velike količine. To lahko povzroči, da vsi ali večina nevronov delujejo zelo velike vrednosti OUT, v območju, kjer je odvod kompresijske funkcije zelo majhen. Ker je napaka, poslana nazaj med procesom učenja, sorazmerna s tem derivatom, lahko proces učenja praktično zamrzne. S teoretičnega vidika je ta problem slabo razumljen. Temu se običajno izognemo z zmanjšanjem velikosti koraka h, vendar to poveča čas usposabljanja. Za preprečevanje ali okrevanje od paralize so bile uporabljene različne hevristike, vendar jih za zdaj lahko štejemo le za eksperimentalne.

Lokalni minimumi

Širjenje nazaj uporablja obliko gradientnega spuščanja, kar pomeni, da se spušča navzdol po površini napake in nenehno prilagaja uteži proti minimumu. Površina napak kompleksnega omrežja je zelo razgibana in je sestavljena iz hribov, dolin, gub in grap v visokodimenzionalnem prostoru. Omrežje lahko pade v lokalni minimum (plitva dolina), ko je v bližini veliko več globoko nizko. Na točki lokalni minimum vse smeri vodijo navzgor in omrežje ne more izstopiti iz njega. Glavna težava pri urjenju nevronskih mrež so ravno metode izhoda iz lokalnih minimumov: vsakič, ko zapustimo lokalni minimum, se naslednji lokalni minimum ponovno išče z uporabo iste metode povratnega širjenja napak, dokler ni več mogoče najti izhoda iz njega. .

Velikost koraka

Natančen pregled dokaza konvergence pokaže, da se predpostavlja, da so popravki teže neskončno majhni. Jasno je, da to v praksi ni izvedljivo, saj vodi v neskončen čas učenja. Velikost koraka je treba vzeti kot končno. Če je velikost koraka fiksna in zelo majhna, potem je konvergenca prepočasna, če pa je fiksna in prevelika, lahko pride do paralize ali stalne nestabilnosti. Učinkovito povečujte korak, dokler se rezultat ne preneha izboljševati v tej smeri proti gradientu in zmanjša, če do izboljšanja ne pride. P. D. Wasserman je opisal prilagodljivi algoritem za izbiro korakov, ki samodejno prilagaja velikost koraka med procesom učenja. Knjiga A. N. Gorbana predlaga obsežno tehnologijo za optimizacijo učenja.

Poudariti je treba še, da je omrežje možno prekvalificirati, kar je najverjetneje posledica napačne zasnove njegove topologije. Tudi kdaj velike količine nevronov, se izgubi zmožnost mreže za posploševanje informacij. Omrežje se bo naučilo celotnega niza slik, ki so na voljo za usposabljanje, vendar bodo vse druge slike, tudi zelo podobne, morda napačno razvrščene.

Razvojno okolje in razlogi za izbiro

Aplikacija bo razvita v programskem jeziku C# z ogrodjem .NETFramework4.0 v razvojnem okolju MicrosoftVisualStudio 2010. Fragmenti kode, ki zahtevajo obsežne izračune, so razviti v C++. MSVisualStudio 2010 vključuje popoln komplet nove in izboljšane funkcije, ki poenostavljajo vsak korak razvojnega procesa od načrtovanja do uvajanja.

MicrosoftVisualStudio 2010 Ultimate je integrirano okolje orodij in strežniška infrastruktura, ki poenostavi celoten proces razvoja aplikacij. Poslovne aplikacije so zgrajene z učinkovitimi, predvidljivimi in prilagodljivimi procesi. Podrobna analitika poveča preglednost in sledljivost vsega življenjski cikel aplikacije. Tako pri ustvarjanju novih rešitev kot pri spreminjanju obstoječih, razvoj z uporabo močna orodja izdelava prototipov, oblikovanje arhitekture in razvoj, ki omogočajo razvoj aplikacij za različne platforme in tehnologije, kot sta računalništvo v oblaku in vzporedna obdelava. Napredne koordinacijske sposobnosti skupne dejavnosti skupaj z integriranimi, inovativnimi orodji za testiranje in odpravljanje napak bo izboljšalo produktivnost ekipe in zagotovilo visokokakovostne in poceni rešitve.

Razvoj aplikacij v MicrosoftVisualStudio2010 Ultimate v C# z ogrodjem .NETFramework4.0 poteka z uporabo objektno orientiranega programiranja in vizualnega programiranja.

Napake iz omrežnih izhodov na njegove vhode v smeri, nasprotni smeri širjenja signalov naprej pri normalnem delovanju. Bartsev in Okhonin sta takoj predlagala splošno metodo ("načelo dvojnosti"), ki se uporablja za širši razred sistemov, vključno s sistemi z zakasnitvijo, porazdeljenimi sistemi itd.

Da bi lahko uporabili metodo povratnega širjenja, mora biti prenosna funkcija nevronov razločljiva. Metoda je modifikacija klasične metode gradientnega spuščanja.

Funkcije aktivacije sigme

Kot aktivacijske funkcije se najpogosteje uporabljajo naslednje vrste sigmoid:

Fermijeva funkcija (eksponentna sigmoida):

Racionalna sigmoida:

Hiperbolični tangens:

,

kjer je s izhod nevronskega seštevalnika in je poljubna konstanta.

Za izračun racionalne sigmoide je potrebnih najmanj CPE-časa v primerjavi z drugimi sigmoidami. Izračun hiperboličnega tangensa zahteva največ procesorskih ciklov. V primerjavi s funkcijami aktivacije praga se sigmoide izračunajo zelo počasi. Če lahko po seštevanju v funkciji praga takoj začnete primerjavo z določeno vrednostjo (pragom), potem morate v primeru sigmoidne aktivacijske funkcije izračunati sigmoido (porabljate čas v najboljši možni scenarij v tri operacije: jemanje modula, seštevanje in deljenje), in šele nato primerjajte z mejno vrednostjo (na primer nič). Če predpostavimo, da procesor vse najpreprostejše operacije izračuna v približno istem času, bo delovanje sigmoidne aktivacijske funkcije po seštevku (ki bo trajalo enako) počasnejše od pragovne aktivacijske funkcije za faktor 1:4.

Funkcija vrednotenja omrežja

V primerih, ko je mogoče oceniti delovanje omrežja, lahko učne nevronske mreže predstavimo kot optimizacijski problem. Oceniti pomeni kvantitativno navesti, ali omrežje dobro ali slabo rešuje naloge, ki so mu dodeljene. V ta namen je izdelana funkcija vrednotenja. Praviloma je eksplicitno odvisen od izhodnih signalov omrežja in implicitno (skozi delovanje) od vseh njegovih parametrov. Najenostavnejši in najpogostejši primer vrednotenja je vsota kvadratov razdalj od omrežnih izhodnih signalov do njihovih zahtevanih vrednosti:

,

kjer je zahtevana vrednost izhodnega signala.

Opis algoritma

Večplastna perceptronska arhitektura

Algoritem povratnega širjenja se uporablja za večplastni perceptron. Omrežje ima veliko vhodov, veliko izhodov in veliko notranjih vozlišč. Preštevilčimo vsa vozlišča (vključno z vhodi in izhodi) s številkami od 1 do N (zvezno številčenje, ne glede na topologijo plasti). Označimo z utežjo, ki stoji na robu, ki povezuje i-to in j-to vozlišče, in z izhodom i-tega vozlišča. Če poznamo primer usposabljanja (pravilni odgovori mreže,), potem je funkcija napak, pridobljena z metodo najmanjših kvadratov, videti takole:

Kako spremeniti uteži? Izvajali bomo stohastični gradientni spust, to pomeni, da bomo uteži prilagajali po vsakem primeru treninga in se tako »gibali« v večdimenzionalnem prostoru uteži. Da bi »prišli« do minimalne napake, se moramo »premakniti« v smeri, ki je nasprotna gradientu, torej glede na vsako skupino pravilnih odgovorov dodati vsaki uteži

,

kjer je množitelj, ki določa hitrost "gibanja".

Izpeljanka se izračuna na naslednji način. Naj najprej, torej teža, ki nas zanima, vstopi v nevron zadnja stopnja. Najprej opazimo, da vpliva na izhod omrežja le kot del vsote, kjer se vsota prevzame preko vhodov j-tega vozlišča. zato

Podobno vpliva na skupno napako samo znotraj izhoda j-tega vozlišča (ne pozabite, da je to izhod celotnega omrežja). zato

če j-to vozlišče- ni na zadnjem nivoju, potem ima izhode; označimo jih z Children(j). V tem primeru

, .

No - to je natanko podoben popravek, vendar izračunan za vozlišče naslednje stopnje, ga bomo označili z - od njega se razlikuje po odsotnosti množitelja. Ker smo se naučili izračunati popravek za vozlišča zadnje stopnje in izraziti popravek za vozlišče več nizka raven z višjimi popravki že lahko napišete algoritem. Zaradi te lastnosti izračunavanja popravkov se algoritem imenuje algoritem širjenja nazaj(širjenje nazaj). Kratek povzetek opravljenega dela:

  • za vozlišče zadnje ravni
  • za vozlišče notranjega omrežja
  • za vsa vozlišča

Nastali algoritem je predstavljen spodaj. Kot vhod v algoritem je poleg podanih parametrov potrebno posredovati tudi strukturo omrežja v nekem formatu. V praksi zelo dobre rezultate kažejo mreže dokaj preproste strukture, sestavljene iz dveh ravni nevronov - skrite ravni (skrite enote) in izhodnih nevronov (izhodne enote); vsak vhod omrežja je povezan z vsemi skritimi nevroni, rezultat dela vsakega skritega nevrona pa se dovaja na vhod vsakega od izhodnih nevronov. V tem primeru je dovolj, da kot vhod podamo število nevronov skritega nivoja.

Algoritem

Algoritem: BackPropagation

kjer je vztrajnostni koeficient za glajenje ostrih skokov pri gibanju po površini ciljne funkcije

Matematična interpretacija treninga nevronske mreže

Pri vsaki ponovitvi algoritma povratnega širjenja se uteži nevronske mreže spremenijo, da se izboljša rešitev enega primera. Tako se med učnim procesom ciklično rešujejo problemi enokriterijske optimizacije.

Za usposabljanje nevronske mreže so značilne štiri posebne omejitve, ki razlikujejo usposabljanje nevronske mreže od: skupna opravila optimizacija: astronomsko število parametrov, potreba po visoki paralelnosti med usposabljanjem, večkriterijska narava problemov, ki se rešujejo, potreba po iskanju precej širokega območja, v katerem so vrednosti vseh minimiziranih funkcij blizu minimalne. V nasprotnem primeru lahko učni problem na splošno formuliramo kot problem minimizacije rezultatov. Previdnost v prejšnjem stavku (»običajno«) je posledica dejstva, da pravzaprav ne poznamo in nikoli ne bomo poznali vseh možnih problemov nevronskih mrež in morda nekje v neznanem obstajajo problemi, ki jih ni mogoče zreducirati na minimiziranje ocena. Minimiziranje ocene - kompleksen problem: parametrov je astronomsko veliko (za standardni primeri, implementirano na osebnem računalniku - od 100 do 1.000.000), je prilagodljivi relief (ocenjevalni graf kot funkcija nastavljivih parametrov) kompleksen in lahko vsebuje veliko lokalnih minimumov.

Slabosti algoritma

Kljub številnim uspešnim aplikacijam širjenja nazaj ni zdravilo. Največ težav povzroča neskončno dolg proces učenja. Pri zapletenih težavah lahko traja nekaj dni ali celo tednov, da se usposobi omrežje ali pa se sploh ne nauči. Razlog je lahko eden od spodaj opisanih.

Omrežna paraliza

Med procesom mrežnega treninga lahko vrednosti teže postanejo zelo velike zaradi popravka. To lahko povzroči, da vsi ali večina nevronov delujejo pri zelo velikih vrednostih OUT v območju, kjer je derivat kontrakcijske funkcije zelo majhen. Ker je napaka, poslana nazaj med procesom učenja, sorazmerna s tem derivatom, lahko proces učenja praktično zamrzne. S teoretičnega vidika je ta problem slabo razumljen. Temu se običajno izognemo z zmanjšanjem velikosti koraka η, vendar to poveča čas usposabljanja. Za preprečevanje ali okrevanje od paralize so bile uporabljene različne hevristike, vendar jih za zdaj lahko štejemo le za eksperimentalne.

Lokalni minimumi

Širjenje nazaj uporablja obliko gradientnega spuščanja, kar pomeni, da se spušča navzdol po površini napake in nenehno prilagaja uteži proti minimumu. Površina napak kompleksnega omrežja je zelo razgibana in je sestavljena iz hribov, dolin, gub in grap v visokodimenzionalnem prostoru. Mreža lahko pade v lokalni minimum (plitva dolina), če je v bližini veliko globlji minimum. Na lokalni minimalni točki so vse smeri usmerjene navzgor in omrežje ji ne more uiti. Glavna težava pri urjenju nevronskih mrež so ravno metode za pobeg iz lokalnih minimumov: vsakič, ko zapustimo lokalni minimum, se ponovno išče naslednji lokalni minimum z uporabo iste metode povratnega širjenja napak, dokler ni več mogoče najti izhoda iz to.

Velikost koraka

Natančen pregled dokaza konvergence pokaže, da se predpostavlja, da so popravki teže neskončno majhni. Jasno je, da to v praksi ni izvedljivo, saj vodi v neskončen čas učenja. Velikost koraka je treba vzeti kot končno. Če je velikost koraka fiksna in zelo majhna, potem je konvergenca prepočasna, če pa je fiksna in prevelika, lahko pride do paralize ali stalne nestabilnosti. Učinkovito je povečevati korak, dokler se izboljšanje ocene v dani smeri antigradienta ne ustavi, in ga zmanjšati, če do takega izboljšanja ne pride. P. D. Wasserman je opisal prilagodljivi algoritem za izbiro korakov, ki samodejno prilagaja velikost koraka med procesom učenja. Knjiga A. N. Gorbana predlaga obsežno tehnologijo za optimizacijo učenja.

Poudariti je treba še, da je omrežje možno prekvalificirati, kar je najverjetneje posledica napačne zasnove njegove topologije. S prevelikim številom nevronov se zmožnost omrežja za posploševanje informacij izgubi. Omrežje se bo naučilo celotnega niza slik, ki so na voljo za usposabljanje, vendar bodo vse druge slike, tudi zelo podobne, morda napačno razvrščene.

Glej tudi

  • Algoritem hitrostnega gradienta

Literatura

  1. Wasserman F. Nevroračunalništvo: teorija in praksa. - M.: "Mir", 1992.
  2. Khaikin S. Nevronske mreže: Celoten tečaj. per. iz angleščine N. N. Kussul, A. Yu Shelestova. 2. izd., rev. - M.: Založba Williams, 2008, 1103 str.

Povezave

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

Napake iz omrežnih izhodov na njegove vhode v smeri, nasprotni smeri širjenja signalov naprej pri normalnem delovanju. Bartsev in Okhonin sta takoj predlagala splošno metodo ("načelo dvojnosti"), ki se uporablja za širši razred sistemov, vključno s sistemi z zakasnitvijo, porazdeljenimi sistemi itd.

Da bi lahko uporabili metodo povratnega širjenja, mora biti prenosna funkcija nevronov razločljiva. Metoda je modifikacija klasične metode gradientnega spuščanja.

Funkcije aktivacije sigme

Kot aktivacijske funkcije se najpogosteje uporabljajo naslednje vrste sigmoid:

Fermijeva funkcija (eksponentna sigmoida):

Racionalna sigmoida:

Hiperbolični tangens:

,

kjer je s izhod nevronskega seštevalnika in je poljubna konstanta.

Za izračun racionalne sigmoide je potrebnih najmanj CPE-časa v primerjavi z drugimi sigmoidami. Izračun hiperboličnega tangensa zahteva največ procesorskih ciklov. V primerjavi s funkcijami aktivacije praga se sigmoide izračunajo zelo počasi. Če lahko po seštevku v funkciji praga takoj začnete primerjavo z določeno vrednostjo (pragom), potem morate v primeru sigmoidne aktivacijske funkcije izračunati sigmoido (v najboljšem primeru porabite čas za tri operacije: modul, seštevanje in deljenje) in šele nato primerjava z vrednostjo praga (na primer nič). Če predpostavimo, da procesor vse najpreprostejše operacije izračuna v približno istem času, bo delovanje sigmoidne aktivacijske funkcije po seštevku (ki bo trajalo enako) počasnejše od pragovne aktivacijske funkcije za faktor 1:4.

Funkcija vrednotenja omrežja

V primerih, ko je mogoče oceniti delovanje omrežja, lahko učne nevronske mreže predstavimo kot optimizacijski problem. Oceniti pomeni kvantitativno navesti, ali omrežje dobro ali slabo rešuje naloge, ki so mu dodeljene. V ta namen je izdelana funkcija vrednotenja. Praviloma je eksplicitno odvisen od izhodnih signalov omrežja in implicitno (skozi delovanje) od vseh njegovih parametrov. Najenostavnejši in najpogostejši primer vrednotenja je vsota kvadratov razdalj od omrežnih izhodnih signalov do njihovih zahtevanih vrednosti:

,

kjer je zahtevana vrednost izhodnega signala.

Opis algoritma

Večplastna perceptronska arhitektura

Algoritem povratnega širjenja se uporablja za večplastni perceptron. Omrežje ima veliko vhodov, veliko izhodov in veliko notranjih vozlišč. Preštevilčimo vsa vozlišča (vključno z vhodi in izhodi) s številkami od 1 do N (zvezno številčenje, ne glede na topologijo plasti). Označimo z utežjo, ki stoji na robu, ki povezuje i-to in j-to vozlišče, in z izhodom i-tega vozlišča. Če poznamo primer usposabljanja (pravilni odgovori mreže,), potem je funkcija napak, pridobljena z metodo najmanjših kvadratov, videti takole:

Kako spremeniti uteži? Izvajali bomo stohastični gradientni spust, to pomeni, da bomo uteži prilagajali po vsakem primeru treninga in se tako »gibali« v večdimenzionalnem prostoru uteži. Da bi »prišli« do minimalne napake, se moramo »premakniti« v smeri, ki je nasprotna gradientu, torej glede na vsako skupino pravilnih odgovorov dodati vsaki uteži

,

kjer je množitelj, ki določa hitrost "gibanja".

Izpeljanka se izračuna na naslednji način. Naj najprej , torej utež, ki nas zanima, vstopi v nevron zadnje stopnje. Najprej opazimo, da vpliva na izhod omrežja le kot del vsote, kjer se vsota prevzame preko vhodov j-tega vozlišča. zato

Podobno vpliva na skupno napako samo znotraj izhoda j-tega vozlišča (ne pozabite, da je to izhod celotnega omrežja). zato

Če j-to vozlišče ni na zadnjem nivoju, potem ima izhode; označimo jih z Children(j). V tem primeru

, .

No - to je natanko podoben popravek, vendar izračunan za vozlišče naslednje stopnje, ga bomo označili z - od njega se razlikuje po odsotnosti množitelja. Ker smo se naučili izračunati popravek za vozlišča zadnjega nivoja in izraziti popravek za vozlišče nižjega nivoja preko popravkov višjega, lahko že napišemo algoritem. Zaradi te lastnosti izračunavanja popravkov se algoritem imenuje algoritem širjenja nazaj(širjenje nazaj). Kratek povzetek opravljenega dela:

  • za vozlišče zadnje ravni
  • za vozlišče notranjega omrežja
  • za vsa vozlišča

Nastali algoritem je predstavljen spodaj. Kot vhod v algoritem je poleg podanih parametrov potrebno posredovati tudi strukturo omrežja v nekem formatu. V praksi zelo dobre rezultate kažejo mreže dokaj preproste strukture, sestavljene iz dveh ravni nevronov - skrite ravni (skrite enote) in izhodnih nevronov (izhodne enote); vsak vhod omrežja je povezan z vsemi skritimi nevroni, rezultat dela vsakega skritega nevrona pa se dovaja na vhod vsakega od izhodnih nevronov. V tem primeru je dovolj, da kot vhod podamo število nevronov skritega nivoja.

Algoritem

Algoritem: BackPropagation

kjer je vztrajnostni koeficient za glajenje ostrih skokov pri gibanju po površini ciljne funkcije

Matematična interpretacija treninga nevronske mreže

Pri vsaki ponovitvi algoritma povratnega širjenja se uteži nevronske mreže spremenijo, da se izboljša rešitev enega primera. Tako se med učnim procesom ciklično rešujejo problemi enokriterijske optimizacije.

Za usposabljanje nevronske mreže so značilne štiri posebne omejitve, ki razlikujejo usposabljanje nevronske mreže od splošnih problemov optimizacije: astronomsko število parametrov, potreba po visoki paralelnosti med usposabljanjem, večkriterijska narava problemov, ki se rešujejo, in potreba po iskanju dovolj široko območje, v katerem so vrednosti vseh minimiziranih funkcij blizu minimalnih. V nasprotnem primeru lahko učni problem na splošno formuliramo kot problem minimizacije rezultatov. Previdnost v prejšnjem stavku (»običajno«) je posledica dejstva, da pravzaprav ne poznamo in nikoli ne bomo poznali vseh možnih problemov nevronskih mrež in morda nekje v neznanem obstajajo problemi, ki jih ni mogoče zreducirati na minimiziranje ocena. Minimiziranje ocene je zapleten problem: obstaja astronomsko število parametrov (za standardne primere, implementirane na osebnem računalniku - od 100 do 1.000.000), prilagodljiva olajšava (ocenjevalni graf kot funkcija prilagojenih parametrov) je kompleksna in lahko vsebuje številni lokalni minimumi.

Slabosti algoritma

Kljub številnim uspešnim aplikacijam širjenja nazaj ni zdravilo. Največ težav povzroča neskončno dolg proces učenja. Pri zapletenih težavah lahko traja nekaj dni ali celo tednov, da se usposobi omrežje ali pa se sploh ne nauči. Razlog je lahko eden od spodaj opisanih.

Omrežna paraliza

Med procesom mrežnega treninga lahko vrednosti teže postanejo zelo velike zaradi popravka. To lahko povzroči, da vsi ali večina nevronov delujejo pri zelo velikih vrednostih OUT v območju, kjer je derivat kontrakcijske funkcije zelo majhen. Ker je napaka, poslana nazaj med procesom učenja, sorazmerna s tem derivatom, lahko proces učenja praktično zamrzne. S teoretičnega vidika je ta problem slabo razumljen. Temu se običajno izognemo z zmanjšanjem velikosti koraka η, vendar to poveča čas usposabljanja. Za preprečevanje ali okrevanje od paralize so bile uporabljene različne hevristike, vendar jih za zdaj lahko štejemo le za eksperimentalne.

Lokalni minimumi

Širjenje nazaj uporablja obliko gradientnega spuščanja, kar pomeni, da se spušča navzdol po površini napake in nenehno prilagaja uteži proti minimumu. Površina napak kompleksnega omrežja je zelo razgibana in je sestavljena iz hribov, dolin, gub in grap v visokodimenzionalnem prostoru. Mreža lahko pade v lokalni minimum (plitva dolina), če je v bližini veliko globlji minimum. Na lokalni minimalni točki so vse smeri usmerjene navzgor in omrežje ji ne more uiti. Glavna težava pri urjenju nevronskih mrež so ravno metode za pobeg iz lokalnih minimumov: vsakič, ko zapustimo lokalni minimum, se ponovno išče naslednji lokalni minimum z uporabo iste metode povratnega širjenja napak, dokler ni več mogoče najti izhoda iz to.

Velikost koraka

Natančen pregled dokaza konvergence pokaže, da se predpostavlja, da so popravki teže neskončno majhni. Jasno je, da to v praksi ni izvedljivo, saj vodi v neskončen čas učenja. Velikost koraka je treba vzeti kot končno. Če je velikost koraka fiksna in zelo majhna, potem je konvergenca prepočasna, če pa je fiksna in prevelika, lahko pride do paralize ali stalne nestabilnosti. Učinkovito je povečevati korak, dokler se izboljšanje ocene v dani smeri antigradienta ne ustavi, in ga zmanjšati, če do takega izboljšanja ne pride. P. D. Wasserman je opisal prilagodljivi algoritem za izbiro korakov, ki samodejno prilagaja velikost koraka med procesom učenja. Knjiga A. N. Gorbana predlaga obsežno tehnologijo za optimizacijo učenja.

Poudariti je treba še, da je omrežje možno prekvalificirati, kar je najverjetneje posledica napačne zasnove njegove topologije. S prevelikim številom nevronov se zmožnost omrežja za posploševanje informacij izgubi. Omrežje se bo naučilo celotnega niza slik, ki so na voljo za usposabljanje, vendar bodo vse druge slike, tudi zelo podobne, morda napačno razvrščene.

Glej tudi

  • Algoritem hitrostnega gradienta

Literatura

  1. Wasserman F. Nevroračunalništvo: teorija in praksa. - M.: "Mir", 1992.
  2. Khaikin S. Nevronske mreže: Celoten tečaj. per. iz angleščine N. N. Kussul, A. Yu Shelestova. 2. izd., rev. - M .: Založba Williams, 2008, 1103 str.

Povezave

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

Algoritem povratnega širjenja je ena od metod za usposabljanje večplastnih nevronskih mrež s posredovanjem naprej, imenovanih tudi večplastni perceptroni. Večplastni perceptroni se uspešno uporabljajo za reševanje številnih kompleksnih problemov.

Usposabljanje z algoritmom povratnega širjenja vključuje dva prehoda skozi vse plasti omrežja: naprej in nazaj. Pri prehodu naprej se vhodni vektor dovaja do vhodne plasti nevronske mreže in se nato širi po omrežju od plasti do plasti. Posledično se ustvari niz izhodnih signalov, ki je dejanski odziv omrežja na dano vhodno sliko. Med prehodom naprej so vse sinaptične uteži omrežja fiksne. Med prehodom nazaj se vse sinaptične uteži prilagodijo v skladu s pravilom popravljanja napak, in sicer: dejanski izhod omrežja se odšteje od želenega izhoda, kar povzroči signal napake. Ta signal se nato širi po omrežju v smeri, ki je nasprotna smeri sinaptičnih povezav. Od tod tudi ime - algoritem širjenja nazaj. Sinaptične uteži so prilagojene tako, da se izhod omrežja čim bolj približa želenemu.

Oglejmo si delovanje algoritma podrobneje. Recimo, da morate usposobiti naslednjo nevronsko mrežo z algoritmom povratnega širjenja:

Na sliki so uporabljeni naslednji simboli:

Kot aktivacijska funkcija v večplastnih perceptronih se praviloma uporablja sigmoidna aktivacijska funkcija, zlasti logistična:

kjer je parameter naklona sigmoidne funkcije. Če spremenite ta parameter, lahko konstruirate funkcije z različnimi nakloni. Pridržimo se, da bomo za vse nadaljnje argumente uporabljali ravno logistično aktivacijsko funkcijo, ki jo predstavlja samo zgornja formula.

Sigmoid zoži obseg variacije, tako da je vrednost med nič in ena. Večslojne nevronske mreže imajo večjo reprezentativno moč kot enoslojne nevronske mreže le ob prisotnosti nelinearnosti. Funkcija stiskanja zagotavlja zahtevano nelinearnost. V resnici obstaja veliko funkcij, ki jih je mogoče uporabiti. Algoritem širjenja nazaj zahteva le, da je funkcija diferencibilna povsod. Sigmoid izpolnjuje to zahtevo. Ima dodatno prednost samodejnega nadzora ojačanja. Pri šibkih signalih (tj. ko so blizu nič) ima vhodno-izhodna krivulja močan naklon, kar daje velik dobiček. Ko je magnituda signala večja, dobiček pade. Na ta način omrežje sprejme velike signale brez nasičenja, majhni signali pa gredo skozi omrežje brez pretiranega slabljenja.

Namen mrežnega usposabljanja Algoritem povratnega širjenja je prilagoditev njegovih uteži, tako da uporaba določenega nabora vhodov vodi do zahtevanega nabora izhodov. Za kratkost bomo te nize vhodov in izhodov imenovali vektorji. Med usposabljanjem se predpostavlja, da je za vsak vhodni vektor z njim seznanjen ciljni vektor, ki podaja zahtevani izhod. Skupaj se imenujejo vadbeni par. Mreža je trenirana na številnih parih.

Naprej:

  1. Inicializirajte sinaptične uteži z majhnimi naključnimi vrednostmi.
  2. Izberite naslednji vadbeni par iz vadbenega niza; predloži vhodni vektor omrežnemu vhodu.
  3. Izračunajte izhod omrežja.
  4. Izračunajte razliko med omrežnim izhodom in zahtevanim izhodom (ciljni vektor učnega para).
  5. Prilagodite uteži omrežja, da zmanjšate napako (kot glejte spodaj).
  6. Ponavljajte korake od 2 do 5 za vsak vektor vadbenega niza, dokler napaka na celotnem nizu ne doseže sprejemljive ravni.

Operacije, izvedene v korakih 2 in 3, so podobne tistim, ki se izvajajo, ko je omrežje že naučeno, tj. podan je vhodni vektor in izračunan je rezultat. Izračuni se izvajajo plast za plastjo. Na sl. 1 se najprej izračunajo izhodi nevronov plasti (plast je vhod, kar pomeni, da v njej ne potekajo izračuni), nato se uporabijo kot vhodi plasti, izračunajo se izhodi nevronov plasti , ki tvorijo izhodni vektor omrežja. Koraka 2 in 3 tvorita tako imenovani "prehod naprej", ko se signal širi po omrežju od vhoda do izhoda.

Koraka 4 in 5 predstavljata "povratni prehod", kjer se izračunani signal napake razširi nazaj po omrežju in uporabi za prilagajanje uteži.

Oglejmo si podrobneje 5. korak – prilagajanje uteži omrežja. Tukaj je treba izpostaviti dva spodaj opisana primera.

Primer 1. Prilagoditev sinaptičnih uteži izhodne plasti

Na primer, za model nevronske mreže na sl. 1 bodo to uteži z naslednjimi oznakami: in . Odločimo se, da bo indeks označeval nevron, iz katerega izhaja sinaptična teža, in nevron, v katerega vstopa:

Vstavimo vrednost , ki je enaka razliki med zahtevanimi in dejanskimi izhodi, pomnoženi z odvodom logistične aktivacijske funkcije (glej formulo logistične aktivacijske funkcije zgoraj):

Potem bodo uteži izhodne plasti po popravku enake:

Tu je primer izračuna sinaptične teže:

Primer 2. Prilagoditev sinaptičnih uteži skrite plasti

Za model nevronske mreže na sl. 1, bodo to uteži, ki ustrezajo slojem in . Odločimo se, da bo indeks označeval nevron, iz katerega izhaja sinaptična teža, in nevron, v katerega vstopi (upoštevajte pojav nove spremenljivke).

V večplastnih nevronskih mrežah so optimalne izhodne vrednosti nevronov vseh plasti, razen zadnjega, praviloma neznane; na omrežnih izhodih

Ena od možnosti za rešitev tega problema je razviti nize izhodnih signalov, ki ustrezajo vhodnim signalom za vsako plast nevronske mreže, kar je seveda zelo delovno intenzivna operacija in ni vedno izvedljiva za dinamično prilagajanje utežnih koeficientov sinaps, med katerimi praviloma večina šibke vezi in se spremenijo za majhno količino v eno ali drugo smer, pri čemer se shranijo samo tiste spremembe, ki so povzročile zmanjšanje napake na izhodu celotnega omrežja. ta metoda, kljub

navidezna preprostost, zahteva zapletene rutinske izračune. Tretja, bolj sprejemljiva možnost je širjenje signalov napake od izhodov nevronske mreže do njenih vhodov v smeri, ki je nasprotna neposrednemu širjenju signalov pri normalnem delovanju algoritem se imenuje postopek povratnega širjenja (napaka povratnega širjenja). On je tisti, ki je obravnavan spodaj

Algoritem širjenja nazaj je algoritem iterativnega gradientnega učenja, ki se uporablja za minimiziranje standardni odklon tok iz zahtevanih izhodov večplastnih nevronskih mrež s serijskimi povezavami

V skladu z metodo najmanjših kvadratov je ciljna funkcija napake nevronske mreže, ki jo je treba minimizirati, vrednost

kjer je dejansko izhodno stanje nevrona na izhodnem sloju nevronske mreže, ko se na njegove vhode poda slika, zahtevano izhodno stanje tega nevrona

Seštevanje se izvede po vseh nevronih izhodne plasti in po vseh slikah, ki jih obdeluje omrežje, z uporabo metode gradientnega spuščanja zagotavlja prilagoditev utežnih koeficientov, kot sledi

kjer je utežni koeficient sinaptične povezave, ki povezuje slojni nevron s slojnim nevronom - koeficient stopnje učenja,

V skladu s pravilom razlikovanja kompleksnih funkcij

kjer je utežena vsota vhodnih signalov nevrona in argumenta aktivacijske funkcije. Ker je treba odvod aktivacijske funkcije določiti na celotni abscisni osi, funkcija skoka enote in druge aktivacijske funkcije z nehomogenostmi niso primerne za. obravnavane nevronske mreže uporabljajo naslednje gladke funkcije, Kako hiperbolični tangens ali klasični sigmoid z eksponentom (glej tabelo 1 1) Na primer, v primeru hiperboličnega tangenta

Tretji množitelj je enak izhodu nevrona prejšnje plasti

Kar zadeva prvi faktor v (1.11), ga je mogoče zlahka razširiti na naslednji način:

Tukaj se izvede seštevanje med nevroni plasti z uvedbo nove spremenljivke:

dobimo rekurzivno formulo za izračun vrednosti plasti iz vrednosti starejše plasti

Za izhodni sloj:

Zdaj lahko (1.10) zapišemo v razširjeni obliki:

Včasih se (1.17) dopolni z vrednostjo spremembe teže pri prejšnji iteraciji, da se procesu korekcije teže zagotovi nekaj vztrajnosti in izravnava ostre skoke pri premikanju po površini ciljne funkcije.

kjer je koeficient vztrajnosti; trenutna številka ponovitve.

Tako je celoten algoritem za usposabljanje nevronske mreže z uporabo postopka povratnega širjenja sestavljen na naslednji način.

KORAK 1. Uporabite eno od možnih slik na vhode omrežja in v načinu normalnega delovanja nevronske mreže, ko se signali širijo od vhodov do izhodov, izračunajte vrednosti slednjih. Naj vas spomnimo, da:

kjer je število nevronov v plasti, ob upoštevanju nevrona s konstantnim izhodnim stanjem, ki določa pristranskost; nevronski vnos na plasti

kje je sigma,

kjer je vektorska komponenta vhodne slike.

KORAK 4. Prilagodite vse uteži v nevronski mreži:

KORAK 5. Če je omrežna napaka pomembna, pojdite na korak 1. V nasprotnem primeru končajte.

Omrežja v koraku 1 izmenično v naključni vrstni red Vse slike usposabljanja so predstavljene tako, da omrežje, figurativno rečeno, nekaterih ne pozabi, medtem ko si druge zapomni.

Iz izraza (1.17) sledi, da ko se izhodna vrednost nagiba k nič, se učinkovitost učenja opazno zmanjša. Pri binarnih vhodnih vektorjih v povprečju polovica uteži ne bo prilagojena, zato regija možne vrednosti Zaželeno je premikanje nevronskih izhodov v mejah, kar dosežemo z enostavnimi modifikacijami logističnih funkcij. Na primer, sigmoid z eksponento se pretvori v obliko:

Oglejmo si vprašanje zmogljivosti nevronske mreže, tj. število slik, predstavljenih njenim vhodom, ki se jih lahko nauči prepoznati. Za omrežja z več kot dvema slojema to vprašanje ostaja odprto. Za omrežja z dvema slojema je deterministična zmogljivost omrežja ocenjena na naslednji način:

kjer je število nastavljivih uteži, je število nevronov v izhodni plasti.

Ta izraz je bil pridobljen ob upoštevanju nekaterih omejitev. Prvič, število vhodov in nevronov v skritem sloju mora zadostiti neenakosti. Drugič, zgornja ocena pa je bila narejena za omrežja s pragovnimi aktivacijskimi funkcijami nevronov in zmogljivost omrežij z gladkimi aktivacijskimi funkcijami, na primer (1.23), je običajno večja. Poleg tega izraz deterministični pomeni, da je nastala ocena zmogljivosti primerna za vse vhodne vzorce, ki jih lahko predstavijo vhodi. V resnici ima porazdelitev vhodnih vzorcev običajno določeno pravilnost, kar nevronski mreži omogoča posploševanje in s tem povečanje njene dejanske zmogljivosti. Od distribucije slik, v splošni primer, ni vnaprej znana, o realni zmogljivosti lahko govorimo le okvirno, običajno pa gre za dvakratno deterministično zmogljivost.

Vprašanje zmogljivosti nevronske mreže je tesno povezano z vprašanjem potrebne moči izhodne plasti mreže, ki izvaja končno klasifikacijo slik. Na primer, za razdelitev niza vhodnih slik v dva razreda zadostuje en izhodni nevron. V tem primeru bo vsaka logična raven določila ločen razred. Na dveh izhodnih nevronih s funkcijo aktivacije praga je mogoče kodirati štiri razrede. Da bi povečali zanesljivost klasifikacije, je zaželeno uvesti redundanco tako, da vsakemu razredu dodelimo en nevron v izhodni plasti ali, še bolje, več, od katerih je vsak usposobljen za ugotavljanje, ali slika pripada razredu s svojo stopnjo zaupanje, na primer: visoko, srednje in nizko. Takšne nevronske mreže omogočajo razvrščanje vhodnih slik, združenih v mehke (zamegljene ali sekajoče se) nize. Ta lastnost približuje takšna omrežja realne razmere delovanje bioloških nevronskih mrež.

Zadevna nevronska mreža ima več " ozka grla" Prvič, v procesu so velike pozitivne oz negativne vrednosti uteži lahko premaknejo delovno točko na sigmoidih nevronov v območje nasičenosti. Majhne vrednosti odvoda logistične funkcije bodo v skladu z (1.15) in (1.16) vodile do zaustavitve učenja, kar paralizira omrežje. Drugič, uporaba metode gradientnega spuščanja ne zagotavlja iskanja globalnega minimuma ciljne funkcije. To je tesno povezano z vprašanjem izbire stopnje učenja. Povečanje teže in s tem stopnja učenja za iskanje ekstrema morata biti neskončno majhna, vendar bo v tem primeru učenje

dogaja nesprejemljivo počasi. Po drugi strani pa lahko prevelike prilagoditve uteži povzročijo trajno nestabilnost učnega procesa. Zato je za koeficient stopnje učenja 1] običajno izbrano število, manjše od 1 (na primer 0,1), ki se med procesom učenja postopoma zmanjšuje. Poleg tega, da preprečimo, da bi omrežje pomotoma padlo v lokalne minimume, se včasih, po stabilizaciji vrednosti utežnih koeficientov, 7 za kratek čas bistveno poveča, da se začne gradientni spust od nova točka. Če večkratna ponovitev tega postopka pripelje omrežje v isto stanje, lahko domnevamo, da je bil najden globalni minimum.

Obstaja še ena metoda za odpravo lokalnih minimumov in paralize omrežja, in sicer z uporabo stohastičnih nevronskih mrež.

Dajmo zgornjemu geometrijsko razlago.

V algoritmu povratnega širjenja se izračuna vektor gradienta površine napake. Ta vektor označuje smer najkrajšega spusta po površini od trenutne točke, gibanje vzdolž katere vodi do zmanjšanja napake. Zaporedje padajočih korakov bo vodilo do najmanj ene ali druge vrste. Težava pri tem je vprašanje izbire dolžine korakov.

pri velika velikost koraku bo konvergenca hitrejša, obstaja pa nevarnost, da preskočimo rešitev ali v primeru kompleksna oblika površine napake, da gredo v napačno smer, na primer premikanje po ozki grapi s strmimi pobočji, skakanje z ene strani na drugo. Nasprotno, ko majhen korak in iti v pravo smer bo zahtevalo veliko ponovitev. V praksi velja, da je velikost koraka sorazmerna s strmino pobočja, tako da se algoritem upočasni blizu minimuma. Prava izbira hitrost učenja je odvisna od določeno nalogo in se običajno izvaja eksperimentalno. Ta konstanta je lahko odvisna tudi od časa in se z napredovanjem algoritma zmanjšuje.

Običajno je ta algoritem spremenjen tako, da vključuje izraz zagona (ali vztrajnosti). To spodbuja napredek v določeni smeri, tako da, če je bilo narejenih več korakov v isto smer, algoritem poveča hitrost, kar vam včasih omogoča, da se izognete lokalnemu minimumu, pa tudi hitreje greste skozi ravna območja.

Na vsakem koraku algoritma se vsi primeri usposabljanja dovajajo na vhod omrežja po vrsti, dejanske izhodne vrednosti omrežja se primerjajo z zahtevanimi vrednostmi in napaka se izračuna. Vrednost napake kot tudi gradient površine napake

uporablja se za nastavitev lestvic, po kateri se vsa dejanja ponovijo. Proces učenja se ustavi, ko preteče določeno število epoh, ali ko napaka doseže določeno majhno raven, ali ko se napaka preneha zmanjševati.

Oglejmo si podrobneje probleme posploševanja in prekvalificiranja nevronske mreže. Generalizacija je zmožnost nevronske mreže, da naredi natančno napoved na podlagi podatkov, ki ne pripadajo prvotnemu učnemu nizu. Prekomerno opremljanje je prekomerno opremljanje, do katerega pride, ko algoritem za usposabljanje traja predolgo in je omrežje preveč zapleteno za nalogo ali količino razpoložljivih podatkov.

Pokažimo težave posploševanja in prekvalifikacije na primeru približevanja določene odvisnosti ne z nevronsko mrežo, temveč s pomočjo polinomov, in bistvo pojava bo popolnoma enako.

Polinomski grafi imajo lahko drugačna oblika in višja kot sta stopnja in število izrazov, bolj zapletena je lahko ta oblika. Za izhodiščne podatke lahko izberete polinomsko krivuljo (model) in tako pridobite razlago obstoječe odvisnosti. Podatki so lahko šumni, zato ni mogoče domnevati, da najboljši model natančno prehaja skozi vse razpoložljive točke. Polinom nizkega reda lahko bolje pojasni obstoječo odvisnost, vendar ni dovolj prilagodljivo sredstvo za aproksimacijo podatkov, medtem ko polinom visokega reda morda preveč prilagodljiv, vendar bo natančno sledil podatkom, medtem ko bo prevzel zapleteno obliko, ki nima nobene zveze z resničnim odnosom.

Nevronske mreže se soočajo z enakimi težavami. Omrežja z veliko število uteži so modelirane kompleksne funkcije in so zato nagnjeni k pretreniranosti. Omrežja z majhnim številom uteži morda niso dovolj prilagodljiva za modeliranje obstoječih odvisnosti. Na primer, omrežje brez skritih plasti samo modelira navadno linearno funkcijo.

Kako izbrati pravilna diploma kompleksnost omrežja? Skoraj vedno bolj zapleteno omrežje povzroči manjšo napako, vendar to morda ne pomeni dobre kakovosti modela, temveč o preusposabljanju omrežja.

Rešitev je uporaba primerjalnega navzkrižnega preverjanja. V ta namen je rezerviran del učnega vzorca, ki se ne uporablja za usposabljanje omrežja z algoritmom povratne propagacije, temveč za neodvisno kontrolo rezultata med algoritmom. Na začetku dela je prišlo do omrežne napake na treningu in

kontrolni nizi bodo enaki. Ko se omrežje usposablja, se napaka usposabljanja zmanjšuje, prav tako napaka na kontrolnem nizu. Če se napaka nadzora neha zmanjševati ali celo začne naraščati, to pomeni, da je omrežje začelo preveč približevati podatke (pretrenirano) in je treba usposabljanje prekiniti. Če se to zgodi, je treba zmanjšati število skritih elementov in/ali slojev, ker je omrežje premočno za to nalogo. Če obe napaki (usposabljanje in navzkrižno preverjanje) ne dosežeta dovolj majhne ravni, potem do ponovnega usposabljanja seveda ni prišlo in omrežje, nasprotno, ni dovolj zmogljivo za modeliranje obstoječe odvisnosti.

Opisane težave privedejo do tega, da ko praktično delo Pri nevronskih mrežah morate eksperimentirati z velikim številom različnih mrež, včasih vsako od njih trenirati večkrat in primerjati rezultate. Glavni pokazatelj kakovosti rezultata je napaka pri krmiljenju. Hkrati pa je v skladu s sistemskim načelom od dveh omrežij s približno enakimi napakami krmiljenja smiselno izbrati tisto, ki je enostavnejše.

Potreba po ponavljajočih se eksperimentih privede do dejstva, da kontrolni niz začne igrati ključno vlogo pri izbiri modela in postane del učnega procesa. To slabi njegovo vlogo kot neodvisno merilo kakovost modela. pri veliko število obstajajo poskusi velika verjetnost izberite dobro omrežje, ki daje dober rezultat na krmilnem kompletu. Da pa končnemu modelu zagotovijo ustrezno zanesljivost, pogosto (kadar obseg učnih primerov to dopušča) storijo naslednje: rezervirajo testni nabor primerov. Končni model se testira na podatkih iz tega nabora, da se zagotovi, da so rezultati, doseženi na nizih primerov za usposabljanje in test, resnični in ne artefakti učnega procesa. Da bi lahko dobro odigral svojo vlogo, bi morali testni niz seveda uporabiti samo enkrat: če ga ponovno uporabimo za prilagajanje učnega procesa, bo pravzaprav postal kontrolni niz.

Da bi pospešili proces usposabljanja omrežja, so bile predlagane številne modifikacije algoritma za povratno širjenje, povezane z uporabo različne funkcije napake, postopki za določanje smeri in velikosti korakov.

1) Funkcije napak:

Integralne funkcije napak v celotnem nizu primerov za usposabljanje;

Funkcije napak celih in ulomkov

2) Postopki za določanje velikosti koraka pri vsaki iteraciji

Dihotomija;

Inercialna razmerja (glej zgoraj);

3) Postopki za določanje smeri koraka.

Uporaba matrike odvodov drugega reda (Newtonova metoda);

Uporaba navodil v več korakih (partanska metoda).



Vam je bil članek všeč? Delite s prijatelji!