{"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\/fr\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","title":{"rendered":"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/60ca67872405e9f15b151e958f04260d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Source : <noindex><a rel=\"nofollow\" href=\"https:\/\/xkcd.com\/1725\/\">xkcd<\/a><\/noindex><\/i><\/p>\n<p>La r\u00e9gression lin\u00e9aire est l'un des algorithmes de base pour de nombreux domaines li\u00e9s \u00e0 l'analyse des donn\u00e9es. La raison en est \u00e9vidente. C'est un algorithme tr\u00e8s simple et compr\u00e9hensible, ce qui favorise son large \u00e9ventail d'applications depuis plusieurs d\u00e9cennies, voire des centaines d'ann\u00e9es. L'id\u00e9e est que nous supposons une d\u00e9pendance lin\u00e9aire d'une variable \u00e0 un ensemble d'autres variables, puis nous tentons de reconstruire cette d\u00e9pendance.<\/p>\n<p>Cependant, cet article ne portera pas sur l'application de la r\u00e9gression lin\u00e9aire pour r\u00e9soudre des probl\u00e8mes pratiques. Nous allons aborder les caract\u00e9ristiques int\u00e9ressantes de la mise en \u0153uvre d'algorithmes distribu\u00e9s pour sa reconstruction, auxquelles nous avons \u00e9t\u00e9 confront\u00e9s lors de l'\u00e9criture du module d'apprentissage automatique dans <noindex><a rel=\"nofollow\" href=\"https:\/\/ignite.apache.org\/\">Apache Ignite<\/a><\/noindex>. Un peu de math\u00e9matiques de base, fondamentaux de l'apprentissage automatique et de l'informatique distribu\u00e9e aideront \u00e0 comprendre comment reconstruire la r\u00e9gression lin\u00e9aire, m\u00eame lorsque les donn\u00e9es sont r\u00e9parties entre des milliers de n\u0153uds.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>De quoi s'agit-il ?<\/h3>\n<p>\nNous sommes confront\u00e9s \u00e0 la t\u00e2che de restaurer une d\u00e9pendance lin\u00e9aire. Comme donn\u00e9es d'entr\u00e9e, nous avons un ensemble de vecteurs suppos\u00e9ment ind\u00e9pendants, \u00e0 chacun desquels est associ\u00e9 une certaine valeur d'une variable d\u00e9pendante. Ces donn\u00e9es peuvent \u00eatre repr\u00e9sent\u00e9es sous forme de deux matrices :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/2ffbdd09fdc5efaf287fbb4935033302.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nMaintenant, puisque nous supposons une d\u00e9pendance, et encore plus qu'elle est lin\u00e9aire, exprimons notre hypoth\u00e8se sous la forme d'un produit de matrices (pour simplifier l'\u00e9criture, ici et plus loin, il est suppos\u00e9 que le terme libre de l'\u00e9quation est cach\u00e9 derri\u00e8re <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/21e90cb829e0bc2e12c836f7810c1b1a.png\" style=\"display:block;margin: 0 auto;\" \/>, et la derni\u00e8re colonne de la matrice <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/25c0af2e153ae371e71588efe3bc2ee2.png\" style=\"display:block;margin: 0 auto;\" \/> contient des uns) :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/b1c3c8d2332ae27eedeef675178dee4f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nCela ressemble beaucoup \u00e0 un syst\u00e8me d'\u00e9quations lin\u00e9aires, n'est-ce pas ? Cela y ressemble, mais cette syst\u00e8me d'\u00e9quations n'a probablement pas de solution. La raison en est le bruit, qui est pr\u00e9sent dans presque toutes les donn\u00e9es r\u00e9elles. Une autre raison peut \u00eatre l'absence m\u00eame de d\u00e9pendance lin\u00e9aire, contre laquelle on pourrait essayer de lutter en introduisant des variables suppl\u00e9mentaires, d\u00e9pendant de mani\u00e8re non lin\u00e9aire des originales. Consid\u00e9rons l'exemple suivant :<br \/>\n<img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/d449b8f931e91cc7b33634ee8d4a4329.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Source : <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_regression\">Wikipedia<\/a><\/noindex><\/i><\/p>\n<p>C'est un exemple simple de r\u00e9gression lin\u00e9aire qui d\u00e9montre la d\u00e9pendance d'une variable (sur l'axe <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/fdea97dff413fb13444d7fd8ab65ca0b.png\" style=\"display:block;margin: 0 auto;\" \/>) par rapport \u00e0 une autre variable (sur l'axe <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/edf9cb265e4e4655cd84fb8739843952.png\" style=\"display:block;margin: 0 auto;\" \/>). Pour qu'un syst\u00e8me d'\u00e9quations lin\u00e9aires tel que celui-ci ait une solution, tous les points doivent se situer exactement sur une m\u00eame droite. Mais ce n'est pas le cas. Ils ne sont pas sur une m\u00eame droite pr\u00e9cis\u00e9ment \u00e0 cause du bruit (ou parce que l'hypoth\u00e8se d'une d\u00e9pendance lin\u00e9aire \u00e9tait erron\u00e9e). Ainsi, pour restaurer la d\u00e9pendance lin\u00e9aire \u00e0 partir de donn\u00e9es r\u00e9elles, il est g\u00e9n\u00e9ralement n\u00e9cessaire d'introduire une autre hypoth\u00e8se: les donn\u00e9es d'entr\u00e9e contiennent du bruit et ce bruit a <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Normal_distribution\">une distribution normale<\/a><\/noindex>. On peut faire des hypoth\u00e8ses sur d'autres types de distributions du bruit, mais dans la grande majorit\u00e9 des cas, on consid\u00e8re principalement la distribution normale, dont nous allons parler ci-dessous.<\/p>\n<h3>La m\u00e9thode du maximum de vraisemblance<\/h3>\n<p>\n. Ainsi, nous avons suppos\u00e9 qu'il existe un bruit al\u00e9atoire distribu\u00e9 normalement. Que faire dans une telle situation ? En math\u00e9matiques, il existe et est largement utilis\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Maximum_likelihood_estimation\">la m\u00e9thode du maximum de vraisemblance<\/a><\/noindex>. En bref, son essence r\u00e9side dans le choix <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Likelihood_function\">de la fonction de vraisemblance<\/a><\/noindex> et sa maximisation ult\u00e9rieure.<\/p>\n<p>Revenons \u00e0 la restauration de la d\u00e9pendance lin\u00e9aire \u00e0 partir de donn\u00e9es avec du bruit normal. Notons que la d\u00e9pendance lin\u00e9aire suppos\u00e9e est l'esp\u00e9rance math\u00e9matique <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/73cd24a6605bce1a4f38339ee8c61613.png\" style=\"display:block;margin: 0 auto;\" \/> de la distribution normale existante. Parall\u00e8lement, la probabilit\u00e9 que <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/caaf32b1af58d748244acbab640bbab8.png\" style=\"display:block;margin: 0 auto;\" \/> prenne une certaine valeur, \u00e9tant donn\u00e9 l'existence d'observations <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/9cda87721bba4812b7cec96f204ff5f6.png\" style=\"display:block;margin: 0 auto;\" \/>, est la suivante :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/7acbd6bff263d52773617904d3249a96.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nRempla\u00e7ons maintenant <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/d5a167a87fa416e938678b2a80b353dc.png\" style=\"display:block;margin: 0 auto;\" \/> et <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/330ad17be2629a5159b513ba95a96c72.png\" style=\"display:block;margin: 0 auto;\" \/> par les variables dont nous avons besoin :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/57531f93ee0d0050b1fbfc64419f44ad.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nIl ne reste plus qu'\u00e0 trouver le vecteur <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/801ebcd43ae0bc0cf54bc0f68bdc21da.png\" style=\"display:block;margin: 0 auto;\" \/>, pour lequel cette probabilit\u00e9 est maximale. Pour maximiser une telle fonction, il est pratique de la logarifmer d'abord (le logarithme de la fonction atteindra un maximum au m\u00eame point que la fonction elle-m\u00eame) :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/7485448a44f8ee201254fea4208deb54.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nCe qui, \u00e0 son tour, revient \u00e0 minimiser la fonction suivante :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/0957864e5dfbfc1147c24784df67af20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nAu fait, cela s'appelle la m\u00e9thode <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_least_squares\">des moindres carr\u00e9s<\/a><\/noindex>. Souvent, tous les raisonnements pr\u00e9c\u00e9dents sont omis et cette m\u00e9thode est simplement utilis\u00e9e.<\/p>\n<h3>D\u00e9composition QR<\/h3>\n<p>\nLe minimum de la fonction mentionn\u00e9e ci-dessus peut \u00eatre trouv\u00e9 en trouvant le point o\u00f9 le gradient de cette fonction est nul. Le gradient sera \u00e9crit comme suit :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" 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\">D\u00e9composition QR<\/a><\/noindex> est une m\u00e9thode matricielle de r\u00e9solution du probl\u00e8me de minimisation utilis\u00e9e dans la m\u00e9thode des moindres carr\u00e9s. \u00c0 cet \u00e9gard, r\u00e9\u00e9crivons l'\u00e9quation sous forme matricielle :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/4ee809a96550577df855fbd57049a41c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nAinsi, nous d\u00e9composons la matrice <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/2fa2b32bef5246132da5b3b9bc713ab5.png\" style=\"display:block;margin: 0 auto;\" \/> en matrices <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/fd8c620c602ae49e8d6e39ef8b551d0b.png\" style=\"display:block;margin: 0 auto;\" \/> et <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/32804631a9a2f8bff35d0bcf7c29bfc6.png\" style=\"display:block;margin: 0 auto;\" \/> et nous effectuons une s\u00e9rie de transformations (l'algorithme QR ne sera pas abord\u00e9 ici, seulement son utilisation dans le cadre du probl\u00e8me propos\u00e9) :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/56cfb4ed9126e632cba51940c0d9afe6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nLa matrice <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/106bb4d6704eb9f42078555c662a8b97.png\" style=\"display:block;margin: 0 auto;\" \/> est orthogonale. Cela nous permet d'\u00e9liminer le produit <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/618077c012f7b81f23756b9c1e54eb73.png\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/1715fb2e77d8be75e68e4791997aaa44.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nEt si nous rempla\u00e7ons <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/926c51120ec8608bf81dc8f36fcc3ef4.png\" style=\"display:block;margin: 0 auto;\" \/> sur <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/9e578153ea2dc36d0eb86be4eedf4899.png\" style=\"display:block;margin: 0 auto;\" \/>, cela donnera <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/8cd914db7317c01dc5449c70b36dba73.png\" style=\"display:block;margin: 0 auto;\" \/>. \u00c9tant donn\u00e9 que <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/88fa4e81fc2bedf16e41e90e320a5647.png\" style=\"display:block;margin: 0 auto;\" \/> est une matrice triangulaire sup\u00e9rieure, cela se pr\u00e9sente comme suit :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/689eaaece2a497c5bd02582e3e672a41.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nCela peut \u00eatre r\u00e9solu par la m\u00e9thode de substitution. L'\u00e9l\u00e9ment <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/e163597c97a539238731c31ca5ce011b.png\" style=\"display:block;margin: 0 auto;\" \/> se trouve comme <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/211d86418c9a38f164f490b1a7b5fb71.png\" style=\"display:block;margin: 0 auto;\" \/>, l'\u00e9l\u00e9ment pr\u00e9c\u00e9dent <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/ed3742b3a7cfb14bad801485a8cf01df.png\" style=\"display:block;margin: 0 auto;\" \/> se trouve comme <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/b3e582f565e1060b47af4008a98c3524.png\" style=\"display:block;margin: 0 auto;\" \/> et ainsi de suite.<\/p>\n<p>Il convient de noter que la complexit\u00e9 de l'algorithme obtenu gr\u00e2ce \u00e0 l'utilisation de la d\u00e9composition QR est de <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/c5c20145b7b165120d9979c2e2ca4711.png\" style=\"display:block;margin: 0 auto;\" \/>. Bien que l'op\u00e9ration de multiplication de matrices se parall\u00e9lise bien, il n'est pas possible d'\u00e9crire une version distribu\u00e9e efficace de cet algorithme.<\/p>\n<h3>Descente de gradient<\/h3>\n<p>\nEn parlant de la minimisation d'une certaine fonction, il est toujours utile de se rappeler de la m\u00e9thode (stochastique) de descente de gradient. C'est une m\u00e9thode simple et efficace de minimisation, bas\u00e9e sur le calcul it\u00e9ratif du gradient de la fonction \u00e0 un point puis de son d\u00e9calage dans la direction oppos\u00e9e au gradient. Chaque pas rapproche la solution du minimum. Le gradient reste le m\u00eame :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/d195806787197323312be7c0b9d8b240.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>De plus, cette m\u00e9thode se parall\u00e9lise et se distribue bien en raison des propri\u00e9t\u00e9s lin\u00e9aires de l'op\u00e9rateur gradient. Notons que dans la formule ci-dessus, les termes sous le signe de somme sont ind\u00e9pendants. Autrement dit, nous pouvons calculer le gradient ind\u00e9pendamment pour tous les indices <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/0c10d574f70b318b6562fb444e460fa7.png\" style=\"display:block;margin: 0 auto;\" \/> de un \u00e0 <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/c9b39d76c5f724af137b5db3053e1a60.png\" style=\"display:block;margin: 0 auto;\" \/>, parall\u00e8lement \u00e0 cela, calculer le gradient pour les indices de <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/1a9407fcb4ec67a171463d36dca30a80.png\" style=\"display:block;margin: 0 auto;\" \/> \u00e0 <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/f1e29c5b16d68d6377108f53803a9cd0.png\" style=\"display:block;margin: 0 auto;\" \/>. Ensuite, nous additionnons les gradients obtenus. Le r\u00e9sultat de l'addition sera le m\u00eame que si nous avions calcul\u00e9 directement le gradient pour les indices de un \u00e0 <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/c5ec5004c59a5343f22894ef676606e3.png\" style=\"display:block;margin: 0 auto;\" \/>. Ainsi, si les donn\u00e9es sont r\u00e9parties entre plusieurs parties, le gradient peut \u00eatre calcul\u00e9 ind\u00e9pendamment sur chaque partie, puis les r\u00e9sultats de ces calculs peuvent \u00eatre additionn\u00e9s pour obtenir le r\u00e9sultat final :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/073ce5e3a6688e3a1ae7774aaff1a843.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Du point de vue de l'impl\u00e9mentation, cela s'inscrit dans la cat\u00e9gorie <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MapReduce\">MapReduce<\/a><\/noindex>. \u00c0 chaque \u00e9tape de la descente de gradient, une t\u00e2che de calcul du gradient est envoy\u00e9e \u00e0 chaque n\u0153ud de donn\u00e9es, puis les gradients calcul\u00e9s sont rassembl\u00e9s et le r\u00e9sultat de leur addition est utilis\u00e9 pour am\u00e9liorer le r\u00e9sultat.<\/p>\n<p>Malgr\u00e9 la simplicit\u00e9 de mise en \u0153uvre et la possibilit\u00e9 d'ex\u00e9cution dans la paradigme MapReduce, la descente de gradient pr\u00e9sente \u00e9galement des inconv\u00e9nients. En particulier, le nombre d'\u00e9tapes n\u00e9cessaires pour atteindre la convergence est consid\u00e9rablement plus \u00e9lev\u00e9 par rapport \u00e0 d'autres m\u00e9thodes plus sp\u00e9cialis\u00e9es.<\/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 une autre m\u00e9thode pour r\u00e9soudre le probl\u00e8me, qui convient tant \u00e0 la restauration de la r\u00e9gression lin\u00e9aire qu'\u00e0 la r\u00e9solution de syst\u00e8mes d'\u00e9quations lin\u00e9aires. Sa principale caract\u00e9ristique est qu'elle combine les avantages des m\u00e9thodes matricielles et de l'approche it\u00e9rative. Des impl\u00e9mentations de cette m\u00e9thode peuvent \u00eatre trouv\u00e9es dans des biblioth\u00e8ques <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.scipy.org\/doc\/scipy-0.14.0\/reference\/generated\/scipy.sparse.linalg.lsqr.html\">SciPy<\/a><\/noindex>, ainsi que dans <noindex><a rel=\"nofollow\" href=\"http:\/\/matlab.izmiran.ru\/help\/techdoc\/ref\/lsqr.html\">MATLAB.<\/a><\/noindex>. La description de cette m\u00e9thode ne sera pas pr\u00e9sent\u00e9e ici (elle peut \u00eatre trouv\u00e9e dans l'article <noindex><a rel=\"nofollow\" href=\"https:\/\/web.stanford.edu\/group\/SOL\/software\/lsqr\/lsqr-toms82a.pdf\">LSQR : Un algorithme pour les \u00e9quations lin\u00e9aires successives et les moindres carr\u00e9s dispers\u00e9s<\/a><\/noindex>). \u00c0 la place, une approche sera d\u00e9montr\u00e9e pour adapter LSQR \u00e0 l'ex\u00e9cution dans un environnement distribu\u00e9.<\/p>\n<p>La m\u00e9thode LSQR repose sur <noindex><a rel=\"nofollow\" href=\"http:\/\/www.netlib.org\/utk\/people\/JackDongarra\/etemplates\/node198.html\">la proc\u00e9dure de bidiagonalisation<\/a><\/noindex>. C'est une proc\u00e9dure it\u00e9rative, chaque it\u00e9ration consistant en les \u00e9tapes suivantes :<br \/>\n<img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/3c2f7b5c6f57830e9b522023a8e72a48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMais si l'on consid\u00e8re que la matrice est <img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/e86c3c422629b78bc574f66db8a6139d.png\" style=\"display:block;margin: 0 auto;\" \/> partitionn\u00e9e horizontalement, alors chaque it\u00e9ration peut \u00eatre repr\u00e9sent\u00e9e sous la forme de deux \u00e9tapes MapReduce. Cela permet de minimiser les transferts de donn\u00e9es \u00e0 chaque it\u00e9ration (seuls les vecteurs de longueur \u00e9gale au nombre d'inconnues) :<\/p>\n<p><img decoding=\"async\" alt=\"R\u00e9gression lin\u00e9aire et m\u00e9thodes de sa restauration\" src=\"\/wp-content\/uploads\/2019\/09\/6b67654b29ed24283c4b04d66c05ea5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nC'est cette approche qui est utilis\u00e9e lors de la mise en \u0153uvre de la r\u00e9gression lin\u00e9aire dans <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>Conclusion<\/h3>\n<p>\nIl existe de nombreux algorithmes pour restaurer la r\u00e9gression lin\u00e9aire, mais tous ne peuvent pas \u00eatre appliqu\u00e9s dans toutes les conditions. Ainsi, la d\u00e9composition QR convient parfaitement pour une r\u00e9solution pr\u00e9cise sur de petits ensembles de donn\u00e9es. La descente de gradient est simple \u00e0 mettre en \u0153uvre et permet de trouver rapidement une solution approximative. Et LSQR combine les meilleures propri\u00e9t\u00e9s des deux algorithmes pr\u00e9c\u00e9dents, car il peut \u00eatre distribu\u00e9, converge plus rapidement par rapport \u00e0 la descente de gradient, et permet \u00e9galement un arr\u00eat pr\u00e9coce de l'algorithme, contrairement \u00e0 la d\u00e9composition QR pour la recherche d'une solution approximative.<br \/>\n<br \/>Source : <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\/fr\/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=\"fr_FR\" \/>\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\/fr\/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\udd47R\u00e9gression lin\u00e9aire et m\u00e9thodes de restauration | ProHoster","description":"Source :","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/linejnaya-regressiya-i-metody-eyo-vosstanovleniya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/37955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=37955"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/28483"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=37955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=37955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=37955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}