Linearna regresija i metode njezinog oporavka

Linearna regresija i metode njezinog oporavka
Izvor: xkcd

Linearna regresija je jedan od osnovnih algoritama za mnoga područja vezana uz analizu podataka. Razlog tome je očit. Ovo je vrlo jednostavan i razumljiv algoritam, koji je pridonio njegovoj širokoj upotrebi desetcima, ako ne i stotinama godina. Ideja je da pretpostavimo linearnu ovisnost jedne varijable o skupu drugih varijabli, a zatim pokušamo vratiti tu ovisnost.

Ali ovaj članak ne govori o korištenju linearne regresije za rješavanje praktičnih problema. Ovdje ćemo razmotriti zanimljive značajke implementacije distribuiranih algoritama za njegov oporavak, na koje smo naišli prilikom pisanja modula strojnog učenja u Apache Ignite. Malo osnovne matematike, strojnog učenja i distribuiranog računalstva može vam pomoći da shvatite kako izvesti linearnu regresiju čak i kada su vaši podaci raspoređeni na tisuće čvorova.

O čemu pričamo?

Suočeni smo sa zadatkom ponovnog uspostavljanja linearne ovisnosti. Kao ulazni podatak zadan je skup vektora navodno nezavisnih varijabli od kojih je svakoj pridružena određena vrijednost zavisne varijable. Ovi podaci se mogu prikazati u obliku dvije matrice:

Linearna regresija i metode njezinog oporavka

Budući da je ovisnost pretpostavljena, a uz to i linearna, pretpostavku ćemo napisati u obliku umnoška matrica (radi pojednostavljenja zapisa, ovdje i dolje se pretpostavlja da se slobodni član jednadžbe krije iza Linearna regresija i metode njezinog oporavka, i posljednji stupac matrice Linearna regresija i metode njezinog oporavka sadrži jedinice):

Linearna regresija i metode njezinog oporavka

Zvuči dosta poput sustava linearnih jednadžbi, zar ne? Čini se, ali najvjerojatnije neće biti rješenja za takav sustav jednadžbi. Razlog tome je šum, koji je prisutan u gotovo svim stvarnim podacima. Drugi razlog može biti nepostojanje linearne ovisnosti kao takve, protiv čega se može boriti uvođenjem dodatnih varijabli koje nelinearno ovise o izvornim. Razmotrite sljedeći primjer:
Linearna regresija i metode njezinog oporavka
Izvor: Wikipedija

Ovo je jednostavan primjer linearne regresije koji pokazuje odnos jedne varijable (duž osi Linearna regresija i metode njezinog oporavka) iz druge varijable (duž osi Linearna regresija i metode njezinog oporavka). Da bi sustav linearnih jednadžbi koji odgovara ovom primjeru imao rješenje, sve točke moraju ležati točno na istoj ravnoj liniji. Ali to nije istina. Ali oni ne leže na istoj ravnoj liniji upravo zbog šuma (ili zato što je pretpostavka o linearnom odnosu bila pogrešna). Dakle, da bi se obnovio linearni odnos iz stvarnih podataka, obično je potrebno uvesti još jednu pretpostavku: ulazni podaci sadrže šum i taj šum ima normalna distribucija. Možete napraviti pretpostavke o drugim vrstama distribucije buke, ali u velikoj većini slučajeva u obzir se uzima normalna distribucija, o čemu ćemo dalje raspravljati.

Metoda najveće vjerojatnosti

Dakle, pretpostavili smo prisutnost slučajnog normalno distribuiranog šuma. Što učiniti u takvoj situaciji? Za ovaj slučaj u matematici postoji i široko se koristi metoda najveće vjerojatnosti. Ukratko, njegova bit leži u izboru funkcije vjerojatnosti i njegovo naknadno maksimiziranje.

Vraćamo se obnavljanju linearnog odnosa iz podataka s normalnim šumom. Imajte na umu da je pretpostavljeni linearni odnos matematičko očekivanje Linearna regresija i metode njezinog oporavka postojeće normalne distribucije. Istodobno, vjerojatnost da Linearna regresija i metode njezinog oporavka poprima jednu ili drugu vrijednost, ovisno o prisutnosti vidljivih vrijednosti Linearna regresija i metode njezinog oporavka, izgleda ovako:

Linearna regresija i metode njezinog oporavka

Zamijenimo sada umjesto toga Linearna regresija i metode njezinog oporavka и Linearna regresija i metode njezinog oporavka Varijable koje su nam potrebne su:

Linearna regresija i metode njezinog oporavka

Ostaje samo pronaći vektor Linearna regresija i metode njezinog oporavka, pri čemu je ta vjerojatnost najveća. Da bi se maksimizirala takva funkcija, zgodno je prvo uzeti njen logaritam (logaritam funkcije će dosegnuti maksimum u istoj točki kao i sama funkcija):

Linearna regresija i metode njezinog oporavka

Što se pak svodi na minimiziranje sljedeće funkcije:

Linearna regresija i metode njezinog oporavka

Usput, ovo se zove metoda najmanjih kvadrata. Često su sva gore navedena razmatranja izostavljena i jednostavno se koristi ova metoda.

QR dekompozicija

Minimum gornje funkcije može se pronaći pronalaskom točke u kojoj je gradijent te funkcije nula. A gradijent će biti napisan na sljedeći način:

Linearna regresija i metode njezinog oporavka

QR dekompozicija je matrična metoda za rješavanje problema minimizacije koja se koristi u metodi najmanjih kvadrata. U tom smislu, prepisujemo jednadžbu u matričnom obliku:

Linearna regresija i metode njezinog oporavka

Dakle, rastavljamo matricu Linearna regresija i metode njezinog oporavka na matrice Linearna regresija i metode njezinog oporavka и Linearna regresija i metode njezinog oporavka i izvršiti niz transformacija (sam algoritam QR dekompozicije ovdje nećemo razmatrati, samo njegovu upotrebu u odnosu na zadatak):

Linearna regresija i metode njezinog oporavka

Matrica Linearna regresija i metode njezinog oporavka je ortogonalna. To nam omogućuje da se riješimo posla Linearna regresija i metode njezinog oporavka:

Linearna regresija i metode njezinog oporavka

A ako zamijenite Linearna regresija i metode njezinog oporavka na Linearna regresija i metode njezinog oporavka, onda će uspjeti Linearna regresija i metode njezinog oporavka. S obzirom na to Linearna regresija i metode njezinog oporavka je gornja trokutasta matrica, izgleda ovako:

Linearna regresija i metode njezinog oporavka

To se može riješiti metodom supstitucije. Element Linearna regresija i metode njezinog oporavka nalazi se kao Linearna regresija i metode njezinog oporavka, prethodni element Linearna regresija i metode njezinog oporavka nalazi se kao Linearna regresija i metode njezinog oporavka i tako dalje.

Ovdje je vrijedno napomenuti da je složenost rezultirajućeg algoritma zbog upotrebe QR dekompozicije jednaka Linearna regresija i metode njezinog oporavka. Štoviše, unatoč činjenici da je operacija množenja matrice dobro paralelizirana, nije moguće napisati učinkovitu distribuiranu verziju ovog algoritma.

Gradijentni silazak

Kada govorimo o minimiziranju funkcije, uvijek se vrijedi sjetiti metode (stohastičkog) gradijentnog spuštanja. Ovo je jednostavna i učinkovita metoda minimizacije koja se temelji na iterativnom izračunavanju gradijenta funkcije u točki i zatim njezinom pomicanju u smjeru suprotnom od gradijenta. Svaki takav korak približava rješenje minimumu. Gradijent i dalje izgleda isto:

Linearna regresija i metode njezinog oporavka

Ova metoda je također dobro paralelizirana i distribuirana zbog linearnih svojstava operatora gradijenta. Imajte na umu da se u gornjoj formuli ispod znaka zbroja nalaze nezavisni članovi. Drugim riječima, gradijent možemo izračunati neovisno za sve indekse Linearna regresija i metode njezinog oporavka od prvog do Linearna regresija i metode njezinog oporavka, paralelno s tim izračunajte gradijent za indekse s Linearna regresija i metode njezinog oporavka na Linearna regresija i metode njezinog oporavka. Zatim dodajte dobivene gradijente. Rezultat zbrajanja bit će isti kao da smo odmah izračunali gradijent za indekse od prvog do Linearna regresija i metode njezinog oporavka. Stoga, ako su podaci raspoređeni među nekoliko dijelova podataka, gradijent se može izračunati neovisno o svakom dijelu, a zatim se rezultati tih izračuna mogu zbrojiti kako bi se dobio konačni rezultat:

Linearna regresija i metode njezinog oporavka

Sa stajališta implementacije, ovo odgovara paradigmi MapReduce. U svakom koraku spuštanja gradijenta, zadatak se šalje svakom podatkovnom čvoru za izračun gradijenta, zatim se izračunati gradijenti prikupljaju zajedno, a rezultat njihovog zbroja koristi se za poboljšanje rezultata.

Unatoč jednostavnosti implementacije i mogućnosti izvođenja u MapReduce paradigmi, gradijentni silazak također ima svoje nedostatke. Konkretno, broj koraka potrebnih za postizanje konvergencije značajno je veći u usporedbi s drugim specijaliziranijim metodama.

LSQR

LSQR je još jedna metoda za rješavanje problema, koja je prikladna i za obnavljanje linearne regresije i za rješavanje sustava linearnih jednadžbi. Njegova glavna značajka je da kombinira prednosti matričnih metoda i iterativnog pristupa. Implementacije ove metode mogu se pronaći u obje knjižnice SciPy, i u MATLAB. Ovdje neće biti dat opis ove metode (može se naći u članku LSQR: Algoritam za rijetke linearne jednadžbe i rijetke najmanje kvadrate). Umjesto toga, demonstrirat će se pristup prilagođavanja LSQR-a za izvođenje u distribuiranom okruženju.

Metoda LSQR temelji se na postupak bidijagonalizacije. Ovo je iterativni postupak, a svako se ponavljanje sastoji od sljedećih koraka:
Linearna regresija i metode njezinog oporavka

Ali ako pretpostavimo da matrica Linearna regresija i metode njezinog oporavka je horizontalno podijeljen, tada se svaka iteracija može predstaviti kao dva MapReduce koraka. Na taj način je moguće minimizirati prijenose podataka tijekom svake iteracije (samo vektori čija je duljina jednaka broju nepoznanica):

Linearna regresija i metode njezinog oporavka

Upravo se ovaj pristup koristi pri implementaciji linearne regresije u Apache Ignite ML.

Zaključak

Postoji mnogo algoritama za oporavak linearne regresije, ali ne mogu se svi primijeniti u svim uvjetima. Stoga je QR dekompozicija izvrsna za točna rješenja na malim skupovima podataka. Gradijentni silazak jednostavan je za implementaciju i omogućuje vam brzo pronalaženje približnog rješenja. A LSQR kombinira najbolja svojstva prethodna dva algoritma, budući da se može distribuirati, konvergira brže u usporedbi s gradijentnim spuštanjem, a također omogućuje rano zaustavljanje algoritma, za razliku od QR dekompozicije, kako bi se pronašlo približno rješenje.

Izvor: www.habr.com

Dodajte komentar