Lineárna regresia a metódy jej obnovy

Lineárna regresia a metódy jej obnovy
Zdroj: xkcd

Lineárna regresia je jedným z základných algoritmov pre mnohé oblasti súvisiace s analýzou dát. Dôvod je zrejmý. Je to veľmi jednoduchý a zrozumiteľný algoritmus, čo podporuje jeho široké použitie už celé desaťročia, ak nie storočia. Myšlienka spočíva v tom, že predpokladáme lineárnu závislosť jednej premennej od súboru ďalších premenných a následne sa snažíme túto závislosť obnoviť.

Ale v tomto článku sa nebude hovoriť o použití lineárnej regresie na riešenie praktických úloh. Tu budú preskúmané zaujímavé vlastnosti implementácie distribuovaných algoritmov jej obnovy, s ktorými sme sa stretli pri písaní modulu strojového učenia v Apache Ignite. Trochu základnej matematiky, základov strojového učenia a distribuovaných výpočtov pomôže pochopiť, ako obnoviť lineárnu regresiu, aj keď sú dáta rozdelené medzi tisíckami uzlov.

O čom je reč?

Máme pred sebou úlohu obnovy lineárnej závislosti. Ako vstupné údaje sa poskytuje množstvo vektorov predpokladane nezávislých premenných, ktorým je priradená nejaká hodnota závislej premennej. Tieto údaje môžeme predstaviť vo forme dvoch matíc:

Lineárna regresia a metódy jej obnovy

Teraz, keď predpokladáme závislosť, a navyše aj lineárnu, zapíšeme naše predpoklady vo forme súčinu matíc (pre zjednodušenie zápisu sa tu a ďalej predpokladá, že voľný člen rovnice je skrytý za Lineárna regresia a metódy jej obnovy, a posledný stĺpec matice Lineárna regresia a metódy jej obnovy obsahuje jedničky):

Lineárna regresia a metódy jej obnovy

Veľmi podobné systému lineárnych rovníc, že? Vyzerá to tak, ale riešení tohto systému rovníc pravdepodobne nebude. Príčinou je šum, ktorý sa vyskytuje prakticky v akýchkoľvek reálnych dátach. Ďalšou príčinou môže byť absencia lineárnej závislosti ako takej, s ktorou sa snažíme bojovať zavedením ďalších premenných, ktoré sú nelineárne závislé od pôvodných. Pozrime sa na nasledovný príklad:
Lineárna regresia a metódy jej obnovy
Zdroj: Wikipedia

Toto je jednoduchý príklad lineárnej regresie, ktorý demonštruje závislosť jednej premennej (po osi Lineárna regresia a metódy jej obnovy) od druhej premennej (po osi Lineárna regresia a metódy jej obnovy). Aby systém lineárnych rovníc zodpovedajúci tomuto príkladu mal riešenie, všetky body musia ležať presne na jednej priamke. Ale to nie je tak. A nelezú na jednej priamke práve kvôli šumu (alebo preto, že predpoklad o existencii lineárnej závislosti bol chybný). Aby sa teda obnovila lineárna závislosť z reálnych údajov, zvyčajne je potrebné zaviesť ešte jedno predpoklad: vstupné údaje obsahujú šum a tento šum má normálne rozdelenie. Môžeme robiť predpoklady aj o iných typoch rozdelenia šumu, ale vo väčšine prípadov sa zvažuje práve normálne rozdelenie, o ktorom bude ďalej reč.

Metóda maximálnej pravdepodobnosti

Takže sme predpokladali existenciu náhodne normálne rozdeleného šumu. Ako sa teda máme v tejto situácii? Na tento prípad v matematike existuje a široko sa používa metóda maximálnej pravdepodobnosti. Ak to zhrnieme, jej podstata spočíva vo výbere funkcie pravdepodobnosti a jej následnej maximalizácii.

Vráťme sa k obnoveniu lineárnej závislosti z dát s normálnym šumom. Poznamenajme, že predpokladaná lineárna závislosť je matematickým očakávaním Lineárna regresia a metódy jej obnovy existujúceho normálneho rozdelenia. Zároveň pravdepodobnosť toho, že Lineárna regresia a metódy jej obnovy berie určitú hodnotu, za podmienky existencie pozorovaných Lineárna regresia a metódy jej obnovy, vyzerá nasledovne:

Lineárna regresia a metódy jej obnovy

Teraz dosadíme nami potrebné premenné: Lineárna regresia a metódy jej obnovy a Lineárna regresia a metódy jej obnovy Zostáva len nájsť vektor

Lineárna regresia a metódy jej obnovy

, pri ktorom je táto pravdepodobnosť maximálna. Aby sme maximalizovali takú funkciu, je pohodlné najprv ju prilogaritmizovať (logaritmus funkcie dosiahne maximum v tom istom bode, ako sama funkcia): Lineárna regresia a metódy jej obnovyČo sa zase zredukuje na minimalizáciu nasledujúcej funkcie:

Lineárna regresia a metódy jej obnovy

Mimochodom, toto sa nazýva metóda

Lineárna regresia a metódy jej obnovy

najmenších štvorcov . Často sú všetky uvedené úvahy vynechané a jednoducho sa používa táto metóda.QR rozklad

Minimum uvedenej funkcie môžeme nájsť, ak nájdeme bod, v ktorom gradient tejto funkcie je rovný nule. A gradient bude zapísaný nasledujúcim spôsobom:

je maticovou metódou riešenia problému minimalizácie používanou v metóde najmenších štvorcov. V tejto súvislosti prepíšeme rovnicu v maticovej forme:

Lineárna regresia a metódy jej obnovy

Minimum uvedenej funkcie môžeme nájsť, ak nájdeme bod, v ktorom gradient tejto funkcie je rovný nule. A gradient bude zapísaný nasledujúcim spôsobom: Takže rozkladáme maticu

Lineárna regresia a metódy jej obnovy

na matice Lineárna regresia a metódy jej obnovy na matrici Lineárna regresia a metódy jej obnovy a Lineárna regresia a metódy jej obnovy a vykonávame rad transformácií (samotný algoritmus QR rozkladu sa tu nebude posudzovať, iba jeho využitie v súvislosti s danou úlohou):

Lineárna regresia a metódy jej obnovy

Matica Lineárna regresia a metódy jej obnovy je ortogonálna. To nám umožňuje zbaviť sa súčinu Lineárna regresia a metódy jej obnovy:

Lineárna regresia a metódy jej obnovy

A ak nahradíme Lineárna regresia a metódy jej obnovy na Lineárna regresia a metódy jej obnovy, dostaneme Lineárna regresia a metódy jej obnovy. Keďže Lineárna regresia a metódy jej obnovy je horná trojuholníková matica, vyzerá to nasledovne:

Lineárna regresia a metódy jej obnovy

Toto možno riešiť metódou substitúcie. Prvok Lineárna regresia a metódy jej obnovy sa nachádza ako Lineárna regresia a metódy jej obnovy, predchádzajúci prvok Lineárna regresia a metódy jej obnovy sa nachádza ako Lineárna regresia a metódy jej obnovy a tak ďalej.

Tu treba poznamenať, že zložitosti získaného algoritmu vďaka použitiu QR rozkladu je rovnák Lineárna regresia a metódy jej obnovy. Napriek tomu, že operácia násobenia matíc sa dobre paralelizuje, napísať efektívnu distribuovanú verziu tohto algoritmu sa nezdá možné.

Gradientný pokles

Keď hovoríme o minimalizácii nejakej funkcie, vždy by sme mali spomenúť metódu (stochastického) gradientného poklesu. Je to jednoduchá a efektívna metóda minimalizácie založená na iteratívnom výpočte gradientu funkcie v bode a následnom posune v smere opačnom k gradientu. Každý taký krok približuje riešenie k minimu. Gradient pritom vyzerá stále rovnako:

Lineárna regresia a metódy jej obnovy

Taktiež je táto metóda dobre paralelizovateľná a distribuovateľná vďaka lineárnym vlastnostiam operátora gradientu. Poznamenajme, že vo vyššie uvedenom vzorci pod znamienkom sumy sú nezávislé sčítance. Inými slovami, môžeme vypočítať gradient nezávisle pre všetky indexy Lineárna regresia a metódy jej obnovy od prvého po Lineárna regresia a metódy jej obnovy, paralelne s tým vypočítať gradient pre indexy od Lineárna regresia a metódy jej obnovy do Lineárna regresia a metódy jej obnovy. Potom zahrnieme vzniknuté gradienty. Výsledok sčítania bude rovnaký, akoby sme vypočítali hneď gradient pre indexy od prvého po Lineárna regresia a metódy jej obnovy. Takto, ak sú dáta rozdelené medzi viaceré časti dát, gradient môže byť vypočítaný nezávisle na každej časti, a potom môžu byť výsledky týchto výpočtov sčítané na získanie konečného výsledku:

Lineárna regresia a metódy jej obnovy

Z hľadiska realizácie sa to zmestí do paradigmy MapReduce. Na každom kroku gradientného poklesu je každému uzlu dát odoslaná úloha na výpočet gradientu, potom sa vypočítané gradienty zhromažďujú spolu a výsledok ich sčítania sa používa na zlepšenie výsledku.

Napriek jednoduchej implementácii a možnosti realizácie v paradigme MapReduce má gradientný zostup aj svoje nedostatky. Konkrétne, počet krokov potrebných na dosiahnutie konvergencie je podstatne vyšší v porovnaní s inými, viac špecializovanými metódami.

LSQR

LSQR je ďalšou metódou riešenia predloženej úlohy, ktorá je vhodná ako na obnovu lineárnej regresie, tak na riešenie systémov lineárnych rovníc. Jeho hlavná vlastnosť spočíva v tom, že kombinuje výhody maticových metód a iteratívneho prístupu. Implementácie tejto metódy je možné nájsť ako v knižnici SciPy, tak aj v MATLAB.. Opis tejto metódy nebude uvedený (možno ho nájsť v článku LSQR: An algorithm for sparse linear equations and sparse least squares). Namiesto toho bude demonštrovaný prístup, ktorý umožňuje prispôsobiť LSQR pre vykonávanie v distribuovanom prostredí.

Základom metódy LSQR je procedúra bidiagonalizácie. Ide o iteratívnu procedúru, ktorej každá iterácia pozostáva z nasledujúcich krokov:
Lineárna regresia a metódy jej obnovy

Ale ak vychádzame z toho, že matica Lineárna regresia a metódy jej obnovy je horizontálne partíciovaná, každú iteráciu je možné predstaviť vo forme dvoch krokov MapReduce. Týmto spôsobom sa podarí minimalizovať prenosy dát počas každej iterácie (iba vektory dĺžky rovnej počtu neznámych):

Lineárna regresia a metódy jej obnovy

Tento prístup sa používa pri implementácii lineárnej regresie v Apache Ignite ML.

Záver

Existuje mnoho algoritmov na obnovu lineárnej regresie, ale nie všetky môžu byť aplikované za akýchkoľvek podmienok. Tak QR rozklad je vynikajúci pre presné riešenia na malých množstvách údajov. Gradientný zostup je jednoducho realizovateľný a umožňuje rýchlo nájsť priblížené riešenie. A LSQR kombinuje najlepšie vlastnosti predchádzajúcich dvoch algoritmov, keďže môže byť distribuovaný, rýchlejšie konverguje v porovnaní s gradientným zostupom, a tiež umožňuje predčasné zastavenie algoritmu na rozdiel od QR rozkladu pri hľadaní priblíženého riešenia.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster