![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Gradient enişi maşın öyrənməsi (ML) modelləşdirməsində ən populyar optimallaşdırma texnikasıdır. Alqoritm proqnozlaşdırılan dəyərlər və əsas həqiqət arasındakı səhvi minimuma endirir. Texnika səhvi başa düşmək və minimuma endirmək üçün hər bir məlumat nöqtəsini nəzərə aldığından, onun performansı təlim məlumatlarının ölçüsündən asılıdır. Stochastic Gradient Descent (SGD) kimi üsullar hesablama performansını yaxşılaşdırmaq üçün nəzərdə tutulmuşdur, lakin yaxınlaşma dəqiqliyi bahasına.
Stochastic Average Gradient Tam Gradient Eniş və SGD kimi tanınan klassik yanaşmanı tarazlaşdırır və hər iki fayda təklif edir. Lakin alqoritmdən istifadə etməzdən əvvəl onun modelin optimallaşdırılması üçün əhəmiyyətini başa düşməliyik.
Hər bir ML alqoritmi modelin performansını minimuma endirmək və ya təkmilləşdirmək məqsədi daşıyan əlaqəli itki funksiyasına malikdir. Riyazi olaraq itki aşağıdakı kimi müəyyən edilə bilər:
Bu, sadəcə olaraq faktiki və proqnozlaşdırılan çıxış arasındakı fərqdir və bu fərqi minimuma endirmək bizim modelimizin əsas həqiqət dəyərlərinə yaxınlaşması deməkdir.
Minimumlaşdırma alqoritmi itki funksiyasını keçmək və qlobal minimum tapmaq üçün gradient enişindən istifadə edir. Hər bir keçid addımı çıxışı optimallaşdırmaq üçün alqoritmin çəkilərinin yenilənməsini nəzərdə tutur.
Adi gradient eniş alqoritmi bütün verilənlər bazasında hesablanmış bütün qradiyentlərin ortasından istifadə edir. Tək bir təlim nümunəsinin həyat dövrü aşağıdakı kimi görünür:
Çəki yeniləmə tənliyi aşağıdakı kimi görünür:
Burada W
model çəkilərini, dJ/dW
isə model çəkisinə görə itki funksiyasının törəməsidir. Ənənəvi metod yüksək yaxınlaşma dərəcəsinə malikdir, lakin milyonlarla məlumat nöqtəsindən ibarət böyük verilənlər bazası ilə işləyərkən hesablama baxımından bahalı olur.
SGD metodologiyası adi GD ilə eyni qalır, lakin gradientləri hesablamaq üçün bütün verilənlər toplusundan istifadə etmək əvəzinə, girişlərdən kiçik bir partiyadan istifadə edir. Metod daha səmərəlidir, lakin qlobal minimum ətrafında çox hoplaya bilər, çünki hər bir iterasiya öyrənmə üçün məlumatların yalnız bir hissəsindən istifadə edir.
Stokastik Orta Qradient (SAG) yanaşması GD və SGD arasında orta zəmin kimi təqdim edilmişdir. O, təsadüfi məlumat nöqtəsini seçir və onun dəyərini həmin nöqtədəki qradientə və həmin xüsusi məlumat nöqtəsi üçün saxlanılan keçmiş gradientlərin çəkili ortasına əsasən yeniləyir.
SGD kimi, SAG hər problemi qabarıq, diferensiallana bilən funksiyaların sonlu cəmi kimi modelləşdirir. İstənilən iterasiyada o, çəki yeniləməsi üçün indiki qradiyentlərdən və əvvəlki gradientlərin ortalamasından istifadə edir. Tənlik aşağıdakı formanı alır:
İki məşhur alqoritm, tam gradient (FG) və stoxastik qradiyent enmə (SGD) arasında, FG alqoritmi hesablama üçün hər iterasiya zamanı bütün məlumat dəstindən istifadə etdiyi üçün daha yaxşı yaxınlaşma dərəcəsinə malikdir.
SAG-ın SGD-yə bənzər bir quruluşa malik olmasına baxmayaraq, onun yaxınlaşma dərəcəsi tam gradient yanaşma ilə müqayisə edilə bilər və bəzən daha yaxşıdır. Aşağıdakı Cədvəl 1 təcrübələrin nəticələrini ümumiləşdirir
Təəccüblü performansına baxmayaraq, performansı yaxşılaşdırmaq üçün orijinal SGD alqoritminə bir neçə dəyişiklik təklif edilmişdir.
Gradient enişi, təqdim olunan məqsəd funksiyalarının qlobal minimumlarının yerləşdirilməsi üçün istifadə edilən məşhur optimallaşdırmadır. Alqoritm, funksiyanın yamacını ən aşağı nöqtəyə çatana qədər keçmək üçün məqsəd funksiyasının qradiyentindən istifadə edir.
Tam Qradient Eniş (FG) və Stokastik Qradient Eniş (SGD) alqoritmin iki məşhur variantıdır. FG hər iterasiya zamanı bütün verilənlər bazasından istifadə edir və yüksək hesablama dəyəri ilə yüksək yaxınlaşma dərəcəsini təmin edir. Hər iterasiyada SGD alqoritmi işə salmaq üçün verilənlərin alt dəstindən istifadə edir. Bu, daha səmərəlidir, lakin qeyri-müəyyən bir yaxınlaşma ilə.
Stochastic Average Gradient (SAG) hər iki əvvəlki alqoritmin faydalarını təmin edən başqa bir variasiyadır. O, aşağı hesablama ilə yüksək yaxınlaşma dərəcəsini təmin etmək üçün keçmiş qradiyentlərin orta göstəricisindən və verilənlər dəstinin bir hissəsindən istifadə edir. Alqoritm vektorlaşdırma və mini dəstələrdən istifadə etməklə onun səmərəliliyini artırmaq üçün daha da dəyişdirilə bilər.