Neuraalvõrgus tagasilevimine: ML algoritm ja näide

⚡ Nutikas kokkuvõte

Tagasilevi on närvivõrgu põhitreeningalgoritm, mis peenhäälestab iga eelmises epohhis mõõdetud vea kaalu, nii et mudel üldistub paremini nähtamatute andmete peal, üks kiht korraga.

  • 🔘 Põhiidee: Ahelreegel annab iga kaalukaotuse gradiendi, üks kiht korraga.
  • ☑️ Treeningtsükkel: Edasisuunamine, vea mõõtmine, selle tagasisuunamine, kaalude uuendamine, kordamine.
  • Kaks varianti: Staatiline tagasilevi kaardistab fikseeritud sisendi fikseeritud väljundiks; rekurrentne tagasilevi esmalt stabiliseerub ja seejärel levib.
  • 🧪 Miks see on oluline: Gradiendi laskumine on praktiline ainult sügavate võrkude puhul, kuna gradiente kasutatakse kiht kihilt uuesti.
  • 🛠️ Teadaolevad piirid: Jõudlus sõltub sisendi kvaliteedist ja mürased näidised moonutavad õpitud kaalusid.
  • ⚙️ Gradiendi tervis: Paljude väikeste tuletiste korrutamine põhjustab kaduvaid gradiente; ReLU ja normaliseerimine vähendavad selle efekti.

Tagasi levimine närvivõrgus: masinõppe algoritm

Mis on tehisnärvivõrk?

Kunstlik närvivõrk on omavahel ühendatud sisend-/väljundüksuste rühm, kus igal ühendusel on oma kaal. See aitab teil luua ennustavaid mudeleid suurtest andmebaasidest ning disain laenab oma sõnavara inimese närvisüsteemilt. Sellised võrgud toetavad piltide mõistmist, masinõpet, arvutikõnet ja paljusid muid mustrituvastuse ülesandeid.

Tagasilevi on algoritm, mis otsustab, millised need kaalud peaksid olema, seega on neid kahte ideed kõige parem koos lugeda.

Mis on backpropagation?

Tagasilevitamine on närvivõrgu treenimise olemus. See on meetod närvivõrgu kaalude peenhäälestamiseks eelmises epohhis (st iteratsioonis) saadud veamäära põhjal. Kaalude õige häälestamine võimaldab vähendada veamäärasid ja muuta mudeli usaldusväärsemaks, suurendades selle üldistatavust.

Tagasi levitamine närvivõrgus on "vigade tagurpidi levitamise" lühike vorm. See on kunstlike närvivõrkude treenimise standardmeetod. See meetod aitab arvutada kadufunktsiooni gradiendi kõigi võrgus olevate kaalude suhtes.

Kaks terminit aetakse sageli segi. Ainult tagasilevi. arvutab gradient; optimeerija, näiteks gradiendi laskumine, on tegelikult see, mis muutused kaalud selle gradiendi abil. Peaaegu iga kaasaegne raamistik teostab tagasilevitamise automaatselt oma automaatse diferentseerimise mootori abil.

Kuidas tagasilevitamise algoritm töötab

Neuraalvõrgu tagasilevi algoritm arvutab ahelreegli abil ühe kaaluga kaotusfunktsiooni gradiendi. Erinevalt naiivsest otsesest arvutusest arvutab see tõhusalt ühe kihi korraga. See arvutab gradiendi, kuid ei defineeri, kuidas gradienti kasutatakse. See üldistab arvutust deltareegli abil.

Selle efektiivseks teeb ahelreegel. Ühe varajase kaalu mõju lõplikule kadule on väljunditeel olevate lokaalsete tuletiste korrutis, seega salvestab algoritm iga kihi vahetulemuse tagasiteel vahemällu ja kasutab seda uuesti iga alumise kihi kaalu jaoks, selle asemel, et kogu võrku iga kaalu kohta uuesti arvutada.

Mõistmiseks vaadake järgmist tagasileviva närvivõrgu näidisskeemi. Joonis traces üks täisläbimine: sisendid sisenevad vasakult, aktiveerimised liiguvad läbi peidetud kihi väljundisse ja mõõdetud viga liigub seejärel mööda samu ühendusi tagasi, et kaalusid korrigeerida.

Tagasilevitamise algoritmi diagramm, mis näitab edasiliikumist läbi sisend-, peidetud ja väljundkihtide ning tagasiliikumise vea

  1. Sisendid X, saabuvad eelühendatud tee kaudu
  2. Sisend modelleeritakse tegelike kaalude W abil. Kaalud valitakse tavaliselt juhuslikult.
  3. Arvutage iga neuroni väljund sisendkihist peidetud kihtideni ja väljundkihini.
  4. Arvutage väljundites olev viga:
    ErrorB= Actual Output – Desired Output
    
  5. Liikuge väljundkihilt tagasi peidetud kihti, et reguleerida kaalu nii, et viga väheneks.
  6. Korda protsessi seni, kuni soovitud tulemus on saavutatud.

Paljudes õpikutes on kirjas sama kogus kui soovitud miinus tegelikMõlemad kokkulepped toimivad, sest märk neeldub, kui optimeerija alamtracts gradienti, eeldusel, et säilitate kogu võrgus ühe kokkuleppe.

Praktikas on viga harva tühi alamfoorum.tracKaotusfunktsioon, näiteks regressiooni keskmine ruutviga või klassifitseerimise ristentroopia, teisendab väljundipõhised erinevused üheks arvuks, mille gradiendi tagasilevi tegelikult arvutab.

Miks me vajame tagasilevitamist?

Backpropagationi silmapaistvamad eelised on:

  • Tagasipalumine on kiire, lihtne ja hõlpsasti programmeeritav
  • See ei lisa uusi parameetreid; teie tehtav häälestamine, peamiselt õppimiskiirus ja sisendite arv, kuulub optimeerijale ja võrgule.
  • See on paindlik meetod, kuna see ei nõua eelteadmisi võrgu kohta
  • See on standardmeetod, mis töötab üldiselt hästi
  • See ei vaja eraldi mainimist õpitava funktsiooni omaduste kohta.

Lihtsamalt öeldes oleks ilma tõhusa gradientide saamise viisita arvutuslikult ebapraktiline treenida midagi sügavamat kui üks kiht.

Mis on edastusvõrk?

Edasisuunaline närvivõrk on kunstlik närvivõrk, kus sõlmed ei moodusta kunagi tsüklit. Seda tüüpi närvivõrgul on sisendkiht, peidetud kihid ja väljundkiht. See on esimene ja lihtsaim kunstliku närvivõrgu tüüp.

See eristus on siin oluline, sest tagasilevi edasiliikumine on täpselt edasisaatmine; ainult veaparandus toimub vastupidises suunas.

Tagasilevitavate võrkude tüübid

Tagasi levitamise võrke on kahte tüüpi:

  • Staatiline tagasilevi
  • Korduv tagasipaljundamine

Staatiline tagasilevi

See on üks tagasilevitamise võrgu liik, mis loob kaardiping staatilise sisendi staatilise väljundi jaoks. See on kasulik staatilise klassifitseerimise probleemide, näiteks optilise märgituvastuse, lahendamiseks.

Korduv tagasipaljundamine

Korduv tagasilevi sisse andmete kaevandamine edastatakse edasi, kuni saavutatakse fikseeritud väärtus. Pärast seda arvutatakse viga ja edastatakse see tagasi.

Nende kahe meetodi peamine erinevus on see, et kaartping on staatilises tagasilevimises kiire, samas kui rekurrentses tagasilevimises on see mittestaatiline. Allolev tabel esitab need kaks kõrvuti.

Kriteerium Staatiline tagasilevi Korduv tagasilevi
kaartping Staatiline sisend staatiliseks väljundiks Mittestaatiline; võrk rahuneb enne vea kasutamist
Kiirus Kiire, üks läbimine proovi kohta Aeglasem, aktiveerimist korratakse kuni stabiliseerumiseni
Võrgu kuju Edasisuunaline, tsükliteta Sisaldab tagasisideühendusi
Tüüpiline kasutamine Optiline märgituvastus, fikseeritud suurusega klassifikatsioon Probleemid, mille väljund sõltub stabiliseerunud sisemisest olekust

Backpropagation ajalugu

  • 1961. aastal tuletasid J. Kelly, Henry Arthur ja E. Bryson juhtimisteooria kontekstis pideva tagasilevitamise põhikontseptsiooni.
  • 1969. aastal andsid Bryson ja Ho mitmeastmelise dünaamilise süsteemi optimeerimise meetodi.
  • 1970. aastal avaldas Seppo Linnainmaa automaatse diferentseerimise pöördrežiimi, arvutusmeetodi, millele tänapäevane tagasilevitus on üles ehitatud.
  • 1974. aastal teatas Werbos võimalusest rakendada seda põhimõtet tehisnärvivõrgus.
  • 1982. aastal tõi Hopfield oma idee närvivõrgust.
  • David E. Rumelharti, Geoffrey E. Hintoni ja Ronald J. Williamsi jõupingutustel pälvis 1986. aastal tagasipaljundamine tunnustuse.
  • 1989. aastal treenisid Yann LeCun ja tema kolleegid tagasilevitamise abil konvolutsioonilist võrku käsitsi kirjutatud numbrite lugemiseks, mis oli üks esimesi laiaulatuslikke praktilisi rakendusi.
  • 1993. aastal võitis Wan esimese inimesena rahvusvahelise mustrite tuvastamise võistluse backpropagation meetodi abil.
  • 2006. aastal taaselustas Hintoni töö sügavate uskumusvõrgustike ja kihtide kaupa eelkoolituse alal huvi süvavõrgustike koolitamise vastu, mis oli kaduvate gradientide tõttu seiskunud.
  • 2010. aastal analüüsisid Xavier Glorot ja Yoshua Bengio, miks süvavõrke on raske treenida, ning tutvustasid täiustatud kaalu initsialiseerimist, mis koos ReLU aktiveerimistega muutis sügava tagasilevitamise praktiliseks.
  • 2012. aastal võitis AlexNet (Krizhevsky, Sutskever ja Hinton) ImageNeti võistluse, kasutades GPU-kiirendusega tagasilevitamist, mis pani aluse tänapäevasele süvaõppe buumile.
  • 2014. aastal võeti kasutusele Adam optimeerija (Kingma ja Ba), millest sai kiiresti tagasilevitamise puhul kasutatav vaikimisi gradiendi-laskumise variant.
  • 2015. aastal lahendasid partiide normaliseerimine ja jääkvõrgud (ResNet) gradientvoo probleemid väga sügavates võrkudes, võimaldades tagasilevi läbi sadade kihtide.
  • Aastatel 2015–2017 kasutasid TensorFlow ja PyTorch muutis automaatse diferentseerimise tarkvara standardfunktsiooniks, seega ei pidanud gradiente enam käsitsi tuletama.
  • 2017. aastal võeti kasutusele Transformeri arhitektuur, mida treenitakse otsast lõpuni tagasilevitamise abil, nagu ka sellele ehitatud suuri keelemudeleid.
  • 2019. aastal said Bengio, Hinton ja LeCun ACM AM Turingi auhinna oma töö eest sügavate närvivõrkude alal.
  • 2020. aastal väitis Lillicrap, Santoro, Marris, Akerman ja Hinton oma artiklis „Tagasilevi ja aju“ (ingl k „Backpropagation and the Brain“), et aju võib õppimisele läheneda tagasilevi sarnaselt, taasavades bioloogilise usutavuse arutelu.
  • 2022. aastal pakkus Hinton välja edasi-tagasi algoritmi, mis on treeningmeetod, mis väldib täielikult tagasipööramist.
  • 2024. aastal omistati John Hopfieldile ja Geoffrey Hintonile Nobeli füüsikapreemia alusavastuste eest, mis võimaldasid masinõpet tehisnärvivõrkude abil.
  • 2025. aastal laiendati edasisuunalisi meetodeid konvolutsioonivõrkudele, mis näitas, et tagasilevimiseta treenimine võiks toimida piltide klassifitseerimise ülesannete puhul.
  • 2026. aasta seisuga on tagasilevitamine endiselt praktiliselt kõigi süvaõppe mudelite standardne treeningalgoritm, samal ajal kui jätkuvad uuringud gradiendivabade, lokaalsete ja paralleelsete õppemeetodite kohta, mis vähendavad selle mälu- ja arvutuskulusid.

Tagasi levitamise põhipunktid

  • Lihtsustab võrgustruktuuri, eemaldades kaalutud lingid, millel on treenitud võrgule kõige väiksem mõju.
  • Peate uurima sisend- ja aktiveerimisväärtuste rühma, et arendada seost sisend- ja peidetud ühikukihtide vahel.
  • See aitab hinnata mõju, mida antud sisendmuutuja avaldab võrguväljundile. Sellest analüüsist saadud teadmised tuleks esitada reeglites.
  • Tagasi levitamine on eriti kasulik sügavate närvivõrkude jaoks, mis töötavad veaohtlike projektidega, nagu pildi- või kõnetuvastus.
  • Tagasilevi kasutab ära ahela- ja astmereegleid, mis võimaldavad sellel toimida mis tahes arvu väljunditega.

Tagasilevitamise parimad tavad

Neuraalvõrgus toimuvat tagasilevimist saab seletada „kinganööri“ analoogia abil. Kaalu muutused käituvad sarnaselt paela pingele: liiga vähe ja miski ei püsi koos, liiga palju ja midagi napsab.

Pitsi pinge Mida see treeningu ajal tähendab
Liiga vähe pinget Liiga ebapiisav piiramine ja väga lõtv – mudel ei sobi piisavalt hästi
Liiga palju pinget Liiga palju piiranguid (ületreening); liiga palju aega võttev (suhteliselt aeglane protsess); suurem purunemise tõenäosus
Tõmmates ühte pitsi rohkem kui teist Ebamugavustunne (eelarvamus) – üks osa võrgustikust domineerib sobivuse üle

Analoogiast tulenevad kaks praktilist harjumust: skaleerida sisendeid enne treenimist nii, et ükski funktsioon ei oleks teistest tugevam, ja jälgida valideerimiskaotust, et pinge vabaneks enne ületreenimise tekkimist.

Backpropagationi kasutamise puudused

  • Tagasi levitamise tegelik jõudlus konkreetse probleemi korral sõltub sisendandmetest.
  • Andmekaeve tagasilevimise algoritm võib olla mürarikaste andmete suhtes üsna tundlik
  • Minipartii puhul tuleks tagasilevi rakendada maatriksipõhise lähenemisviisiga; vaaaping ühe näite korraga töötlemine on märgatavalt aeglasem.
  • Sügavates võrkudes võib väikeste tuletiste korduv korrutamine gradiente nulli poole kahandada, seega varaseimad kihid vaevu õpivad – kaduva gradiendi probleem, mida on kirjeldatud punktis Google Masinaõppimise krahh.

Ükski neist ei välista meetodi kasutamist. Need on põhjused, miks praktikud pöörduvad ReLU aktiveerimise, normaliseerimise ja hoolika õppimiskiiruse ajakava poole, kui nad liiguvad madalast võrgust a-sse. sügav õpe mudel.

KKK

Tagasilevitamise meetod arvutab kaotuse gradiendi iga kaalu suhtes. Gradiendi laskumine on optimeerija, mis kasutab seda gradienti ja liigutab iga kaalu. Üks mõõdab kallet; teine ​​teeb sammu.

Õppimiskiirus määrab, kui kaugele iga kaal oma gradiendil liigub. Liiga väike kaal tähendab, et treening roomab; liiga suur kaal tähendab, et kaotus võngub või hajub. Ajakavad, mis aeglustavad kiirust epohhide jooksul, koonduvad tavaliselt usaldusväärsemalt.

Tagasilevi ajas treenib rekurrentseid võrgustikke, kerides jada lahti koopiate ahelaks ja seejärel rakendades sellele tavalist tagasilevi. Pikad jadad tavaliselt kärbitakse, sest vastasel juhul kaovad gradiendid või plahvatavad paljude sammude jooksul.

Igasugune diferentseeruv kaotus sobib. Keskmine ruutviga sobib regressioonile, binaarne ristentroopia kahe klassi probleemidele ja kategooriline ristentroopia mitme klassi väljundkihtidele. Valik muudab väljundkihi gradienti, mitte tagurpidi algoritmi ennast.

Automatiseeritud otsingutööriistad uurivad õppimiskiirust, kihtide laiust ja regulariseerimise sätteid palju kiiremini kui käsitsi katse-eksituse meetodil. Bayesi optimeerimine ja varajane peatamine.ping Planeerijad kärpivad nõrku käivitusi kiiresti, jättes arvutusaja konfiguratsioonidele, mis tegelikult vähendavad valideerimiskaotust.

GitHubi koopia koostab lühikese kommentaari põhjal treeningtsüklid, gradiendikontrollid ja kihtide definitsioonid, mis lühendab mallipõhist tööd. Kontrolli saadud tuletisi numbrilise gradiendikontrolli abil, kuna usutava välimusega, kuid vale märgiga programm treenib vaikselt.

Suured kaalud panevad tagurpidi korrutised igal kihil kasvama, kuni uuendused ületavad piire ja kadu muutub ebastabiilseks.ping, väiksemad algkaalud, partiide normaliseerimine ja madalam õppimiskiirus hoiavad kõik suurusjärgud vahemikus.

Partii (batch) on enne ühte kaaluuuendust töödeldud näidiste rühm. Iteratsioon on üks selline uuendus. Epohh on üks täielik läbikäik treeningkomplekti, mis sisaldab sama palju iteratsioone kui partiisid (batch'e).

Võta see postitus kokku järgmiselt: