Le machine learning
Définition du machine learning
Les différents sous-domaines du machine learning
Dans le chapitre L’analyse des données, nous avons décrit les principes de base de l’intelligence artificielle que nous retrouvons dans les sous-domaines que sont le machine, le deep et l’apprentissage par renforcement que nous verrons au chapitre L’apprentissage par renforcement.
L’Organisation internationale de standardisation (ISO) a proposé une définition précise du machine learning : "L’apprentissage par machine est le processus par lequel une unité fonctionne, améliore ses performances en acquérant de nouvelles connaissances ou compétences, ou en réorganisant les connaissances ou les compétences." On peut remplacer l’expression "processus par lequel une unité fonctionne" par le terme ’’algorithme’’. Autrement dit, "l’apprentissage machine" est un algorithme qui s’autoaméliore.
Cette autoamélioration n’est pas possible dans la programmation classique, car toutes les instructions ont déjà été préalablement codées. Le programme ne fait donc rien de plus. Il ne gère pas les cas inconnus et évidemment ne prend pas d’“initiatives”. Un algorithme d’apprentissage automatique peut...
Le métier de data scientist
La data science est une discipline au croisement entre l’informatique et les mathématiques. Son objectif est l’exploitation de données (l’aspect "data" de ’’data science’’) issues de sources variées pour en extraire de l’information au travers de méthodes qui viennent notamment de l’intelligence artificielle (l’aspect "science") dans le but d’aider les entreprises à devenir data-driven. De cette façon, les données empiriques viendront équilibrer les intuitions humaines pour accroître l’efficacité de l’entreprise. Sans données, un projet de data science serait dans une situation de cold start problem. Le terme cold start problem désigne une situation dans laquelle nous démarrons un projet de data science sans données.
Un des métiers emblématiques de ce domaine est celui de data scientist. Ce métier relativement récent a énormément fait parler de lui, notamment après que le prestigieux journal Harvard Business Review l’a qualifié de "job le plus sexy du XXIe siècle". Un data scientist programme également. Mais là où le développeur écrit des lignes de code pour décrire un ensemble d’instructions que le programme doit exécuter, le data scientist entraîne...
Cas de l’analyse des prix du loyer
Un exemple très souvent utilisé est celui de la détermination du loyer d’un appartement en se basant sur sa surface totale. Il s’agit d’un problème de régression (voir le chapitre Les algorithmes d’intelligence artificielle) dans le cadre d’un apprentissage supervisé. Prenons un tableau de données qui recense le coût des loyers et la surface de quelques appartements situés dans les Hauts-de-Seine :
Loyer en € |
Surface en m2 |
740 |
25 |
880 |
35 |
650 |
19 |
2630 |
103 |
1895 |
67 |
Notre problème consiste à déterminer automatiquement les prix du loyer pour des surfaces encore inconnues. Une observation assez rapide nous permet d’établir une relation qui se résume ainsi : plus l’appartement est grand, plus le loyer est élevé. Il s’agit d’une relation de corrélation.
Il peut être utile de compléter cette observation du tableau par une représentation graphique :
Cette représentation s’appelle un nuage de points (scatter plot). Il existe de nombreuses représentations qui facilitent le travail d’exploration des données. Grâce à cette visualisation, nous constatons qu’effectivement le prix d’un appartement augmente avec sa surface, et inversement.
Des mathématiciens ont créé...
Découvrir des modèles très utilisés
Une des étapes importantes quand on fait du machine learning consiste à choisir un modèle à appliquer aux données dans le but d’effectuer des prédictions. Le choix du modèle dépend de l’objectif (régression ou classification) et du type d’apprentissage (supervisé, non supervisé, renforcement). Sachant qu’il existe plusieurs centaines de méthodes et d’algorithmes de machine learning, comment choisir ? En appliquant la loi de Pareto, ou loi des 80/20, sur les algorithmes de machine learning, nous arrivons à la conclusion logique et empirique selon laquelle les plus utilisés sont relativement peu nombreux. Dans la plupart des classements des algorithmes les plus utilisés, nous retrouvons les suivants :
-
régression linéaire
-
régression polynomiale
-
clusturing K-moyennes
-
analyse en composantes principales
-
méthode des K plus proches voisins
Des informaticiens ont traduit sous la forme de langage de programmation les formules mathématiques utilisées pour modéliser des données en data science. Cette traduction a souvent pris la forme de bibliothèques (modules) qui contiennent autant de fonctions qu’il y a de modèles. Scikit Learn est l’une des bibliothèques les plus utilisées au monde pour faire du machine learning. L’une des raisons de son succès dans ce domaine est sa simplicité d’utilisation. Quatre étapes permettent d’effectuer des prédictions sur des données :
-
Appel du modèle : on importe le module correspondant à un modèle précis ou à une famille de modèles.
-
Phase d’entraînement : on entraîne le modèle en lui fournissant des données d’entraînement représentatives du phénomène. Dans le cas d’un apprentissage supervisé, on lui fournit des données explicatives et cibles pour qu’il trouve les bons paramètres afin d’effectuer une prédiction sur des données inconnues.
-
Score : on mesure les performances du modèle pour évaluer à quel point il arrive à être proche des valeurs réelles.
-
Prédiction :...
Notre choix de modèle
Maintenant que nous avons succinctement expliqué certains modèles, lequel allons-nous choisir pour notre problématique de calcul du loyer d’un appartement en nous basant sur sa surface ? Pour choisir le bon modèle, nous devons garder à l’esprit notre objectif défini dans la section Cas de l’analyse des prix du loyer : effectuer une régression dans un contexte d’apprentissage supervisé. Puisque nous avons appliqué le coefficient de corrélation linéaire sur les loyers et les surfaces et obtenu un résultat plus que correct, et que nous recherchons un chiffre (régression), nous allons utiliser le modèle de la régression linéaire simple.
La régression linéaire simple (ou univariée) convient, car une seule variable explicative est utilisée. Ici, il s’agit de la taille d’un appartement en mètres carrés. L’algorithme de régression linéaire trace une droite (la fonction mathématique hypothèse du modèle) qui va passer au plus près de tous les points présents. En effet, il trouve tout seul (automatiquement) le coefficient directeur et l’ordonnée à l’origine optimaux pour tracer cette droite. C’est la phase d’apprentissage. Tout cela grâce à des informaticiens qui ont traduit les modèles mathématiques sur lesquels sont construits...
Exemples d’applications
Comme beaucoup d’innovations technologiques, le machine learning a d’abord été utilisé dans le domaine militaire avant d’entrer dans le domaine civil. Par exemple, il a été utilisé dans l’aérospatiale pour aider les fusées lors des phases de mise en orbite. C’est ce que fait par exemple SpaceX, l’entreprise d’Elon Musk, qui permet même de faire atterrir des fusées.
Aujourd’hui, il est massivement utilisé dans le domaine commercial dans le cadre de systèmes de recommandation qui ont pour but de proposer des produits ou services (biens de consommation, publicités...) qui ciblent toujours mieux les clients. Vous l’avez sûrement remarqué quand, après avoir indiqué "voiture" ou "chaussure" sur un certain site web, vous vous retrouvez avec des publicités correspondantes sur d’autres sites.
Le machine learning est également utilisé dans l’industrie pour la détection et la prévision de pannes. En effet, les process industriels peuvent présenter un caractère rigide en remplaçant des pièces à une date fixe plutôt qu’à la date optimale. Le machine learning apporte son aide en trouvant des corrélations entre l’usure d’une pièce...
Faire du machine learning avec JavaScript
Comme vous l’avez remarqué, nous n’avons parlé que de Python dans le chapitre L’analyse de données ainsi que dans celui-ci. Pourquoi ? Est-ce parce qu’on ne fait pas de data science et de machine learning avec JavaScript ? Oui et non.
La majorité des applications d’intelligence artificielle utilisent le langage Python et R. Le langage R a été créé spécialement pour le calcul statistique et la création de graphiques. Python a intégré le domaine de l’intelligence artificielle plus tard et s’y est imposé. Cela explique d’ailleurs la croissance continue de sa popularité en tant que langage de programmation pour atteindre la deuxième place. Qui est à la première place ? JavaScript. Il n’est donc pas étonnant que depuis peu des bibliothèques permettant de faire de l’intelligence artificielle avec JavaScript apparaissent, rendant possible l’exécution de modèles depuis un navigateur.
JavaScript a de nombreux avantages à faire valoir pour toute personne intéressée par l’intelligence artificielle. Il est très connu et populaire, il est sécurisé, plus rapide que Python et très polyvalent. Citons quelques bibliothèques intéressantes pour faire de la data science avec JavaScript.
1. Math.js
Math.js est une bibliothèque de calculs mathématiques en JavaScript, utilisable dans un navigateur....