Beaucoup de phénomènes physiques ne sont pas linéaires. Par exemple, la température mensuelle moyenne dans une ville donnée est approximativement périodique en fonction de la saison.
Il est donc inévitable que, en machine learning aussi, les modèles linéaires ne suffisent pas toujours à bien appréhender nos données. Mais que faire si l'on n'a à sa disposition que des algorithmes linéaires comme la SVM linéaire ou la régression ridge ?
Prenons l'exemple de classification sur l'image ci-dessous : il s'agit de séparer, en deux dimensions, les points bleus des points orange.
Il s'agit de séparer les points oranges des points bleus, en deux dimensions. Un modèle linéaire va donc créer une droite comme fonction de décision. Mais on n'aura jamais de bonnes performances avec une droite ! Quelle frontière de décision serait plus appropriée ? Personnellement, je verrais bien un cercle centré à l'origine. Si j'appelle et mes deux dimensions, un cercle a pour équation , où R est son rayon. J'ai donc 1 unique paramètre à déterminer : le rayon R du cercle. Mais ma boite à outils de modèles linéaires ne permet pas de faire ça...
Comment faire? En fait, il me suffit de remarquer que si je crée deux nouvelles variables et , alors mon équation devient ce qui est une équation... eh oui, linéaire ! En utilisant une application qui a (x1, x2)' associe (x1², x2²)', j'ai décrit mon problème dans un nouvel espace, appelé espace de redescription, défini par les coordonnées et dans lequel mon problème est linéaire.
Dans le cas du cercle centré à l'origine, mon espace de redescription fait la même dimension que l'espace dans lequel mes données étaient initialement décrites.
Mais prenons un cas plus général, par exemple celui d'une ellipse (alignée avec les axes). L'ellipse a pour équation . Pour arriver à la décrire dans un espace linéaire, je vais avoir besoin de plus de deux dimensions. Par exemple, je peux prendre . J'utilise maintenant quatre dimensions. Ce cas de figure ressemble plus à ce que nous rencontrerons en pratique : l'espace de redescription sera de dimension beaucoup plus grande que l'espace initial.
Par exemple, pour apprendre un polynôme de degré d en p dimensions, il faut utiliser comme nouvelles variables tous les monômes de degrés inférieur ou égal à d, c'est-à-dire tous les polynômes de la forme où et .
Étant donné un jeu de données étiquetées par , je peux maintenant appliquer un algorithme de machine learning linéaire (par exemple, SVM linéaire ou régression ridge) dans l'espace de redescription : je vais apprendre une fonction g linéaire sur les données transformées et leurs étiquettes . Ma fonction de décision sera donc : pour faire une prédiction, je commence par calculer l'image de x dans l'espace de redescription, puis je lui applique g. La fonction g est linéaire en , mais la fonction f n'est pas linéaire.
Ce processus est bien évidemment valable pour un problème de régression comme de classification. Ainsi, une façon de construire une fonction de décision non-linéaire est de redécrire les données dans un nouvel espace dans lequel on apprend une fonction de décision linéaire.
En résumé
Il est possible d’appliquer un algorithme linéaire à un problème non linéaire.
Une façon de construire une fonction de décision non linéaire est de redécrire les données dans un nouvel espace dans lequel on apprend une fonction de décision linéaire.
Deux questions se posent maintenant : comment choisir l'application Φ et l'espace de redescription ? Comment apprendre de manière efficace dans un espace de redescription de dimension potentiellement très grand ?
C'est ce que nous verrons dans le prochain chapitre !