Accueil
Les algorithmes de Machine Learning

Les algorithmes de Machine Learning

Intéressé par les formations de Jedha ?
Voir le syllabus de Jedha
Nos derniers articles !

Le Machine Learning est une technique de programmation informatique qui se sert activement des probabilités et statistiques afin de permettre aux ordinateurs d'apprendre de manière autonome. La finalité est de les faire agir et réagir sans qu'ils ne soient explicitement programmés pour. Le développement d'un modèle de Machine Learning nécessite la sélection et la préparation d'un ensemble de données d'entraînement, mais pas uniquement.

Qu'est-ce qu'un algorithme de Machine Learning ?

De manière générale, un algorithme désigne un ensemble d'opérations ordonnées et finies qui doivent être suivies dans un ordre donné pour résoudre un problème. En informatique, ce sont les algorithmes présents dans les programmes qui indiquent à l'ordinateur que faire et comment le faire.

Les algorithmes sont utilisés dans de nombreux domaines. En data sciences, on les utilise particulièrement pour le Machine Learning. Les algorithmes de Machine Learning sont une classe bien spécifique d'algorithmes. Enseignés dans une formation Data, ils ne reçoivent pas d'instructions contrairement à beaucoup d'autres algorithmes.

Ce sont des programmes à même d'apprendre en toute autonomie à partir des données. Ils sont ainsi capables de s'améliorer avec les entraînements et sont employés pour accomplir des tâches comme la simple analyse de données ou des prédictions.

De même, les algorithmes de Machine Learning sont capables de prendre de meilleures décisions sur la base de données qui leur sont fournies en amont.

La connaissance et la maîtrise des algorithmes d'apprentissage automatique sont indispensables pour ceux qui envisagent de faire carrière dans ce domaine. Ces compétences peuvent être développées via une formation de qualité et certifiante comme celle délivrée par Jedha. La formation Data de Jedha est en pôle position des formations Data en France. Tout est fait pour offrir aux apprenants la meilleure expérience possible dans le cadre de cette formation.

Quels sont les différents types d'algorithmes Machine Learning ?

Les algorithmes développés en Machine Learning peuvent être rangés en trois catégories : l'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage par renforcement.

L'apprentissage avec supervision

En apprentissage supervisé, les opérateurs présentent des exemples d'entrées et de sorties à l'ordinateur qui cherchent alors activement des solutions pour obtenir ces sorties selon les entrées. L'objectif est que la machine apprenne la règle mappant les entrées et les sorties. Plus concrètement, dans le Machine Learning avec supervision, les données présentées à la machine sont le plus souvent étiquetées afin de lui indiquer les patterns qu'il doit rechercher. Il n'est pas rare que les données en question soient déjà classifiées de la façon dont le système sera amené à le faire après entraînement.

L'apprentissage avec supervision nécessite moins de données d'entraînement. Le processus s'en trouve également facilité en raison de la comparaison avec les données déjà étiquetées. On utilise notamment le Machine Learning avec supervision pour faire des prédictions sur des données futures. Dans ce cas, l'algorithme à partir de variables d'entrée développe une fonction capable de prédire précisément.

On distingue principalement deux types d'algorithmes parmi les algorithmes d'apprentissage : les algorithmes de classification et de régression. La classification permet de prédire le résultat d'un échantillon donné pour les variables de sortie qui se présentent sous forme de catégorie. La régression par contre est utilisée pour prédire le résultat d'un échantillon lorsque la variable de sortie est une valeur réelle spécifique.

Le Machine Learning sans supervision

Dans le cas de l'apprentissage sans supervision ou apprentissage des caractéristiques, l'algorithme se charge de déterminer seul la structure des données d'entrée. Aucune des données n'est annotée et la machine s'applique à explorer les données afin d'identifier des patterns. Cette approche permet d'identifier des relations qui peuvent facilement échapper à l'attention des humains. L'algorithme de reconnaissance faciale de Facebook est un bel exemple de Machine Learning sans supervision.

On distingue également différents types d'apprentissages sans supervision : le clustering, l'association, la réduction de dimensionnalité. Le clustering permet de regrouper des échantillons de façon homogène dans différents groupes ou clusters. Les objets contenus dans chacun d'eux sont plus similaires entre eux qu'ils ne le sont avec ceux d'autres groupes. En data sciences, l'association est utilisée pour identifier les règles qui permettent de définir de grands groupes de données. La réduction de dimensionnalité comme l'indique son nom est employée pour réduire le nombre de variables d'un ensemble de données tout en veillant à la transmission des informations importantes.

Le Machine Learning par renforcement

Dans l'apprentissage par renforcement, un programme interagit avec un environnement dans lequel il doit pouvoir réaliser une tâche précise. S'il décide de la meilleure action à effectuer ou non, il reçoit un feed-back sous la forme de récompense ou de punition. Dans un jeu vidéo par exemple, l'action à réaliser peut être par exemple d'affronter un adversaire. Avec le Machine Learning par renforcement, les algorithmes s'entraînent à réaliser les actions optimales en apprenant de leurs erreurs. C'est de cette façon qu'AlphaGo, une intelligence artificielle de Google a pu battre le champion de Go.

On distingue en général deux types d'apprentissages par renforcement : Monte-Carlo et le Machine Learning par différence temporelle ou TD. Dans le premier cas, le programme reçoit ses récompenses uniquement à la fin. Dans le TD par contre, il est récompensé à chaque étape.

Comment construire un algorithme ?

Qu'il s'agisse d'un algorithme de Machine Learning ou non, la procédure de construction d'un algorithme reste la même. Elle est largement enseignée dans le cadre d'une formation Data.

De l'algorithme le plus basique au plus complexe, l'écriture d'un algorithme peut se faire dans différents langages comme Python et vise toujours à résoudre un problème.

De ce fait, la première étape de bien poser ce dernier. Après quoi, on définit l'interface. Cela passe entre autres par la détermination du nom de la fonction, des arguments nécessaires, le type de la valeur de sortie…

Lors de la phase de l'écriture des tests qui suit, on écrit les lignes de code qui permettront de vérifier que la fonction fait bien ce qu'elle est supposée faire. Après toutes ces étapes, on peut passer à l'écriture de la fonction. L'algorithme est alors conçu. Cependant, il est également important de l'évaluer et d'optimiser éventuellement son déroulement. C'est là toute l'utilité des tests écrits précédemment. Chez Jedha, nos formations Data proposées incluent notamment la conception, l'optimisation et la mise en production des algorithmes de Machine Learning. Nos cours prévus dans le cadre de ces formations sont délivrés par des enseignants scrupuleusement choisis.

Quels sont les principaux algorithmes de Machine Learning ?

En apprentissage automatique, différents algorithmes ont été conçus pour répondre à un large panel de besoins. S'il n'est pas évident de tous les maîtriser ou de les appréhender, il est important de connaître les principaux qui sont d'ailleurs enseignés dans toute formation en data science digne du nom. Ils appartiennent tous à l'une des catégories d'algorithmes énoncées ci-dessus.

Perceptron

Perceptron fait partie de la classe des algorithmes de Machine Learning supervisé. Inventé en 1957 par Frank Rosenblatt, il s'agit ni plus ni moins de l'un des plus anciens algorithmes d'apprentissage automatique. Perceptron est une sorte de neurone artificiel indispensable pour les réseaux de neurone du Deep Learning. Plus spécifiquement, c'est un algorithme de classificateur binaire qui permet au neurone d'apprendre et de traiter des éléments d'un ensemble de données.

En data science, et dans les projets de Machine Learning, le Perceptron joue un rôle essentiel. Il fonctionne selon la Perceptron Learning Rule qui lui permet d'apprendre automatiquement les coefficients de poids normaux. Il reçoit plusieurs signaux d'entrée et si la somme de ceux-ci dépasse un certain seuil ou non, aucun résultat n'est émis.

L'arbre de décision

L'algorithme de l'arbre de décision est un algorithme très populaire qui se base sur un modèle de graphe. L'arbre commence par une racine qui présente toutes les observations. On distingue ensuite une série de branches dont les intersections sont appelées nœuds. Ceux-ci se terminent par des feuilles qui correspondent aux différentes classes à prédire. Chaque arbre est caractérisé par sa profondeur qui n'est rien d'autre que le nombre maximum de nœuds rencontrés avant d'atteindre une feuille. Dans un arbre de décision, les données sont divisées en deux, voire plusieurs jeux homogènes. De même, tous les nœuds comportent une condition. De cette façon, plus on descend plus nombreuses deviennent les conditions.

La régression linéaire

Les algorithmes de régression linéaire permettent de modéliser à l'aide d'une fonction mathématique la relation entre une ou des variables prédictives et une variable cible. La variable cible est également appelée variable dépendante. La régression linéaire peut par exemple être utilisée lorsque l'on cherche par exemple à mesurer la hauteur de grands arbres dont seule la prise de diamètres est facile. Les modèles de régression linéaire sont relativement simples et utilisés dans de nombreux domaines. Les entreprises s'en servent notamment pour prendre de meilleures décisions. La régression linéaire peut être multivariée lorsque plusieurs variables interviennent dans la fonction de prédiction.

La régression logistique

Les algorithmes de régression logistique sont très pratiques pour effectuer une classification binaire. En entrée, ils reçoivent des variables prédictives qualitatives et/ou ordinales et mesurent ensuite la probabilité de la valeur de sortie à l'aide de la fonction sigmoïde. Plus concrètement, ils étudient le rapport entre une variable principale et des variables explicatives. La régression logistique peut par exemple être utilisée pour une classification multi classe. C'est le cas lorsque l'on souhaite classifier des vêtements en trois possibilités comme chemise, pantalon, short.

K-Means

Comment administrer un traitement différent en fonction des profils d'une population cible ? Pour y parvenir, il faut commencer par former des groupes au sein desquels les différents individus auront un certain degré de similarité. L'algorithme K-Means est parfaitement indiqué pour faire un tel regroupement. Cet algorithme d'apprentissage automatique non supervisé permet à partir d'un ensemble de données et de K groupes, de segmenter les différents éléments en ce même nombre de groupes. Il effectue ce regroupement en minimisant la distance euclidienne entre le centre du cluster et un objet donné.

Le Gradient Boosting

Cette méthode permet de renforcer un modèle dont les prédictions sont plutôt faibles. L'exemple ci-dessous permet bien d'illustrer son utilisation. Une base de données est fournie avec diverses informations sur chaque individu dont notamment les activités pratiquées. On ne connaît que l'âge de la moitié des individus et on cherche à obtenir celui des autres suivant leurs activités. On suppose que le modèle choisi permet par exemple de prédire que deux individus sont âgés de 15 et 30 ans alors qu'ils ont en réalité 11 et 35 ans. L'algorithme de gradient boosting permet d'améliorer le modèle en en refaisant un autre basé sur l'écart entre la valeur à prédire et celle prédite.

Support Vector Machine (SVM)

Le SVM est un algorithme de classification binaire à l'instar de la régression logistique. Si ces deux algorithmes permettent de séparer un ensemble d'éléments en deux classes. La machine à vecteur de support opte pour la plus nette séparation possible. Pour cela, les données sont séparées en plusieurs classes grâce à la « marge maximale ». C'est d'ailleurs pour cette raison qu'on la nomme Large Margins classifier.

En supposant que les deux critères d'appréciation d'un fruit sont le poids et la circonférence, on peut représenter un ensemble de fruits en deux dimensions et les séparer en deux grandes catégories : ceux que l'on préfère et ce que l'on aime moins. Le SVM peut permettre de réaliser une telle séparation.

Autres algorithmes d'apprentissage

Il existe encore bien d'autres algorithmes que l'on retrouve dans une formation Data. C'est par exemple le cas de l'algorithme Arima, de Db scan, de Dijkstra, de Qlearning. L'Arima (algorithme de moyenne mobile intégrée autorégressive) par exemple, est un algorithme de statistique utilisé habituellement pour les prévisions de séries temporelles ou chronologiques. Il permet de déterminer les valeurs intégrées à celles-ci en fonction des valeurs observées précédemment.

En ce qui concerne l'algorithme Dbscan en Machine Learning, il est très célèbre en matière de clustering. En considérant différents points et un entier K, cet algorithme vise à diviser ces points en K groupes homogènes et compacts. Pour ce faire, elle se base sur une estimation de la densité locale.

Quant à lui, le Q learning est un algorithme d'apprentissage par renforcement qui a pour objectif de trouver la meilleure action à faire eu égard à l'état actuel. Comme tous les algorithmes de ce type, il cherche à maximiser la récompense totale en jeu. Il peut être utilisé dans différents langages notamment Python avec les librairies appropriées. Python est un langage bien apprécié à cette fin en raison de sa puissance et de sa simplicité syntaxique.

Louana Lelong
Écrit par
Louana Lelong
 - 
Content & Event Manager
 @
Jedha