Manba:
Chiziqli regressiya ma'lumotlarni tahlil qilish bilan bog'liq ko'plab sohalar uchun asosiy algoritmlardan biridir. Buning sababi aniq. Bu juda oddiy va tushunarli algoritm bo'lib, uning ko'p o'nlab, balki yuzlab yillar davomida keng qo'llanilishiga hissa qo'shgan. G'oya shundan iboratki, biz bir o'zgaruvchining boshqa o'zgaruvchilar to'plamiga chiziqli bog'liqligini qabul qilamiz va keyin bu bog'liqlikni tiklashga harakat qilamiz.
Ammo bu maqola amaliy muammolarni hal qilish uchun chiziqli regressiyadan foydalanish haqida emas. Bu erda biz mashinani o'rganish modulini yozishda duch kelgan uni qayta tiklash uchun taqsimlangan algoritmlarni amalga oshirishning qiziqarli xususiyatlarini ko'rib chiqamiz.
Biz nima haqida gapiryapmiz?
Bizning oldimizda chiziqli qaramlikni tiklash vazifasi turibdi. Kirish ma'lumotlari sifatida har biri bog'liq o'zgaruvchining ma'lum bir qiymati bilan bog'liq bo'lgan mustaqil o'zgaruvchilarning vektorlari to'plami berilgan. Ushbu ma'lumotlar ikkita matritsa shaklida ifodalanishi mumkin:
Endi, qaramlik qabul qilinganligi sababli, va bundan tashqari, chiziqli, biz taxminimizni matritsalar mahsuloti shaklida yozamiz (yozishni soddalashtirish uchun bu erda va quyida tenglamaning erkin muddati orqasida yashiringan deb taxmin qilinadi. , va matritsaning oxirgi ustuni birliklarni o'z ichiga oladi):
Chiziqli tenglamalar tizimiga juda o'xshaydi, shunday emasmi? Ko'rinadi, lekin, ehtimol, bunday tenglamalar tizimiga hech qanday yechim bo'lmaydi. Buning sababi deyarli har qanday haqiqiy ma'lumotlarda mavjud bo'lgan shovqin. Yana bir sabab chiziqli bog'liqlikning yo'qligi bo'lishi mumkin, bu asl o'zgaruvchilarga nochiziqli bog'liq bo'lgan qo'shimcha o'zgaruvchilarni kiritish orqali kurashish mumkin. Quyidagi misolni ko'rib chiqing:
Manba:
Bu bitta o'zgaruvchining (o'q bo'ylab) munosabatini ko'rsatadigan chiziqli regressiyaning oddiy misolidir ) boshqa o'zgaruvchidan (o'q bo'ylab ). Bu misolga mos chiziqli tenglamalar sistemasi yechimga ega bo'lishi uchun barcha nuqtalar aynan bir xil to'g'ri chiziqda yotishi kerak. Ammo bu unday emas. Ammo ular shovqin tufayli (yoki chiziqli munosabatlar haqidagi taxmin noto'g'ri bo'lganligi sababli) bir xil to'g'ri chiziqda yotmaydilar. Shunday qilib, haqiqiy ma'lumotlardan chiziqli munosabatlarni tiklash uchun odatda yana bitta taxminni kiritish kerak: kirish ma'lumotlari shovqinni o'z ichiga oladi va bu shovqin bor
Maksimal ehtimollik usuli
Shunday qilib, biz tasodifiy normal taqsimlangan shovqin mavjudligini taxmin qildik. Bunday vaziyatda nima qilish kerak? Bu holat uchun matematikada mavjud va keng qo'llaniladi
Oddiy shovqin bilan ma'lumotlardan chiziqli munosabatlarni tiklashga qaytamiz. E'tibor bering, taxmin qilingan chiziqli munosabatlar matematik kutishdir mavjud normal taqsimot. Shu bilan birga, ehtimollik kuzatilishi mumkin bo'lgan narsalar mavjudligi sharti bilan u yoki bu qiymatni oladi , quyidagicha:
Keling, uning o'rniga almashtiraylik ΠΈ Bizga kerak bo'lgan o'zgaruvchilar:
Faqat vektorni topish qoladi , bunda bu ehtimollik maksimal bo'ladi. Bunday funktsiyani maksimal darajaga ko'tarish uchun avval uning logarifmini olish qulay (funktsiyaning logarifmi funktsiyaning o'zi bilan bir xil nuqtada maksimalga etadi):
Bu, o'z navbatida, quyidagi funktsiyani minimallashtirishga olib keladi:
Aytgancha, bu usul deb ataladi
QR parchalanishi
Yuqoridagi funktsiyaning minimalini ushbu funktsiyaning gradienti nolga teng bo'lgan nuqtasini topish orqali topish mumkin. Va gradient quyidagicha yoziladi:
Shunday qilib, biz matritsani ajratamiz matritsalarga ΠΈ va bir qator o'zgarishlarni amalga oshiring (bu erda QR dekompozitsiya algoritmining o'zi ko'rib chiqilmaydi, faqat uning vazifaga nisbatan qo'llanilishi):
Matritsa ortogonaldir. Bu bizga ishdan xalos bo'lishga imkon beradi :
Va agar siz almashtirsangiz haqida , keyin u ishlaydi . Shuni hisobga olib yuqori uchburchak matritsa bo'lib, u quyidagicha ko'rinadi:
Buni almashtirish usuli yordamida hal qilish mumkin. Element sifatida joylashgan , oldingi element sifatida joylashgan va hokazo.
Shuni ta'kidlash kerakki, QR parchalanishidan foydalanish natijasida olingan algoritmning murakkabligi tengdir. . Bundan tashqari, matritsani ko'paytirish operatsiyasi yaxshi parallellashtirilganiga qaramay, ushbu algoritmning samarali taqsimlangan versiyasini yozish mumkin emas.
Gradient tushishi
Funktsiyani minimallashtirish haqida gapirganda, har doim (stokastik) gradient tushish usulini esga olish kerak. Bu nuqtada funksiyaning gradientini iterativ tarzda hisoblash va keyin uni gradientga qarama-qarshi tomonga siljitishga asoslangan oddiy va samarali minimallashtirish usuli. Har bir bunday qadam yechimni minimal darajaga yaqinlashtiradi. Gradient hali ham bir xil ko'rinadi:
Bu usul ham gradient operatorining chiziqli xossalari tufayli yaxshi parallellashtirilgan va taqsimlangan. E'tibor bering, yuqoridagi formulada yig'indi belgisi ostida mustaqil atamalar mavjud. Boshqacha qilib aytganda, biz barcha indekslar uchun gradientni mustaqil ravishda hisoblashimiz mumkin birinchidan , bunga parallel ravishda indekslar uchun gradientni hisoblang uchun . Keyin olingan gradientlarni qo'shing. Qo'shish natijasi xuddi birinchidan boshlab indekslar uchun gradientni darhol hisoblagandek bo'ladi . Shunday qilib, agar ma'lumotlar bir nechta ma'lumotlar bo'laklari orasida taqsimlangan bo'lsa, gradient har bir bo'lak bo'yicha mustaqil ravishda hisoblab chiqilishi mumkin, so'ngra yakuniy natijani olish uchun ushbu hisob-kitoblarning natijalarini jamlash mumkin:
Amalga oshirish nuqtai nazaridan, bu paradigmaga mos keladi
Amalga oshirish qulayligi va MapReduce paradigmasida bajarish qobiliyatiga qaramay, gradient tushishi ham o'zining kamchiliklariga ega. Xususan, konvergentsiyaga erishish uchun zarur bo'lgan qadamlar soni boshqa ixtisoslashgan usullar bilan solishtirganda sezilarli darajada yuqori.
LSQR
LSQR usuli quyidagilarga asoslanadi
Ammo matritsa deb faraz qilsak gorizontal bo'lingan bo'lsa, har bir iteratsiya ikkita MapReduce qadami sifatida ifodalanishi mumkin. Shunday qilib, har bir iteratsiya davomida ma'lumotlar uzatishni minimallashtirish mumkin (faqat uzunliklari noma'lumlar soniga teng bo'lgan vektorlar):
Aynan shu yondashuv chiziqli regressiyani amalga oshirishda qo'llaniladi
xulosa
Chiziqli regressiyani tiklash algoritmlari ko'p, ammo ularning hammasi ham barcha sharoitlarda qo'llanilishi mumkin emas. Shunday qilib, QR parchalanishi kichik ma'lumotlar to'plamlarida aniq yechim uchun juda yaxshi. Gradient tushishini amalga oshirish oson va sizga taxminiy yechimni tezda topish imkonini beradi. Va LSQR oldingi ikkita algoritmning eng yaxshi xususiyatlarini birlashtiradi, chunki u taqsimlanishi mumkin, gradient tushishiga nisbatan tezroq birlashadi va shuningdek, taxminiy yechim topish uchun QR parchalanishidan farqli o'laroq, algoritmni erta to'xtatishga imkon beradi.
Manba: www.habr.com