Градыентны спуск - самы папулярны метад аптымізацыі ў мадэляванні машыннага навучання (ML). Алгарытм мінімізуе памылку паміж прадказанымі значэннямі і базавай праўдай. Паколькі тэхніка ўлічвае кожную кропку даных, каб зразумець і мінімізаваць памылку, яе прадукцыйнасць залежыць ад памеру навучальных даных. Такія метады, як стахастычны градыентны спуск (SGD), прызначаны для паляпшэння прадукцыйнасці вылічэнняў, але за кошт дакладнасці канвергенцыі.
Стохастычны сярэдні градыент ураўнаважвае класічны падыход, вядомы як поўны градыентны спуск і SGD, і прапануе абодва перавагі. Але перш чым мы зможам выкарыстоўваць алгарытм, мы павінны спачатку зразумець яго значэнне для аптымізацыі мадэлі.
Аптымізацыя задач машыннага навучання з градыентным спускам
Кожны алгарытм ML мае звязаную функцыю страт, якая накіравана на мінімізацыю або паляпшэнне прадукцыйнасці мадэлі. Матэматычна страту можна вызначыць як:
Гэта проста розніца паміж фактычным і прагназаваным выхадам, і мінімізацыя гэтай розніцы азначае, што наша мадэль набліжаецца да асноўных праўдзівых значэнняў.
Алгарытм мінімізацыі выкарыстоўвае градыентны спуск для праходжання функцыі страт і пошуку глабальнага мінімуму. Кожны крок абыходу ўключае абнаўленне вагаў алгарытму для аптымізацыі вываду.
Звычайны градыентны спуск
Звычайны алгарытм градыентнага спуску выкарыстоўвае сярэдняе значэнне ўсіх градыентаў, разлічаных па ўсім наборы даных. Жыццёвы цыкл аднаго навучальнага прыкладу выглядае наступным чынам:
Ураўненне абнаўлення вагі выглядае наступным чынам:
Дзе W
уяўляе сабой вага мадэлі, а dJ/dW
з'яўляецца вытворнай функцыі страт адносна вагі мадэлі. Звычайны метад мае высокую хуткасць збежнасці, але становіцца дарагім з пункту гледжання вылічэнняў пры працы з вялікімі наборамі даных, якія складаюцца з мільёнаў кропак даных.
Стахастычны градыентны спуск (SGD)
Метадалогія SGD застаецца такой жа, як і звычайная GD, але замест таго, каб выкарыстоўваць увесь набор даных для разліку градыентаў, яна выкарыстоўвае невялікую партыю ўваходных дадзеных. Метад нашмат больш эфектыўны, але можа занадта моцна скакаць вакол глабальных мінімумаў, паколькі кожная ітэрацыя выкарыстоўвае толькі частку даных для навучання.
Выпадковы сярэдні градыент
Падыход стахастычнага сярэдняга градыенту (SAG) быў уведзены ў якасці сярэдзіны паміж GD і SGD. Ён выбірае выпадковую кропку даных і абнаўляе яе значэнне на аснове градыенту ў гэтай кропцы і сярэднеўзважанага значэнне мінулых градыентаў, захаваных для гэтай канкрэтнай кропкі даных.
Падобна SGD, SAG мадэлюе кожную праблему як канечную суму выпуклых дыферэнцавальных функцый. На любой ітэрацыі ён выкарыстоўвае цяперашнія градыенты і сярэдняе значэнне папярэдніх градыентаў для абнаўлення вагі. Ураўненне мае наступны выгляд:
Хуткасць канвергенцыі
Паміж двума папулярнымі алгарытмамі, поўным градыентам (FG) і стахастычным градыентным спускам (SGD), алгарытм FG мае лепшую хуткасць збежнасці, паколькі ён выкарыстоўвае ўвесь набор даных падчас кожнай ітэрацыі для разліку.
Нягледзячы на тое, што SAG мае структуру, падобную да SGD, яго хуткасць канвергенцыі параўнальная, а часам і лепшая, чым падыход з поўным градыентам. У табліцы 1 ніжэй прыведзены вынікі эксперыментаў
Далейшыя мадыфікацыі
Нягледзячы на выдатную прадукцыйнасць, у арыгінальны алгарытм SGD было прапанавана некалькі мадыфікацый, каб дапамагчы палепшыць прадукцыйнасць.
- Паўторнае ўзважванне на ранніх ітэрацыях: канвергенцыя SAG застаецца павольнай на працягу першых некалькіх ітэрацый, паколькі алгарытм нармалізуе кірунак з дапамогай n (агульная колькасць кропак даных). Гэта дае недакладную ацэнку, бо алгарытм яшчэ не атрымліваў шмат даных. Мадыфікацыя прапануе нармалізацыю па m замест n, дзе m - гэта колькасць кропак даных, прагледжаных хаця б адзін раз да гэтай канкрэтнай ітэрацыі.
- Міні-партыі: падыход стахастычнага градыенту выкарыстоўвае міні-пакеты для адначасовай апрацоўкі некалькіх кропак даных. Такі ж падыход можна прымяніць да SAG. Гэта дазваляе вектарызаваць і паралелізаваць для павышэння эфектыўнасці кампутара. Гэта таксама зніжае нагрузку на памяць, важную праблему для алгарытму SAG.
- Эксперыменты з памерам кроку: памер кроку, згаданы раней (116 л), дае дзіўныя вынікі, але аўтары далей эксперыментавалі, выкарыстоўваючы памер кроку ў 1 л. Апошняе забяспечвала яшчэ лепшае збліжэнне. Аднак аўтары не змаглі прадставіць афіцыйны аналіз палепшаных вынікаў. Яны прыходзяць да высновы, што з памерам кроку трэба эксперыментаваць, каб знайсці аптымальны для канкрэтнай праблемы.
Заключныя думкі
Градыентны спуск - гэта папулярная аптымізацыя, якая выкарыстоўваецца для вызначэння глабальных мінімумаў зададзеных мэтавых функцый. Алгарытм выкарыстоўвае градыент мэтавай функцыі для праходжання нахілу функцыі, пакуль ён не дасягне самай нізкай кропкі.
Поўны градыентны спуск (FG) і стахастычны градыентны спуск (SGD) - два папулярныя варыянты алгарытму. FG выкарыстоўвае ўвесь набор даных падчас кожнай ітэрацыі і забяспечвае высокую хуткасць збежнасці пры высокіх выдатках на вылічэнні. На кожнай ітэрацыі SGD выкарыстоўвае падмноства даных для запуску алгарытму. Гэта значна больш эфектыўна, але з нявызначанай канвергенцыяй.
Стохастычны сярэдні градыент (SAG) - яшчэ адна разнавіднасць, якая забяспечвае перавагі абодвух папярэдніх алгарытмаў. Ён выкарыстоўвае сярэдняе значэнне мінулых градыентаў і падмноства набору даных, каб забяспечыць высокую хуткасць канвергенцыі пры нізкіх вылічэннях. Алгарытм можа быць дадаткова мадыфікаваны для павышэння яго эфектыўнасці з дапамогай вектарызацыі і міні-серый.