10 minutes de lecture
Cet article est un guide très simple et basique pour expliquer le machine learning. Les termes des « technos » ont envahi le discours professionnel dans tous les horizons et je souhaite démystifier le machine learning en quelques étapes.
Cet article ne cherche pas à être exhaustif mais il poursuit comme unique but d’expliquer simplement certaines notions que l’on rencontre lorsque l’on essaie de s’intéresser au machine learning.
Résumons le machine learning comme étant une « technique permettant à la machine de résoudre des problèmes pour les humains. »
Donc l’idée principale est d’apprendre à la machine comment résoudre des problèmes. Alors que beaucoup de personnes sont au courant du but que poursuit le machine learning, rares restent ceux dans le monde « hors technos » qui connaissent les techniques permettant à la machine d’apprendre à résoudre des problèmes.
Nous allons ainsi parcourir certaines techniques et ce de manière très simple et abordable pour tout être curieux.
La régression linéaire
La régression linéaire est une technique de machine learning qui comporte les étapes suivantes :
- Calcul de la droite d’ajustement à partir d’un set de données
- Utiliser la droite d’ajustement pour prédire de nouvelles données.
Ensemble de données dans un plan à deux dimensions se prêtant parfaitement à la régression linéaire (Source : https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch04.html)
Donc l’idée principale est de calculer à partir de ces données une droite d’ajustement :
Droite d’ajustement pour une régression linéaire (Source : https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch04.html)
Le terme machine learning est ici prononcé parce que la machine apprend à partir des données fournies pour créer une équation mathématique capable de calculer comment les données sont liées entre elles. Il en résulte la droite d’ajustement. En se référant à cette ligne, on est en mesure de faire des prédictions sur l’évolution de la valeur des données.
Par exemple, imaginons que nous cherchons à connaître le poids des personnes en fonction de leur taille pour des personnes ayant un « Body Mass Index » correct. La droite d’ajustement mettrait en évidence que plus la taille de la personne augmente plus le poids augmente. En ayant comme seules données le poids des personnes mesurant entre 1m60 et 1m75, une régression linéaire des données nous permettra de connaître les poids des personnes mesurant entre 1m76 et 2m.
Les limites de la régression linéaire
La régression linéaire fonctionne merveilleusement lorsque les données analysées permettent le tracé d’une droite de meilleur ajustement.
Mais qu’en est-il quand les points de données ne font apparaître aucune forme linéaire ?
Données sans forme linéaire apparente (Source : https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch04.html)
Lorsque la droite d’ajustement n’est pas en mesure de représenter de manière conforme les points de données, on parle de « underfitting ». Un terme anglais pour tout simplement mettre en évidence qu’une régression linéaire n’est pas adaptée pour représenter précisément les points de données.
Face à ces cas de figure, un dérivé de la technique de la régression linéaire est capable de bien mieux représenter les données, particulièrement lorsque les données peuvent être liées par une courbe. Dès lors, on recourt à la régression polynomiale.
La régression polynomiale
Régression linéaire vs Régression polynomiale.(Source : https://ardianumam.wordpress.com/2017/09/21/polynomial-regression-using-least-square-estimation/)
Le choix d’utiliser la technique de la régression polynomiale ne s’arrête pas à simplement remplacer une droite linéaire par une courbe ; il faut encore déterminer le degré de courbure pour représenter de la meilleure des manières possibles les points de données.
Exemple de différents types de « Curve Fitting » (Source: https://www.originlab.com/index.aspx?go=Products/Origin/DataAnalysis/CurveFitting)
Le fait de pouvoir déterminer la courbe, rend la technique de la régression polynomiale particulièrement flexible.
Toutefois, cette souplesse peut également s’avérer comme étant le plus grand défaut de la technique. Effectivement, un excès de flexibilité amène à un défaut de généralisation. Dès lors, nous ne sommes plus en mesure de prévoir correctement la relation entre les données et le modèle manque de précision de calcul pour toutes les nouvelles données. La courbe ne représente plus les points.
Ce phénomène est appelé dans le jargon des technos « overfitting ». Ainsi, le challenge pour les régressions linéaires est de calculer un niveau de courbure suffisamment précis pour généraliser correctement l’ensemble des points de données.
En pratique, les Data Scientist privilégient de tester différents degrés de courbure et ils mesurent leur efficacité. La complexité du calcul de ce degré s’accentue évidemment lorsqu’on travaille avec un « set » de données de plus de deux dimensions.
Les Réseaux de Neurones
Pour arriver à trouver le degrés précis de courbe pour des « set » de données très compliqués, les réseaux de neurones s’avèrent comme particulièrement performant. Ils permettent de tester d’innombrables possibilités et de trouver le degré optimal.
Inutile de rentrer à ce stade dans les détails, il suffit de retenir que pour réguler les régression polynomiale, les réseaux de neurones se manifestent comme une technique particulièrement performante.
La régression logistique
Les techniques précédemment énoncées nous permettent à partir d’une base de données de calculer la valeur de nouvelles données.
Mais qu’en est-il au niveau de répondre une question précise à partir d’un set de données ? Par exemple, est-ce que cet article de presse m’intéresse ou est-ce que cette radiographie détecte une fracture ?
Tout d’abord, la qualité des données déterminent fortement la précision des réponses du modèle. Pour déterminer si un mail est un spam ou la valeur de votre voiture dans un an, une technique de machine learning répandue est appliquée : la régression logistique.
Le mode de fonctionnement de la régression logistique ne diffère que très peu de la régression linéaire dans le mesure que les deux vont établir une droite d’ajustement. La différence entre les deux modèles résident toutefois dans le rôle de la droite d’ajustement.
Alors que la droite d’ajustement pour les régressions linéaires prédit une nouvelle donnée à partir d’un set de données, la droite d’ajustement de la régression logistique cherche à diviser le set de données en deux groupes.
(Source : https://medium.com/blogaboutgoodscompany/guide-simple-des-bases-de-lintelligence-artificielle-bcd3d077633d)
La division du des données en groupes permet de catégoriser un ensemble ou des ensembles de data selon la question posée.
Le set de données peut être également divisé par une courbe et ainsi reprendre les techniques de la régression polynomiale.
Ces techniques permettent toutefois uniquement de répondre à des questions oui/non. Pour répondre à des questions complexes avec plusieurs options de réponses, les Data Scientist recourent soit à des réseaux neuronaux ou à une régression logistique multinomiale.
Pour approfondir un peu plus vos connaissances en matière de régressions, je vous invite à lire l’article « 5 types of Regression and their propreties » de George Seif. [1]
La précision d’un modèle détermine sa qualité
Les techniques de régressions et de réseaux neuronaux permettent ainsi de prédire l’évolution d’une variable ou de répondre à des questions oui/non ou même plus complexes.
Toutefois, mesurer la performance de son modèle ne s’avère pas toujours évident sachant que les questions posées à la machine peuvent comporter une partie de subjectivité et elles peuvent ainsi même poser des difficultés à l’humain.
Prenons comme exemple la détection d’une fracture lors d’une radio de votre tibia. Comment est-ce que le Data Scientist déterminent la qualité de son modèle ?
Nous allons entraîner un modèle en donnant des exemples et en guidant la machine vers la bonne réponse ; cette technique est appelée l’apprentissage supervisé.
Nous disposons d’un data set de 100 radios de tibia. Au lieu de donner l’ensemble des 100 données, nous allons garder à la discrétion de la machine 30 % des radios. Le modèle est entraîné sur base de 70 % restant.
Sur les 70% de données, nous allons guider la machine au fur à mesure en lui indiquant par Oui/Non la présence d’une fracture du tibia sur la radio.
Le fait de garder une partie du data set hors de l’apprentissage, nous permet d’injecter ces 30 % de nouvelles données dans le modèle qui a été entrainé.
Ensuite, il suffit de comparer les réponses données par le modèle avec ce qui est réellement représenté sur les radios et de calculer le pourcentage de précision.
Pour finalement calculer la précision globale du modèle, il suffit de de diviser les réponses correctes données par le modèles par l’ensemble du data set.
Donc pour notre exemple, si le modèle a donné 80 réponses correctes, le calcul de son taux de précision est de : 80/100 = 80%.
D’autres méthodes de calcul de performance de modèle existent toutefois. On peut par exemple calculer la précision du modèle en fonction du nombre de radios sur lesquelles une fracture a été détectée avec succès par le modèle divisée par le nombre de total de radios contenant une fracture dans l’ensemble du data set. Les méthodes de calcul sont généralement choisi selon les résultats obtenus.
[1] https://towardsdatascience.com/5-types-of-regression-and-their-properties-c5e1fa12d55e
Cet article a été rédigé par Djamel Belhaouci, Doctorant en droit et Responsable du développement de Juri’Predis