
Source:
La rĂ©gression linĂ©aire est l'un des algorithmes de base pour de nombreux domaines liĂ©s Ă l'analyse des donnĂ©es. La raison de ceci est Ă©vidente. Il sâagit dâun algorithme trĂšs simple et comprĂ©hensible, qui a contribuĂ© Ă son utilisation gĂ©nĂ©ralisĂ©e depuis plusieurs dizaines, voire centaines dâannĂ©es. LâidĂ©e est de supposer une dĂ©pendance linĂ©aire dâune variable Ă lâĂ©gard dâun ensemble dâautres variables, puis dâessayer de restaurer cette dĂ©pendance.
Mais cet article ne vise pas Ă utiliser la rĂ©gression linĂ©aire pour rĂ©soudre des problĂšmes pratiques. Nous examinerons ici les fonctionnalitĂ©s intĂ©ressantes de la mise en Ćuvre d'algorithmes distribuĂ©s pour sa rĂ©cupĂ©ration, que nous avons rencontrĂ©s lors de l'Ă©criture d'un module d'apprentissage automatique dans . Un peu de mathĂ©matiques de base, d'apprentissage automatique et d'informatique distribuĂ©e peuvent vous aider Ă comprendre comment effectuer une rĂ©gression linĂ©aire mĂȘme lorsque vos donnĂ©es sont rĂ©parties sur des milliers de nĆuds.
Qu'est-ce que c'est?
Nous sommes confrontĂ©s Ă la tĂąche de restaurer la dĂ©pendance linĂ©aire. En tant que donnĂ©es d'entrĂ©e, un ensemble de vecteurs de variables supposĂ©es indĂ©pendantes est donnĂ©, dont chacun est associĂ© Ă une certaine valeur de la variable dĂ©pendante. Ces donnĂ©es peuvent ĂȘtre reprĂ©sentĂ©es sous la forme de deux matrices :

Maintenant, puisque la dépendance est supposée, et de plus linéaire, nous écrirons notre hypothÚse sous la forme d'un produit de matrices (pour simplifier l'enregistrement, ici et ci-dessous on suppose que le terme libre de l'équation est caché derriÚre
, et la derniĂšre colonne de la matrice
contient des unités) :

Cela ressemble beaucoup Ă un systĂšme dâĂ©quations linĂ©aires, nâest-ce pas ? Il semble que, mais il n'y aura trĂšs probablement pas de solutions Ă un tel systĂšme d'Ă©quations. La raison en est le bruit, prĂ©sent dans presque toutes les donnĂ©es rĂ©elles. Une autre raison peut ĂȘtre l'absence de dĂ©pendance linĂ©aire en tant que telle, qui peut ĂȘtre combattue en introduisant des variables supplĂ©mentaires qui dĂ©pendent de maniĂšre non linĂ©aire des variables d'origine. Prenons l'exemple suivant :

Source:
Ceci est un exemple simple de régression linéaire qui montre la relation entre une variable (le long de l'axe
) Ă partir d'une autre variable (le long de l'axe
). Pour que le systĂšme d'Ă©quations linĂ©aires correspondant Ă cet exemple ait une solution, tous les points doivent se trouver exactement sur la mĂȘme droite. Mais ce n'est pas vrai. Mais ils ne se situent pas sur la mĂȘme ligne droite prĂ©cisĂ©ment Ă cause du bruit (ou parce que lâhypothĂšse dâune relation linĂ©aire Ă©tait erronĂ©e). Ainsi, afin de restaurer une relation linĂ©aire Ă partir de donnĂ©es rĂ©elles, il est gĂ©nĂ©ralement nĂ©cessaire d'introduire une hypothĂšse supplĂ©mentaire : les donnĂ©es d'entrĂ©e contiennent du bruit et ce bruit a . Vous pouvez faire des hypothĂšses sur d'autres types de distribution du bruit, mais dans la grande majoritĂ© des cas, c'est la distribution normale qui est prise en compte et qui sera discutĂ©e plus en dĂ©tail.
Méthode du maximum de vraisemblance
Nous avons donc supposĂ© la prĂ©sence dâun bruit alĂ©atoire normalement distribuĂ©. Que faire dans une telle situation ? Pour ce cas en mathĂ©matiques, il existe et est largement utilisĂ© . Bref, son essence rĂ©side dans le choix et sa maximisation ultĂ©rieure.
Nous revenons à la restauration d'une relation linéaire à partir de données avec un bruit normal. Notez que la relation linéaire supposée est l'espérance mathématique
distribution normale existante. En mĂȘme temps, la probabilitĂ© que
prend une valeur ou une autre, sous réserve de la présence d'observables
, ressemble Ă ceci:

Remplaçons maintenant à la place
Đž
Les variables dont nous avons besoin sont :

Il ne reste plus qu'Ă trouver le vecteur
, auquel cette probabilitĂ© est maximale. Pour maximiser une telle fonction, il convient d'en prendre d'abord un logarithme (le logarithme de la fonction atteindra un maximum au mĂȘme point que la fonction elle-mĂȘme) :

Ce qui revient Ă minimiser la fonction suivante :

Dâailleurs, cela sâappelle une mĂ©thode . Souvent, toutes les considĂ©rations ci-dessus sont omises et cette mĂ©thode est simplement utilisĂ©e.
Décomposition QR
Le minimum de la fonction ci-dessus peut ĂȘtre trouvĂ© en trouvant le point auquel le gradient de cette fonction est nul. Et le dĂ©gradĂ© sâĂ©crira ainsi :

est une méthode matricielle pour résoudre le problÚme de minimisation utilisée dans la méthode des moindres carrés. à cet égard, nous réécrivons l'équation sous forme matricielle :

On décompose donc la matrice
aux matrices
Đž
et effectuer une sĂ©rie de transformations (l'algorithme de dĂ©composition QR lui-mĂȘme ne sera pas considĂ©rĂ© ici, seulement son utilisation en relation avec la tĂąche Ă accomplir) :

Matrice
est orthogonal. Cela nous permet de nous débarrasser du travail
:

Et si tu remplaces
sur
, alors ça ira
... Ătant donnĂ© que
est une matrice triangulaire supérieure, elle ressemble à ceci :

Ce problĂšme peut ĂȘtre rĂ©solu en utilisant la mĂ©thode de substitution. ĂlĂ©ment
est situé comme
, élément précédent
est situé comme
et ainsi de suite.
Il convient de noter ici que la complexitĂ© de l'algorithme rĂ©sultant en raison de l'utilisation de la dĂ©composition QR est Ă©gale Ă
. De plus, malgrĂ© le fait que lâopĂ©ration de multiplication matricielle soit bien parallĂ©lisĂ©e, il nâest pas possible dâĂ©crire une version distribuĂ©e efficace de cet algorithme.
Descente graduelle
Lorsqu'on parle de minimiser une fonction, il convient toujours de rappeler la mĂ©thode de descente de gradient (stochastique). Il s'agit d'une mĂ©thode de minimisation simple et efficace basĂ©e sur le calcul itĂ©ratif du gradient d'une fonction en un point, puis sur son dĂ©placement dans la direction opposĂ©e au gradient. Chacune de ces Ă©tapes rapproche la solution du minimum. Le dĂ©gradĂ© est toujours le mĂȘme :

Cette mĂ©thode est Ă©galement bien parallĂ©lisĂ©e et distribuĂ©e en raison des propriĂ©tĂ©s linĂ©aires de l'opĂ©rateur gradient. Notez que dans la formule ci-dessus, sous le signe somme se trouvent des termes indĂ©pendants. En dâautres termes, nous pouvons calculer le gradient indĂ©pendamment pour tous les indices
du premier au
, en parallĂšle, calculez le gradient pour les indices avec
Ă
. Ajoutez ensuite les dĂ©gradĂ©s obtenus. Le rĂ©sultat de l'addition sera le mĂȘme que si l'on calculait immĂ©diatement le gradient des indices du premier au
. Ainsi, si les donnĂ©es sont rĂ©parties sur plusieurs donnĂ©es, le gradient peut ĂȘtre calculĂ© indĂ©pendamment sur chaque piĂšce, puis les rĂ©sultats de ces calculs peuvent ĂȘtre additionnĂ©s pour obtenir le rĂ©sultat final :

Du point de vue de la mise en Ćuvre, cela correspond au paradigme . A chaque Ă©tape de descente de gradient, une tĂąche est envoyĂ©e Ă chaque nĆud de donnĂ©es pour calculer le gradient, puis les gradients calculĂ©s sont rassemblĂ©s et le rĂ©sultat de leur somme est utilisĂ© pour amĂ©liorer le rĂ©sultat.
MalgrĂ© la facilitĂ© de mise en Ćuvre et la capacitĂ© d'exĂ©cution dans le paradigme MapReduce, la descente de gradient prĂ©sente Ă©galement des inconvĂ©nients. En particulier, le nombre dâĂ©tapes nĂ©cessaires pour parvenir Ă la convergence est nettement plus Ă©levĂ© que celui dâautres mĂ©thodes plus spĂ©cialisĂ©es.
LSQR
est une autre mĂ©thode de rĂ©solution du problĂšme, qui convient Ă la fois pour restaurer la rĂ©gression linĂ©aire et pour rĂ©soudre des systĂšmes d'Ă©quations linĂ©aires. Sa principale caractĂ©ristique est de combiner les avantages des mĂ©thodes matricielles et dâune approche itĂ©rative. Des implĂ©mentations de cette mĂ©thode peuvent ĂȘtre trouvĂ©es dans les deux bibliothĂšques et . Une description de cette mĂ©thode ne sera pas donnĂ©e ici (elle se trouve dans l'article ). Au lieu de cela, une approche sera dĂ©montrĂ©e pour adapter LSQR Ă l'exĂ©cution dans un environnement distribuĂ©.
La méthode LSQR est basée sur . Il s'agit d'une procédure itérative, chaque itération comprenant les étapes suivantes :

Mais si l'on suppose que la matrice
est partitionnĂ© horizontalement, alors chaque itĂ©ration peut ĂȘtre reprĂ©sentĂ©e comme deux Ă©tapes MapReduce. De cette maniĂšre, il est possible de minimiser les transferts de donnĂ©es lors de chaque itĂ©ration (uniquement des vecteurs de longueur Ă©gale au nombre d'inconnues) :

C'est cette approche qui est utilisĂ©e lors de la mise en Ćuvre de la rĂ©gression linĂ©aire dans .
Conclusion
Il existe de nombreux algorithmes de rĂ©cupĂ©ration par rĂ©gression linĂ©aire, mais tous ne peuvent pas ĂȘtre appliquĂ©s dans toutes les conditions. La dĂ©composition QR est donc excellente pour une solution prĂ©cise sur de petits ensembles de donnĂ©es. La descente de gradient est simple Ă mettre en Ćuvre et permet de trouver rapidement une solution approximative. Et LSQR combine les meilleures propriĂ©tĂ©s des deux algorithmes prĂ©cĂ©dents, car il peut ĂȘtre distribuĂ©, converge plus rapidement que la descente de gradient et permet Ă©galement un arrĂȘt prĂ©coce de l'algorithme, contrairement Ă la dĂ©composition QR, pour trouver une solution approximative.
Source: habr.com
