Linearna regresija in metode za njeno obnovo

Linearna regresija in metode za njeno obnovo
Vir: xkcd

Linearna regresija je eden od osnovnih algoritmov za številna področja, povezana z analizo podatkov. Razlog za to je očiten. To je zelo preprost in razumljiv algoritem, ki je prispeval k njegovi široki uporabi že več deset, če ne sto let. Ideja je, da predpostavimo linearno odvisnost ene spremenljivke od niza drugih spremenljivk in nato poskušamo obnoviti to odvisnost.

Vendar ta članek ne govori o uporabi linearne regresije za reševanje praktičnih problemov. Tukaj bomo preučili zanimive značilnosti implementacije porazdeljenih algoritmov za njegovo obnovitev, na katere smo naleteli pri pisanju modula strojnega učenja v Apache Ignite. Malo osnovne matematike, strojnega učenja in porazdeljenega računalništva vam lahko pomaga ugotoviti, kako izvajati linearno regresijo, tudi če so vaši podatki porazdeljeni na tisoče vozlišč.

Za kaj se gre?

Soočeni smo z nalogo ponovne vzpostavitve linearne odvisnosti. Kot vhodni podatek je podan niz vektorjev domnevno neodvisnih spremenljivk, od katerih je vsaka povezana z določeno vrednostjo odvisne spremenljivke. Te podatke je mogoče predstaviti v obliki dveh matrik:

Linearna regresija in metode za njeno obnovo

Zdaj, ker je odvisnost predpostavljena in poleg tega linearna, bomo našo predpostavko zapisali v obliki zmnožka matrik (za poenostavitev zapisa tukaj in spodaj predpostavljamo, da se prosti člen enačbe skriva za Linearna regresija in metode za njeno obnovo, in zadnji stolpec matrike Linearna regresija in metode za njeno obnovo vsebuje enote):

Linearna regresija in metode za njeno obnovo

Sliši se zelo podobno sistemu linearnih enačb, kajne? Zdi se, a najverjetneje ne bo rešitev za tak sistem enačb. Razlog za to je šum, ki je prisoten v skoraj vseh realnih podatkih. Drugi razlog je lahko pomanjkanje linearne odvisnosti kot take, proti čemur se je mogoče boriti z uvedbo dodatnih spremenljivk, ki so nelinearno odvisne od prvotnih. Razmislite o naslednjem primeru:
Linearna regresija in metode za njeno obnovo
Vir: Wikipedia

To je preprost primer linearne regresije, ki prikazuje odnos ene spremenljivke (vzdolž osi Linearna regresija in metode za njeno obnovo) iz druge spremenljivke (vzdolž osi Linearna regresija in metode za njeno obnovo). Da bi imel sistem linearnih enačb, ki ustreza temu primeru, rešitev, morajo vse točke ležati točno na isti ravni črti. Ampak to ni res. Ne ležijo pa na isti premici prav zaradi šuma (ali ker je bila predpostavka o linearnem razmerju zmotna). Da bi obnovili linearno razmerje iz realnih podatkov, je običajno treba uvesti še eno predpostavko: vhodni podatki vsebujejo šum in ta šum ima normalna porazdelitev. Lahko domnevate o drugih vrstah porazdelitve hrupa, vendar je v veliki večini primerov upoštevana normalna porazdelitev, o kateri bomo še razpravljali.

Metoda največje verjetnosti

Torej smo predpostavili prisotnost naključnega normalno porazdeljenega šuma. Kaj storiti v takšni situaciji? Za ta primer v matematiki obstaja in se pogosto uporablja metoda največje verjetnosti. Skratka, njeno bistvo je v izbiri funkcije verjetnosti in njegovo kasnejšo maksimizacijo.

Vrnemo se k obnavljanju linearne povezave iz podatkov z običajnim šumom. Upoštevajte, da je predpostavljeno linearno razmerje matematično pričakovanje Linearna regresija in metode za njeno obnovo obstoječa normalna porazdelitev. Ob tem je verjetnost, da Linearna regresija in metode za njeno obnovo prevzame eno ali drugo vrednost, odvisno od prisotnosti opazovanih Linearna regresija in metode za njeno obnovo, izgleda na naslednji način:

Linearna regresija in metode za njeno obnovo

Namesto tega zamenjajmo Linearna regresija in metode za njeno obnovo и Linearna regresija in metode za njeno obnovo Spremenljivke, ki jih potrebujemo, so:

Linearna regresija in metode za njeno obnovo

Vse, kar ostane, je najti vektor Linearna regresija in metode za njeno obnovo, pri kateri je ta verjetnost največja. Za maksimiranje takšne funkcije je primerno, da jo najprej logaritemujemo (logaritem funkcije bo dosegel maksimum na isti točki kot funkcija sama):

Linearna regresija in metode za njeno obnovo

Kar pa se zmanjša na minimum naslednje funkcije:

Linearna regresija in metode za njeno obnovo

Mimogrede, temu se reče metoda najmanjši kvadrati. Pogosto so vsi zgornji vidiki izpuščeni in se preprosto uporabi ta metoda.

QR razgradnja

Najmanjšo vrednost zgornje funkcije je mogoče najti tako, da poiščete točko, v kateri je gradient te funkcije enak nič. In gradient bo zapisan na naslednji način:

Linearna regresija in metode za njeno obnovo

QR razgradnja je matrična metoda za reševanje problema minimizacije, ki se uporablja v metodi najmanjših kvadratov. V zvezi s tem enačbo prepišemo v matrično obliko:

Linearna regresija in metode za njeno obnovo

Torej razgradimo matrico Linearna regresija in metode za njeno obnovo na matrice Linearna regresija in metode za njeno obnovo и Linearna regresija in metode za njeno obnovo in izvedite niz transformacij (samega algoritma za razgradnjo QR tu ne bomo obravnavali, temveč samo njegovo uporabo v zvezi z nalogo, ki jo obravnavamo):

Linearna regresija in metode za njeno obnovo

matrica Linearna regresija in metode za njeno obnovo je pravokoten. To nam omogoča, da se znebimo dela Linearna regresija in metode za njeno obnovo:

Linearna regresija in metode za njeno obnovo

In če zamenjate Linearna regresija in metode za njeno obnovo o Linearna regresija in metode za njeno obnovo, potem bo šlo Linearna regresija in metode za njeno obnovo. Glede na to Linearna regresija in metode za njeno obnovo je zgornja trikotna matrika, izgleda takole:

Linearna regresija in metode za njeno obnovo

To je mogoče rešiti z metodo zamenjave. Element Linearna regresija in metode za njeno obnovo se nahaja kot Linearna regresija in metode za njeno obnovo, prejšnji element Linearna regresija in metode za njeno obnovo se nahaja kot Linearna regresija in metode za njeno obnovo in tako naprej.

Pri tem velja omeniti, da je kompleksnost dobljenega algoritma zaradi uporabe QR dekompozicije enaka Linearna regresija in metode za njeno obnovo. Še več, kljub dejstvu, da je operacija množenja matrik dobro vzporedna, ni mogoče napisati učinkovite porazdeljene različice tega algoritma.

Gradientni spust

Ko govorimo o minimiziranju funkcije, si velja vedno zapomniti metodo (stohastičnega) gradientnega spusta. To je preprosta in učinkovita metoda minimizacije, ki temelji na iterativnem izračunu gradienta funkcije v točki in njenem nato premikanju v smeri, ki je nasprotna gradientu. Vsak tak korak približa rešitev minimumu. Gradient je še vedno enak:

Linearna regresija in metode za njeno obnovo

Ta metoda je prav tako dobro vzporedna in porazdeljena zaradi linearnih lastnosti operatorja gradienta. Upoštevajte, da so v zgornji formuli pod znakom za vsoto neodvisni členi. Z drugimi besedami, gradient lahko izračunamo neodvisno za vse indekse Linearna regresija in metode za njeno obnovo od prvega do Linearna regresija in metode za njeno obnovo, vzporedno s tem izračunajte gradient za indekse z Linearna regresija in metode za njeno obnovo za Linearna regresija in metode za njeno obnovo. Nato dodajte nastale prelive. Rezultat seštevanja bo enak, kot če bi takoj izračunali gradient za indekse od prvega do Linearna regresija in metode za njeno obnovo. Torej, če so podatki porazdeljeni med več kosov podatkov, je mogoče gradient izračunati neodvisno za vsak del, nato pa je mogoče rezultate teh izračunov sešteti, da dobimo končni rezultat:

Linearna regresija in metode za njeno obnovo

Z izvedbenega vidika to ustreza paradigmi MapReduce. Pri vsakem koraku spuščanja gradienta se vsakemu podatkovnemu vozlišču pošlje naloga za izračun gradienta, nato se izračunani gradienti zberejo skupaj, rezultat njihove vsote pa se uporabi za izboljšanje rezultata.

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

LSQR

LSQR je še ena metoda za reševanje problema, ki je primerna tako za obnavljanje 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. Izvedbe te metode lahko najdete v obeh knjižnicah SciPy, in v MATLAB. Opis te metode tukaj ne bo podan (najdete ga v članku LSQR: algoritem za redke linearne enačbe in redke najmanjše kvadrate). Namesto tega bo predstavljen pristop za prilagoditev LSQR izvajanju v porazdeljenem okolju.

Metoda LSQR temelji na postopek bidiagonalizacije. To je iterativni postopek, pri čemer je vsaka ponovitev sestavljena iz naslednjih korakov:
Linearna regresija in metode za njeno obnovo

Če pa predpostavimo, da je matrika Linearna regresija in metode za njeno obnovo je vodoravno razdeljen, potem lahko vsako ponovitev predstavimo kot dva koraka MapReduce. Na ta način je mogoče minimizirati prenose podatkov med vsako iteracijo (samo vektorji z dolžino, ki je enaka številu neznank):

Linearna regresija in metode za njeno obnovo

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

Zaključek

Obstaja veliko algoritmov za obnovitev linearne regresije, vendar vseh ni mogoče uporabiti v vseh pogojih. Tako je razčlenitev QR odlična za natančne rešitve na majhnih nizih podatkov. Gradientni spust je preprost za izvedbo in omogoča hitro iskanje približne rešitve. In LSQR združuje najboljše lastnosti prejšnjih dveh algoritmov, saj je lahko porazdeljen, konvergira hitreje v primerjavi s spuščanjem po gradientu in omogoča tudi zgodnjo zaustavitev algoritma, za razliko od QR dekompozicije, za iskanje približne rešitve.

Vir: www.habr.com

Dodaj komentar