paint-brush
Stokastik o'rtacha gradientni tushunishtomonidan@kustarev
31,726 o'qishlar
31,726 o'qishlar

Stokastik o'rtacha gradientni tushunish

tomonidan Andrey Kustarev4m2024/06/06
Read on Terminal Reader
Read this story w/o Javascript

Juda uzoq; O'qish

Gradient tushish - bu taqdim etilgan maqsad funktsiyalarining global minimallarini aniqlash uchun ishlatiladigan mashhur optimallashtirish. Algoritm maqsad funksiyaning 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.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Stokastik o'rtacha gradientni tushunish
Andrey Kustarev HackerNoon profile picture
0-item


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.

Gradient tushishi bilan mashinani o'rganish maqsadlarini optimallashtirish

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.


Oddiy gradient tushishi

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.

Stokastik gradient tushishi (SGD)

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

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:



Konvergentsiya darajasi

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 Shmidt va boshqalar. al .

Manba: https://arxiv.org/pdf/1309.2388

Qo'shimcha o'zgartirishlar

Ajoyib ishlashiga qaramay, ishlashni yaxshilashga yordam berish uchun original SGD algoritmiga bir nechta o'zgartirishlar taklif qilingan.


  • Dastlabki iteratsiyalarda qayta tortish: SAG konvergentsiyasi dastlabki bir necha iteratsiya davomida sekin bo'lib qoladi, chunki algoritm yo'nalishni n (ma'lumotlar nuqtalarining umumiy soni) bilan normallashtiradi. Bu noto'g'ri baho beradi, chunki algoritm hali ko'p ma'lumotlar nuqtalarini ko'rmagan. O'zgartirish n o'rniga m bilan normallashtirishni taklif qiladi, bu erda m - bu iteratsiyagacha kamida bir marta ko'rilgan ma'lumotlar nuqtalari soni.
  • Mini-to'plamlar: Stokastik gradient yondashuvi bir vaqtning o'zida bir nechta ma'lumotlar nuqtalarini qayta ishlash uchun mini-to'plamlardan foydalanadi. Xuddi shu yondashuv SAG uchun ham qo'llanilishi mumkin. Bu kompyuter samaradorligini oshirish uchun vektorlashtirish va parallellashtirish imkonini beradi. Shuningdek, u xotira yukini kamaytiradi, bu SAG algoritmi uchun muhim muammodir.
  • Bosqich o'lchami tajribasi: Yuqorida aytib o'tilgan qadam o'lchami (116L) ajoyib natijalar beradi, ammo mualliflar 1L qadam o'lchamidan foydalangan holda tajriba o'tkazdilar. Ikkinchisi yanada yaxshi konvergentsiyani ta'minladi. Biroq, mualliflar yaxshilangan natijalarning rasmiy tahlilini taqdim eta olmadilar. Muayyan muammo uchun eng maqbulini topish uchun qadam o'lchami bilan tajriba o'tkazish kerak degan xulosaga kelishadi.


Yakuniy fikrlar

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.