{"id":37955,"date":"2019-10-31T22:20:47","date_gmt":"2019-10-31T19:20:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\/"},"modified":"2019-10-31T22:20:47","modified_gmt":"2019-10-31T19:20:47","slug":"linejnaya-regressiya-i-metody-eyo-vosstanovleniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","title":{"rendered":"Regresia liniar\u0103 \u0219i metodele ei de restaurare.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/60ca67872405e9f15b151e958f04260d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Sursa: <noindex><a rel=\"nofollow\" href=\"https:\/\/xkcd.com\/1725\/\">xkcd<\/a><\/noindex><\/i><\/p>\n<p>Regresia liniar\u0103 este unul dintre algoritmii fundamentali pentru multe domenii legate de analiza datelor. Motivul este evident. Este un algoritm foarte simplu \u0219i u\u0219or de \u00een\u021beles, ceea ce contribuie la utilizarea sa pe scar\u0103 larg\u0103 de mai multe decenii, dac\u0103 nu sute de ani. Ideea este c\u0103 presupunem o dependen\u021b\u0103 liniar\u0103 a unei variabile de un set de alte variabile, iar apoi \u00eencerc\u0103m s\u0103 recreem aceast\u0103 dependen\u021b\u0103.<\/p>\n<p>Dar, \u00een acest articol nu vom discuta despre aplicarea regresiei liniare pentru rezolvarea problemelor practice. Vor fi analizate aspectele interesante ale implement\u0103rii algoritmilor distribui\u021bi pentru recrearea acesteia, cu care ne-am confruntat \u00een timpul scrierii modulului de \u00eenv\u0103\u021bare automat\u0103 \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. Pu\u021bin\u0103 matematic\u0103 de baz\u0103, fundamentele \u00eenv\u0103\u021b\u0103rii automate \u0219i calculului distribuit vor ajuta la \u00een\u021belegerea modului de restaurare a regresiei liniare, chiar dac\u0103 datele sunt distribuite \u00eentre mii de noduri.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Despre ce este vorba?<\/h3>\n<p>\nAvem \u00een fa\u021b\u0103 sarcina de a restaura o dependen\u021b\u0103 liniar\u0103. Ca date de intrare, se ofer\u0103 un set de vectori de variabile presupus independente, fiec\u0103ruia fiind asociat o anumit\u0103 valoare a variabilei dependente. Aceste date pot fi reprezentate sub form\u0103 de dou\u0103 matrice:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/2ffbdd09fdc5efaf287fbb4935033302.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nAcum, av\u00e2nd \u00een vedere c\u0103 exist\u0103 o dependen\u021b\u0103, \u0219i c\u0103 este liniar\u0103, s\u0103 not\u0103m ipoteza noastr\u0103 sub form\u0103 de produs de matrice (pentru a simplifica notarea, aici \u0219i mai departe se presupune c\u0103 termenul liber al ecua\u021biei este ascuns sub <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/21e90cb829e0bc2e12c836f7810c1b1a.png\" style=\"display:block;margin: 0 auto;\" \/>, iar ultima coloan\u0103 a matricei <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/25c0af2e153ae371e71588efe3bc2ee2.png\" style=\"display:block;margin: 0 auto;\" \/> con\u021bine unit\u0103\u021bi):<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/b1c3c8d2332ae27eedeef675178dee4f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nFoarte asem\u0103n\u0103tor cu un sistem de ecua\u021bii liniare, nu-i a\u0219a? A\u0219a pare, dar este probabil ca acel sistem de ecua\u021bii s\u0103 nu aib\u0103 solu\u021bii. Cauza este zgomotul care exist\u0103 practic \u00een orice date reale. De asemenea, o cauz\u0103 poate fi absen\u021ba dependen\u021bei liniare ca atare, care poate fi abordat\u0103 introduc\u00e2nd variabile suplimentare, care depind neliniar de cele ini\u021biale. S\u0103 lu\u0103m \u00een considerare urm\u0103torul exemplu:<br \/>\n<img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/d449b8f931e91cc7b33634ee8d4a4329.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Sursa: <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_regression\">Wikipedia<\/a><\/noindex><\/i><\/p>\n<p>Acesta este un exemplu simplu de regresie liniar\u0103 care demonstreaz\u0103 dependen\u021ba unei variabile (pe axa <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/fdea97dff413fb13444d7fd8ab65ca0b.png\" style=\"display:block;margin: 0 auto;\" \/>) de o alt\u0103 variabil\u0103 (pe axa <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/edf9cb265e4e4655cd84fb8739843952.png\" style=\"display:block;margin: 0 auto;\" \/>). Pentru ca sistemul de ecua\u021bii liniare corespunz\u0103tor acestui exemplu s\u0103 aib\u0103 o solu\u021bie, toate punctele trebuie s\u0103 se afle exact pe o linie dreapt\u0103. Dar acest lucru nu este cazul. Iar faptul c\u0103 nu se afl\u0103 pe o linie dreapt\u0103 se datoreaz\u0103 zgomotului (sau ipotezei gre\u0219ite privind existen\u021ba unei corela\u021bii liniare). Prin urmare, pentru a reconstrui corela\u021bia linear\u0103 pe baza datelor reale, \u00een general, este necesar s\u0103 introducem o alt\u0103 ipotez\u0103: datele de intrare con\u021bin zgomot \u0219i acest zgomot are <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Normal_distribution\">distribu\u021bie normal\u0103<\/a><\/noindex>. Se pot face presupuneri \u0219i despre alte tipuri de distribu\u021bii ale zgomotului, dar \u00een majoritatea cazurilor se consider\u0103 oarecum distribu\u021bia normal\u0103, despre care se va discuta \u00een continuare.<\/p>\n<h3>Metoda maximelor probabilit\u0103\u021bilor<\/h3>\n<p>\nDeci, am presupus c\u0103 exist\u0103 un zgomot aleator distribuit normal. Ce ar trebui s\u0103 facem \u00een aceast\u0103 situa\u021bie? \u00cen matematic\u0103 exist\u0103 \u0219i se utilizeaz\u0103 pe scar\u0103 larg\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maximum_likelihood_estimation\">metoda maximului de verosimilitate<\/a><\/noindex>. Pe scurt, esen\u021ba sa const\u0103 \u00een alegerea <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Likelihood_function\">func\u021biei de probabilitate<\/a><\/noindex> \u0219i maximizarea ulterioar\u0103 a acesteia.<\/p>\n<p>Ne \u00eentoarcem la reconstruc\u021bia dependen\u021bei liniare din date cu zgomot normal. Observ\u0103m c\u0103 dependen\u021ba liniar\u0103 presupus\u0103 este a\u0219teptarea matematic\u0103 <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/73cd24a6605bce1a4f38339ee8c61613.png\" style=\"display:block;margin: 0 auto;\" \/> distribu\u021biei normale existente. \u00cen acela\u0219i timp, probabilitatea ca <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/caaf32b1af58d748244acbab640bbab8.png\" style=\"display:block;margin: 0 auto;\" \/> s\u0103 ia o anumit\u0103 valoare, sub condi\u021bia existen\u021bei observabilelor <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/9cda87721bba4812b7cec96f204ff5f6.png\" style=\"display:block;margin: 0 auto;\" \/>, arat\u0103 astfel:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/7acbd6bff263d52773617904d3249a96.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nAcum s\u0103 \u00eenlocuim <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/d5a167a87fa416e938678b2a80b353dc.png\" style=\"display:block;margin: 0 auto;\" \/> \u0219i <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/330ad17be2629a5159b513ba95a96c72.png\" style=\"display:block;margin: 0 auto;\" \/> variabilele necesare:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/57531f93ee0d0050b1fbfc64419f44ad.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nR\u0103m\u00e2ne doar s\u0103 g\u0103sim vectorul <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/801ebcd43ae0bc0cf54bc0f68bdc21da.png\" style=\"display:block;margin: 0 auto;\" \/>, pentru care aceast\u0103 probabilitate este maxim\u0103. Pentru a maximiza o astfel de func\u021bie, este convenabil s\u0103 o logaritm\u0103m mai \u00eent\u00e2i (logaritmul func\u021biei va atinge maximul \u00een aceea\u0219i punct ca \u0219i func\u021bia \u00een sine):<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/7485448a44f8ee201254fea4208deb54.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nCeea ce, la r\u00e2ndul s\u0103u, se reduce la minimizarea urm\u0103toarei func\u021bii:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/0957864e5dfbfc1147c24784df67af20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nApropo, acest lucru se nume\u0219te metoda <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_least_squares\">celor mai mici p\u0103trate<\/a><\/noindex>. De multe ori, toate considera\u021biile de mai sus sunt omise \u0219i se folose\u0219te pur \u0219i simplu aceast\u0103 metod\u0103.<\/p>\n<h3>Dezintegrarea QR<\/h3>\n<p>\nMinimul func\u021biei men\u021bionate mai sus poate fi g\u0103sit, dac\u0103 g\u0103sim punctul \u00een care gradientul acestei func\u021bii este egal cu zero. Iar gradientul va fi scris \u00een urm\u0103torul mod:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/1581c46f8fa625826ae2f76ec561dc3f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/QR_decomposition\">Dezintegrarea QR<\/a><\/noindex> este o metod\u0103 matriceal\u0103 de rezolvare a problemei de minimizare utilizat\u0103 \u00een metoda celor mai mici p\u0103trate. \u00cen acest sens, vom rescrie ecua\u021bia \u00een form\u0103 matriceal\u0103:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/4ee809a96550577df855fbd57049a41c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDeci, descompunem matricea <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/2fa2b32bef5246132da5b3b9bc713ab5.png\" style=\"display:block;margin: 0 auto;\" \/> \u00een matrice <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/fd8c620c602ae49e8d6e39ef8b551d0b.png\" style=\"display:block;margin: 0 auto;\" \/> \u0219i <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/32804631a9a2f8bff35d0bcf7c29bfc6.png\" style=\"display:block;margin: 0 auto;\" \/> \u0219i realiz\u0103m o serie de transform\u0103ri (algoritmul QR de descompunere nu va fi discutat aici, doar utilizarea sa \u00een raport cu problema stabilit\u0103):<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/56cfb4ed9126e632cba51940c0d9afe6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nMatricea <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/106bb4d6704eb9f42078555c662a8b97.png\" style=\"display:block;margin: 0 auto;\" \/> este ortogonal\u0103. Aceasta ne permite s\u0103 sc\u0103p\u0103m de produsul <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/618077c012f7b81f23756b9c1e54eb73.png\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/1715fb2e77d8be75e68e4791997aaa44.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n\u0218i dac\u0103 \u00eenlocuim <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/926c51120ec8608bf81dc8f36fcc3ef4.png\" style=\"display:block;margin: 0 auto;\" \/> pe <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/9e578153ea2dc36d0eb86be4eedf4899.png\" style=\"display:block;margin: 0 auto;\" \/>, atunci va rezulta <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/8cd914db7317c01dc5449c70b36dba73.png\" style=\"display:block;margin: 0 auto;\" \/>. Av\u00e2nd \u00een vedere c\u0103 <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/88fa4e81fc2bedf16e41e90e320a5647.png\" style=\"display:block;margin: 0 auto;\" \/> este o matrice triunghiular\u0103 superioar\u0103, arat\u0103 astfel:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/689eaaece2a497c5bd02582e3e672a41.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nAceasta se poate rezolva prin metoda substitu\u021biei. Elementul <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/e163597c97a539238731c31ca5ce011b.png\" style=\"display:block;margin: 0 auto;\" \/> se afl\u0103 ca <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/211d86418c9a38f164f490b1a7b5fb71.png\" style=\"display:block;margin: 0 auto;\" \/>, elementul anterior <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/ed3742b3a7cfb14bad801485a8cf01df.png\" style=\"display:block;margin: 0 auto;\" \/> se afl\u0103 ca <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/b3e582f565e1060b47af4008a98c3524.png\" style=\"display:block;margin: 0 auto;\" \/> \u0219i a\u0219a mai departe.<\/p>\n<p>Aici merit\u0103 s\u0103 men\u021bion\u0103m c\u0103 complexitatea algoritmului rezultat datorit\u0103 utiliz\u0103rii descompunerii QR este egal\u0103 <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/c5c20145b7b165120d9979c2e2ca4711.png\" style=\"display:block;margin: 0 auto;\" \/>. Cu toate acestea, de\u0219i opera\u021bia de \u00eenmul\u021bire a matricelor se paralelizeaz\u0103 bine, nu pare posibil s\u0103 scriem o versiune distribuit\u0103 eficient\u0103 a acestui algoritm.<\/p>\n<h3>Declinarea gradientului<\/h3>\n<p>\nVorbind despre minimizarea unei func\u021bii, \u00eentotdeauna merit\u0103 s\u0103 ne amintim de metoda (stocastic\u0103) a cobor\u00e2rii gradientului. Aceasta este o metod\u0103 simpl\u0103 \u0219i eficient\u0103 de minimizare, bazat\u0103 pe calculul iterativ al gradientului func\u021biei \u00eentr-un punct \u0219i mutarea ulterioar\u0103 \u00een direc\u021bia opus\u0103 gradientului. Fiecare astfel de pas apropie solu\u021bia de minim. Gradientul arat\u0103 \u00een continuare astfel:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/d195806787197323312be7c0b9d8b240.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Aceast\u0103 metod\u0103 se paralelizeaz\u0103 \u0219i distribuie bine datorit\u0103 propriet\u0103\u021bilor lineare ale operatorului gradient. Observ\u0103m c\u0103 \u00een formula prezentat\u0103 mai sus sub semnul sumei se afl\u0103 termeni independen\u021bi. Cu alte cuvinte, putem calcula gradientul independent pentru toate indicii <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/0c10d574f70b318b6562fb444e460fa7.png\" style=\"display:block;margin: 0 auto;\" \/> de la <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/c9b39d76c5f724af137b5db3053e1a60.png\" style=\"display:block;margin: 0 auto;\" \/>, \u00een paralel cu calculul gradientului pentru indicii de la <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/1a9407fcb4ec67a171463d36dca30a80.png\" style=\"display:block;margin: 0 auto;\" \/> la <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/f1e29c5b16d68d6377108f53803a9cd0.png\" style=\"display:block;margin: 0 auto;\" \/>. Apoi, se vor aduna gradientele ob\u021binute. Rezultatul sumei va fi acela\u0219i ca \u0219i cum am fi calculat direct gradientul pentru indicii de la <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/c5ec5004c59a5343f22894ef676606e3.png\" style=\"display:block;margin: 0 auto;\" \/>. Astfel, dac\u0103 datele sunt distribuite \u00eentre mai multe p\u0103r\u021bi ale datelor, gradientul poate fi calculat independent pe fiecare parte, iar apoi rezultatele acestor calcule pot fi adunate pentru a ob\u021bine rezultatul final:<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/073ce5e3a6688e3a1ae7774aaff1a843.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Din punct de vedere al implement\u0103rii, aceasta se \u00eencadreaz\u0103 \u00een paradigma <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MapReduce\">MapReduce<\/a><\/noindex>. La fiecare pas al cobor\u00e2rii gradientului, o sarcin\u0103 de calculare a gradientului este trimis\u0103 fiec\u0103rui nod de date, apoi gradientele calculate sunt adunate, iar rezultatul sumei lor este folosit pentru \u00eembun\u0103t\u0103\u021birea rezultatului.<\/p>\n<p>De\u0219i implementarea sa este simpl\u0103 \u0219i poate fi executat\u0103 \u00een paradigma MapReduce, declinul gradientului are \u0219i dezavantajele sale. \u00cen special, num\u0103rul de pa\u0219i necesari pentru a atinge convergen\u021ba este semnificativ mai mare comparativ cu alte metode mai specializate.<\/p>\n<h3>LSQR<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/\">LSQR<\/a><\/noindex> \u2014 o alt\u0103 metod\u0103 de rezolvare a problemei, care se potrive\u0219te at\u00e2t pentru recuperarea regresiei liniare, c\u00e2t \u0219i pentru rezolvarea sistemelor de ecua\u021bii liniare. Principalul s\u0103u avantaj const\u0103 \u00een faptul c\u0103 combin\u0103 beneficiile metodelor matriceale \u0219i ale abord\u0103rii iterative. Implement\u0103ri ale acestei metode pot fi g\u0103site \u00een biblioteca <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.scipy.org\/doc\/scipy-0.14.0\/reference\/generated\/scipy.sparse.linalg.lsqr.html\">SciPy<\/a><\/noindex>, c\u00e2t \u0219i \u00een <noindex><a rel=\"nofollow\" href=\"http:\/\/matlab.izmiran.ru\/help\/techdoc\/ref\/lsqr.html\">MATLAB<\/a><\/noindex>. Descrierea acestei metode nu va fi oferit\u0103 aici (o pute\u021bi g\u0103si \u00een articolul <noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/lsqr-toms82a.pdf\">LSQR: An algorithm for sparse linear equations and sparse least squares<\/a><\/noindex>). \u00cen schimb, va fi demonstrat\u0103 o abordare care permite adaptarea LSQR pentru a fi implementat\u0103 \u00eentr-un mediu distribuit.<\/p>\n<p>La baza metodei LSQR se afl\u0103 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.netlib.org\/utk\/people\/JackDongarra\/etemplates\/node198.html\">procedura bidiagonaliz\u0103rii<\/a><\/noindex>. Aceasta este o procedur\u0103 iterativ\u0103, fiecare itera\u021bie const\u00e2nd \u00een urm\u0103torii pa\u0219i:<br \/>\n<img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/3c2f7b5c6f57830e9b522023a8e72a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDar, consider\u00e2nd c\u0103 matricea <img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/e86c3c422629b78bc574f66db8a6139d.png\" style=\"display:block;margin: 0 auto;\" \/> este \u00eemp\u0103r\u021bit\u0103 orizontal, fiecare itera\u021bie poate fi reprezentat\u0103 sub form\u0103 de dou\u0103 etape MapReduce. Astfel, se reu\u0219e\u0219te s\u0103 se minimizeze transferurile de date \u00een cursul fiec\u0103rei dintre itera\u021bii (doar vectorii cu lungimea egal\u0103 cu num\u0103rul de necunoscute):<\/p>\n<p><img decoding=\"async\" alt=\"Regresia liniar\u0103 \u0219i metodele ei de restaurare.\" src=\"\/wp-content\/uploads\/2019\/09\/6b67654b29ed24283c4b04d66c05ea5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAceast\u0103 abordare este utilizat\u0103 \u00een implementarea regresiei liniare \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/apache\/ignite\/blob\/master\/modules\/ml\/src\/main\/java\/org\/apache\/ignite\/ml\/math\/isolve\/lsqr\/AbstractLSQR.java\">Apache Ignite ML<\/a><\/noindex>.<\/p>\n<h3>Concluzie<\/h3>\n<p>\nExist\u0103 multe algoritmi pentru recuperarea regresiei liniare, dar nu to\u021bi pot fi aplica\u021bi \u00een orice condi\u021bie. De exemplu, descompunerea QR este excelent\u0103 pentru solu\u021bii exacte \u00een seturi mici de date. Declinele gradientului se implementeaz\u0103 simplu \u0219i permit g\u0103sirea rapid\u0103 a unei solu\u021bii aproximative. \u00cens\u0103 LSQR combin\u0103 cele mai bune propriet\u0103\u021bi ale celor dou\u0103 algoritmi anterioare, deoarece poate fi distribuit, converge mai repede comparativ cu declinul gradientului \u0219i permite oprirea timpurie a algoritmului, spre deosebire de descompunerea QR pentru c\u0103utarea unei solu\u021bii aproximative.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465743\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: xkcd \u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u044d\u0442\u043e\u043c\u0443 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0447\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0433\u043e \u0448\u0438\u0440\u043e\u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0442\u043d\u0438, \u043b\u0435\u0442. \u0418\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28483,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37955","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0435\u0451 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Regresia liniar\u0103 \u0219i metodele sale de recuperare | ProHoster","description":"Sursa:","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0435\u0451 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f | ProHoster","og:description":"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:47+00:00","article:modified_time":"2019-10-31T19:20:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37955","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:55:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:17:23","updated":"2026-01-23 19:55:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/37955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=37955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/37955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/28483"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=37955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=37955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=37955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}