![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Градиентті түсіру - машиналық оқыту (ML) модельдеуіндегі ең танымал оңтайландыру әдісі. Алгоритм болжамды мәндер мен негізгі шындық арасындағы қатені азайтады. Техника қатені түсіну және азайту үшін әрбір деректер нүктесін қарастыратындықтан, оның өнімділігі жаттығу деректерінің өлшеміне байланысты. Стохастикалық градиентті түсіру (SGD) сияқты әдістер есептеу өнімділігін жақсартуға арналған, бірақ конвергенция дәлдігінің құнына байланысты.
Стохастикалық орташа градиент Толық градиентті түсіру және SGD ретінде белгілі классикалық тәсілді теңестіреді және екі артықшылықты да ұсынады. Бірақ алгоритмді қолданар алдында, алдымен оның модельді оңтайландыру үшін маңыздылығын түсінуіміз керек.
Әрбір ML алгоритмінде модель өнімділігін азайтуға немесе жақсартуға бағытталған байланысты жоғалту функциясы бар. Математикалық түрде шығынды келесідей анықтауға болады:
Бұл жай ғана нақты және болжамды нәтиже арасындағы айырмашылық және бұл айырмашылықты азайту біздің модельдің негізгі шындық мәндеріне жақындағанын білдіреді.
Минимизациялау алгоритмі жоғалту функциясын айналып өту және жаһандық минимумды табу үшін градиенттің түсуін пайдаланады. Әрбір өту қадамы нәтижені оңтайландыру үшін алгоритмнің салмақтарын жаңартуды қамтиды.
Кәдімгі градиенттің төмендеуі алгоритмі бүкіл деректер жиыны бойынша есептелген барлық градиенттердің орташа мәнін пайдаланады. Жалғыз жаттығу мысалының өмірлік циклі келесідей көрінеді:
Салмақты жаңарту теңдеуі келесідей көрінеді:
Мұндағы W
үлгі салмақтарын білдіреді және dJ/dW
модель салмағына қатысты жоғалту функциясының туындысы болып табылады. Дәстүрлі әдіс жоғары конвергенция жылдамдығына ие, бірақ миллиондаған деректер нүктелерін қамтитын үлкен деректер жиынтығымен жұмыс істегенде есептеу қымбатқа түседі.
SGD әдістемесі қарапайым GD сияқты бірдей болып қалады, бірақ градиенттерді есептеу үшін бүкіл деректер жинағын пайдаланудың орнына ол кірістердің шағын партиясын пайдаланады. Әдіс әлдеқайда тиімді, бірақ жаһандық минимумдар айналасында тым көп секіруі мүмкін, өйткені әрбір итерация оқу үшін деректердің бір бөлігін ғана пайдаланады.
Стохастикалық орташа градиент (SAG) әдісі GD және SGD арасындағы ортаңғы негіз ретінде енгізілді. Ол кездейсоқ деректер нүктесін таңдайды және оның мәнін сол нүктедегі градиентке және нақты деректер нүктесі үшін сақталған өткен градиенттердің орташа өлшенгеніне негізделген жаңартады.
SGD сияқты, SAG әрбір есепті дөңес, дифференциалданатын функциялардың соңғы қосындысы ретінде модельдейді. Кез келген берілген итерацияда ол салмақты жаңарту үшін қазіргі градиенттер мен алдыңғы градиенттердің орташа мәнін пайдаланады. Теңдеу келесі форманы алады:
Екі танымал алгоритмдердің, толық градиент (FG) және стохастикалық градиенттің түсуі (SGD) арасында, FG алгоритмі есептеу үшін әрбір итерация кезінде барлық деректер жинағын пайдаланатындықтан, жақсырақ конвергенция жылдамдығына ие.
SAG құрылымы SGD-ге ұқсас болғанымен, оның конвергенция жылдамдығы толық градиенттік тәсілмен салыстырмалы және кейде жақсырақ. Төмендегі 1-кестеде тәжірибелердің нәтижелері жинақталған
Керемет өнімділікке қарамастан, өнімділікті жақсартуға көмектесетін бастапқы SGD алгоритміне бірнеше модификациялар ұсынылды.
Градиенттің түсуі – берілген мақсаттық функциялардың ғаламдық минимумдарын табу үшін қолданылатын танымал оңтайландыру. Алгоритм мақсат функциясының градиентін функция көлбеуінен ең төменгі нүктеге жеткенше айналдыру үшін пайдаланады.
Толық градиенттің түсуі (FG) және стохастикалық градиенттің түсуі (SGD) - бұл алгоритмнің екі танымал нұсқасы. FG әрбір итерация кезінде барлық деректер жинағын пайдаланады және жоғары есептеу құнымен жоғары конвергенция жылдамдығын қамтамасыз етеді. Әрбір итерацияда SGD алгоритмді іске қосу үшін деректердің ішкі жиынын пайдаланады. Бұл әлдеқайда тиімді, бірақ конвергенциясы белгісіз.
Стохастикалық орташа градиент (SAG) - алдыңғы екі алгоритмнің де артықшылықтарын қамтамасыз ететін тағы бір нұсқа. Ол төмен есептеулермен жоғары конвергенция жылдамдығын қамтамасыз ету үшін өткен градиенттердің орташа мәнін және деректер жиынының ішкі жиынын пайдаланады. Алгоритмді векторизация мен шағын топтамаларды пайдалана отырып, оның тиімділігін арттыру үшін одан әрі өзгертуге болады.