Optimalizace modelů pomocí gradientní sestupu

Dokončeno

Viděli jsme, jak funkce nákladů vyhodnocují, jak dobře modely fungují pomocí dat. Optimalizátor je posledním dílem puzzle.

Role optimalizátoru je změnit model způsobem, který zlepšuje jeho výkon. Provede to tak, že zkontroluje výstupy modelu a náklady a navrhne nové parametry modelu.

Například v našem scénáři zemědělství má náš lineární model dva parametry: průsečík přímky a sklon přímky. Pokud je průsečík čáry nesprávný, model podceňuje nebo přehodnocuje teploty v průměru. Pokud je sklon nastavený špatně, model neudělá dobrou úlohu předvedení toho, jak se teploty od roku 1950 změnily. Optimalizátor tyto dva parametry změní tak, aby v průběhu času dělal optimální úlohu modelování teplot.

Diagram that shows the optimizer part of the machine-learning lifecycle.

Gradientní sestup

Nejběžnějším optimalizačním algoritmem dnes je gradientní sestup. Existuje několik variant tohoto algoritmu, ale všechny používají stejné základní koncepty.

Gradientní sestup používá k odhadu toho, jak změna jednotlivých parametrů mění náklady. Například zvýšení parametru může být předpovězeno, aby se snížily náklady.

Gradientní sestup je pojmenován jako takový, protože vypočítá gradient (sklon) vztahu mezi jednotlivými parametry modelu a náklady. Parametry se pak změní tak, aby se přesouvají směrem dolů.

Tento algoritmus je jednoduchý a výkonný, ale nezaručuje nalezení optimálních parametrů modelu, které minimalizují náklady. Dva hlavní zdroje chyb jsou místní minima a nestabilita.

Místní minima

Náš předchozí příklad se podíval na dobrou práci, za předpokladu, že náklady by se zvýšily, když byl parametr menší než 0 nebo větší než 10:

Plot of cost versus model parameter, with a minima for cost when the model parameter is five.

Tato úloha by nebyla tak skvělá, kdyby parametry menší než nula nebo větší než 10 vedly k nižším nákladům, například na tomto obrázku:

Plot of cost versus model parameter, with a local minima for cost when the model parameter is five but a lower cost when the model parameter is at negative six.

V předchozím grafu by hodnota parametru záporná sedm byla lepším řešením než pět, protože má nižší náklady. Gradientní sestup nezná úplný vztah mezi jednotlivými parametry a náklady , které jsou reprezentovány tečkovanou čárou předem. Proto je náchylné najít místní minima: odhady parametrů, které nejsou nejlepším řešením, ale přechod je nula.

Nestability

Související problém je, že gradientní sestup někdy ukazuje nestabilitu. K této nestabilitě obvykle dochází v případě, že velikost kroku nebo rychlost učení – velikost každého parametru je upravena každou iterací – je příliš velká. Parametry se pak v každém kroku upraví příliš daleko a model se ve skutečnosti s každou iterací zhorší:

Plot of cost versus model parameter, which shows cost moving in large steps with minimal decrease in cost.

Pomalejší rychlost učení může tento problém vyřešit, ale může také zavádět problémy. Za prvé, pomalejší rychlost učení může znamenat, že trénování trvá dlouho, protože je potřeba provést další kroky. Za druhé, provedením menších kroků je pravděpodobnější, že se trénování vyrovná s místním minimam:

Plot of cost versus model parameter, showing small movements in cost.

Naproti tomu rychlejší rychlost učení může usnadnit dosažení místního minima, protože větší kroky můžou přeskočit přes místní maxima:

Plot of cost versus model parameter, with regular movements in cost until a minima is reached.

Jak uvidíme v dalším cvičení, je pro každý problém optimální velikost kroku. Nalezení tohoto optimálního je něco, co často vyžaduje experimentování.