Chiziqli regressiya va uni qayta tiklash usullari

Chiziqli regressiya va uni qayta tiklash usullari
Manba: xkcd

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. Apache Ignite. Bir oz oddiy matematika, mashinani o'rganish va taqsimlangan hisoblash sizning ma'lumotlaringiz minglab tugunlar bo'ylab taqsimlanganda ham chiziqli regressiyani qanday amalga oshirishni aniqlashga yordam beradi.

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:

Chiziqli regressiya va uni qayta tiklash usullari

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. Chiziqli regressiya va uni qayta tiklash usullari, va matritsaning oxirgi ustuni Chiziqli regressiya va uni qayta tiklash usullari birliklarni o'z ichiga oladi):

Chiziqli regressiya va uni qayta tiklash usullari

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:
Chiziqli regressiya va uni qayta tiklash usullari
Manba: Vikipediya

Bu bitta o'zgaruvchining (o'q bo'ylab) munosabatini ko'rsatadigan chiziqli regressiyaning oddiy misolidir Chiziqli regressiya va uni qayta tiklash usullari) boshqa o'zgaruvchidan (o'q bo'ylab Chiziqli regressiya va uni qayta tiklash usullari). 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 normal taqsimot. Siz shovqin taqsimotining boshqa turlari haqida taxminlar qilishingiz mumkin, ammo aksariyat hollarda bu oddiy taqsimot hisoblanadi, bundan keyin ham muhokama qilinadi.

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 maksimal ehtimollik usuli. Muxtasar qilib aytganda, uning mohiyati tanlovda yotadi ehtimollik funktsiyalari va undan keyingi maksimallashtirish.

Oddiy shovqin bilan ma'lumotlardan chiziqli munosabatlarni tiklashga qaytamiz. E'tibor bering, taxmin qilingan chiziqli munosabatlar matematik kutishdir Chiziqli regressiya va uni qayta tiklash usullari mavjud normal taqsimot. Shu bilan birga, ehtimollik Chiziqli regressiya va uni qayta tiklash usullari kuzatilishi mumkin bo'lgan narsalar mavjudligi sharti bilan u yoki bu qiymatni oladi Chiziqli regressiya va uni qayta tiklash usullari, quyidagicha:

Chiziqli regressiya va uni qayta tiklash usullari

Keling, uning o'rniga almashtiraylik Chiziqli regressiya va uni qayta tiklash usullari ΠΈ Chiziqli regressiya va uni qayta tiklash usullari Bizga kerak bo'lgan o'zgaruvchilar:

Chiziqli regressiya va uni qayta tiklash usullari

Faqat vektorni topish qoladi Chiziqli regressiya va uni qayta tiklash usullari, 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):

Chiziqli regressiya va uni qayta tiklash usullari

Bu, o'z navbatida, quyidagi funktsiyani minimallashtirishga olib keladi:

Chiziqli regressiya va uni qayta tiklash usullari

Aytgancha, bu usul deb ataladi eng kichik kvadratlar. Ko'pincha yuqoridagi barcha fikrlar o'tkazib yuboriladi va bu usul oddiygina qo'llaniladi.

QR parchalanishi

Yuqoridagi funktsiyaning minimalini ushbu funktsiyaning gradienti nolga teng bo'lgan nuqtasini topish orqali topish mumkin. Va gradient quyidagicha yoziladi:

Chiziqli regressiya va uni qayta tiklash usullari

QR parchalanishi eng kichik kvadratlar usulida qo'llaniladigan minimallashtirish masalasini yechishning matritsa usulidir. Shu munosabat bilan biz tenglamani matritsa shaklida qayta yozamiz:

Chiziqli regressiya va uni qayta tiklash usullari

Shunday qilib, biz matritsani ajratamiz Chiziqli regressiya va uni qayta tiklash usullari matritsalarga Chiziqli regressiya va uni qayta tiklash usullari ΠΈ Chiziqli regressiya va uni qayta tiklash usullari va bir qator o'zgarishlarni amalga oshiring (bu erda QR dekompozitsiya algoritmining o'zi ko'rib chiqilmaydi, faqat uning vazifaga nisbatan qo'llanilishi):

Chiziqli regressiya va uni qayta tiklash usullari

Matritsa Chiziqli regressiya va uni qayta tiklash usullari ortogonaldir. Bu bizga ishdan xalos bo'lishga imkon beradi Chiziqli regressiya va uni qayta tiklash usullari:

Chiziqli regressiya va uni qayta tiklash usullari

Va agar siz almashtirsangiz Chiziqli regressiya va uni qayta tiklash usullari haqida Chiziqli regressiya va uni qayta tiklash usullari, keyin u ishlaydi Chiziqli regressiya va uni qayta tiklash usullari. Shuni hisobga olib Chiziqli regressiya va uni qayta tiklash usullari yuqori uchburchak matritsa bo'lib, u quyidagicha ko'rinadi:

Chiziqli regressiya va uni qayta tiklash usullari

Buni almashtirish usuli yordamida hal qilish mumkin. Element Chiziqli regressiya va uni qayta tiklash usullari sifatida joylashgan Chiziqli regressiya va uni qayta tiklash usullari, oldingi element Chiziqli regressiya va uni qayta tiklash usullari sifatida joylashgan Chiziqli regressiya va uni qayta tiklash usullari va hokazo.

Shuni ta'kidlash kerakki, QR parchalanishidan foydalanish natijasida olingan algoritmning murakkabligi tengdir. Chiziqli regressiya va uni qayta tiklash usullari. 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:

Chiziqli regressiya va uni qayta tiklash usullari

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 Chiziqli regressiya va uni qayta tiklash usullari birinchidan Chiziqli regressiya va uni qayta tiklash usullari, bunga parallel ravishda indekslar uchun gradientni hisoblang Chiziqli regressiya va uni qayta tiklash usullari uchun Chiziqli regressiya va uni qayta tiklash usullari. Keyin olingan gradientlarni qo'shing. Qo'shish natijasi xuddi birinchidan boshlab indekslar uchun gradientni darhol hisoblagandek bo'ladi Chiziqli regressiya va uni qayta tiklash usullari. 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:

Chiziqli regressiya va uni qayta tiklash usullari

Amalga oshirish nuqtai nazaridan, bu paradigmaga mos keladi MapReduce. Gradient tushishining har bir bosqichida gradientni hisoblash uchun har bir ma'lumot tuguniga topshiriq yuboriladi, so'ngra hisoblangan gradientlar birgalikda yig'iladi va natijani yaxshilash uchun ularning yig'indisidan foydalaniladi.

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 chiziqli regressiyani tiklash uchun ham, chiziqli tenglamalar tizimini echish uchun ham mos keladigan muammoni hal qilishning yana bir usuli. Uning asosiy xususiyati shundaki, u matritsali usullarning afzalliklarini va iterativ yondashuvni birlashtiradi. Ushbu usulning qo'llanilishini ikkala kutubxonada ham topish mumkin SciPy, va MATLAB. Ushbu usulning tavsifi bu erda berilmaydi (uni maqolada topish mumkin LSQR: siyrak chiziqli tenglamalar va siyrak eng kichik kvadratlar uchun algoritm). Buning o'rniga, LSQRni taqsimlangan muhitda bajarishga moslashtirish uchun yondashuv namoyish etiladi.

LSQR usuli quyidagilarga asoslanadi bidiagonalizatsiya jarayoni. Bu iterativ protsedura bo'lib, har bir iteratsiya quyidagi bosqichlardan iborat:
Chiziqli regressiya va uni qayta tiklash usullari

Ammo matritsa deb faraz qilsak Chiziqli regressiya va uni qayta tiklash usullari 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):

Chiziqli regressiya va uni qayta tiklash usullari

Aynan shu yondashuv chiziqli regressiyani amalga oshirishda qo'llaniladi Apache Ignite ML.

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

a Izoh qo'shish