Linearna regresija in metode njene obnovitve

Linearna regresija in metode njene obnovitve
Izvor: xkcd

Linearno regresijo lahko štejemo za enega od osnovnih algoritmov v mnogih področjih, povezanih z analizo podatkov. Razlog za to je očiten. To je zelo preprost in razumljiv algoritem, kar spodbuja njegovo široko uporabo že desetletja, če ne stoletja. Ideja je enostavna; predpostavljamo linearno odvisnost ene spremenljivke od niza drugih spremenljivk, nato pa poskušamo to odvisnost obnoviti.

Vendar pa v tem članku ne bomo obravnavali uporabe linearne regresije za reševanje praktičnih težav. Obravnavali bomo zanimive značilnosti izvajanja porazdeljenih algoritmov za njeno obnovitev, s katerimi smo se srečali pri pisanju modula za strojno učenje v Apache Ignite. Nekaj osnovne matematike, temelj strojnega učenja in porazdeljenega računalništva bo pomagalo razumeti, kako obnoviti linearno regresijo, tudi če so podatki razpršeni med tisoči vozlišč.

O čem govorimo?

Pred nami je naloga obnove linearne odvisnosti. Kot vhodni podatki imamo množico vektorjev domnevno neodvisnih spremenljivk, katerim je pripojeno določeno vrednost odvisne spremenljivke. Te podatke lahko predstavimo v obliki dveh matrik:

Linearna regresija in metode njene obnovitve

Zdaj, saj predpostavljamo odvisnost, in še to linearno, zapišimo naše predpostavke v obliki produkta matrik (za poenostavitev zapisa se bo tukaj in naprej domnevalo, da je prosti člen enačbe skrit za Linearna regresija in metode njene obnovitve, zadnji stolpec matrike Linearna regresija in metode njene obnovitve vsebuje enice):

Linearna regresija in metode njene obnovitve

Zelo podobno kot sistem linearnih enačb, a ne? Zdi se, vendar rešitve za tak sistem enačb verjetno ne bo. Razlog je šum, ki je prisoten v skoraj vseh realnih podatkih. Prav tako lahko razlog za to pomanjkanje linearne odvisnosti, s katero se lahko borimo z uvedbo dodatnih spremenljivk, ki so nelinearno odvisne od izvirnih. Oglejmo si naslednji primer:
Linearna regresija in metode njene obnovitve
Izvor: Wikipedia

To je preprost primer linearne regresije, ki prikazuje odvisnost ene spremenljivke (na osi Linearna regresija in metode njene obnovitve) od druge spremenljivke (na osi Linearna regresija in metode njene obnovitve). Da bi sistem linearnih jednačina imao rešenje, sve tačke moraju ležati tačno na jednoj pravoj. Međutim, to nije slučaj. A ne leže na jednoj pravoj upravo zbog šuma (ili zato što je pretpostavka o postojanju linearne zavisnosti bila pogrešna). Tako da je, kako bismo rekonstruisali linearnu zavisnost prema stvarnim podacima, obično potrebno uvesti još jednu pretpostavku: ulazni podaci sadrže šum i taj šum ima normalnu raspodelu. Mogu se praviti pretpostavke i o drugim tipovima raspodela šuma, ali u pretežnoj većini slučajeva se razmatra baš normalna raspodela, o kojoj će biti reči u nastavku.

Metod maksimalne verovatnoće

. Dakle, pretpostavili smo prisustvo slučajnog normalno raspoređenog šuma. Šta učiniti u takvoj situaciji? Za ovaj slučaj u matematici postoji i široko se koristi metod maksimalne verovatnoće. Ukratko, suština je u odabiru funkcije verovatnoće i njenoj kasnijoj maksimalizaciji.

Vraćamo se rekonstrukciji linearne zavisnosti prema podacima sa normalnim šumom. Primećujemo da predložena linearna zavisnost predstavlja matematičko očekivanje Linearna regresija in metode njene obnovitve postojećeg normalnog rasporeda. U isto vreme, verovatnoća da Linearna regresija in metode njene obnovitve uzima određenu vrednost, pod uslovom da su prisutni posmatrani Linearna regresija in metode njene obnovitve, izgleda ovako:

Linearna regresija in metode njene obnovitve

Sada ćemo umesto Linearna regresija in metode njene obnovitve in Linearna regresija in metode njene obnovitve ubaciti potrebne varijable:

Linearna regresija in metode njene obnovitve

Preostaje samo da pronađemo vektor Linearna regresija in metode njene obnovitve, pri kojem je ova verovatnoća maksimizovana. Da bismo maksimalizovali takvu funkciju, zgodno je prvo je prilogarifmovati (logaritam funkcije će dostići maksimum u istoj tački kao i sama funkcija):

Linearna regresija in metode njene obnovitve

Što, zauzvrat, svodi na minimizaciju sledeće funkcije:

Linearna regresija in metode njene obnovitve

Usput, ovo se naziva metodom najmanjih kvadrata. Često se sve navedene rasprave preskoče i koristi se samo ova metoda.

QR razlaganje

Minimum navedene funkcije može se naći ako se pronađe tačka u kojoj je gradijent ove funkcije jednak nuli. A gradijent će biti zapisan na sledeći način:

Linearna regresija in metode njene obnovitve

QR razlaganje je matrična metoda rešavanja problema minimizacije koja se koristi u metodu najmanjih kvadrata. U tom svetlu, prepisujemo jednačinu u matričnom obliku:

Linearna regresija in metode njene obnovitve

Dakle, raspoređujemo matricu Linearna regresija in metode njene obnovitve na matrice Linearna regresija in metode njene obnovitve in Linearna regresija in metode njene obnovitve in izvajamo vrsto transformacij (sam algoritem QR razcepitve tukaj ne bo obravnavan, le njegova uporaba v zvezi z zastavljeno nalogo):

Linearna regresija in metode njene obnovitve

Matrika Linearna regresija in metode njene obnovitve je ortogonalna. To nam omogoča, da se znebimo produkta Linearna regresija in metode njene obnovitve:

Linearna regresija in metode njene obnovitve

Če zamenjamo Linearna regresija in metode njene obnovitve na Linearna regresija in metode njene obnovitve, dobimo Linearna regresija in metode njene obnovitve. Glede na to, da Linearna regresija in metode njene obnovitve je zgornja trikotna matrika, to izgleda takole:

Linearna regresija in metode njene obnovitve

To lahko rešimo z metodo substitucije. Element Linearna regresija in metode njene obnovitve se izračuna kot Linearna regresija in metode njene obnovitve, prejšnji element Linearna regresija in metode njene obnovitve se izračuna kot Linearna regresija in metode njene obnovitve in tako naprej.

Tukaj je treba omeniti, da je kompleksnost nastalega algoritma zaradi uporabe QR razcepitve enaka Linearna regresija in metode njene obnovitve. Kljub temu, da se množenje matric dobro paralelizira, se učinkovita razpršena različica tega algoritma ne zdi mogoča.

Gradientni spust

Ko govorimo o minimizaciji neke funkcije, se vedno spomnimo na metodo (stohastičnega) gradientnega spuščanja. To je preprosta in učinkovita metoda minimizacije, ki temelji na iterativnem izračunu gradienta funkcije v točki in njenem kasnejšem premikanju v nasprotno smer od gradienta. Vsak tak korak približa rešitev k minimumu. Gradient je pri tem videti enako:

Linearna regresija in metode njene obnovitve

Ta metoda se dobro paralelizira in razporeja zaradi linearnih lastnosti gradientnega operatorja. Opažamo, da so v zgoraj navedeni formuli pod znakom seštevka neodvisni člani. Z drugimi besedami, gradient lahko izračunamo neodvisno za vse indekse Linearna regresija in metode njene obnovitve od prvega do Linearna regresija in metode njene obnovitve, hkrati pa izračunamo gradient za indekse od Linearna regresija in metode njene obnovitve do Linearna regresija in metode njene obnovitve. Nato se seštejejo pridobljeni gradienti. Rezultat seštevanja bo enak, kot če bi neposredno izračunali gradient za indekse od prvega do Linearna regresija in metode njene obnovitve. Tako, če so podatki razdeljeni med več delov podatkov, se gradient lahko izračuna neodvisno na vsaki delu, nato pa se rezultati teh izračunov lahko seštejejo za pridobitev končnega rezultata:

Linearna regresija in metode njene obnovitve

Z vidika implementacije to sledi paradigmi MapReduce. Na vsakem koraku gradientnega spuščanja se vsakemu podatkovnemu vozlišču pošlje naloga za izračun gradienta, nato se izračunani gradienti zberejo skupaj, in rezultat njihovega seštevanja se uporablja za izboljšanje rezultata.

Kljub svoji preprostosti pri implementaciji in možnosti izvajanja v paradigmi MapReduce ima gradientni spust tudi svoje pomanjkljivosti. Zlasti je število korakov, potrebnih za dosego konvergence, znatno večje v primerjavi z drugimi bolj specializiranimi metodami.

LSQR

LSQR je še ena metoda za reševanje zastavljenega problema, ki je primerna tako za obnovo linearne regresije kot za reševanje sistemov linearnih enačb. Njegova glavna značilnost je, da združuje prednosti matričnih metod in iterativnega pristopa. Implementacije te metode so na voljo tako v knjižnicah SciPy, kot tudi v MATLAB-u.. Opis te metode ne bo podan (lahko ga najdete v članku LSQR: An algorithm for sparse linear equations and sparse least squares). Namesto tega bo prikazan pristop, ki omogoča prilagajanje LSQR za izvajanje v distribuiranem okolju.

Osnova metode LSQR je postopek bidiagonalizacije. To je iterativni postopek, vsaka iteracija pa obsega naslednje korake:
Linearna regresija in metode njene obnovitve

Vendar, če predpostavimo, da je matrica Linearna regresija in metode njene obnovitve horizontalno razdeljena, lahko vsako iteracijo predstavimo kot dva koraka MapReduce. Tako se zmanjša prenosi podatkov med posameznimi iteracijami (samo vektorji dolžine, enake številu neznank):

Linearna regresija in metode njene obnovitve

Ta pristop se uporablja pri implementaciji linearne regresije v Apache Ignite ML.

Zaključek

Obstaja veliko algoritmov za obnovo linearne regresije, vendar vsi ne morejo biti uporabljeni v vseh pogojih. Na primer, QR razcepitev je odlična za natančno rešitev na majhnih podatkovnih množicah. Gradientni spust se preprosto implementira in hitro najde približno rešitev. LSQR pa združuje najboljše lastnosti prejšnjih dveh algoritmov, saj ga je mogoče distribuirati, hitreje konvergira v primerjavi z gradientnim spustom in omogoča zgodnje ustavljanje algoritma v nasprotju z QR razcepitvijo za iskanje približne rešitve.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster