Лінейная рэгрэсія і метады яе аднаўлення

Лінейная рэгрэсія і метады яе аднаўлення
Крыніца: xkcd

Лінейная рэгрэсія з'яўляецца адным з базавых алгарытмаў для многіх абласцей, звязаных з аналізам даных. Чыннік гэтаму відавочная. Гэта вельмі просты і зразумелы алгарытм, што спрыяе яго шырокаму прымяненню ўжо многія дзясяткі, калі не сотні, гадоў. Ідэя заключаецца ў тым, што мы мяркуем лінейную залежнасць адной зменнай ад набору іншых зменных, а потым спрабуем гэтую залежнасць аднавіць.

Але ў гэтым артыкуле прамова пайдзе не пра ўжыванне лінейнай рэгрэсіі для рашэння практычных задач. Тут будуць разгледжаны цікавыя асаблівасці рэалізацыі размеркаваных алгарытмаў яе аднаўлення, з якімі мы сутыкнуліся пры напісанні модуля машыннага навучання Apache Ignite. Трохі базавай матэматыкі, асноў машыннага навучання і размеркаваных вылічэнняў дапамогуць разабрацца, як аднаўляць лінейную рэгрэсію, нават калі дадзеныя размеркаваны паміж тысячамі вузлоў.

Аб чым гаворка?

Перад намі стаіць задача аднаўлення лінейнай залежнасці. У якасці ўваходных дадзеных даецца мноства вектараў меркавана незалежных зменных, кожнаму з якіх ставіцца ў адпаведнасць некаторае значэнне залежнай зменнай. Гэтыя дадзеныя можна прадставіць у выглядзе двух матрыц:

Лінейная рэгрэсія і метады яе аднаўлення

Зараз, раз ужо мяркуецца залежнасць, ды да таго ж яшчэ і лінейная, запішам нашу здагадку ў выглядзе твора матрыц (для спрашчэння запісу тут і далей мяркуецца, што вольны чалец раўнання хаваецца за Лінейная рэгрэсія і метады яе аднаўлення, а апошні слупок матрыцы Лінейная рэгрэсія і метады яе аднаўлення змяшчае адзінкі):

Лінейная рэгрэсія і метады яе аднаўлення

Вельмі падобна на сістэму лінейных раўнанняў, ці не так? Падобна, але рашэнняў у такой сістэмы раўнанняў хутчэй за ўсё не будзе. Чыннікам таму з'яўляецца шум, які прысутнічае практычна ў любых рэальных дадзеных. Гэтак жа чыннікам можа быць адсутнасць лінейнай залежнасці як такой, з якой можна спрабаваць дужацца ўвядзеннем дадатковых зменных, нелінейна якія залежаць ад зыходных. Разгледзім наступны прыклад:
Лінейная рэгрэсія і метады яе аднаўлення
Крыніца: Вікіпедыя

Гэта просты прыклад лінейнай рэгрэсіі, які дэманструе залежнасць адной зменнай (па восі Лінейная рэгрэсія і метады яе аднаўлення) ад іншай зменнай (па восі Лінейная рэгрэсія і метады яе аднаўлення). Каб якая адпавядае дадзенаму прыкладу сістэма лінейных раўнанняў мела рашэнне, усе кропкі павінны ляжаць сапраўды на адной прамой. Але гэта не так. А не ляжаць яны на адной прамой менавіта з-за шуму (ці з-за таго што здагадка аб наяўнасці лінейнай залежнасці было памылковым). Такім чынам, каб аднавіць лінейную залежнасць па рэальных дадзеных звычайна патрабуецца ўвесці яшчэ адна здагадка: уваходныя дадзеныя ўтрымоўваюць шум і гэты шум мае нармальнае размеркаванне. Можна рабіць здагадкі і пра іншыя тыпы размеркавання шуму, але ў пераважнай большасці выпадкаў разглядаюць менавіта звычайнае размеркаванне, аб якім далей і пайдзе прамову.

Метад максімальнага праўдападабенства

Такім чынам, мы выказалі здагадку наяўнасць выпадковага нармальна размеркаванага шуму. Як жа быць у такой сытуацыі? На гэты выпадак у матэматыцы існуе і шырока выкарыстоўваецца метад максімальнага праўдападабенства. Калі коратка, яго сутнасць заключаецца ў выбары функцыі праўдападабенства і наступнай яе максімізацыі.

Вяртаемся да аднаўлення лінейнай залежнасці па дадзеных са звычайным шумам. Заўважым, што меркаваная лінейная залежнасць з'яўляецца матэматычным чаканнем Лінейная рэгрэсія і метады яе аднаўлення наяўнага нармальнага размеркавання. У той жа час, верагоднасць таго, што Лінейная рэгрэсія і метады яе аднаўлення прымае тое ці іншае значэнне, пры ўмове наяўнасці назіраных Лінейная рэгрэсія і метады яе аднаўлення, Выглядае наступным чынам:

Лінейная рэгрэсія і метады яе аднаўлення

Падставім зараз замест Лінейная рэгрэсія і метады яе аднаўлення и Лінейная рэгрэсія і метады яе аднаўлення патрэбныя нам зменныя:

Лінейная рэгрэсія і метады яе аднаўлення

Засталося толькі знайсці вектар Лінейная рэгрэсія і метады яе аднаўлення, пры якім гэтая верагоднасць максімальная. Каб максымізаваць такую ​​функцыю зручна спачатку яе пралагаарыфмаваць (лагарыфм функцыі будзе дасягаць максімуму ў той жа кропцы, што і сама функцыя):

Лінейная рэгрэсія і метады яе аднаўлення

Што, у сваю чаргу, зводзіцца да мінімізацыі наступнай функцыі:

Лінейная рэгрэсія і метады яе аднаўлення

Дарэчы, гэта называецца метадам найменшых квадратаў. Часцяком усе прыведзеныя вышэй развагі апускаюцца і проста выкарыстоўваецца гэты метад.

QR разлажэнне

Мінімум прыведзенай вышэй функцыі можна знайсці, калі знайсці кропку ў якой градыент гэтай функцыі роўны нулю. А градыент будзе запісаны наступным чынам:

Лінейная рэгрэсія і метады яе аднаўлення

QR разлажэнне з'яўляецца матрычным метадам рашэння задачы мінімізацыі выкарыстоўваным у метадзе найменшых квадратаў. У сувязі з гэтым перапішам раўнанне ў матрычнай форме:

Лінейная рэгрэсія і метады яе аднаўлення

Такім чынам, мы раскладваем матрыцу Лінейная рэгрэсія і метады яе аднаўлення на матрыцы Лінейная рэгрэсія і метады яе аднаўлення и Лінейная рэгрэсія і метады яе аднаўлення і выконваем шэраг пераўтварэнняў (сам алгарытм QR раскладання тут разглядацца не будзе, толькі яго выкарыстанне ў дачыненні да пастаўленай задачы):

Лінейная рэгрэсія і метады яе аднаўлення

матрыца Лінейная рэгрэсія і метады яе аднаўлення з'яўляецца артаганальнай. Гэта дазваляе нам пазбавіцца ад твора. Лінейная рэгрэсія і метады яе аднаўлення:

Лінейная рэгрэсія і метады яе аднаўлення

А калі замяніць Лінейная рэгрэсія і метады яе аднаўлення на Лінейная рэгрэсія і метады яе аднаўлення, то атрымаецца Лінейная рэгрэсія і метады яе аднаўлення. Улічваючы, што Лінейная рэгрэсія і метады яе аднаўлення з'яўляецца верхняй трохкутнай матрыцай, выглядае гэта наступным чынам:

Лінейная рэгрэсія і метады яе аднаўлення

Гэта можна вырашаць метадам падстаноўкі. Элемент Лінейная рэгрэсія і метады яе аднаўлення знаходзіцца як Лінейная рэгрэсія і метады яе аднаўлення, папярэдні элемент Лінейная рэгрэсія і метады яе аднаўлення знаходзіцца як Лінейная рэгрэсія і метады яе аднаўлення і гэтак далей.

Тут варта адзначыць, што складанасць атрыманага алгарытму за рахунак выкарыстання QR раскладання роўная Лінейная рэгрэсія і метады яе аднаўлення. Пры гэтым, нягледзячы на ​​тое, што аперацыя множання матрыц добра распаралельваецца, напісаць эфектыўную размеркаваную версію гэтага алгарытму не ўяўляецца магчымым.

Градыентны спуск

Кажучы аб мінімізацыі некаторай функцыі, заўсёды варта ўспамінаць метад (стахастычнага) градыентнага спуску. Гэта просты і эфектыўны метад мінімізацыі, заснаваны на ітэратыўнай вылічэнні градыенту функцыі ў кропцы і наступным яе зняцці ў бок, процілеглы градыенту. Кожны такі крок набліжае рашэнне да мінімуму. Градыент пры гэтым выглядае ўсё гэтак жа:

Лінейная рэгрэсія і метады яе аднаўлення

Яшчэ гэты метад добра распаралельваецца і размяркоўваецца за кошт лінейных уласцівасцяў аператара градыенту. Заўважым, што ў прыведзенай вышэй формуле пад знакам сумы знаходзяцца незалежныя складнікі. Іншымі словамі, мы можам палічыць градыент незалежна для ўсіх азначнікаў Лінейная рэгрэсія і метады яе аднаўлення з першага да Лінейная рэгрэсія і метады яе аднаўлення, паралельна з гэтым палічыць градыент для індэксаў з Лінейная рэгрэсія і метады яе аднаўлення да Лінейная рэгрэсія і метады яе аднаўлення. Затым скласці атрыманыя градыенты. Вынікам складання будзе такім жа, як калі б мы палічылі адразу градыент для азначнікаў з першага да Лінейная рэгрэсія і метады яе аднаўлення. Такім чынам, калі дадзеныя размеркаваны паміж некалькімі часткамі дадзеных, градыент можа быць вылічаны незалежна на кожнай частцы, а затым вынікі гэтых вылічэнняў могуць быць прасумаваны для атрымання канчатковага выніку:

Лінейная рэгрэсія і метады яе аднаўлення

З пункту гледжання рэалізацыі, гэта ўкладваецца ў парадыгму. MapReduce. На кожным кроку градыентнага спуску на кожны вузел дадзеных адпраўляецца заданне на вылічэнне градыенту, затым вылічаныя градыенты збіраюцца разам, і вынік іх сумавання выкарыстоўваецца для паляпшэння выніку.

Нягледзячы на ​​прастату рэалізацыі і магчымасць выканання ў парадыгме MapReduce градыентны спуск валодае і сваімі недахопамі. У прыватнасці, колькасць крокаў, неабходнае для дасягнення збежнасці, істотна большая ў параўнанні з іншымі больш спецыялізаванымі метадамі.

LSQR

LSQR - Яшчэ адзін метад рашэння пастаўленай задачы, які падыходзіць як для аднаўлення лінейнай рэгрэсіі, так і для вырашэння сістэм лінейных раўнанняў. Яго галоўная асаблівасць заключаецца ў тым, што ён сумяшчае ў сабе перавагі матрычных метадаў і ітэратыўнага падыходу. Рэалізацыі гэтага метаду можна знайсці як у бібліятэцы SciPy, Так і ў MATLAB. Апісанне дадзенага метаду прыводзіцца тут не будзе (яго можна знайсці ў артыкуле LSQR: У алгарытме для азартных ліцэнзійных эквівалентаў і частковых азадак.). Замест гэтага будзе прадэманстраваны падыход, які дазваляе адаптаваць LSQR да выканання ў размеркаваным асяроддзі.

У аснове метаду LSQR ляжыць працэдура бидиагонализации. Гэта ітэратыўная працэдура, кожная ітэрацыя якой складаецца з наступных крокаў:
Лінейная рэгрэсія і метады яе аднаўлення

Але калі зыходзіць з таго, што матрыца Лінейная рэгрэсія і метады яе аднаўлення гарызантальна партыцыянавана, то кожную ітэрацыю можна прадставіць у выглядзе двух крокаў MapReduce. Такім чынам атрымоўваецца мінімізаваць перасыланнямі дадзеных падчас кожнай з ітэрацый (толькі вектара даўжынёй роўнай колькасці невядомых):

Лінейная рэгрэсія і метады яе аднаўлення

Менавіта гэты падыход выкарыстоўваецца пры рэалізацыі лінейнай рэгрэсіі ў Apache Ignite ML.

Заключэнне

Існуе шмат алгарытмаў аднаўлення лінейнай рэгрэсіі, але не ўсе з іх могуць прымяняцца ў любых умовах. Так QR разлажэнне выдатна падыходзіць для дакладнага рашэння на невялікіх масівах дадзеных. Градыентны спуск проста рэалізуецца і дазваляе хутка знайсці набліжанае рашэнне. А LSQR спалучае ў сабе лепшыя ўласцівасці папярэдніх двух алгарытмаў, бо ён можа быць размеркаваны, хутчэй збягаецца ў параўнанні з градыентным спускам, а гэтак жа дазваляе ранні прыпынак алгарытму ў адрозненне ад QR-раскладання для пошуку набліжанага рашэння.

Крыніца: habr.com

Дадаць каментар