Neuraalverkon takaisinpropagaatio: koneoppimisalgoritmi ja esimerkki

⚡ Älykäs yhteenveto

Takaisinpropagaatio on neuroverkon ydinopetusalgoritmi, joka hienosäätää jokaista painoarvoa edellisessä epookissa mitatun virheen perusteella siten, että malli yleistyy paremmin näkymättömään dataan, yksi kerros kerrallaan.

  • 🔘 Ydinajatus: Ketjusääntö antaa jokaisen painon häviön gradientin kerros kerrallaan.
  • ☑️ Harjoitussilmukka: Eteenpäin siirtäminen, virheen mittaaminen, sen levittäminen taaksepäin, painojen päivittäminen, toistaminen.
  • Kaksi vaihtoehtoa: Staattinen takaisinpropagaatio kuvaa kiinteän syötteen kiinteään lähtöön; toistuva takaisinpropagaatio asettuu ensin ja sitten etenee.
  • 🧪 Miksi sillä on väliä: Gradientin laskeutuminen on käytännöllistä vain syvissä verkoissa, koska gradientteja käytetään uudelleen kerros kerrokselta.
  • 🛠️ Tunnetut rajoitukset: Suorituskyky riippuu syötteen laadusta, ja kohinaiset näytteet vääristävät opittuja painotuksia.
  • ⚙️ Liukuvärjäyksen kunto: Useiden pienten derivaattojen kertominen aiheuttaa häviäviä gradientteja; ReLU ja normalisointi vähentävät vaikutusta.

Takaisinlevitys neuroverkossa: koneoppimisalgoritmi

Mikä on tekoälyverkko?

Keinotekoinen neuroverkko on joukko toisiinsa kytkettyjä I/O-yksiköitä, joissa jokaisella yhteydellä on painoarvo. Se auttaa rakentamaan ennustavia malleja suurista tietokannoista, ja suunnittelussa käytetään sanastoa ihmisen hermostosta. Tällaiset verkot tukevat kuvan ymmärtämistä, koneoppimista, tietokonepuhetta ja monia muita hahmontunnistustehtäviä.

Takaisinpropagaatio on algoritmi, joka päättää, mitkä noiden painojen tulisi olla, joten nämä kaksi ideaa on parasta lukea yhdessä.

Mitä on backpropagation?

Takaisinpropagaatio on neuroverkon koulutuksen ydin. Se on menetelmä, jolla hienosäädetään neuroverkon painoja edellisessä epookissa (eli iteraatiossa) saadun virhesuhteen perusteella. Painojen asianmukainen viritys mahdollistaa virhesuhteiden pienentämisen ja mallin luotettavuuden parantamisen lisäämällä sen yleistystä.

Takaisin eteneminen hermoverkossa on lyhenne sanoista "virheiden leviäminen taaksepäin". Se on vakiomenetelmä keinotekoisten hermoverkkojen harjoittamiseen. Tämä menetelmä auttaa laskemaan häviöfunktion gradientin suhteessa kaikkiin verkon painoihin.

Kaksi termiä sekoitetaan usein. Vain takaisinlevitys laskee gradientti; optimoija, kuten gradientin lasku, on se, mitä se oikeastaan ​​on muutokset painot käyttämällä kyseistä gradienttia. Lähes jokainen moderni kehys suorittaa takaisinlevityksen automaattisesti autodiff-moottorinsa avulla.

Kuinka Backpropagation Algorithm toimii

Neuroverkon takaisinlevitysalgoritmi laskee yksittäisen painoarvon häviöfunktion gradientin ketjusäännön avulla. Se laskee tehokkaasti yhden kerroksen kerrallaan, toisin kuin naiivi suora laskenta. Se laskee gradientin, mutta ei määrittele, miten gradienttia käytetään. Se yleistää laskennan delta-säännön avulla.

Ketjusääntö tekee tästä tehokkaan. Yhden varhaisen painon vaikutus lopulliseen häviöön on paikallisten derivaattojen tulo lähtöön johtavalla polulla, joten algoritmi tallentaa jokaisen kerroksen välituloksen välimuistiin paluumatkalla ja käyttää sitä uudelleen jokaiselle alemman kerroksen painolle sen sijaan, että koko verkko laskettaisiin uudelleen painoa kohden.

Tarkastellaan seuraavaa takaisinlevittyvän neuroverkon esimerkkikaaviota ymmärtääksesi sen. Kuva tracyksi täysi kierros: syötteet tulevat vasemmalta, aktivoinnit siirtyvät piilotetun kerroksen läpi lähtöön ja mitattu virhe kulkee sitten takaisin samoja yhteyksiä pitkin painojen korjaamiseksi.

Takaisinpropagaatioalgoritmin kaavio, joka näyttää eteenpäin kulkemisen tulo-, piilo- ja lähtökerrosten läpi ja virheen kulkemisen taaksepäin

  1. Tulot X saapuvat esiliitetyn polun kautta
  2. Syöte mallinnetaan todellisilla painoilla W. Painot valitaan yleensä satunnaisesti.
  3. Laske tulos jokaiselle neuronille tulokerroksesta piilotettuihin kerroksiin ja tuloskerrokseen.
  4. Laske tulosteiden virhe:
    ErrorB= Actual Output – Desired Output
    
  5. Palaa tulostekerroksesta piilotettuun kerrokseen säätääksesi painoja niin, että virhe pienenee.
  6. Toista prosessia, kunnes haluttu tulos on saavutettu.

Monissa oppikirjoissa lukee sama määrä kuin haluttu miinus todellinenKumpikin käytäntö toimii, koska etumerkki absorboituu, kun optimoija alittaatracts gradienttia, edellyttäen, että pidät yhden käytännön koko verkossa.

Käytännössä virhe on harvoin pelkkä osatracHäviöfunktio, kuten regression keskimääräinen neliövirhe tai luokittelun ristientropia, muuntaa tuotoskohtaiset erot siksi yhdeksi luvuksi, jonka gradientin takaisinlevitys todellisuudessa laskee.

Miksi me tarvitsemme backpropagaatiota?

Backpropagationin merkittävimmät edut ovat:

  • Backpropagation on nopea, yksinkertainen ja helppo ohjelmoida
  • Se ei lisää uusia parametreja; tekemäsi viritys kuuluu optimoijalle ja verkolle, pääasiassa oppimisnopeudelle ja syötteiden määrälle.
  • Se on joustava menetelmä, koska se ei vaadi aiempaa tietoa verkosta
  • Se on vakiomenetelmä, joka toimii yleensä hyvin
  • Se ei vaadi erityistä mainintaa opittavan toiminnon ominaisuuksista.

Yksinkertaisesti sanottuna, ilman tehokasta tapaa saada gradientteja, yhden kerroksen syvemmän tason kouluttaminen olisi laskennallisesti epäkäytännöllistä.

Mikä on Feed Forward -verkko?

Feedforward-hermoverkko on keinotekoinen hermoverkko, jossa solmut eivät koskaan muodosta sykliä. Tällaisessa hermoverkossa on syöttökerros, piilotetut kerrokset ja tuloskerros. Se on ensimmäinen ja yksinkertaisin keinotekoisen hermoverkon tyyppi.

Tällä erolla on tässä merkitystä, koska takaisinpropagaation eteenpäin suuntautuva kulku on täsmälleen eteenpäin suuntautuva kulku; vain virheenkorjaus tapahtuu vastakkaiseen suuntaan.

Backpropagation-verkkojen tyypit

Kahden tyyppisiä backpropagation verkkoja ovat:

  • Staattinen takaisin-eteneminen
  • Toistuva Backpropagation

Staattinen takaisin-eteneminen

Se on eräänlainen takaisinlevitysverkko, joka tuottaa kartanping staattisen syötteen staattista tulostusta varten. On hyödyllistä ratkaista staattisia luokitteluongelmia, kuten optista tekstintunnistusta.

Toistuva Backpropagation

Toistuva takaisinleviäminen data mining syötetään eteenpäin, kunnes saavutetaan kiinteä arvo. Sen jälkeen virhe lasketaan ja välitetään taaksepäin.

Näiden kahden menetelmän tärkein ero on se, että karttaping on nopea staattisessa takaisinlevittymisessä, kun taas se on epästaattinen toistuvassa takaisinlevittymisessä. Alla olevassa taulukossa nämä kaksi on rinnakkain.

Kriteeri Staattinen takaisin-eteneminen Toistuva takaisinlevitys
karttaping Staattinen tulo staattiseen lähtöön Ei-staattinen; verkko asettuu ennen kuin virhettä käytetään
Nopeus Nopea, yksi läpikulku näytettä kohden Hitaammin aktivointia toistetaan, kunnes se vakiintuu
Verkon muoto Eteenpäinkytkentä, ei syklejä Sisältää takaisinkytkentäyhteyksiä
Tyypillinen käyttö Optinen tekstintunnistus, kiinteän kokoinen luokittelu Ongelmat, joiden tulos riippuu vakiintuneesta sisäisestä tilasta

Backpropagation historia

  • Vuonna 1961 J. Kelly, Henry Arthur ja E. Bryson johtivat jatkuvan takaisinpropagaation peruskäsitteen säätöteorian yhteydessä.
  • Vuonna 1969 Bryson ja Ho antoivat monivaiheisen dynaamisen järjestelmän optimointimenetelmän.
  • Vuonna 1970 Seppo Linnainmaa julkaisi automaattisen derivoinnin käänteisen moodin, laskennallisen menetelmän, jolle nykyinen takaisinpropagaatio perustuu.
  • Vuonna 1974 Werbos totesi mahdollisuuden soveltaa tätä periaatetta keinotekoisessa hermoverkossa.
  • Vuonna 1982 Hopfield toi ideansa hermoverkosta.
  • Vuonna 1986, David E. Rumelhartin, Geoffrey E. Hintonin ja Ronald J. Williamsin ponnisteluilla, backpropagation sai tunnustusta.
  • Vuonna 1989 Yann LeCun ja hänen kollegansa kouluttivat konvoluutioverkon takaisinlevitystekniikalla lukemaan käsin kirjoitettuja numeroita, mikä oli yksi ensimmäisistä laajamittaisista käytännön sovelluksista.
  • Vuonna 1993 Wan voitti ensimmäisenä kansainvälisen hahmontunnistuskilpailun backpropagation-menetelmän avulla.
  • Vuonna 2006 Hintonin työ syvien uskomusverkostojen ja kerroskohtaisen esikoulutuksen parissa herätti uudelleen kiinnostuksen syvien verkostojen kouluttamiseen, joka oli pysähtynyt katoavien gradienttien vuoksi.
  • Vuonna 2010 Xavier Glorot ja Yoshua Bengio analysoivat, miksi syviä verkkoja oli vaikea kouluttaa, ja esittelivät parannetun painotuksen alustuksen, joka yhdessä ReLU-aktivointien kanssa teki syvästä takaisinpropagaatiosta käytännöllisen.
  • Vuonna 2012 AlexNet (Krizhevsky, Sutskever ja Hinton) voitti ImageNet-kilpailun käyttämällä GPU-kiihdytettyä takaisinpropagaatiota, mikä käynnisti modernin syväoppimisen buumin.
  • Vuonna 2014 esiteltiin Adam-optimoija (Kingma ja Ba), josta tuli nopeasti takaisinlevityksen kanssa käytetty oletusgradienttilaskeutumisvariantti.
  • Vuonna 2015 eränormalisointi ja jäännösverkot (ResNet) ratkaisivat gradienttivirtausongelmia erittäin syvissä verkoissa, mahdollistaen takaisinlevityksen satojen kerrosten läpi.
  • Vuosina 2015–2017 TensorFlow ja PyTorch teki automaattisesta derivoinnista ohjelmiston vakio-ominaisuuden, joten gradientteja ei enää tarvinnut johtaa käsin.
  • Vuonna 2017 esiteltiin Transformer-arkkitehtuuri, jota koulutetaan päästä päähän takaisinpropagaatiolla, kuten myös sen päälle rakennettuja suuria kielimalleja.
  • Vuonna 2019 Bengio, Hinton ja LeCun saivat ACM AM Turing -palkinnon työstään syvien neuroverkkojen parissa.
  • Vuonna 2020 artikkelissa ”Backpropagation and the Brain” (Lillicrap, Santoro, Marris, Akerman ja Hinton) väitettiin, että aivot saattavat lähestyä takaisinlevittymisen kaltaista oppimista, mikä avasi uudelleen biologisen uskottavuuden keskustelun.
  • Vuonna 2022 Hinton ehdotti eteenpäin-eteenpäin-algoritmia, koulutusmenetelmää, joka välttää taaksepäin suuntautuvan syötön kokonaan.
  • Vuonna 2024 John Hopfield ja Geoffrey Hinton saivat Nobelin fysiikanpalkinnon perustavanlaatuisista löydöksistä, jotka mahdollistivat koneoppimisen tekoälyverkkojen avulla.
  • Vuonna 2025 eteenpäin suuntautuvia menetelmiä laajennettiin konvoluutioverkkoihin, mikä osoitti, että takaisinpropagaatiovapaa koulutus voisi toimia kuvien luokittelutehtävissä.
  • Vuodesta 2026 lähtien takaisinpropagaatio on edelleen käytännössä kaikkien syväoppimismallien standardikoulutusalgoritmi, kun taas tutkimus jatkuu gradienttivapaiden, paikallisten ja rinnakkaisten oppimismenetelmien löytämiseksi, jotka vähentävät sen muisti- ja laskentakustannuksia.

Backpropagation avainkohdat

  • Yksinkertaistaa verkon rakennetta poistamalla painotetut linkit, joilla on vähiten vaikutusta koulutettuun verkkoon
  • Sinun on tutkittava joukko syöttö- ja aktivointiarvoja kehittääksesi suhdetta syöttö- ja piiloyksikkökerrosten välillä.
  • Se auttaa arvioimaan tietyn tulomuuttujan vaikutusta verkon ulostuloon. Tästä analyysistä saatu tieto tulee esittää säännöissä.
  • Takaisinpropagointi on erityisen hyödyllinen syville hermoverkoille, jotka työskentelevät virhealttiissa projekteissa, kuten kuvan tai puheentunnistuksessa.
  • Takaisinlevitys hyödyntää ketju- ja potenssisääntöjä, minkä ansiosta se voi toimia millä tahansa määrällä lähtöjä.

Parhaat käytännöt takaisinlevityksessä

Neuroverkon takaisinpropagaatiota voidaan selittää "kengännauha"-analogian avulla. Painonmuutokset käyttäytyvät paljolti samalla tavalla kuin nauhan jännitys: liian vähän ja mikään ei pysy koossa, liikaa ja jokin napsahtaa.

Pitsijännitys Mitä se tarkoittaa harjoittelun aikana
Liian vähän jännitystä Liian vähän rajoituksia ja erittäin löysä — malli ei sovi kunnolla
Liikaa jännitystä Liikaa rajoitteita (ylikoulutus); liian kauan aikaa vievä (suhteellisen hidas prosessi); suurempi rikkoutumisen todennäköisyys
Vedä yhtä pitsiä enemmän kuin toista Epämukavuus (harha) – yksi verkoston osa hallitsee sopivuutta

Analogiasta seuraa kaksi käytännön tapaa: skaalaa syötteet ennen kouluttamista niin, että mikään yksittäinen ominaisuus ei vedä kovemmin kuin muut, ja tarkkaile validointihäviötä, jotta jännitys purkautuu ennen kuin ylikoulutus alkaa.

Backpropagationin käytön haitat

  • Takaisinpropagoinnin todellinen suorituskyky tietyssä ongelmassa riippuu syöttötiedoista.
  • Takaisin etenemisalgoritmi tiedon louhinnassa voi olla melko herkkä kohinaiselle tiedolle
  • Mini-eräkäsittelyn aikana takaisinlevitys tulisi toteuttaa matriisipohjaisella lähestymistavalla; katsoping yhden esimerkin kerrallaan käsittely on huomattavasti hitaampaa.
  • Syvissä verkoissa pienten derivaattojen toistuva kertolasku voi kutistaa gradientteja kohti nollaa, joten varhaisimmat kerrokset tuskin oppivat – häviävän gradientin ongelma, jota on kuvattu kohdassa Google Koneoppimisen kaatumiskurssi.

Mikään näistä ei sulje pois menetelmää. Ne ovat syitä, miksi ammattilaiset turvautuvat ReLU-aktivointeihin, normalisointiin ja huolellisiin oppimisnopeusaikatauluihin siirtyessään matalasta verkosta a-tasoiseen. syvä oppiminen malli.

UKK

Takaisinpropagaatio laskee häviön gradientin jokaisen painoarvon suhteen. Gradientin lasku on optimoija, joka käyttää kyseistä gradienttia ja siirtää jokaista painoarvoa. Toinen mittaa kulmakerrointa; toinen ottaa askeleen.

Oppimisnopeus määrittää, kuinka pitkälle kukin paino liikkuu gradienttiaan pitkin. Liian pieni painoarvo johtaa ryömimiseen; liian suuri painoarvo johtaa hävikkiin, jotka värähtelevät tai hajaantuvat. Aikataulut, jotka hidastavat nopeutta epookkien kuluessa, konvergoituvat yleensä luotettavammin.

Ajan läpi tapahtuva takaisinpropagaatio kouluttaa toistuvia verkkoja purkamalla sekvenssin kopioiden ketjuksi ja soveltamalla sitten tavallista takaisinpropagaatiota sen yli. Pitkät sekvenssit yleensä katkaistaan, koska gradientit muuten katoavat tai räjähtävät useiden vaiheiden aikana.

Mikä tahansa derivoitavissa oleva häviö toimii. Keskineliövirhe sopii regressioon, binäärinen ristientropia sopii kahden luokan ongelmiin ja kategorinen ristientropia sopii usean luokan tulostasoon. Valinta muuttaa lähtötason gradienttia, ei itse taaksepäin suuntautuvaa algoritmia.

Automaattiset hakutyökalut tutkivat oppimisnopeuksia, kerrosten leveyksiä ja regularisointiasetuksia paljon nopeammin kuin manuaalinen kokeilu ja erehdys. Bayes-optimointi ja varhainen pysäytysping ajoittajat karsivat heikkoja suorituksia nopeasti, jolloin laskentaa jää konfiguraatioille, jotka todellisuudessa vähentävät validointihävikkiä.

GitHub Copilot luonnostelee harjoitussilmukat, gradienttitarkistukset ja tasomääritelmät lyhyestä kommentista, mikä lyhentää mallipohjaista työskentelyä. Tarkista tuottamat derivaattoja numeerista gradienttitarkistusta vasten, koska uskottavan näköinen, mutta väärän merkkinen koodi harjoittelee äänettömästi.

Suuret painot kasvattavat taaksepäin tulevia tuloja jokaisella kerroksella, kunnes päivitykset ylittävät rajan ja häviöstä tulee epävakaa.ping, pienemmät alkupainot, erän normalisointi ja alhaisempi oppimisnopeus pitävät kaikki suuruusluokat annetussa vaihteluvälissä.

Erä on joukko näytteitä, jotka käsitellään ennen yhtä painopäivitystä. Iteraatio on yksi tällainen päivitys. Epookki on yksi täydellinen läpikäynti harjoitusjoukon läpi, joka sisältää yhtä monta iteraatiota kuin on eriä.

Tiivistä tämä viesti seuraavasti: