Градијентно спуштање је најпопуларнија техника оптимизације у моделирању машинског учења (МЛ). Алгоритам минимизира грешку између предвиђених вредности и основне истине. Пошто техника разматра сваку тачку података да би разумела и минимизирала грешку, њен учинак зависи од величине података за обуку. Технике попут Стохастичког градијентног спуштања (СГД) су дизајниране да побољшају перформансе прорачуна, али по цену тачности конвергенције.
Стохастички просечни градијент балансира класични приступ, познат као спуштање пуног градијента и СГД, и нуди обе предности. Али пре него што будемо могли да користимо алгоритам, прво морамо разумети његов значај за оптимизацију модела.
Сваки МЛ алгоритам има придружену функцију губитка која има за циљ да минимизира или побољша перформансе модела. Математички, губитак се може дефинисати као:
То је једноставно разлика између стварног и предвиђеног резултата, а минимизирање ове разлике значи да се наш модел приближава основним вредностима истине.
Алгоритам минимизације користи градијентно спуштање да би прешао функцију губитка и пронашао глобални минимум. Сваки корак преласка укључује ажурирање тежина алгоритма ради оптимизације излаза.
Конвенционални алгоритам градијента спуштања користи просек свих градијента израчунатих за цео скуп података. Животни циклус једног примера обуке изгледа овако:
Једначина ажурирања тежине изгледа овако:
Где W
представља тежине модела, а dJ/dW
је извод функције губитка у односу на тежину модела. Конвенционална метода има високу стопу конвергенције, али постаје рачунски скупа када се ради са великим скуповима података који се састоје од милиона тачака података.
СГД методологија остаје иста као и обични ГД, али уместо да користи цео скуп података за израчунавање градијента, користи малу групу од улаза. Метода је много ефикаснија, али може превише да скаче око глобалних минимума јер свака итерација користи само део података за учење.
Приступ стохастичког просечног градијента (САГ) је уведен као средњи пут између ГД и СГД. Он бира насумично тачку података и ажурира њену вредност на основу градијента у тој тачки и пондерисаног просека прошлих градијената сачуваних за ту одређену тачку података.
Слично СГД, САГ моделира сваки проблем као коначан збир конвексних, диференцибилних функција. У било којој итерацији, користи садашње градијенте и просек претходних градијента за ажурирање тежине. Једначина има следећи облик:
Између два популарна алгоритма, пуног градијента (ФГ) и стохастичког градијента (СГД), ФГ алгоритам има бољу стопу конвергенције јер користи цео скуп података током сваке итерације за израчунавање.
Иако САГ има структуру сличну СГД, његова стопа конвергенције је упоредива са, а понекад и боља од приступа пуног градијента. Табела 1 у наставку сумира резултате експеримената са
Упркос невероватним перформансама, неколико модификација је предложено оригиналном СГД алгоритму како би се побољшале перформансе.
Градијентно спуштање је популарна оптимизација која се користи за лоцирање глобалних минимума датих функција циља. Алгоритам користи градијент функције циља да пређе нагиб функције док не достигне најнижу тачку.
Пуни Градиент Десцент (ФГ) и Стохастички Градиент Десцент (СГД) су две популарне варијације алгоритма. ФГ користи цео скуп података током сваке итерације и обезбеђује високу стопу конвергенције уз високе трошкове израчунавања. На свакој итерацији, СГД користи подскуп података за покретање алгоритма. Далеко је ефикаснији, али са неизвесном конвергенцијом.
Стохастички просечни градијент (САГ) је још једна варијација која пружа предности оба претходна алгоритма. Користи просек прошлих градијената и подскуп скупа података да обезбеди високу стопу конвергенције са ниским прорачуном. Алгоритам се може даље модификовати да би се побољшала његова ефикасност коришћењем векторизације и мини серија.