Michel-Henry Namy
Machine Learning pour les nuls!
Le Machine Learning c’est quoi ? C’est comme l’IA,
L’IA c’est quoi ? C’est comme le Deep Learning,
Le Deep Learning c’est quoi ? C’est exactement la façon dont un jeune enfant apprend ! (et les grands un peu moins bien).
Et tout cela c’est la même chose !
Au cours de cet article nous allons expliquer d’une manière aussi pédagogique que possible ce dont il s’agit.
Cet article est le premier d’une série de 3 autres, qui traiteront des différentes phases du développement d’un projet de Machine Learning, à savoir :
· Introduction des concepts,
· Application des concepts à un projet en vraie grandeur,
· Préparation des données, l’étape clé du processus.
" On apprend en faisant des erreurs… et c’est exactement le mécanisme du Machine Learning "
On va partir d’un exemple ultra simple. Admettons que je sois à la recherche d’un appartement à acheter sur Marseille dans le 9eme arrondissement.
La question que je voudrais résoudre est de savoir quel serait le prix optimal de marché pour l’appartement de 60 m2 que je recherche ?
Pour résoudre ce problème, je vais collecter les prix de vente, et surfaces sur plusieurs appartements du 9eme en consultant les annonces récentes d’appartements à vendre (ce sont les données).
Je vais ensuite prendre toutes ces données collectées, et les représenter sur un graphique. Donc pour chaque appartement je porte sur l’axe des x la surface, et sur l’axe des y le prix correspondant. On obtient ainsi une sorte de nuage de points.
Normalement, ce nuage de points doit avoir la forme d’une sorte de « patate » allongée, et ceci me donne l’idée qu’une droite, pourrait bien pouvoir représenter le modèle des données.
Si je me rappelle mes souvenirs de mathématiques en 4éme au Collège, une droite est représentée par l’équation y = mx + p où les coefficients m et p s’appellent les paramètres du modèle, et ce sont donc ces valeurs que je vais calculer.
Pour ce faire, je vais utiliser une méthode toute simple de calcul, je vais faire sur Excel un tableau avec 2 colonnes pour commencer, une pour les valeurs de m, l’autre pour les valeurs de p, et ensuite autant de doubles colonnes que j’ai de données collectées sur les appartements.
Je vais maintenant mettre dans les 2 premières colonnes m et p toute une série de chiffres. Je pourrai prendre des nombres au hasard, ou de 1 à 200 par exemple. En réalité je vais essayer de m’approcher de la droite idéale. Pour ce faire avec une règle et un crayon je trace une droite approximative dans le nuage de points, et je note deux choses, la valeur d’intersection de cette droite avec l’axe des y (c’est la valeur p0), et la pente de la droite, c’est en un point quelconque de la droite, le nombre de carreaux sous la droite sur la verticale, divisé par le nombre de carreaux sous la droite sur l’horizontal, avec le signe + si la droite va vers le haut, et – si c’est vers le bas (C’est la valeur m0).
Je reviens dans ma feuille Excel et je note pour la colonne m la valeur m0 que je viens de calculer, ainsi qu’une dizaine de chiffres autour de cette valeur en plus et en moins.
Je fais la même chose pour p et la valeur p0.
Maintenant dans chaque double colonne correspondant à chaque appartement (sur Excel) je recopie simplement la première ligne de chiffres sur toutes les autres lignes) je vais calculer dans une troisième colonne du tableau que je crée pour chaque appartement, pour chaque couple de valeurs m et p (donc sur chaque ligne du tableau), une valeur d, donnée par la formule :
d ^2 = ((y – m*x – p)^2 ) / (1 + m^2) que je peux introduire ou paramétrer dans une calculette (ou sur Excel bien entendu).
(Si je souhaite connaitre la distance d j’en prends la racine carrée)
NB le carré d’un nombre est indiqué par le signe ^2, et je calcule le carré de la distance soit d^2, x et y sont les valeurs collectées précédemment (surface et prix des appartements), et m et p sont les valeurs de mes paramètres pour chaque ligne du tableau.
Pour information, cette formule n’est pas magique, c’est la formule qui donne la distance au carré entre le point du graphique représentant un appartement et la droite que l’on a tracé à la main (Pour les puristes, cette distance s’appelle la distance euclidienne).
Donc pour chaque valeur d’une ligne du tableau Excel, je calcule les valeurs de d^2 pour chaque appartement, et je crée une dernière colonne dans laquelle j’inscrits le total des distances d^2 divisé par 2 et par le nombre d'appartements relevés (le nombre d'observations) (c'est ce que l'on appelle la fonction erreur voir le NB ci-après).
La solution se trouve en lisant les valeurs m et p pour lesquelles ce total (dernière colonne) est minimum.
NB La fonction erreur (c'est le terme consacré)est égale à ½ de la moyenne des valeurs au carré des distances.
Maintenant que j’ai trouvé m et p (on notera m1 et p1 ces valeurs), l’équation de la droite est donc y = m1*x + p1, c’est donc mon modèle.
Je la trace sur le graphique.
Pour résoudre mon problème initial, je lis 60 m2 sur l’axe des x, je trace une ligne verticale, qui coupe cette droite (celle du modèle) au point P, et du point P je trace ensuite une droite horizontale, qui coupe l’axe des y à la valeur recherchée.
C’est le prix optimal en valeur de marché que je cherche pour mon appartement.
En résumé les concepts sont les suivants :
1. Les Données
Dans l’exemple ce sont les valeurs surfaces et prix, mais dans la pratique on a beaucoup plus de caractéristiques (features), et ce que l’on cherche reste toujours le prix (target) dans ce cas.
2. Le Modèle et ses Paramètres
Dans l’exemple choisi, le modèle est une droite (dite droite de régression), mais en fonction des données de départ et du problème posé on peut avoir de nombreux autres types de modèles (classement, courbe, fonction, etc..) ainsi que des paramètres correspondants.
3. La Fonction Erreur et sa Convergence
Dans l’exemple choisi, la fonction erreur est la moitié de la moyenne des distances euclidiennes des points à la droite de régression, et on comprend facilement que plus les points sont proches de cette droite plus le modèle est représentatif.
On saisit également que l’on trouve les bons paramètres de la droite par itérations successives (les lignes du tableau Excel), mais qu’il fallait choisir les données de départ de telle manière que l’ensemble des itérations converge.
En conclusion certains pourraient penser que tout cela est très intéressant, mais aurait pu être réglé avec une simple feuille de papier, une règle et une calculette. Or il ne s’agit là que d’un exemple de problème ultra simple, destiné uniquement à illustrer les principes du Machine Learning. Nous allons voir par la suite dans les articles suivants que la puissance de l’IA ou du Machine Learning est capable de résoudre tout problème même le plus complexe.