![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Gradient tushish - bu mashinani o'rganish (ML) modellashtirishda eng mashhur optimallashtirish usuli. Algoritm bashorat qilingan qiymatlar va asosiy haqiqat o'rtasidagi xatolikni minimallashtiradi. Texnika xatoni tushunish va kamaytirish uchun har bir ma'lumot nuqtasini hisobga olganligi sababli, uning ishlashi ta'lim ma'lumotlarining hajmiga bog'liq. Stochastic Gradient Descent (SGD) kabi usullar hisoblash samaradorligini oshirish uchun mo'ljallangan, ammo konvergentsiya aniqligi evaziga.
Stokastik o'rtacha gradient to'liq gradient tushishi va SGD deb nomlanuvchi klassik yondashuvni muvozanatlashtiradi va ikkala imtiyozni ham taklif qiladi. Ammo algoritmdan foydalanishdan oldin, avvalo, modelni optimallashtirish uchun uning ahamiyatini tushunishimiz kerak.
Har bir ML algoritmi modelning ish faoliyatini kamaytirish yoki yaxshilashga qaratilgan tegishli yo'qotish funktsiyasiga ega. Matematik jihatdan yo'qotishni quyidagicha aniqlash mumkin:
Bu shunchaki haqiqiy va bashorat qilingan chiqish o'rtasidagi farq va bu farqni minimallashtirish bizning modelimiz asosiy haqiqat qiymatlariga yaqinlashishini anglatadi.
Minimallashtirish algoritmi yo'qotish funksiyasini bosib o'tish va global minimumni topish uchun gradient tushishidan foydalanadi. Har bir o'tish bosqichi chiqishni optimallashtirish uchun algoritm og'irliklarini yangilashni o'z ichiga oladi.
An'anaviy gradient tushish algoritmi butun ma'lumotlar to'plami bo'ylab hisoblangan barcha gradientlarning o'rtacha qiymatidan foydalanadi. Bitta o'qitish misolining hayot aylanishi quyidagicha ko'rinadi:
Og'irlikni yangilash tenglamasi quyidagicha ko'rinadi:
Bu erda W
model og'irliklarini ifodalaydi va dJ/dW
model vazniga nisbatan yo'qotish funktsiyasining hosilasidir. An'anaviy usul yuqori konvergentsiya tezligiga ega, ammo millionlab ma'lumotlar nuqtalarini o'z ichiga olgan katta ma'lumotlar to'plamlari bilan ishlashda hisoblash qimmatga tushadi.
SGD metodologiyasi oddiy GD bilan bir xil bo'lib qoladi, lekin gradientlarni hisoblash uchun butun ma'lumotlar to'plamidan foydalanish o'rniga u kirishlardan kichik partiyadan foydalanadi. Usul ancha samaraliroq, lekin global minimal chegaralar atrofida juda ko'p sakrashi mumkin, chunki har bir iteratsiya o'rganish uchun ma'lumotlarning faqat bir qismini ishlatadi.
Stokastik o'rtacha gradient (SAG) yondashuvi GD va SGD o'rtasida o'rta zamin sifatida joriy etilgan. U tasodifiy ma'lumot nuqtasini tanlaydi va uning qiymatini o'sha nuqtadagi gradient va ushbu ma'lumot nuqtasi uchun saqlangan o'tgan gradientlarning o'rtacha og'irligi asosida yangilaydi.
SGDga o'xshab, SAG har bir muammoni konveks, differentsiallanuvchi funktsiyalarning cheklangan yig'indisi sifatida modellashtiradi. Har qanday iteratsiyada u vaznni yangilash uchun hozirgi gradientlar va oldingi gradientlarning o'rtacha qiymatidan foydalanadi. Tenglama quyidagi shaklni oladi:
Ikki mashhur algoritmlar, to'liq gradient (FG) va stokastik gradient tushishi (SGD) o'rtasida FG algoritmi har bir iteratsiya davomida barcha ma'lumotlar to'plamidan hisoblash uchun foydalanadiganligi sababli yaxshiroq yaqinlashish tezligiga ega.
SAG SGD ga o'xshash tuzilishga ega bo'lsa-da, uning konvergentsiya tezligi to'liq gradient yondashuv bilan solishtirish mumkin va ba'zan yaxshiroq. Quyidagi 1-jadvalda tajribalar natijalari jamlangan
Ajoyib ishlashiga qaramay, ishlashni yaxshilashga yordam berish uchun original SGD algoritmiga bir nechta o'zgartirishlar taklif qilingan.
Gradient tushish - bu taqdim etilgan maqsad funktsiyalarining global minimallarini aniqlash uchun ishlatiladigan mashhur optimallashtirish. Algoritm maqsad funksiya gradientidan foydalanib, funktsiya qiyaligini eng past nuqtaga yetguncha kesib o'tadi.
To'liq Gradient Descent (FG) va Stokastik Gradient Descent (SGD) algoritmning ikkita mashhur variantidir. FG har bir iteratsiya davomida butun ma'lumotlar to'plamidan foydalanadi va yuqori hisoblash narxida yuqori konvergentsiya tezligini ta'minlaydi. Har bir iteratsiyada SGD algoritmni ishga tushirish uchun ma'lumotlarning kichik to'plamidan foydalanadi. Bu ancha samaraliroq, ammo noaniq konvergentsiya bilan.
Stokastik o'rtacha gradient (SAG) - bu ikkala oldingi algoritmlarning afzalliklarini ta'minlaydigan yana bir o'zgarish. U past hisoblash bilan yuqori konvergentsiya tezligini ta'minlash uchun o'tgan gradientlarning o'rtacha qiymati va ma'lumotlar to'plamining bir qismidan foydalanadi. Algoritm vektorizatsiya va mini-partiyalar yordamida samaradorligini oshirish uchun yanada o'zgartirilishi mumkin.