paint-brush
Разбиране на стохастичния среден градиентот@kustarev
31,858 показания
31,858 показания

Разбиране на стохастичния среден градиент

от Andrey Kustarev4m2024/06/06
Read on Terminal Reader
Read this story w/o Javascript

Твърде дълго; Чета

Градиентно спускане е популярна оптимизация, използвана за локализиране на глобални минимуми на предоставените целеви функции. Алгоритъмът използва градиента на целевата функция, за да премине през наклона на функцията, докато достигне най-ниската точка. Пълно градиентно спускане (FG) и стохастично градиентно спускане (SGD) са два популярни варианта на алгоритъма. FG използва целия набор от данни по време на всяка итерация и осигурява висока степен на конвергенция при високи изчислителни разходи. При всяка итерация SGD използва подмножество от данни, за да изпълни алгоритъма. Той е много по-ефективен, но с несигурна конвергенция. Стохастичен среден градиент (SAG) е друг вариант, който осигурява предимствата на двата предишни алгоритъма. Той използва средната стойност на минали градиенти и подмножество от набора от данни, за да осигури висока степен на конвергенция с ниски изчисления. Алгоритъмът може да бъде допълнително модифициран, за да се подобри ефективността му чрез векторизация и мини-партиди.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Разбиране на стохастичния среден градиент
Andrey Kustarev HackerNoon profile picture
0-item


Градиентното спускане е най-популярната техника за оптимизация в моделирането на машинно обучение (ML). Алгоритъмът минимизира грешката между прогнозираните стойности и основната истина. Тъй като техниката разглежда всяка точка от данни, за да разбере и минимизира грешката, нейната ефективност зависи от размера на данните за обучение. Техники като Stochastic Gradient Descent (SGD) са предназначени да подобрят производителността на изчисленията, но за сметка на точността на конвергенцията.


Stochastic Average Gradient балансира класическия подход, известен като Full Gradient Descent и SGD, и предлага и двете предимства. Но преди да можем да използваме алгоритъма, първо трябва да разберем значението му за оптимизирането на модела.

Оптимизиране на целите на машинното обучение с градиентно спускане

Всеки ML алгоритъм има свързана функция за загуба, която има за цел да минимизира или подобри производителността на модела. Математически загубата може да се определи като:


Това е просто разликата между действителния и прогнозирания изход и минимизирането на тази разлика означава, че нашият модел се доближава до основните стойности на истината.


Алгоритъмът за минимизиране използва градиентно спускане, за да премине през функцията на загубата и да намери глобален минимум. Всяка стъпка на преминаване включва актуализиране на теглата на алгоритъма за оптимизиране на изхода.


Обикновен градиентен спускане

Конвенционалният алгоритъм за градиентно спускане използва средната стойност на всички градиенти, изчислени в целия набор от данни. Жизненият цикъл на един пример за обучение изглежда по следния начин:



Уравнението за актуализиране на теглото изглежда така:

Където W представлява теглата на модела, а dJ/dW е производната на функцията на загубата по отношение на теглото на модела. Конвенционалният метод има висока степен на конвергенция, но става изчислително скъп при работа с големи набори от данни, включващи милиони точки от данни.

Стохастично градиентно спускане (SGD)

Методологията на SGD остава същата като обикновената GD, но вместо да използва целия набор от данни за изчисляване на градиентите, тя използва малка партида от входящите данни. Методът е много по-ефективен, но може да се движи твърде много около глобалните минимуми, тъй като всяка итерация използва само част от данните за обучение.

Стохастичен среден градиент

Подходът на стохастичния среден градиент (SAG) беше въведен като междина между GD и SGD. Той избира произволна точка от данни и актуализира нейната стойност въз основа на градиента в тази точка и среднопретеглената стойност на миналите градиенти, съхранени за тази конкретна точка от данни.


Подобно на SGD, SAG моделира всеки проблем като крайна сума от изпъкнали, диференцируеми функции. При всяка дадена итерация той използва настоящите градиенти и средната стойност на предишните градиенти за актуализиране на теглото. Уравнението приема следната форма:



Скорост на конвергенция

Между двата популярни алгоритъма, пълен градиент (FG) и стохастичен градиент на слизане (SGD), FG алгоритъмът има по-добра степен на конвергенция, тъй като използва целия набор от данни по време на всяка итерация за изчисление.

Въпреки че SAG има структура, подобна на SGD, степента му на конвергенция е сравнима и понякога по-добра от подхода с пълен градиент. Таблица 1 по-долу обобщава резултатите от експериментите на Schmidt et. ал .

Източник: https://arxiv.org/pdf/1309.2388

Допълнителни модификации

Въпреки невероятната му производителност, бяха предложени няколко модификации на оригиналния SGD алгоритъм, за да се подобри производителността.


  • Повторно претегляне в ранните итерации: Конвергенцията на SAG остава бавна през първите няколко итерации, тъй като алгоритъмът нормализира посоката с n (общ брой точки от данни). Това осигурява неточна оценка, тъй като алгоритъмът все още не е видял много точки от данни. Модификацията предполага нормализиране по m вместо по n, където m е броят точки от данни, видени поне веднъж до тази конкретна итерация.
  • Мини-партиди: Подходът на стохастичния градиент използва мини-партиди за обработка на множество точки от данни едновременно. Същият подход може да се приложи към SAG. Това позволява векторизация и паралелизация за подобрена компютърна ефективност. Той също така намалява натоварването на паметта, което е важно предизвикателство за алгоритъма SAG.
  • Експериментиране с размера на стъпката: Размерът на стъпката, споменат по-рано (116L), осигурява невероятни резултати, но авторите допълнително експериментираха, като използваха размера на стъпката от 1L. Последното осигури още по-добра конвергенция. Авторите обаче не успяха да представят официален анализ на подобрените резултати. Те заключават, че трябва да се експериментира с размера на стъпката, за да се намери оптималната за конкретния проблем.


Последни мисли

Градиентно спускане е популярна оптимизация, използвана за локализиране на глобални минимуми на предоставените целеви функции. Алгоритъмът използва градиента на целевата функция, за да премине през наклона на функцията, докато достигне най-ниската точка.

Пълно градиентно спускане (FG) и стохастично градиентно спускане (SGD) са два популярни варианта на алгоритъма. FG използва целия набор от данни по време на всяка итерация и осигурява висока степен на конвергенция при високи изчислителни разходи. При всяка итерация SGD използва подмножество от данни, за да изпълни алгоритъма. Той е много по-ефективен, но с несигурна конвергенция.


Стохастичен среден градиент (SAG) е друг вариант, който осигурява предимствата на двата предишни алгоритъма. Той използва средната стойност на минали градиенти и подмножество от набора от данни, за да осигури висока степен на конвергенция с ниски изчисления. Алгоритъмът може да бъде допълнително модифициран, за да се подобри ефективността му чрез векторизация и мини-партиди.


L O A D I N G
. . . comments & more!

About Author

Andrey Kustarev HackerNoon profile picture
Andrey Kustarev@kustarev
Director of Portfolio Management at WorldQuant. Expert in quantitative finance.

ЗАКАЧВАЙТЕ ЕТИКЕТИ

ТАЗИ СТАТИЯ Е ПРЕДСТАВЕНА В...