Přechodový sestup - Gradient descent
Přechodový sestup je první objednávka iterativní optimalizace algoritmus pro nalezení a místní minimum rozlišitelné funkce. Cílem je podniknout opakované kroky v opačném směru než spád (nebo přibližný gradient) funkce v aktuálním bodě, protože to je směr nejstrmějšího klesání. Naopak krokování ve směru přechodu povede k a místní maximum této funkce; postup je pak známý jako gradientní výstup.
Gradientní sestup se obecně připisuje Cauchy, který to poprvé navrhl v roce 1847,[1] ale jeho konvergenční vlastnosti pro nelineární optimalizační problémy byly nejprve studovány Haskell Curry v roce 1944.[2]
Popis

Gradientní sestup je založen na pozorování, že pokud funkce s více proměnnými je definovaný a rozlišitelný v sousedství bodu , pak klesá nejrychlejší pokud jde od ve směru záporného gradientu na . Z toho vyplývá, že pokud
pro tedy dost malý . Jinými slovy, termín je odečteno od protože se chceme pohybovat proti přechodu směrem k místnímu minimu. S ohledem na toto pozorování je třeba začít odhadem pro místní minimum , a zvažuje sekvenci takhle
Máme monotóní sekvence
doufejme, že sekvence konverguje na požadované místní minimum. Všimněte si, že hodnota velikost kroku se může měnit při každé iteraci. S určitými předpoklady o funkci (například, konvexní a Lipschitz ) a konkrétní možnosti (např. zvoleno buď prostřednictvím a vyhledávání linek který uspokojuje Wolfe podmínky nebo Barzilai – Borweinova metoda[3][4] zobrazeno následovně),
konvergence lze zaručit na místní minimum. Když funkce je konvexní, všechna místní minima jsou také globální minima, takže v tomto případě může gradientní sestup konvergovat ke globálnímu řešení.
Tento proces je znázorněn na vedlejším obrázku. Tady se předpokládá, že je definován v rovině a že jeho graf má a miska tvar. Modré křivky jsou vrstevnice, tj. regiony, ve kterých je hodnota je konstantní. Červená šipka pocházející z bodu ukazuje směr negativního gradientu v tomto bodě. Všimněte si, že (negativní) gradient v bodě je ortogonální k vrstevnici procházející tímto bodem. Vidíme ten přechod klesání vede nás na dno mísy, to znamená do bodu, kde je hodnota funkce je minimální.
Analogie pro pochopení gradientního sestupu

Základní intuici za gradientním sestupem lze ilustrovat hypotetickým scénářem. Osoba je zaseknutá v horách a snaží se dostat dolů (tj. Snaží se najít globální minimum). Existuje hustá mlha, takže viditelnost je extrémně nízká. Cesta z hory proto není viditelná, proto musí k vyhledání minima použít místní informace. Mohou použít metodu gradientního klesání, která spočívá v pohledu na strmost kopce v jejich aktuální poloze, a pak ve směru s nejstrmějším klesáním (tj. Z kopce). Pokud by se snažili najít vrchol hory (tj. Maximum), postupovali by směrem k nejstrmějšímu výstupu (tj. Do kopce). Pomocí této metody by nakonec našli cestu z hory nebo by se mohli zaseknout v nějaké díře (tj. Místní minimum nebo sedlový bod ), jako horské jezero. Předpokládejme však také, že strmost kopce není hned při jednoduchém pozorování zřejmá, ale spíše vyžaduje sofistikovaný nástroj k měření, který člověk v tuto chvíli náhodou má. Měření strmosti kopce pomocí nástroje trvá poměrně dlouho, proto by měli své použití nástroje minimalizovat, pokud chtějí sjet z hory před západem slunce. Obtíž pak spočívá ve volbě frekvence, s jakou by měli měřit strmost kopce, aby nešli z cesty.
V této analogii představuje osoba algoritmus a cesta dolů z hory představuje posloupnost nastavení parametrů, které algoritmus prozkoumá. Strmost kopce představuje sklon chybového povrchu v daném bodě. Přístroj používaný k měření strmosti je diferenciace (sklon chybové plochy lze vypočítat pomocí derivát funkce druhé mocniny chyby v daném bodě). Směr, který se rozhodnou cestovat, je v souladu s spád povrchu chyby v daném bodě. Doba, kterou urazí před dalším měřením, je rychlost učení algoritmu. Vidět Zpětná propagace § Omezení pro diskusi o omezeních tohoto typu algoritmu „klesání z kopce“.
Příklady
Gradientní sestup má problémy s patologickými funkcemi, jako je Funkce Rosenbrock zde zobrazené.
Funkce Rosenbrock má úzké zakřivené údolí, které obsahuje minimum. Dno údolí je velmi ploché. Kvůli zakřivenému plochému údolí se optimalizace pomalu klikatí s malými velikostmi kroků směrem k minimu.
Klikatá povaha metody je také zřejmá níže, kde je použita metoda gradientního sestupu
Volba velikosti kroku a směru sestupu
Od použití velikosti kroku to je příliš malé, by zpomalilo konvergenci, a příliš velké by vedlo k odlišnostem a nalezení dobrého nastavení je důležitý praktický problém. Philip Wolfe také obhajoval používání „chytrých voleb směru [sestupu]“ v praxi.[5] Zatímco používání směru, který se odchyluje od nejstrmějšího směru klesání, se může zdát protiintuitivní, myšlenka je, že menší sklon může být kompenzován udržením na mnohem delší vzdálenost.
Abychom to matematicky zdůvodnili, pojďme použít směr a velikost kroku a zvažte obecnější aktualizaci:
- .
Hledání dobrého nastavení a vyžaduje trochu přemýšlení. Nejprve bychom chtěli, aby směr aktualizace směřoval z kopce. Matematicky, nechám označte úhel mezi a to vyžaduje Abychom řekli více, potřebujeme více informací o objektivní funkci, kterou optimalizujeme. Za poměrně slabého předpokladu, že je neustále diferencovatelné, můžeme dokázat, že:[6]
(1)
Tato nerovnost znamená, že částka, o kterou si můžeme být jisti funkcí je snížena závisí na kompromisu mezi těmito dvěma podmínkami v hranatých závorkách. První člen v hranatých závorkách měří úhel mezi směrem sestupu a záporným gradientem. Druhý člen měří, jak rychle se gradient mění ve směru sestupu.
V zásadě nerovnost (1) lze optimalizovat a zvolit optimální velikost a směr kroku. Problém je v tom, že hodnocení druhého členu v hranatých závorkách vyžaduje hodnocení a další vyhodnocení gradientu jsou obecně drahá a nežádoucí. Tento problém lze vyřešit některými způsoby:
- Zapomeňte na výhody chytrého směru klesání nastavením a použít vyhledávání linek najít vhodnou velikost kroku , jako je ten, který vyhovuje Wolfe podmínky.
- Za předpokladu, že je dvakrát diferencovatelný, použijte jeho hesén odhadovat Pak vyberte a optimalizací nerovnosti (1).
- Za předpokladu, že je Lipschitz, použijte jeho Lipschitzovu konstantu svázat Pak vyberte a optimalizací nerovnosti (1).
- Vytvořte si vlastní model pro . Pak vyberte a optimalizací nerovnosti (1).
- Za silnějších předpokladů o funkci jako konvexnost, více pokročilé techniky může být možné.
Obvykle dodržováním jednoho z výše uvedených receptů, konvergence lze zaručit na místní minimum. Když funkce je konvexní, všechna místní minima jsou také globální minima, takže v tomto případě může gradientní sestup konvergovat ke globálnímu řešení.
Řešení lineárního systému

Gradientní sestup lze použít k řešení systému lineárních rovnic, přeformulovaných jako problém kvadratické minimalizace, např. Pomocí lineární nejmenší čtverce. Řešení
ve smyslu lineárních nejmenších čtverců je definován jako minimalizace funkce
V tradičních lineárních nejmenších čtvercích pro skutečné a the Euklidovská norma je použito, v takovém případě
V tomto případě vyhledávání linek minimalizace, nalezení lokálně optimální velikosti kroku na každé iteraci lze provést analyticky a explicitní vzorce pro lokálně optimální jsou známy.[8]
Algoritmus se zřídka používá k řešení lineárních rovnic s metoda sdruženého gradientu je jednou z nejpopulárnějších alternativ. Počet iterací gradientu sestupu je obvykle úměrný spektru číslo podmínky matice systému (poměr maxima k minimu vlastní čísla z ), zatímco konvergence metoda sdruženého gradientu je obvykle určena druhou odmocninou čísla podmínky, tj. je mnohem rychlejší. Obě metody mohou těžit předběžná úprava, kde gradientní sestup může vyžadovat menší předpoklady pro preconditioner.[9]
Řešení nelineárního systému
Gradientní sestup lze také použít k řešení systému nelineární rovnice. Níže je uveden příklad, který ukazuje, jak použít sestup gradientu k řešení tří neznámých proměnných, X1, X2, a X3. Tento příklad ukazuje jednu iteraci sestupu gradientu.
Uvažujme nelineární systém rovnic
Představme si přidruženou funkci
kde
Dalo by se nyní definovat objektivní funkci
které se pokusíme minimalizovat. Jako první odhad použijeme