paint-brush
Стохастик дундаж градиентийг ойлгохby@kustarev
31,726 уншилтууд
31,726 уншилтууд

Стохастик дундаж градиентийг ойлгох

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

Хэтэрхий урт; Унших

Градиент уналт нь өгөгдсөн зорилгын функцүүдийн дэлхийн минимумыг олоход хэрэглэгддэг түгээмэл оновчлол юм. Алгоритм нь функцийн налууг хамгийн доод цэгт хүрэх хүртэл зорилгын функцийн градиентыг ашиглана. Full Gradient Descent (FG) болон Stochastic Gradient Descent (SGD) нь алгоритмын түгээмэл хоёр хувилбар юм. FG нь давталт бүрийн явцад өгөгдлийн багцыг бүхэлд нь ашигладаг бөгөөд тооцооллын өндөр өртөгтэй өндөр нийлэх хурдыг хангадаг. Давталт бүрт SGD нь алгоритмыг ажиллуулахын тулд мэдээллийн дэд багцыг ашигладаг. Энэ нь хамаагүй илүү үр дүнтэй боловч тодорхойгүй нийлдэг. Стохастик дундаж градиент (SAG) нь өмнөх хоёр алгоритмын ашиг тусыг өгдөг өөр нэг хувилбар юм. Энэ нь өнгөрсөн градиентуудын дундаж болон өгөгдлийн багцын дэд багцыг ашиглан бага тооцоололтой өндөр нэгдэх хурдыг хангадаг. Алгоритмыг векторжуулалт болон мини багц ашиглан үр ашгийг нь дээшлүүлэхийн тулд цаашид өөрчилж болно.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Стохастик дундаж градиентийг ойлгох
Andrey Kustarev HackerNoon profile picture
0-item


Gradient descent бол машин сургалтын (ML) загварчлалын хамгийн түгээмэл оновчлолын арга юм. Алгоритм нь урьдчилан таамагласан утгууд болон үндсэн үнэний хоорондох алдааг багасгадаг. Техник нь алдааг ойлгож, багасгахын тулд өгөгдлийн цэг бүрийг авч үздэг тул түүний гүйцэтгэл нь сургалтын өгөгдлийн хэмжээнээс хамаарна. Stochastic Gradient Descent (SGD) гэх мэт аргууд нь тооцооллын гүйцэтгэлийг сайжруулахад зориулагдсан боловч нягт нямбай байдлын үнээр юм.


Стохастик дундаж градиент нь Full Gradient Descent болон 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 алгоритмд гүйцэтгэлийг сайжруулахад туслах хэд хэдэн өөрчлөлтийг санал болгосон.


  • Эрт давталтуудад дахин жинлэх: Алгоритм нь чиглэлийг n (өгөгдлийн цэгийн нийт тоо) -аар хэвийн болгосноос хойш эхний хэдэн давталтуудад SAG-ийн нэгдэл удаан хэвээр байна. Энэ нь алгоритм нь олон тооны өгөгдлийн цэгүүдийг хараахан хараахан хараахан хараахан хараахан амжаагүй байгаа тул буруу тооцоолол өгдөг. Энэхүү өөрчлөлт нь n-ийн оронд m-ээр хэвийн болгохыг санал болгож байгаа бөгөөд m нь тухайн давталт хүртэл дор хаяж нэг удаа харагдсан өгөгдлийн цэгүүдийн тоо юм.
  • Мини багцууд: Стохастик градиент арга нь олон өгөгдлийн цэгийг нэгэн зэрэг боловсруулахын тулд мини багцуудыг ашигладаг. Үүнтэй ижил аргыг SAG-д хэрэглэж болно. Энэ нь компьютерийн үр ашгийг дээшлүүлэхийн тулд векторчлол болон параллель болгох боломжийг олгодог. Энэ нь санах ойн ачааллыг бууруулдаг бөгөөд энэ нь SAG алгоритмын хувьд томоохон сорилт юм.
  • Алхам хэмжээтэй туршилт: Өмнө дурьдсан алхамын хэмжээ (116л) нь гайхалтай үр дүнг өгдөг боловч зохиогчид 1л-ийн алхамын хэмжээг ашиглан цаашид туршилт хийсэн. Сүүлийнх нь илүү сайн нэгдэх боломжийг олгосон. Гэсэн хэдий ч зохиогчид сайжруулсан үр дүнгийн албан ёсны дүн шинжилгээ хийх боломжгүй байсан. Тэд тодорхой асуудлын оновчтой хувилбарыг олохын тулд алхамын хэмжээг туршиж үзэх хэрэгтэй гэж тэд дүгнэж байна.


Эцсийн бодол

Градиент уналт нь өгөгдсөн зорилгын функцүүдийн дэлхийн минимумыг олоход хэрэглэгддэг түгээмэл оновчлол юм. Алгоритм нь функцийн налууг хамгийн доод цэгт хүрэх хүртэл зорилгын функцийн градиентыг ашиглана.

Full Gradient Descent (FG) болон Stochastic Gradient Descent (SGD) нь алгоритмын түгээмэл хоёр хувилбар юм. FG нь давталт бүрийн явцад өгөгдлийн багцыг бүхэлд нь ашигладаг бөгөөд өндөр тооцооллын зардлаар нэгдэх хурдыг өгдөг. Давталт бүрт SGD нь алгоритмыг ажиллуулахын тулд мэдээллийн дэд багцыг ашигладаг. Энэ нь хамаагүй илүү үр дүнтэй боловч тодорхойгүй нийлдэг.


Стохастик дундаж градиент (SAG) нь өмнөх хоёр алгоритмын ашиг тусыг өгдөг өөр нэг хувилбар юм. Энэ нь өнгөрсөн градиентуудын дундаж болон өгөгдлийн багцын дэд багцыг ашиглан бага тооцоололтой өндөр нэгдэх хурдыг хангадаг. Алгоритмыг векторжуулалт болон мини багц ашиглан үр ашгийг нь дээшлүүлэхийн тулд цаашид өөрчилж болно.