Градиентното спускане е най-популярната техника за оптимизация в моделирането на машинно обучение (ML). Алгоритъмът минимизира грешката между прогнозираните стойности и основната истина. Тъй като техниката разглежда всяка точка от данни, за да разбере и минимизира грешката, нейната ефективност зависи от размера на данните за обучение. Техники като Stochastic Gradient Descent (SGD) са предназначени да подобрят производителността на изчисленията, но за сметка на точността на конвергенцията.
Stochastic Average Gradient балансира класическия подход, известен като Full Gradient Descent и SGD, и предлага и двете предимства. Но преди да можем да използваме алгоритъма, първо трябва да разберем значението му за оптимизирането на модела.
Всеки ML алгоритъм има свързана функция за загуба, която има за цел да минимизира или подобри производителността на модела. Математически загубата може да се определи като:
Това е просто разликата между действителния и прогнозирания изход и минимизирането на тази разлика означава, че нашият модел се доближава до основните стойности на истината.
Алгоритъмът за минимизиране използва градиентно спускане, за да премине през функцията на загубата и да намери глобален минимум. Всяка стъпка на преминаване включва актуализиране на теглата на алгоритъма за оптимизиране на изхода.
Конвенционалният алгоритъм за градиентно спускане използва средната стойност на всички градиенти, изчислени в целия набор от данни. Жизненият цикъл на един пример за обучение изглежда по следния начин:
Уравнението за актуализиране на теглото изглежда така:
Където W
представлява теглата на модела, а dJ/dW
е производната на функцията на загубата по отношение на теглото на модела. Конвенционалният метод има висока степен на конвергенция, но става изчислително скъп при работа с големи набори от данни, включващи милиони точки от данни.
Методологията на SGD остава същата като обикновената GD, но вместо да използва целия набор от данни за изчисляване на градиентите, тя използва малка партида от входящите данни. Методът е много по-ефективен, но може да се движи твърде много около глобалните минимуми, тъй като всяка итерация използва само част от данните за обучение.
Подходът на стохастичния среден градиент (SAG) беше въведен като междина между GD и SGD. Той избира произволна точка от данни и актуализира нейната стойност въз основа на градиента в тази точка и среднопретеглената стойност на миналите градиенти, съхранени за тази конкретна точка от данни.
Подобно на SGD, SAG моделира всеки проблем като крайна сума от изпъкнали, диференцируеми функции. При всяка дадена итерация той използва настоящите градиенти и средната стойност на предишните градиенти за актуализиране на теглото. Уравнението приема следната форма:
Между двата популярни алгоритъма, пълен градиент (FG) и стохастичен градиент на слизане (SGD), FG алгоритъмът има по-добра степен на конвергенция, тъй като използва целия набор от данни по време на всяка итерация за изчисление.
Въпреки че SAG има структура, подобна на SGD, степента му на конвергенция е сравнима и понякога по-добра от подхода с пълен градиент. Таблица 1 по-долу обобщава резултатите от експериментите на
Въпреки невероятната му производителност, бяха предложени няколко модификации на оригиналния SGD алгоритъм, за да се подобри производителността.
Градиентно спускане е популярна оптимизация, използвана за локализиране на глобални минимуми на предоставените целеви функции. Алгоритъмът използва градиента на целевата функция, за да премине през наклона на функцията, докато достигне най-ниската точка.
Пълно градиентно спускане (FG) и стохастично градиентно спускане (SGD) са два популярни варианта на алгоритъма. FG използва целия набор от данни по време на всяка итерация и осигурява висока степен на конвергенция при високи изчислителни разходи. При всяка итерация SGD използва подмножество от данни, за да изпълни алгоритъма. Той е много по-ефективен, но с несигурна конвергенция.
Стохастичен среден градиент (SAG) е друг вариант, който осигурява предимствата на двата предишни алгоритъма. Той използва средната стойност на минали градиенти и подмножество от набора от данни, за да осигури висока степен на конвергенция с ниски изчисления. Алгоритъмът може да бъде допълнително модифициран, за да се подобри ефективността му чрез векторизация и мини-партиди.