Gradienttilasku, gradienttilaskumenetelmä on numeerinen menetelmä funktion paikallisen minimin tai maksimin löytämiseksi liikkumalla gradienttia pitkin , joka on yksi nykyaikaisen optimoinnin tärkeimmistä numeerisista menetelmistä.
Sitä käytetään aktiivisesti laskennallisessa matematiikassa paitsi optimointi- (minimointi)-ongelmien suorassa ratkaisussa, myös ongelmissa, jotka voidaan kirjoittaa uudelleen optimointikielellä (epälineaaristen yhtälöiden ratkaisu, tasapainojen etsiminen, käänteisongelmat jne.). Gradienttilaskumenetelmää voidaan käyttää äärettömän ulottuvuuden avaruuden optimointiongelmiin, esimerkiksi optimaalisten säätöongelmien numeeriseen ratkaisuun.
Erityisen suuri kiinnostus gradienttimenetelmiä kohtaan viime vuosina johtuu siitä, että gradienttilaskeutumiset ja niiden stokastiset/satunnaistetut variantit ovat lähes kaikkien nykyaikaisten data-analyysissä kehitettyjen oppimisalgoritmien taustalla.
Olkoon tavoitefunktio näyttää tältä:
.Ja optimointiongelma esitetään seuraavasti:
Siinä tapauksessa, että on löydettävä maksimi, käytön sijaan
Menetelmän pääideana on mennä jyrkimmän laskun suuntaan, ja tämän suunnan antaa antigradientti :
jossa määrittää gradientin laskeutumisnopeuden ja voidaan valita
Muodon neliöfunktiolle jyrkin gradientin hakumenetelmä konvergoi mistä tahansa aloituspisteestä geometrisen etenemisen nopeudella (lineaarisesti), jonka nimittäjä ei ole suurempi kuin . Tässä tapauksessa seuraavat arviot ovat voimassa:
, , ,missä ja ovat toisten derivaattojen matriisin vähimmäis- ja enimmäisominaisarvot .
Näin ollen, koska funktio on vähän lähellä sen neliöllistä approksimaatiota, konvergenssin nopeus minimipisteen läheisyydessä riippuu ominaisarvojen suhteesta. Mitä suurempi tämä suhde, sitä huonompi menetelmän konvergenssi.
Sovelletaan gradienttimenetelmää funktioon . Sitten peräkkäiset approksimaatiot näyttävät tältä:
Tämä on tyypillinen esimerkki rotkofunktiosta. Gradienttimenetelmä "hyppää" rotkon rinteestä toiseen ja takaisin, joskus melkein liikkumatta oikeaan suuntaan, mikä hidastaa merkittävästi lähentymistä. Toinen esimerkki testikaivon funktiosta on Rosenbrock-funktio .
Gradientin suunnan funktion minimoimiseksi käytetään yksiulotteisia optimointimenetelmiä , kuten kultaleikkausmenetelmää . Voit myös etsiä parasta pistettä gradientin suunnasta, vaan jotain nykyistä parempaa.
Gradienttilaskumenetelmä on kaikista paikallisista optimointimenetelmistä helpoin toteuttaa. Sillä on melko heikot konvergenssiolosuhteet, mutta konvergenssinopeus on melko pieni (lineaarinen). Gradienttimenetelmävaihetta käytetään usein osana muita optimointimenetelmiä, kuten Fletcher-Reeves-menetelmää .
Gradienttilaskeutumismenetelmä osoittautuu erittäin hitaksi rotkoa pitkin liikuttaessa, ja tavoitefunktiomuuttujien määrän kasvaessa menetelmän käyttäytyminen muuttuu tyypilliseksi. Tämän ilmiön torjumiseksi käytetään rotkomenetelmää , jonka olemus on hyvin yksinkertainen. Kun on tehty kaksi kaltevuuslaskuaskelta ja saatu kolme pistettä, kolmas askel tulee ottaa ensimmäisen ja kolmannen pisteen yhdistävän vektorin suuntaan rotkon pohjaa pitkin.
Lähes neliötason funktioille konjugaattigradienttimenetelmä on tehokas .
Gradienttilaskeutumismenetelmää, jossa on joitain muutoksia, käytetään laajalti perceptronin kouluttamiseen ja se tunnetaan keinotekoisten hermoverkkojen teoriassa backpropagation -menetelmänä . Perceptron-tyyppistä hermoverkkoa opetettaessa on tarpeen muuttaa verkon painokertoimia siten, että keskimääräinen virhe hermoverkon lähdössä minimoidaan, kun sisäänmenoon syötetään opetussyötedatan sarja. . Muodollisesti, jotta voidaan ottaa vain yksi askel gradienttilaskeutumismenetelmän mukaan (tehdä vain yksi muutos verkkoparametreihin), on tarpeen syöttää peräkkäin koko harjoitustietojoukko verkkosyötteeseen, laskea virhe jokaiselle harjoitusdatalle vastustaa ja laskea tarvittava verkkokertoimien korjaus (mutta älä tee tätä korjausta), ja kun olet toimittanut kaikki tiedot, laske kunkin verkkokertoimen korjauksen summa (gradienttien summa) ja korjaa kertoimet "yhdellä askeleella" . On selvää, että suurella opetusdatajoukolla algoritmi toimii erittäin hitaasti, joten käytännössä verkkokertoimia säädetään usein jokaisen harjoituselementin jälkeen, jolloin gradientin arvo on likimääräinen vain yhdelle lasketun kustannusfunktion gradientilla. koulutuselementti. Tätä menetelmää kutsutaan stokastiseksi gradienttilaskuksi tai operatiiviseksi gradienttilaskuksi . Stokastinen gradientin laskeutuminen on stokastisen approksimoinnin muoto. Stokastisten approksimaatioiden teoria antaa edellytykset stokastisen gradientin laskeutumismenetelmän konvergenssille.
Optimointimenetelmät _ | |
---|---|
Yksiulotteinen |
|
Nolla järjestys | |
Ensimmäinen tilaus | |
toinen tilaus | |
Stokastinen | |
Lineaariset ohjelmointimenetelmät _ | |
Epälineaariset ohjelmointimenetelmät |