Machine Learning pour les moins-nuls!
15 mars 2022
Par
Sur un plan général l’IA permet de favoriser le développement et la digitalisation des activités des entreprises suivant différentes ....
Sur un plan général l’IA permet de favoriser le développement et la digitalisation des activités des entreprises suivant différentes dimensions :
· Contribuer au Contrôle de la Qualité : Il est par exemple possible d’identifier des anomalies sur une chaine de production,
· Accroitre le Volume de Chiffre d’Affaires : Développer les ventes en effectuant des recommandations pouvant intéresser des clients,
· Améliorer la Sécurité : Détecter des utilisations frauduleuses de cartes de crédits,
· Concevoir de Nouveaux Services : Dans le domaine médical trouver de nouvelles stratégies thérapeutiques,
· Effectuer des Prévisions : Prévoir les futurs résultats d’une entreprise en fonctions d’indicateurs de performances.

Ce tableau est sans doute un peu simpliste pour les spécialistes. Cependant ce qu’il faut retenir est que soit l’IA apprend à partir d’exemples, ou par elle-même, ou même à l’aide d’une autre IA.
Dans le cas où elle apprend à partir d’exemples, les données fournissent la cible (« target ») (Par exemple : La bonne image, le prix recherche, l’email spam, la radio avec une tumeur, etc…), dans le cas contraire l’IA ne connait pas la réponse correcte et doit donc apprendre par elle-même (C’est le cas par exemple de la segmentation marketing où il faut trouver des groupes distincts de consommateurs).
Aujourd’hui l’IA est partout et de très nombreuses entreprises ont déjà intégré l’IA dans leurs process comme par exemple : Microsoft, Ant, Alibaba, Google, Facebook, Tencent, Zebra Medical Vision (Nanox), Wayfair, Indigo Ag, Ocado, Amazon, Spotify, Walmart, Fidelity, Honeywell, Comcast, Baidu, VTC Didi, Grab, Lyft, Uber, Waymo, Nordstrom, Vodafone, Visa, Expedia, et plein d’autres encore …
Au cours d’un article précédent, nous avons exploré les concepts de base du Machine Learning à partir d’un exemple simple, examinons plus précisément comment cela s’applique dans la pratique sur un cas concret.

Explications complémentaires :
Les données (ici 15 valeurs) sont organisées sous la forme d’une matrice avec k lignes (le nombre d’observations, qui est par exemple de 100) et n +1 colonnes (ici 15 = les variables + 1).
Notons que n = 14.
La première colonne représente le Prix de vente des maisons, les autres colonnes les autres valeurs des variables observées (n valeurs).
Par convention on sépare cette matrice en deux parties : la première Y comportant une colonne (matrice vecteur k x 1) pour les « targets », et la seconde X avec 14 colonnes (matrice k x 14), ou (k x n) pour les « features ».
Toujours par convention, on rajoute une nouvelle colonne de 1 à la matrice X, qui prend alors la dimension k x (n+1).

Explications complémentaires :
Dans l’exemple simplifié, le modèle est représenté par l’équation de la droite
y = mx + p où les coefficients m et p s’appellent les paramètres du modèle.
On a calculé dans EXCEL (cf. article précédent) ces paramètres en partant de valeurs initiales situées autour de m0 et p0, et en optimisant la distance euclidienne des points du graphique par rapport à la droite de régression, c’est-à-dire la distance minimale.
Dans le cas concret on procède simplement par analogie (on laisse la démo aux puristes), le modèle sera représenté par le produit matriciel :
Y = X . H ( c’est analogue à la droite y = mx)
Y représente, la matrice des données précédentes, avec une colonne (matrice vecteur k x 1) (100 x 1) pour les « targets »
X représente, également la matrice des données précédentes, avec 100 lignes et 15 colonnes (matrice k x 15), ou [k x (n+1)] pour les « features »,
H représente, la matrice des paramètres, avec une seule colonne (matrice vecteur 15 x 1), ou [(n + 1) x 1] pour les différentes valeurs de paramètre (m1, m2, m3, etc..).
Remarquons que pour le modèle considéré, le nombre de paramètres du modèle est égal au nombre de variables + 1, soit n+1, ici 15 paramètres pour 14 variables.
Comme pour le modèle simplifié, dans le cas concret, le but est de faire varier les paramètres du modèle afin de trouver la « droite de régression » optimale correspondant à la distance euclidienne minimale des points du graphique à cette droite de régression. Bien sûr le tout se situant non plus dans un espace à 2 dimensions mais à n+1 dimensions.

Explications complémentaires :
Dans l’exemple simplifié, 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.
La distance au carré d’un point P1, représentant la première observation, à la droite
y = mx + p est donnée par la formule :
(Attention dans les formules qui suivent la fonction puissance n'est pas correctement retranscrite par l'éditeur de texte, il faut lire ^^2 ou ^^1/2 suivant les cas)
d1^^2 = ((y1 – m*x1 – p)^^2 ) / (1 + m^^2)
d1 = [((y1 – m*x1 – p)^^2 ) / (1 + m^^2)] ^^1/2
La fonction erreur J :
J = (1/2k) ∑ [((yi – m*xi – p)^^2 ) / (1 + m^^2)] ^^2
la somme variant de 1 à k pour les valeurs de i
C’est la demi-moyenne des distances au carre par rapport à la droite de régression, des différentes observations (ce que l’on appelle l’erreur quadratique moyenne).
Dans le cas concret, on fait la transposition par rapport au cas simplifié avec la notation matricielle.
J = (1/2k) ∑ [(X . H) - Y ]^^2
la somme variant de 1 à k
Comme la matrice X est de dimension k x (n+1), et que H est de dimension (n+1) x 1, le résultat du produit matriciel X . H est de dimension k x 1, de même dimension que Y, et lorsque l’on somme ces valeurs au carré on obtient une nouvelle valeur, c’est-à-dire un scalaire (ou simplement une valeur).
Calcul du Gradient :
Dans l’exemple simplifié le gradient s’appelle écart quadratique, dans le cas concret l’équivalent est donné par la formule :
∂J / ∂H = (1/k) XT . [(X . H) - Y ]
L’écriture ∂J / ∂H signifie que l’on calcule la dérivée partielle de J par rapport aux variables H (les paramètres du modèle), XT est la matrice transposée de X (les lignes deviennent des colonnes).
Gradient Descent :
Il s’agit de déterminer de quelle valeur faut-il faire varier les paramètres du modèle à chaque itération ? Ceci est donné par la formule :
H’ = H – α ( ∂J / ∂H )
H’ est la nouvelle matrice des valeurs des paramètres.
Le coefficient α est appelé learning rate, c’est en quelque sorte le pas de l’itération, s’il est trop grand ou trop petit, et en tout cas mal calibré l’itération ne converge pas. Dans la pratique on l’ajuste de manière empirique.
Conclusion :
Voici un exemple concret d’IA permettant de résoudre le problème posé qui est de réaliser un modèle pour calculer un prix immobilier à partir de données de marché et l’INSEE.
Suivant les problèmes à résoudre on devra peut-être utiliser un autre modèle qu’une régression, par exemple un réseau de neurones, mais les principes restent identiques seules les fonctions changent.
Deux éléments sont essentiels, il y a d’une part les données, et d’autre part le modèle. En fait l’élément le plus important concerne les données, pour le modèle il s’agit de formulations mathématiques ce qui peut être facilement effectué par les outils disponibles sur le marché de l’IT.
Ainsi tous ces calculs mathématiques sont traités facilement dans la pratique. Si l’on utilise un langage de programmation tel que Python et ses bibliothèques d’applications ces calculs deviennent alors très simples, une fois que les principes de l’application IA sont acquis.
Cependant l’élément fondamental concerne les données, c’est ce vers quoi il est nécessaire de se focaliser lorsque l’on traite un problème de ML, et c’est ce sujet que nous allons traiter dans un prochain article.