{"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\/sv\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","title":{"rendered":"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/60ca67872405e9f15b151e958f04260d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>K\u00e4lla: <noindex><a rel=\"nofollow\" href=\"https:\/\/xkcd.com\/1725\/\">xkcd<\/a><\/noindex><\/i><\/p>\n<p>Linear regression \u00e4r en av de grundl\u00e4ggande algoritmerna f\u00f6r m\u00e5nga omr\u00e5den kopplade till dataanalys. Anledningen till detta \u00e4r uppenbar. Det \u00e4r en mycket enkel och l\u00e4ttf\u00f6rst\u00e5elig algoritm, vilket bidrar till dess breda till\u00e4mpning under m\u00e5nga decennier, om inte hundratals \u00e5r. Id\u00e9n \u00e4r att vi antar ett linj\u00e4rt f\u00f6rh\u00e5llande mellan en variabel och en upps\u00e4ttning andra variabler, och sedan f\u00f6rs\u00f6ker vi \u00e5terst\u00e4lla detta f\u00f6rh\u00e5llande.<\/p>\n<p>Men i denna artikel kommer vi inte att fokusera p\u00e5 till\u00e4mpningen av linj\u00e4r regression f\u00f6r att l\u00f6sa praktiska problem. Vi kommer ist\u00e4llet att titta p\u00e5 intressanta egenskaper hos implementeringen av distribuerade algoritmer f\u00f6r dess \u00e5terst\u00e4llande, som vi st\u00f6tte p\u00e5 n\u00e4r vi skrev en modul f\u00f6r maskininl\u00e4rning i <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. Lite grundl\u00e4ggande matematik, maskininl\u00e4rningens och distribuerade ber\u00e4kningars grundprinciper kan hj\u00e4lpa oss att f\u00f6rst\u00e5 hur man \u00e5terst\u00e4ller linj\u00e4r regression, \u00e4ven om data \u00e4r spridda \u00f6ver tusentals noder.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Vad handlar det om?<\/h3>\n<p>\nVi st\u00e5r inf\u00f6r uppgiften att \u00e5terst\u00e4lla den linj\u00e4ra relationen. Som ing\u00e5ngsuppgifter ges en m\u00e4ngd vektorer av antas oberoende variabler, d\u00e4r varje enskild knyts till ett visst v\u00e4rde av den beroende variabeln. Dessa data kan representeras i form av tv\u00e5 matriser:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/2ffbdd09fdc5efaf287fbb4935033302.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nNu, eftersom vi antar att det finns ett beroende, och dessutom ett linj\u00e4rt, kan vi skriva v\u00e5r hypotes i form av en produkt av matriser (f\u00f6r att f\u00f6renkla skrivningen antas h\u00e4r och fram\u00f6ver att den konstanta termen i ekvationen d\u00f6ljs bakom <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/21e90cb829e0bc2e12c836f7810c1b1a.png\" style=\"display:block;margin: 0 auto;\" \/>, och den sista kolumnen i matrisen <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/25c0af2e153ae371e71588efe3bc2ee2.png\" style=\"display:block;margin: 0 auto;\" \/> inneh\u00e5ller ettor):<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/b1c3c8d2332ae27eedeef675178dee4f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDet liknar mycket ett system av linj\u00e4ra ekvationer, eller hur? Det ser ut s\u00e5, men den h\u00e4r typen av ekvationssystem har f\u00f6rmodligen inga l\u00f6sningar. Anledningen till detta \u00e4r det brus som n\u00e4stan alltid finns i verkliga data. En annan orsak kan vara avsaknaden av ett linj\u00e4rt beroende, vilket vi kan f\u00f6rs\u00f6ka \u00f6vervinna genom att inf\u00f6ra ytterligare variabler som icke-linj\u00e4rt beror p\u00e5 de ursprungliga. L\u00e5t oss titta p\u00e5 f\u00f6ljande exempel:<br \/>\n<img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/d449b8f931e91cc7b33634ee8d4a4329.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>K\u00e4lla: <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_regression\">Wikipedia<\/a><\/noindex><\/i><\/p>\n<p>Detta \u00e4r ett enkelt exempel p\u00e5 linj\u00e4r regression som visar beroendet av en variabel (p\u00e5 axeln <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/fdea97dff413fb13444d7fd8ab65ca0b.png\" style=\"display:block;margin: 0 auto;\" \/>) fr\u00e5n en annan variabel (p\u00e5 axeln <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/edf9cb265e4e4655cd84fb8739843952.png\" style=\"display:block;margin: 0 auto;\" \/>). F\u00f6r att det linj\u00e4ra ekvationssystemet som motsvarar detta exempel ska ha en l\u00f6sning, m\u00e5ste alla punkter ligga exakt p\u00e5 en och samma linje. Men s\u00e5 \u00e4r det inte. De ligger inte p\u00e5 en linje just p\u00e5 grund av st\u00f6rningar (eller f\u00f6r att antagandet om en linj\u00e4r beroende var felaktigt). D\u00e4rf\u00f6r kr\u00e4vs det ofta att man g\u00f6r ytterligare ett antagande f\u00f6r att \u00e5terst\u00e4lla den linj\u00e4ra beroende med verkliga data: indata inneh\u00e5ller st\u00f6rningar och dessa st\u00f6rningar har <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Normal_distribution\">normalf\u00f6rdelning<\/a><\/noindex>. Man kan g\u00f6ra antaganden om andra typer av st\u00f6rningar, men i \u00f6verv\u00e4ldigande majoriteten av fallen \u00f6verv\u00e4ger man just normalf\u00f6rdelning, vilket kommer att diskuteras vidare.<\/p>\n<h3>Metoden f\u00f6r maximalt sannolikhet<\/h3>\n<p>\nS\u00e5 vi har antagit att det finns en slumpm\u00e4ssig normalt f\u00f6rdelad st\u00f6rning. Hur ska vi d\u00e5 agera i en s\u00e5dan situation? F\u00f6r detta finns det inom matematik en metod som \u00e4r allm\u00e4nt anv\u00e4nd <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maximum_likelihood_estimation\">metoden f\u00f6r maximalt sannolikhet<\/a><\/noindex>. I korthet handlar det om att v\u00e4lja <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Likelihood_function\">sannolikhetsfunktion<\/a><\/noindex> och senare maximera den.<\/p>\n<p>Vi \u00e5terkommer till att \u00e5terst\u00e4lla den linj\u00e4ra beroende med data som inneh\u00e5ller normal st\u00f6rning. Observera att den antagna linj\u00e4ra beroende \u00e4r det matematiska f\u00f6rv\u00e4ntade v\u00e4rdet <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/73cd24a6605bce1a4f38339ee8c61613.png\" style=\"display:block;margin: 0 auto;\" \/> av den aktuella normala f\u00f6rdelningen. Samtidigt \u00e4r sannolikheten att <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/caaf32b1af58d748244acbab640bbab8.png\" style=\"display:block;margin: 0 auto;\" \/> ta ett visst v\u00e4rde givet att det finns observerade <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/9cda87721bba4812b7cec96f204ff5f6.png\" style=\"display:block;margin: 0 auto;\" \/>, ser ut som f\u00f6ljande:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/7acbd6bff263d52773617904d3249a96.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nNu s\u00e4tter vi ist\u00e4llet in <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/d5a167a87fa416e938678b2a80b353dc.png\" style=\"display:block;margin: 0 auto;\" \/> och <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/330ad17be2629a5159b513ba95a96c72.png\" style=\"display:block;margin: 0 auto;\" \/> de variabler vi beh\u00f6ver:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/57531f93ee0d0050b1fbfc64419f44ad.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDet \u00e5terst\u00e5r bara att hitta vektorn <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/801ebcd43ae0bc0cf54bc0f68bdc21da.png\" style=\"display:block;margin: 0 auto;\" \/>, d\u00e4r denna sannolikhet \u00e4r maximal. F\u00f6r att maximera en s\u00e5dan funktion \u00e4r det praktiskt att f\u00f6rst logaritmera den (logaritmen av funktionen n\u00e5r sitt maxima vid samma punkt som sj\u00e4lva funktionen):<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/7485448a44f8ee201254fea4208deb54.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDetta leder i sin tur till att minimera f\u00f6ljande funktion:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/0957864e5dfbfc1147c24784df67af20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nF\u00f6r \u00f6vrigt kallas detta metoden <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_least_squares\">f\u00f6r minsta kvadrat<\/a><\/noindex>. Ofta utel\u00e4mnas alla ovanst\u00e5ende resonemang och denna metod anv\u00e4nds helt enkelt.<\/p>\n<h3>QR-faktorisering<\/h3>\n<p>\nMinimumpunkten f\u00f6r den angivna funktionen kan hittas genom att finna punkten d\u00e4r gradienten av denna funktion \u00e4r noll. Gradient kommer att skrivas p\u00e5 f\u00f6ljande s\u00e4tt:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" 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\">QR-faktorisering<\/a><\/noindex> \u00e4r en matrismetod f\u00f6r att l\u00f6sa minimiseringsproblemet som anv\u00e4nds i metoden f\u00f6r minsta kvadrat. I denna m\u00e5n omformulerar vi ekvationen i matrisform:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/4ee809a96550577df855fbd57049a41c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nS\u00e5 vi faktoriserar matrisen <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/2fa2b32bef5246132da5b3b9bc713ab5.png\" style=\"display:block;margin: 0 auto;\" \/> till matriser <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/fd8c620c602ae49e8d6e39ef8b551d0b.png\" style=\"display:block;margin: 0 auto;\" \/> och <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/32804631a9a2f8bff35d0bcf7c29bfc6.png\" style=\"display:block;margin: 0 auto;\" \/> och utf\u00f6r en rad transformationer (sj\u00e4lva QR-faktoriseringen kommer inte att diskuteras h\u00e4r, endast dess anv\u00e4ndning i f\u00f6rh\u00e5llande till den uppst\u00e4llda uppgiften):<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/56cfb4ed9126e632cba51940c0d9afe6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nMatrisen <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/106bb4d6704eb9f42078555c662a8b97.png\" style=\"display:block;margin: 0 auto;\" \/> \u00e4r ortogonal. Detta g\u00f6r att vi kan bli av med produkten <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/618077c012f7b81f23756b9c1e54eb73.png\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/1715fb2e77d8be75e68e4791997aaa44.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nOm vi ist\u00e4llet byter ut <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/926c51120ec8608bf81dc8f36fcc3ef4.png\" style=\"display:block;margin: 0 auto;\" \/> till <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/9e578153ea2dc36d0eb86be4eedf4899.png\" style=\"display:block;margin: 0 auto;\" \/>f\u00e5r vi <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/8cd914db7317c01dc5449c70b36dba73.png\" style=\"display:block;margin: 0 auto;\" \/>. Med tanke p\u00e5 att <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/88fa4e81fc2bedf16e41e90e320a5647.png\" style=\"display:block;margin: 0 auto;\" \/> \u00e4r en \u00f6vre triangul\u00e4r matris, ser detta ut s\u00e5 h\u00e4r:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/689eaaece2a497c5bd02582e3e672a41.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nDetta kan l\u00f6sas med substitutionsmetoden. Elementet <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/e163597c97a539238731c31ca5ce011b.png\" style=\"display:block;margin: 0 auto;\" \/> ber\u00e4knas som <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/211d86418c9a38f164f490b1a7b5fb71.png\" style=\"display:block;margin: 0 auto;\" \/>, det f\u00f6reg\u00e5ende elementet <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/ed3742b3a7cfb14bad801485a8cf01df.png\" style=\"display:block;margin: 0 auto;\" \/> ber\u00e4knas som <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/b3e582f565e1060b47af4008a98c3524.png\" style=\"display:block;margin: 0 auto;\" \/> och h\u00e4mta bilder fr\u00e5n dab.semrush.com<\/p>\n<p>H\u00e4r \u00e4r det v\u00e4rt att notera att den resulterande algoritmens komplexitet p\u00e5 grund av anv\u00e4ndningen av QR-faktorisering \u00e4r <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/c5c20145b7b165120d9979c2e2ca4711.png\" style=\"display:block;margin: 0 auto;\" \/>. Trots att matrismultiplikation kan parallelliseras v\u00e4l, \u00e4r det inte m\u00f6jligt att skriva en effektiv distribuerad version av denna algoritm.<\/p>\n<h3>Gradientnedstigning<\/h3>\n<p>\nN\u00e4r man talar om att minimera en viss funktion \u00e4r det alltid v\u00e4rt att n\u00e4mna (stochastisk) gradientnedstigning. Detta \u00e4r en enkel och effektiv metod f\u00f6r att minimera, baserat p\u00e5 iterativ ber\u00e4kning av gradienten f\u00f6r funktionen vid en punkt och d\u00e4refter f\u00f6rflyttning i riktningen motsatt gradienten. Varje s\u00e5dant steg n\u00e4rmar l\u00f6sningen till minimum. Gradientet ser fortfarande likadant ut:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/d195806787197323312be7c0b9d8b240.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Denna metod kan ocks\u00e5 parallelliseras och distribueras tack vare de linj\u00e4ra egenskaperna hos gradientoperatorn. Observera att i formeln ovan under summatecknet finns oberoende termer. Med andra ord kan vi ber\u00e4kna gradienten oberoende f\u00f6r alla index <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/0c10d574f70b318b6562fb444e460fa7.png\" style=\"display:block;margin: 0 auto;\" \/> fr\u00e5n den f\u00f6rsta till <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/c9b39d76c5f724af137b5db3053e1a60.png\" style=\"display:block;margin: 0 auto;\" \/>, samtidigt som vi ber\u00e4knar gradienten f\u00f6r indexen fr\u00e5n <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/1a9407fcb4ec67a171463d36dca30a80.png\" style=\"display:block;margin: 0 auto;\" \/> till <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/f1e29c5b16d68d6377108f53803a9cd0.png\" style=\"display:block;margin: 0 auto;\" \/>. D\u00e4refter adderar vi de erh\u00e5llna gradienterna. Resultatet av additionen kommer att vara detsamma som om vi direkt ber\u00e4knade gradienten f\u00f6r indexen fr\u00e5n den f\u00f6rsta till <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/c5ec5004c59a5343f22894ef676606e3.png\" style=\"display:block;margin: 0 auto;\" \/>. S\u00e5ledes, om data \u00e4r distribuerade \u00f6ver flera datadelar, kan gradienten ber\u00e4knas oberoende p\u00e5 varje del och resultaten av dessa ber\u00e4kningar kan sedan summeras f\u00f6r att f\u00e5 det slutgiltiga resultatet:<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/073ce5e3a6688e3a1ae7774aaff1a843.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ur ett implementationsperspektiv passar detta in i paradigm <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MapReduce\">MapReduce<\/a><\/noindex>. Vid varje steg av gradientnedstigningen skickas en uppgift att ber\u00e4kna gradienten till varje datanod, sedan samlas de ber\u00e4knade gradienterna ihop, och resultatet av deras summering anv\u00e4nds f\u00f6r att f\u00f6rb\u00e4ttra resultatet.<\/p>\n<p>Trots den enkla implementeringen och m\u00f6jligheten att utf\u00f6ra i MapReduce-paradigmen har gradientnedstigning sina brister. S\u00e4rskilt antalet steg som kr\u00e4vs f\u00f6r att n\u00e5 konvergens \u00e4r betydligt st\u00f6rre j\u00e4mf\u00f6rt med andra mer specialiserade metoder.<\/p>\n<h3>LSQR<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/\">LSQR<\/a><\/noindex> \u00e4r en annan metod f\u00f6r att l\u00f6sa det aktuella problemet som passar b\u00e5de f\u00f6r att \u00e5terst\u00e4lla linj\u00e4r regression och f\u00f6r att l\u00f6sa system av linj\u00e4ra ekvationer. Dess huvudsakliga egenskap \u00e4r att den kombinerar f\u00f6rdelarna med matrismetoder och iterativa tillv\u00e4gag\u00e5ngss\u00e4tt. Implementationer av denna metod kan hittas i biblioteken <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.scipy.org\/doc\/scipy-0.14.0\/reference\/generated\/scipy.sparse.linalg.lsqr.html\">SciPy<\/a><\/noindex>.ts <noindex><a rel=\"nofollow\" href=\"http:\/\/matlab.izmiran.ru\/help\/techdoc\/ref\/lsqr.html\">MATLAB<\/a><\/noindex>. En beskrivning av denna metod kommer inte att ges h\u00e4r (den kan hittas i artikeln <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>). Ist\u00e4llet kommer en metod att demonstreras som anpassar LSQR f\u00f6r att utf\u00f6ras i en distribuerad milj\u00f6.<\/p>\n<p>K\u00e4rnan i LSQR-metoden \u00e4r <noindex><a rel=\"nofollow\" href=\"http:\/\/www.netlib.org\/utk\/people\/JackDongarra\/etemplates\/node198.html\">bidiagonalisering<\/a><\/noindex>. Det \u00e4r en iterativ procedur d\u00e4r varje iteration best\u00e5r av f\u00f6ljande steg:<br \/>\n<img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/3c2f7b5c6f57830e9b522023a8e72a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen om vi utg\u00e5r ifr\u00e5n att matrisen <img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/e86c3c422629b78bc574f66db8a6139d.png\" style=\"display:block;margin: 0 auto;\" \/> \u00e4r horisontellt partitionerad kan varje iteration representeras i form av tv\u00e5 MapReduce-steg. P\u00e5 s\u00e5 s\u00e4tt minimeras datatransfereringen under varje iteration (bara vektorer med en l\u00e4ngd som motsvarar antalet ok\u00e4nda):<\/p>\n<p><img decoding=\"async\" alt=\"Linj\u00e4ra regressioner och metoder f\u00f6r dess \u00e5terst\u00e4llning\" src=\"\/wp-content\/uploads\/2019\/09\/6b67654b29ed24283c4b04d66c05ea5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJust denna metod anv\u00e4nds vid implementeringen av linj\u00e4r regression i <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>Slutsats<\/h3>\n<p>\nDet finns m\u00e5nga algoritmer f\u00f6r att \u00e5terst\u00e4lla linj\u00e4r regression, men inte alla av dem kan till\u00e4mpas under alla f\u00f6rh\u00e5llanden. QR-zerlegung \u00e4r utm\u00e4rkt f\u00f6r exakta l\u00f6sningar p\u00e5 sm\u00e5 datam\u00e4ngder. Gradientnedstigning implementeras enkelt och till\u00e5ter snabbt att hitta en approximativ l\u00f6sning. LSQR kombinerar de b\u00e4sta egenskaperna fr\u00e5n de tv\u00e5 f\u00f6reg\u00e5ende algoritmerna, eftersom den kan distribueras, konvergerar snabbare j\u00e4mf\u00f6rt med gradientnedstigning, och m\u00f6jligg\u00f6r tidig avst\u00e4ngning av algoritmen till skillnad fr\u00e5n QR-zerlegung f\u00f6r att s\u00f6ka approximativa l\u00f6sningar.<br \/>\n<br \/>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47Linj\u00e4r regression och metoder f\u00f6r dess \u00e5terst\u00e4llning | ProHoster","description":"K\u00e4lla:","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/37955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=37955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/37955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/28483"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=37955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=37955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=37955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}