
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 en est évidente. C'est un algorithme trÚs simple et compréhensible, ce qui favorise son large éventail d'applications depuis plusieurs décennies, voire des centaines d'années. L'idée est que nous supposons une dépendance linéaire d'une variable à un ensemble d'autres variables, puis nous tentons de reconstruire cette dépendance.
Cependant, cet article ne portera pas sur l'application de la rĂ©gression linĂ©aire pour rĂ©soudre des problĂšmes pratiques. Nous allons aborder les caractĂ©ristiques intĂ©ressantes de la mise en Ćuvre d'algorithmes distribuĂ©s pour sa reconstruction, auxquelles nous avons Ă©tĂ© confrontĂ©s lors de l'Ă©criture du module d'apprentissage automatique dans . Un peu de mathĂ©matiques de base, fondamentaux de l'apprentissage automatique et de l'informatique distribuĂ©e aideront Ă comprendre comment reconstruire la rĂ©gression linĂ©aire, mĂȘme lorsque les donnĂ©es sont rĂ©parties entre des milliers de nĆuds.
De quoi s'agit-il ?
Nous sommes confrontĂ©s Ă la tĂąche de restaurer une dĂ©pendance linĂ©aire. Comme donnĂ©es d'entrĂ©e, nous avons un ensemble de vecteurs supposĂ©ment indĂ©pendants, Ă chacun desquels est associĂ© une certaine valeur d'une variable dĂ©pendante. Ces donnĂ©es peuvent ĂȘtre reprĂ©sentĂ©es sous forme de deux matrices :

Maintenant, puisque nous supposons une dépendance, et encore plus qu'elle est linéaire, exprimons notre hypothÚse sous la forme d'un produit de matrices (pour simplifier l'écriture, ici et plus loin, il est supposé que le terme libre de l'équation est caché derriÚre
, et la derniĂšre colonne de la matrice
contient des uns) :

Cela ressemble beaucoup Ă un systĂšme d'Ă©quations linĂ©aires, n'est-ce pas ? Cela y ressemble, mais cette systĂšme d'Ă©quations n'a probablement pas de solution. La raison en est le bruit, qui est prĂ©sent dans presque toutes les donnĂ©es rĂ©elles. Une autre raison peut ĂȘtre l'absence mĂȘme de dĂ©pendance linĂ©aire, contre laquelle on pourrait essayer de lutter en introduisant des variables supplĂ©mentaires, dĂ©pendant de maniĂšre non linĂ©aire des originales. ConsidĂ©rons l'exemple suivant :

Source :
C'est un exemple simple de régression linéaire qui démontre la dépendance d'une variable (sur l'axe
) par rapport Ă une autre variable (sur l'axe
). Pour qu'un systĂšme d'Ă©quations linĂ©aires tel que celui-ci ait une solution, tous les points doivent se situer exactement sur une mĂȘme droite. Mais ce n'est pas le cas. Ils ne sont pas sur une mĂȘme droite prĂ©cisĂ©ment Ă cause du bruit (ou parce que l'hypothĂšse d'une dĂ©pendance linĂ©aire Ă©tait erronĂ©e). Ainsi, pour restaurer la dĂ©pendance linĂ©aire Ă partir de donnĂ©es rĂ©elles, il est gĂ©nĂ©ralement nĂ©cessaire d'introduire une autre hypothĂšse: les donnĂ©es d'entrĂ©e contiennent du bruit et ce bruit a . On peut faire des hypothĂšses sur d'autres types de distributions du bruit, mais dans la grande majoritĂ© des cas, on considĂšre principalement la distribution normale, dont nous allons parler ci-dessous.
La méthode du maximum de vraisemblance
. Ainsi, nous avons supposé qu'il existe un bruit aléatoire distribué normalement. Que faire dans une telle situation ? En mathématiques, il existe et est largement utilisé . En bref, son essence réside dans le choix et sa maximisation ultérieure.
Revenons à la restauration de la dépendance linéaire à partir de données avec du bruit normal. Notons que la dépendance linéaire supposée est l'espérance mathématique
de la distribution normale existante. ParallÚlement, la probabilité que
prenne une certaine valeur, étant donné l'existence d'observations
, est la suivante :

Remplaçons maintenant
et
par les variables dont nous avons besoin :

Il ne reste plus qu'Ă trouver le vecteur
, pour lequel cette probabilitĂ© 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ĂȘme point que la fonction elle-mĂȘme) :

Ce qui, Ă son tour, revient Ă minimiser la fonction suivante :

Au fait, cela s'appelle la méthode . Souvent, tous les raisonnements précédents sont omis et cette méthode est simplement utilisée.
Décomposition QR
Le minimum de la fonction mentionnĂ©e ci-dessus peut ĂȘtre trouvĂ© en trouvant le point oĂč le gradient de cette fonction est nul. Le gradient sera Ă©crit comme suit :

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

Ainsi, nous décomposons la matrice
en matrices
et
et nous effectuons une série de transformations (l'algorithme QR ne sera pas abordé ici, seulement son utilisation dans le cadre du problÚme proposé) :

La matrice
est orthogonale. Cela nous permet d'éliminer le produit
:

Et si nous remplaçons
sur
, cela donnera
. Ătant donnĂ© que
est une matrice triangulaire supérieure, cela se présente comme suit :

Cela peut ĂȘtre rĂ©solu par la mĂ©thode de substitution. L'Ă©lĂ©ment
se trouve comme
, l'élément précédent
se trouve comme
et ainsi de suite.
Il convient de noter que la complexité de l'algorithme obtenu grùce à l'utilisation de la décomposition QR est de
. Bien que l'opération de multiplication de matrices se parallélise bien, il n'est pas possible d'écrire une version distribuée efficace de cet algorithme.
Descente de gradient
En parlant de la minimisation d'une certaine fonction, il est toujours utile de se rappeler de la mĂ©thode (stochastique) de descente de gradient. C'est une mĂ©thode simple et efficace de minimisation, basĂ©e sur le calcul itĂ©ratif du gradient de la fonction Ă un point puis de son dĂ©calage dans la direction opposĂ©e au gradient. Chaque pas rapproche la solution du minimum. Le gradient reste le mĂȘme :

De plus, cette méthode se parallélise et se distribue bien en raison des propriétés linéaires de l'opérateur gradient. Notons que dans la formule ci-dessus, les termes sous le signe de somme sont indépendants. Autrement dit, nous pouvons calculer le gradient indépendamment pour tous les indices
de un Ă
, parallĂšlement Ă cela, calculer le gradient pour les indices de
Ă
. Ensuite, nous additionnons les gradients obtenus. Le rĂ©sultat de l'addition sera le mĂȘme que si nous avions calculĂ© directement le gradient pour les indices de un Ă
. Ainsi, si les donnĂ©es sont rĂ©parties entre plusieurs parties, le gradient peut ĂȘtre calculĂ© indĂ©pendamment sur chaque partie, puis les rĂ©sultats de ces calculs peuvent ĂȘtre additionnĂ©s pour obtenir le rĂ©sultat final :

Du point de vue de l'implĂ©mentation, cela s'inscrit dans la catĂ©gorie . Ă chaque Ă©tape de la descente de gradient, une tĂąche de calcul du gradient est envoyĂ©e Ă chaque nĆud de donnĂ©es, puis les gradients calculĂ©s sont rassemblĂ©s et le rĂ©sultat de leur addition est utilisĂ© pour amĂ©liorer le rĂ©sultat.
MalgrĂ© la simplicitĂ© de mise en Ćuvre et la possibilitĂ© d'exĂ©cution dans la paradigme MapReduce, la descente de gradient prĂ©sente Ă©galement des inconvĂ©nients. En particulier, le nombre d'Ă©tapes nĂ©cessaires pour atteindre la convergence est considĂ©rablement plus Ă©levĂ© par rapport Ă d'autres mĂ©thodes plus spĂ©cialisĂ©es.
LSQR
â une autre mĂ©thode pour rĂ©soudre le problĂšme, qui convient tant Ă la restauration de la rĂ©gression linĂ©aire qu'Ă la rĂ©solution de systĂšmes d'Ă©quations linĂ©aires. Sa principale caractĂ©ristique est qu'elle combine les avantages des mĂ©thodes matricielles et de l'approche itĂ©rative. Des implĂ©mentations de cette mĂ©thode peuvent ĂȘtre trouvĂ©es dans des bibliothĂšques , ainsi que dans . La description de cette mĂ©thode ne sera pas prĂ©sentĂ©e ici (elle peut ĂȘtre trouvĂ©e dans l'article ). Ă la place, une approche sera dĂ©montrĂ©e pour adapter LSQR Ă l'exĂ©cution dans un environnement distribuĂ©.
La méthode LSQR repose sur . C'est une procédure itérative, chaque itération consistant en les étapes suivantes :

Mais si l'on considĂšre que la matrice est
partitionnĂ©e horizontalement, alors chaque itĂ©ration peut ĂȘtre reprĂ©sentĂ©e sous la forme de deux Ă©tapes MapReduce. Cela permet de minimiser les transferts de donnĂ©es Ă chaque itĂ©ration (seuls les 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 pour restaurer la rĂ©gression linĂ©aire, mais tous ne peuvent pas ĂȘtre appliquĂ©s dans toutes les conditions. Ainsi, la dĂ©composition QR convient parfaitement pour une rĂ©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 par rapport Ă la descente de gradient, et permet Ă©galement un arrĂȘt prĂ©coce de l'algorithme, contrairement Ă la dĂ©composition QR pour la recherche d'une solution approximative.
Source : habr.com
