Lineaarinen regressio ja menetelmät sen palauttamiseksi

Lineaarinen regressio ja menetelmät sen palauttamiseksi
Lähde: xkcd

Lineaarinen regressio on yksi perusalgoritmeista monilla data-analyysiin liittyvillä aloilla. Syy tähän on ilmeinen. Tämä on hyvin yksinkertainen ja ymmärrettävä algoritmi, joka on edistänyt sen laajaa käyttöä useiden kymmenien, ellei satojen vuosien ajan. Ajatuksena on, että oletamme yhden muuttujan lineaarisen riippuvuuden muiden muuttujien joukosta ja yritämme sitten palauttaa tämän riippuvuuden.

Mutta tässä artikkelissa ei ole kyse lineaarisen regression käyttämisestä käytännön ongelmien ratkaisemiseen. Tässä tarkastelemme mielenkiintoisia ominaisuuksia hajautettujen algoritmien toteutuksessa sen palauttamiseksi, joita kohtasimme kirjoittaessamme koneoppimismoduulia Apache Ignite. Pieni perusmatematiikka, koneoppiminen ja hajautettu laskenta voivat auttaa sinua selvittämään, kuinka suoritat lineaarisen regression, vaikka tietosi olisi jaettu tuhansien solmujen kesken.

Mistä me puhumme?

Edessämme on lineaarisen riippuvuuden palauttaminen. Syöttötietona annetaan joukko oletusarvoisesti riippumattomia muuttujia, joista kukin liittyy tiettyyn riippuvaisen muuttujan arvoon. Nämä tiedot voidaan esittää kahden matriisin muodossa:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Nyt, koska riippuvuus on oletettu ja lisäksi lineaarinen, kirjoitamme oletuksemme matriisien tulon muodossa (tallennuksen yksinkertaistamiseksi tässä ja alla oletetaan, että yhtälön vapaa termi on piilossa Lineaarinen regressio ja menetelmät sen palauttamiseksi, ja matriisin viimeinen sarake Lineaarinen regressio ja menetelmät sen palauttamiseksi sisältää yksiköitä):

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Kuulostaa paljon lineaaristen yhtälöiden järjestelmältä, eikö niin? Näyttää siltä, ​​mutta todennäköisesti tällaiselle yhtälöjärjestelmälle ei ole ratkaisuja. Syynä tähän on melu, jota esiintyy lähes kaikissa todellisissa tiedoissa. Toinen syy voi olla lineaarisen riippuvuuden puute sinänsä, jota voidaan torjua ottamalla käyttöön lisämuuttujia, jotka riippuvat epälineaarisesti alkuperäisistä. Harkitse seuraavaa esimerkkiä:
Lineaarinen regressio ja menetelmät sen palauttamiseksi
Lähde: wikipedia

Tämä on yksinkertainen esimerkki lineaarisesta regressiosta, joka näyttää yhden muuttujan suhteen (akselia pitkin Lineaarinen regressio ja menetelmät sen palauttamiseksi) toisesta muuttujasta (akselia pitkin Lineaarinen regressio ja menetelmät sen palauttamiseksi). Jotta tätä esimerkkiä vastaavalla lineaariyhtälöjärjestelmällä olisi ratkaisu, kaikkien pisteiden on oltava täsmälleen samalla suoralla. Mutta se ei ole totta. Mutta ne eivät makaa samalla suoralla juuri kohinan takia (tai siksi, että olettamus lineaarisesta suhteesta oli virheellinen). Siten lineaarisen suhteen palauttamiseksi todellisesta tiedosta on yleensä tarpeen esittää vielä yksi oletus: syöttödata sisältää kohinaa ja tämä kohina on normaalijakauma. Voit tehdä oletuksia muun tyyppisistä kohinan jakautumisesta, mutta suurimmassa osassa tapauksista huomioidaan normaalijakauma, jota käsitellään tarkemmin.

Suurimman todennäköisyyden menetelmä

Joten oletimme satunnaisen normaalijakauman kohinan olemassaolon. Mitä tehdä tällaisessa tilanteessa? Tätä varten matematiikassa on ja käytetään laajasti suurimman todennäköisyyden menetelmä. Lyhyesti sanottuna sen ydin on valinnassa todennäköisyysfunktiot ja sen myöhempi maksimointi.

Palaamme lineaarisen suhteen palauttamiseen normaalikohinaisista tiedoista. Huomaa, että oletettu lineaarinen suhde on matemaattinen odotus Lineaarinen regressio ja menetelmät sen palauttamiseksi olemassa oleva normaalijakauma. Samalla todennäköisyys, että Lineaarinen regressio ja menetelmät sen palauttamiseksi saa yhden tai toisen arvon, jos havaittavissa on olemassa Lineaarinen regressio ja menetelmät sen palauttamiseksi, näyttää seuraavalta:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Korvaakaamme nyt sen sijaan Lineaarinen regressio ja menetelmät sen palauttamiseksi и Lineaarinen regressio ja menetelmät sen palauttamiseksi Tarvitsemme muuttujia:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Jäljelle jää vain löytää vektori Lineaarinen regressio ja menetelmät sen palauttamiseksi, jolla tämä todennäköisyys on suurin. Tällaisen funktion maksimoimiseksi on kätevää ensin ottaa siitä logaritmi (funktion logaritmi saavuttaa maksimin samassa kohdassa kuin itse funktio):

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Mikä puolestaan ​​​​päätyy seuraavan toiminnon minimoimiseen:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Muuten, tätä kutsutaan menetelmäksi pienimmän neliösumman. Usein kaikki edellä mainitut huomiot jätetään pois ja tätä menetelmää käytetään yksinkertaisesti.

QR-hajotus

Yllä olevan funktion minimi voidaan löytää etsimällä piste, jossa tämän funktion gradientti on nolla. Ja gradientti kirjoitetaan seuraavasti:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

QR-hajotus on matriisimenetelmä pienimmän neliösumman menetelmässä käytetyn minimointitehtävän ratkaisemiseksi. Tässä suhteessa kirjoitamme yhtälön uudelleen matriisimuotoon:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Joten hajotamme matriisin Lineaarinen regressio ja menetelmät sen palauttamiseksi matriiseihin Lineaarinen regressio ja menetelmät sen palauttamiseksi и Lineaarinen regressio ja menetelmät sen palauttamiseksi ja suorita joukko muunnoksia (itse QR-hajotusalgoritmia ei käsitellä tässä, vain sen käyttöä käsillä olevaan tehtävään liittyen):

Lineaarinen regressio ja menetelmät sen palauttamiseksi

matriisi Lineaarinen regressio ja menetelmät sen palauttamiseksi on ortogonaalinen. Tämä antaa meille mahdollisuuden päästä eroon työstä Lineaarinen regressio ja menetelmät sen palauttamiseksi:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Ja jos vaihdat Lineaarinen regressio ja menetelmät sen palauttamiseksi päälle Lineaarinen regressio ja menetelmät sen palauttamiseksi, sitten se selviää Lineaarinen regressio ja menetelmät sen palauttamiseksi. Ottaen huomioon Lineaarinen regressio ja menetelmät sen palauttamiseksi on ylempi kolmiomatriisi, se näyttää tältä:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Tämä voidaan ratkaista korvausmenetelmällä. Elementti Lineaarinen regressio ja menetelmät sen palauttamiseksi sijaitsee nimellä Lineaarinen regressio ja menetelmät sen palauttamiseksi, edellinen elementti Lineaarinen regressio ja menetelmät sen palauttamiseksi sijaitsee nimellä Lineaarinen regressio ja menetelmät sen palauttamiseksi ja niin edelleen.

Tässä on syytä huomata, että tuloksena olevan algoritmin monimutkaisuus QR-hajoamisen käytöstä on yhtä suuri kuin Lineaarinen regressio ja menetelmät sen palauttamiseksi. Lisäksi huolimatta siitä tosiasiasta, että matriisin kertolaskuoperaatio on hyvin rinnakkain, ei ole mahdollista kirjoittaa tehokasta hajautettua versiota tästä algoritmista.

Gradientti laskeutuminen

Kun puhutaan funktion minimoinnista, kannattaa aina muistaa (stokastisen) gradientin laskeutumisen menetelmä. Tämä on yksinkertainen ja tehokas minimointimenetelmä, joka perustuu funktion gradientin iteratiiviseen laskemiseen pisteessä ja sen siirtämiseen gradientin vastakkaiseen suuntaan. Jokainen tällainen vaihe tuo ratkaisun lähemmäs minimiä. Gradientti näyttää edelleen samalta:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Tämä menetelmä on myös hyvin rinnakkainen ja hajautunut gradienttioperaattorin lineaaristen ominaisuuksien vuoksi. Huomaa, että yllä olevassa kaavassa summamerkin alla on itsenäisiä termejä. Toisin sanoen voimme laskea gradientin itsenäisesti kaikille indekseille Lineaarinen regressio ja menetelmät sen palauttamiseksi ensimmäisestä asti Lineaarinen regressio ja menetelmät sen palauttamiseksi, laske rinnakkain tämän kanssa gradientti indekseille Lineaarinen regressio ja menetelmät sen palauttamiseksi до Lineaarinen regressio ja menetelmät sen palauttamiseksi. Lisää sitten saadut gradientit. Lisäyksen tulos on sama kuin jos laskisimme heti gradientin indekseille ensimmäisestä Lineaarinen regressio ja menetelmät sen palauttamiseksi. Näin ollen, jos data on jaettu usealle datalle, gradientti voidaan laskea itsenäisesti jokaisesta osasta, ja sitten näiden laskelmien tulokset voidaan laskea yhteen lopullisen tuloksen saamiseksi:

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Toteutuksen näkökulmasta tämä sopii paradigmaan MapReduce. Gradientin laskun jokaisessa vaiheessa kullekin datasolmulle lähetetään tehtävä gradientin laskemiseksi, sitten lasketut gradientit kerätään yhteen ja niiden summan tulosta käytetään tuloksen parantamiseen.

Huolimatta toteutuksen helppoudesta ja suorituskyvystä MapReduce-paradigmassa, gradienttilaskeutumisella on myös haittapuolensa. Erityisesti konvergenssin saavuttamiseen tarvittavien vaiheiden määrä on huomattavasti suurempi verrattuna muihin erikoistuneempiin menetelmiin.

LSQR

LSQR on toinen menetelmä ongelman ratkaisemiseksi, joka sopii sekä lineaarisen regression palauttamiseen että lineaaristen yhtälöjärjestelmien ratkaisemiseen. Sen pääominaisuus on, että se yhdistää matriisimenetelmien edut ja iteratiivisen lähestymistavan. Tämän menetelmän toteutukset löytyvät molemmista kirjastoista SciPy, ja in MATLAB. Tämän menetelmän kuvausta ei anneta tässä (se löytyy artikkelista LSQR: Algoritmi harvoille lineaarisille yhtälöille ja harvoille pienimmän neliösummalle). Sen sijaan esitellään lähestymistapaa, jolla LSQR mukautetaan suoritukseen hajautetussa ympäristössä.

LSQR-menetelmä perustuu bidiagonalisointimenettely. Tämä on iteratiivinen menettely, jossa jokainen iteraatio koostuu seuraavista vaiheista:
Lineaarinen regressio ja menetelmät sen palauttamiseksi

Mutta jos oletetaan, että matriisi Lineaarinen regressio ja menetelmät sen palauttamiseksi on vaakasuoraan osioitu, jokainen iteraatio voidaan esittää kahdeksi MapReduce-vaiheeksi. Tällä tavalla on mahdollista minimoida tiedonsiirrot jokaisen iteroinnin aikana (vain vektorit, joiden pituus on yhtä suuri kuin tuntemattomien lukumäärä):

Lineaarinen regressio ja menetelmät sen palauttamiseksi

Juuri tätä lähestymistapaa käytetään toteutettaessa lineaarista regressiota Apache Ignite ML.

Johtopäätös

Lineaarisen regression palautusalgoritmeja on monia, mutta kaikkia niistä ei voida soveltaa kaikissa olosuhteissa. Joten QR-hajotus on erinomainen tarkkaan ratkaisuun pienille tietojoukoille. Gradienttilasku on helppo toteuttaa ja sen avulla voit nopeasti löytää likimääräisen ratkaisun. Ja LSQR yhdistää kahden edellisen algoritmin parhaat ominaisuudet, koska se voidaan hajauttaa, konvergoi nopeammin verrattuna gradienttilaskeutumiseen ja mahdollistaa myös algoritmin varhaisen pysäyttämisen, toisin kuin QR-hajotus, likimääräisen ratkaisun löytämiseksi.

Lähde: will.com

Lisää kommentti