Le machine Learning, qu'est ce que c'est ?

Le Machine Lear­ning (ou appren­tis­sage auto­ma­tique) est un domaine de l’intelligence arti­fi­cielle qui per­met de trou­ver des pat­terns dans une grande quan­ti­té de don­nées et d’en tirer des pré­dic­tions à l’aide de statistiques.

Le Machine Lear­ning est un domaine de l’intelligence arti­fi­cielle. Il s’appuie sur l’analyse de don­nées et les sta­tis­tiques pour extraire des ten­dances, faire des pré­dic­tions, aider à la prise de déci­sion ou encore sug­gé­rer du conte­nu per­son­na­li­sé à un uti­li­sa­teur. Les algo­rithmes de Machine Lear­ning sont aujourd’hui très pré­sents dans notre quo­ti­dien à tra­vers les moteurs de recherche, les publi­ci­tés ciblées, les pla­te­formes de strea­ming de films et séries, ou encore l’arrivée pro­gres­sive des voi­tures auto­nomes sur le marché.

Machine Learning : définition et fonctionnement

Définition

L’apprentissage auto­ma­tique, ou Machine Lear­ning (ML), est un domaine de l’Intelligence Arti­fi­cielle (IA) qui consiste à ana­ly­ser des don­nées, effec­tuer des pré­dic­tions ou encore prendre des déci­sions en s’appuyant sur des don­nées four­nies en amont. Les algo­rithmes de Machine Lear­ning sont capables d’apprendre en toute auto­no­mie et de s’améliorer grâce à des phases d’entraînement.

Il existe trois types d’apprentissages auto­ma­tiques différents : 

  • • l’apprentissage supervisé,
  • • l’apprentissage non supervisé,
  • • l’apprentissage par renforcement.

L’apprentissage semi-super­vi­sé se posi­tionne quant à lui entre l’apprentissage super­vi­sé et l’apprentissage non supervisé

Apprentissage supervisé

1. Fonctionnement

L’apprentissage super­vi­sé consiste à uti­li­ser des don­nées préa­la­ble­ment anno­tées pour entraî­ner un modèle. C’est ce qui per­met ensuite de pou­voir réa­li­ser des pré­dic­tions sur des don­nées incon­nues en recher­chant les pat­terns qui ont été iden­ti­fiés lors de l’entraînement.

2. Jeux de données, prétraitement et annotation de texte

Pour entraî­ner un modèle, il faut sépa­rer un jeu de don­nées (data­set en anglais) en deux parties :

  • un jeu d’entraînement qui va per­mettre au modèle d’apprendre à asso­cier un cer­tain type de don­nées à dif­fé­rentes caté­go­ries par exemple,
  • un jeu de test sur lequel on va pou­voir éva­luer les per­for­mances du modèle entraîné.

Une fois les deux jeux de don­nées prêts, il faut rédi­ger un guide d’annotation qui va per­mettre de réunir toutes les ins­truc­tions pra­tiques pour que tous les anno­ta­teurs annotent de la même façon. L’annotation de don­nées est une étape cru­ciale, mais assez fas­ti­dieuse et chro­no­phage à réa­li­ser. En effet, elle mobi­lise deux anno­ta­teurs, ou plus, qui vont devoir anno­ter les mêmes don­nées cha­cun de leur côté. Un ver­ba­tim va être asso­cié à une éti­quette (ou caté­go­rie) spé­ci­fique, par­mi une liste prédéfinie.

Ensuite, il faut cal­cu­ler l’accord inter­an­no­ta­teurs, c’est-à-dire com­pa­rer les anno­ta­tions effec­tuées afin d’évaluer la fré­quence à laquelle les anno­ta­tions concordent entre elles grâce à une matrice de contin­gence. S’il y a trop de désac­cords, cela signi­fie que le guide d’annotation n’est pas assez pré­cis et laisse place à trop d’ambiguïté et d’interprétation. Les don­nées risquent alors d’être moins bien anno­tées, le modèle sera donc moins performant.

Avant d’exploiter des don­nées, il est par­fois néces­saire d’effectuer un pré­trai­te­ment sur les don­nées brutes afin de les rendre exploi­tables. Pour cela, il faut homo­gé­néi­ser le for­mat des don­nées pro­ve­nant de dif­fé­rentes sources et éli­mi­ner (au choix) la ponc­tua­tion inutile, les accents, les lignes vides, les sym­boles ou tout autre élé­ment qui pour­raient s’avérer pro­blé­ma­tiques lors de l’analyse des don­nées par le modèle. Cela est par­ti­cu­liè­re­ment cru­cial lorsque les don­nées pro­viennent de sources dif­fé­rentes : base de don­nées, site Inter­net, forum en ligne, trai­te­ment de texte…

3. Entrainement, prédiction et analyse des résultats

Pour éva­luer les per­for­mances d’un modèle de clas­si­fi­ca­tion de manière objec­tive, deux métriques prin­ci­pales sont géné­ra­le­ment uti­li­sées : la pré­ci­sion et le rap­pel, ain­si que le f‑score, qui est la moyenne har­mo­nique de ces deux métriques réunies.

  • la pré­ci­sion indique la pro­por­tion de don­nées cor­rec­te­ment anno­tées sur l’ensemble des anno­ta­tions effectuées.
  • le rap­pel désigne quant à lui la pro­por­tion de don­nées cor­rec­te­ment anno­tées sur l’ensemble des anno­ta­tions qu’il était per­ti­nent d’annoter. Le cal­cul de ces mesures peut s’effectuer à l’aide d’une matrice de confusion.

En géné­ral, un modèle de Machine Lear­ning est consi­dé­ré comme per­for­mant s’il atteint envi­ron 80% de pré­ci­sion et de rappel.

Cepen­dant, à l’issue de l’entraînement et des tests, la capa­ci­té de géné­ra­li­sa­tion, c’est-à-dire la façon dont se com­porte le modèle sur des don­nées qu’il n’a encore jamais vues, est tout aus­si impor­tante. En effet, le sur­ap­pren­tis­sage (over­fit­ting en anglais) est une des causes prin­ci­pales qui explique les mau­vaises per­for­mances d’un modèle : cela signi­fie que la fonc­tion pré­dic­tive s’est très bien adap­tée aux don­nées d’entraînement et obtient de très bons résul­tats, mais, confron­tées à de nou­velles don­nées, les per­for­mances du modèle se dégradent fortement.

4. Types d’algorithmes utilisés

On dis­tingue prin­ci­pa­le­ment deux types d’algorithmes d’apprentissage :

  • les algo­rithmes de classification,
  • les algo­rithmes de régression.

La clas­si­fi­ca­tion per­met de pré­dire à quelle caté­go­rie appar­tient un docu­ment ou une image tan­dis que la régres­sion per­met de pré­dire le prix de l’immobilier, par exemple.

Pour déve­lop­per un modèle d’apprentissage super­vi­sé, il existe divers algo­rithmes, comme l’arbre de déci­sion, le Ran­dom Forest, le Naive Bayes, le k‑NN ou encore la régres­sion linéaire et logistique.

5. Exemples d’utilisation

Les appli­ca­tions de l’apprentissage super­vi­sé sont nom­breuses, on peut notam­ment s’en ser­vir pour construire un agent conver­sa­tion­nel (chat­bot), détec­ter des spams dans une mes­sa­ge­rie, faire de la recon­nais­sance vocale ou encore l’intégrer dans les voi­tures autonomes.

Concrè­te­ment, il s’agit de situa­tions où on dis­pose d’éléments déjà clas­sés et on va cher­cher à clas­ser un nou­vel élé­ment par­mi les caté­go­ries défi­nies en amont.

Apprentissage non supervisé

1. Fonctionnement

Par oppo­si­tion à l’apprentissage super­vi­sé, l’apprentissage non super­vi­sé désigne une tech­nique d’entraînement de modèle à par­tir de don­nées non anno­tées. Il n’y a donc pas de réponse cor­recte atten­due. Il s’agit plu­tôt d’en apprendre davan­tage sur les don­nées ana­ly­sées et d’en décou­vrir les struc­tures sous-jacentes afin d’en extraire des groupes (clus­ters) ou des asso­cia­tions de don­nées, c’est-à-dire iden­ti­fier des res­sem­blances per­ti­nentes ou bien des rela­tions inté­res­santes à par­tir de ces don­nées non structurées.

2. Types d’algorithmes utilisés

Pour déve­lop­per un modèle d’apprentissage non super­vi­sé, il existe divers algo­rithmes, comme les modèles de dis­tri­bu­tion, la clas­si­fi­ca­tion hié­rar­chique, l’algorithme A‑priori, ou encore le K‑means clustering.

3. Exemples d’utilisation

L’apprentissage non super­vi­sé peut par exemple être uti­li­sé dans le domaine du mar­ke­ting pour ana­ly­ser les pré­fé­rences ou les habi­tudes de consom­ma­tion des uti­li­sa­teurs en fonc­tion de leur langue, leur âge ou leur pro­fes­sion. Il est aus­si uti­li­sé dans le domaine de la recon­nais­sance vocale pour apprendre les par­ti­cu­la­ri­tés vocales du pro­prié­taire du télé­phone, ou encore pour iden­ti­fier une même per­sonne sur l’ensemble des pho­tos sto­ckées dans l’appareil.

Concrè­te­ment, il s’agit de situa­tions où on dis­pose d’éléments non clas­sés et on cherche à les regrou­per en classes en fonc­tion d’un cri­tère spé­ci­fique que le modèle devra iden­ti­fier par lui-même.

Apprentissage par renforcement et apprentissage semi-supervisé

En Machine Lear­ning, il existe aus­si deux autres types d’apprentissages :

  • l’apprentissage semi-super­vi­sé,
  • l’apprentissage par renforcement.

L’apprentissage semi-super­vi­sé se situe à la fron­tière entre la super­vi­sion et l’absence de super­vi­sion : il s’agit de com­bi­ner des don­nées anno­tées avec des don­nées non anno­tées afin d’améliorer la qua­li­té d’apprentissage d’un modèle. Ce type d’apprentissage est par­ti­cu­liè­re­ment bien adap­té aux jeux de don­nées volu­mi­neux puisque cela per­met ain­si de réduire le temps d’annotation des don­nées qui est une étape géné­ra­le­ment très chronophage.

L’apprentissage par ren­for­ce­ment consiste quant à lui à décou­vrir des don­nées à tra­vers un pro­ces­sus de ten­ta­tives et d’erreurs puis à prendre des déci­sions de manière opti­male en fonc­tion des résul­tats obte­nus, via un sys­tème de récom­pense. Ce sys­tème est notam­ment uti­li­sé dans le domaine robo­tique ou bien dans le domaine ludique pour entraî­ner un modèle à jouer aux échecs ou au jeu de go.

Quel algorithme choisir ?

En Machine Lear­ning, il existe plu­sieurs types d’apprentissages, mais aus­si une grande diver­si­té d’algorithmes pour réa­li­ser des tâches très variées. Alors, com­ment choi­sir le bon ? En réa­li­té, il n’y a pas d’algorithme consi­dé­ré comme meilleur que les autres, il faut plu­tôt cher­cher le plus adap­té à un besoin pré­cis. Pour cela, il faut réunir les élé­ments suivants :

  • • la taille du jeu de données,
  • • le type de don­nées à exploiter,
  • • le type d’informations que l’on recherche,
  • • la façon dont ces infor­ma­tions seront utilisées.

Une fois clai­re­ment iden­ti­fiés, tous ces élé­ments per­met­tront de défi­nir le type d’apprentissage et l’algorithme les plus adap­tés à la situation.

Machine Learning vs Deep Learning : quelles différences ?

Signification

Le voca­bu­laire qui gra­vite autour de l’intelligence arti­fi­cielle est com­plexe pour un non-ini­tié. Les termes de Machine Lear­ning et Deep Lear­ning peuvent notam­ment être confon­dus. Pour­tant, même s’ils sont liés, ce sont bien deux notions dif­fé­rentes qui ren­voient à des aspects tech­niques bien spécifiques.

Le Machine Lear­ning (appren­tis­sage auto­ma­tique) est, comme nous l’avons vu pré­cé­dem­ment, un sous-domaine de l’intelligence arti­fi­cielle. Le Deep Lear­ning (appren­tis­sage pro­fond) est quant à lui une branche du Machine Lear­ning. Il s’agit de construire une struc­ture com­plexe de réseaux neu­ro­naux qui imite le pro­ces­sus d’apprentissage du cer­veau humain afin de trai­ter des don­nées non structurées.

Différences

Pour com­prendre les dif­fé­rences entre Machine Lear­ning et Deep Lear­ning, voi­ci un réca­pi­tu­la­tif de leurs carac­té­ris­tiques respectives.

Machine Learning

  • branche de l’IA,
  • appren­tis­sage à par­tir de don­nées en uti­li­sant des algo­rithmes pour effec­tuer une tâche sans être expli­ci­te­ment programmé,
  • inter­ven­tions humaines pour cor­ri­ger et apprendre,
  • entraî­ne­ment pos­sible sur de petits jeux de données,
  • entraî­ne­ment assez court, fai­sable sur CPU.

Deep Learning

  • branche du Machine Learning
  • appren­tis­sage par réseaux neu­rones, en pas­sant les don­nées à tra­vers plu­sieurs couches de neurones
  • appren­tis­sage auto­nome à par­tir de l’environnement et des erreurs passées
  • entraî­ne­ment uni­que­ment sur de très grands jeux de données
  • entraî­ne­ment très long, qui néces­site un GPU, voire un TPU

Conclusion

Le Machine Lear­ning est aujourd’hui uti­li­sé dans de nom­breuses solu­tions de notre quo­ti­dien. Grâce aux mul­tiples pos­si­bi­li­tés d’apprentissage et à la grande diver­si­té d’algorithmes mis à dis­po­si­tion, les modèles sont capables de réa­li­ser de nom­breuses tâches, allant de la clas­si­fi­ca­tion au regrou­pe­ment de don­nées, en pas­sant par la pré­dic­tion de prix ou encore la sug­ges­tion de conte­nus per­son­na­li­sés. C’est donc un véri­table outil d’analyse pré­dic­tive indis­pen­sable pour mieux appré­hen­der le monde qui nous entoure et don­ner de la valeur aux don­nées dans tous les sec­teurs d’activités.