paint-brush
Стохастикалық орташа градиентті түсінубойынша@kustarev
31,726 оқулар
31,726 оқулар

Стохастикалық орташа градиентті түсіну

бойынша 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) модельдеуіндегі ең танымал оңтайландыру әдісі. Алгоритм болжамды мәндер мен негізгі шындық арасындағы қатені азайтады. Техника қатені түсіну және азайту үшін әрбір деректер нүктесін қарастыратындықтан, оның өнімділігі жаттығу деректерінің өлшеміне байланысты. Стохастикалық градиентті түсіру (SGD) сияқты әдістер есептеу өнімділігін жақсартуға арналған, бірақ конвергенция дәлдігінің құнына байланысты.


Стохастикалық орташа градиент Толық градиентті түсіру және SGD ретінде белгілі классикалық тәсілді теңестіреді және екі артықшылықты да ұсынады. Бірақ алгоритмді қолданар алдында, алдымен оның модельді оңтайландыру үшін маңыздылығын түсінуіміз керек.

Градиенттің төмендеуімен машиналық оқыту мақсаттарын оңтайландыру

Әрбір ML алгоритмінде модель өнімділігін азайтуға немесе жақсартуға бағытталған байланысты жоғалту функциясы бар. Математикалық түрде шығынды келесідей анықтауға болады:


Бұл жай ғана нақты және болжамды нәтиже арасындағы айырмашылық және бұл айырмашылықты азайту біздің модельдің негізгі шындық мәндеріне жақындағанын білдіреді.


Минимизациялау алгоритмі жоғалту функциясын айналып өту және жаһандық минимумды табу үшін градиенттің түсуін пайдаланады. Әрбір өту қадамы нәтижені оңтайландыру үшін алгоритмнің салмақтарын жаңартуды қамтиды.


Қарапайым градиенттің түсуі

Кәдімгі градиенттің төмендеуі алгоритмі бүкіл деректер жиыны бойынша есептелген барлық градиенттердің орташа мәнін пайдаланады. Жалғыз жаттығу мысалының өмірлік циклі келесідей көрінеді:



Салмақты жаңарту теңдеуі келесідей көрінеді:

Мұндағы W үлгі салмақтарын білдіреді және dJ/dW модель салмағына қатысты жоғалту функциясының туындысы болып табылады. Дәстүрлі әдіс жоғары конвергенция жылдамдығына ие, бірақ миллиондаған деректер нүктелерін қамтитын үлкен деректер жиынтығымен жұмыс істегенде есептеу қымбатқа түседі.

Стохастикалық градиенттің түсуі (SGD)

SGD әдістемесі қарапайым GD сияқты бірдей болып қалады, бірақ градиенттерді есептеу үшін бүкіл деректер жинағын пайдаланудың орнына ол кірістердің шағын партиясын пайдаланады. Әдіс әлдеқайда тиімді, бірақ жаһандық минимумдар айналасында тым көп секіруі мүмкін, өйткені әрбір итерация оқу үшін деректердің бір бөлігін ғана пайдаланады.

Стохастикалық орташа градиент

Стохастикалық орташа градиент (SAG) әдісі GD және SGD арасындағы ортаңғы негіз ретінде енгізілді. Ол кездейсоқ деректер нүктесін таңдайды және оның мәнін сол нүктедегі градиентке және нақты деректер нүктесі үшін сақталған өткен градиенттердің орташа өлшенгеніне негізделген жаңартады.


SGD сияқты, SAG әрбір есепті дөңес, дифференциалданатын функциялардың соңғы қосындысы ретінде модельдейді. Кез келген берілген итерацияда ол салмақты жаңарту үшін қазіргі градиенттер мен алдыңғы градиенттердің орташа мәнін пайдаланады. Теңдеу келесі форманы алады:



Конвергенция жылдамдығы

Екі танымал алгоритмдердің, толық градиент (FG) және стохастикалық градиенттің түсуі (SGD) арасында, FG алгоритмі есептеу үшін әрбір итерация кезінде барлық деректер жинағын пайдаланатындықтан, жақсырақ конвергенция жылдамдығына ие.

SAG құрылымы SGD-ге ұқсас болғанымен, оның конвергенция жылдамдығы толық градиенттік тәсілмен салыстырмалы және кейде жақсырақ. Төмендегі 1-кестеде тәжірибелердің нәтижелері жинақталған Шмидт және т. ал .

Дереккөз: https://arxiv.org/pdf/1309.2388

Қосымша модификациялар

Керемет өнімділікке қарамастан, өнімділікті жақсартуға көмектесетін бастапқы SGD алгоритміне бірнеше модификациялар ұсынылды.


  • Ерте итерацияларда қайта салмақтау: SAG конвергенциясы алғашқы бірнеше итерация кезінде баяу болып қалады, өйткені алгоритм бағытты n (деректер нүктелерінің жалпы саны) арқылы қалыпқа келтіреді. Бұл дәл емес бағалауды қамтамасыз етеді, өйткені алгоритм әлі көптеген деректер нүктелерін көрмеген. Модификация n орнына m арқылы қалыпқа келтіруді ұсынады, мұндағы m - нақты итерацияға дейін кемінде бір рет көрінетін деректер нүктелерінің саны.
  • Шағын топтамалар: Стохастикалық градиент тәсілі бірнеше деректер нүктелерін бір уақытта өңдеу үшін шағын топтамаларды пайдаланады. Дәл осындай тәсілді SAG үшін де қолдануға болады. Бұл компьютердің тиімділігін арттыру үшін векторизация мен параллелизацияға мүмкіндік береді. Ол сонымен қатар жад жүктемесін азайтады, бұл SAG алгоритмі үшін маңызды мәселе.
  • Қадам өлшемі бойынша тәжірибе: Жоғарыда айтылған қадам өлшемі (116L) таңғажайып нәтиже береді, бірақ авторлар 1л қадам өлшемін пайдалану арқылы әрі қарай тәжірибе жасады. Соңғысы одан да жақсы конвергенцияны қамтамасыз етті. Дегенмен, авторлар жақсартылған нәтижелердің ресми талдауын ұсына алмады. Олар нақты мәселенің оңтайлысын табу үшін қадам өлшемімен тәжірибе жасау керек деген қорытындыға келеді.


Қорытынды ойлар

Градиенттің түсуі – берілген мақсаттық функциялардың ғаламдық минимумдарын табу үшін қолданылатын танымал оңтайландыру. Алгоритм мақсат функциясының градиентін функция көлбеуінен ең төменгі нүктеге жеткенше айналдыру үшін пайдаланады.

Толық градиенттің түсуі (FG) және стохастикалық градиенттің түсуі (SGD) - бұл алгоритмнің екі танымал нұсқасы. FG әрбір итерация кезінде барлық деректер жинағын пайдаланады және жоғары есептеу құнымен жоғары конвергенция жылдамдығын қамтамасыз етеді. Әрбір итерацияда SGD алгоритмді іске қосу үшін деректердің ішкі жиынын пайдаланады. Бұл әлдеқайда тиімді, бірақ конвергенциясы белгісіз.


Стохастикалық орташа градиент (SAG) - алдыңғы екі алгоритмнің де артықшылықтарын қамтамасыз ететін тағы бір нұсқа. Ол төмен есептеулермен жоғары конвергенция жылдамдығын қамтамасыз ету үшін өткен градиенттердің орташа мәнін және деректер жиынының ішкі жиынын пайдаланады. Алгоритмді векторизация мен шағын топтамаларды пайдалана отырып, оның тиімділігін арттыру үшін одан әрі өзгертуге болады.