Introduction au Machine Learning

Bon. Qu’est-ce-que le Machine Learning ? En tant que Data Scientist professionnel, je désire vous donner une réponse claire à cette question, en démystifiant au passage le concept d’Intelligence Artificielle. Voici donc une introduction au Machine Learning qui vous permettra de comprendre le fonctionnement de cette technologie ainsi que ses applications.

Pour accompagner cet article, je vous offre une copie de mon livre “Apprendre le machine learning en une semaine“.

Définition du Machine Learning

Le Machine Learning est un domaine d’étude de l’IA qui vise à donner aux machines la capacité d’apprendre. Cette technologie très puissante a permit le développement des voitures autonomes, de la reconnaissance vocale, et de tous les systèmes dits “intelligents” depuis les 10 dernières années.

Le Machine Learning a été inventé par Arthur Samuel en 1959, après que celui-ci ait développé le premier programme de jeu de Dames doté d’une intelligence artificielle. Ce programme avait appris à jouer aux Dames tout seul, sans recevoir la moindre instruction de son développeur. “Comment a-t-il fait ?” Nous le verrons plus loin dans cet article. 😉

Suite à son invention, Arthur Samuel a formulé la définition historique du Machine Learning :

“Le Machine Learning est la science de donner à une machine la capacité d’apprendre, sans la programmer de façon explicite.


Apprentissage Statistique

Aujourd’hui, nous avons une façon plus mathématique de définir le Machine Learning. En français, nous appelons ça Apprentissage Statistique (ou apprentissage automatique) car la majorité des algorithmes utilisés en Machine Learning sont en réalité des modèles statistiques développées à partir de données. Parmi ces modèles, on retrouve par exemple les arbres de décision, la régression linéaire, ainsi que les modèles Bayésien.

Le Machine Learning consiste à laisser la machine développer un modèle statistiques à partir de données qui lui sont fournies.

Ainsi, pour qu’une machine apprenne à reconnaître un visage sur une photo, nous lui fournissons des milliers de photos à étudier, et la machine développe ses propres règles statistiques permettant de différencier les visages.

Comment fonctionne le Machine Learning ?

Pour comprendre comment une machine peut apprendre à partir de données, il faut se pencher sur les 3 paradigmes d’apprentissage du Machine Learning :

  • L’Apprentissage Supervisé (Supervised Learning)
  • L’Apprentissage Non-Supervisé (Unsupervised Learning)
  • L’Apprentissage par Renforcement (Reinforcement Learning)

Apprentissage Supervisé : Définition

L’Apprentissage Supervisé est utilisé pour développer des modèles prédictifs, c’est-à-dire des modèles capables de prédire une certaine valeur y en fonction de variables x_1, x_2, etc.

Exemples : Prédire le nom d’une personne (y) à partir d’une photo (x), ou bien prédire le prix d’un appartement (y) en fonction de sa surface habitable (x_1) et du nombre de pièces (x_2)

Pour développer de tels modèles, il faut en premier lieu fournir à la machine une grande quantité de données (x, y). On appelle cela un dataset (un jeu de données). Ensuite, on demande à la machine de développer une fonction d’approximation qui représente au mieux la relation x \rightarrow y présente dans nos données. Pour ça, on utilise un algorithme d’optimisation qui minimise les écarts entre la fonction et les données du dataset.

Note : Le nom “Apprentissage Supervisé” vient donc du fait que l’on supervise (tel un professeur) l’apprentissage de la machine en lui fournissant des exemples de question/réponse (x / y) à étudier.

Les applications de l’Apprentissage Supervisé sont nombreuses, très nombreuses ! On peut les diviser en 2 catégories de problèmes : les Régressions, et les Classifications.

Les problèmes de Régression

Les problèmes de Régression correspondent aux situations dans lesquelles la machine doit prédire la valeur d’une variable quantitative (variable continue)

Exemples de variables y :

  • le prix d’un appartement
  • l’évolution du climat
  • le cours de la bourse
  • durée de vie d’un patient
Représentation d’un problème de régression

Les problèmes de Classification

Les problèmes de Classification correspondent aux situations dans lesquelles la machine doit prédire la valeur d’une variable qualitative (variable discrète). Autrement dit, la machine doit classer ce qu’on lui donne dans des classes.

Exemples de variables y :

  • Email Spam / non Spam
  • Cancer / non Cancer
  • Photo de Chat / Chien
Représentation d’un problème de classification

Note : La reconnaissance vocale et la vision par ordinateur correspondent à des problèmes de classification. En effet, la machine apprend à classer les signaux sonores / images qu’elle reçoit dans différents paquets de mots.

Apprentissage Non-Supervisé : pas de variable y

Une autre méthode d’apprentissage pour développer des programmes de Machine Learning est l’apprentissage nonSupervisé (Unsupervised Learning). Cette méthode est utilisée quand notre Dataset ne contient pas d’exemples qui indiquent ce que l’on cherche. Attendez… je vous explique avec une analogie !

Regardez ces 6 photos. Pouvez-vous les regrouper en 2 familles selon leur ressemblance ?

Bien sûr ! C’est même plutôt simple. Nul besoin de savoir s’il s’agit de cellules animales, de bactéries ou de protéines pour apprendre à classer ces images. Votre cerveau a en fait reconnu des structures communes dans les données que vous lui avez montrées.

Dans l’apprentissage non-supervisé, on dispose ainsi d’un Dataset x sans variable y, et la machine apprend à reconnaître des structures dans les données x qu’on lui montre.

On peut ainsi regrouper des donnés dans des clusters (c’est le Clustering), détecter des anomalies, ou encore réduire la dimension de données très riches en compilant les dimensions ensembles.

Apprentissage par Renforcement : apprendre dans son environnement

Une dernière technique très populaire est l’apprentissage par renforcement qui consiste à laisser la machine apprendre à faire une tâche (par exemple piloter un mini drone) en la laissant pratiquer seule. Quand la machine réussit ce qu’elle entreprend, elle reçoit un bonus. Quand elle échoue, elle reçoit un malus.

On développe un programme qui force la machine à vouloir maximiser ses bonus, et la machine fait alors l’analyse de ses propres erreurs du passé afin de s’améliorer au fil du temps. C’est un petit peu comme quand nous apprenons à faire du vélo: au début nous n’y arrivons pas du tout, mais a force d’en faire, nous développons intrinsèquement notre équilibre de façon à éviter les erreurs du passé qui nous ont fait tomber !

En Machine Learning, un programme apprend a faire quelque chose à travers le temps et l’expérience, un peu comme un enfant apprend à faire du vélo. En effet un enfant n'a pas les équations de l'équilibre gravées dans sa tête pour apprendre le vélo, à la place

Conclusion : Le Machine Learning est la nouvelle électricité, il va tout révolutionner.

En 2019, le Machine Learning est déjà présent tout autour de nous. En fait, vous l’utilisez probablement des centaines de fois par jour sans même vous en rendre compte. Chaque fois que vous effectuez une recherche dans Google, c’est un modèle de Machine Learning qui a appris comment classer en première page les résultats les plus pertinents parmi des millions de pages web possibles.

Quand vous postez une photo de vous sur Facebook, il y a un algorithme de Machine Learning qui parvient à vous identifier parce qu’il a appris à reconnaître des visages sur des photos.

Le machine Learning a déjà commencé à changer la face de notre monde. Il révolutionne l’industrie des transports avec la voiture autonome et fait fonctionner nos objets connectés : Iphone, reconnaissance vocale et vision par ordinateur. Il diagnostique le cancer mieux qu’une équipe de plusieurs docteurs et améliore la sécurité bancaire, la sécurité informatique, prend des décisions judiciaires plus justes… Même l’industrie agricole et le monde de l’art sont touchés par le machine Learning.

Si vous avez lu tout cet article, cela signifie que vous portez un intérêt important pour le Machine Learning et je vous en félicite ! N’hésitez pas à me contacter pour toute question, et si vous désirez vous former au Machine Learning, je vous conseille alors de télécharger mon livre et de suivre les diverses formations gratuites que j’ai crées (et qui ont déjà convaincu des milliers de gens à travers le monde)

A bientôt !

Cet article a 22 commentaires

    1. Guillaume Saint-Cirgue

      Thank you. Good luck in your coding 🙂

  1. AWA

    Great tuto thank you. Very helpful

    1. Guillaume Saint-Cirgue

      Thank you very much

  2. Eric

    Très belle explication, fluide et facilement compréhensible. Merci de partager votre savoir

    1. Guillaume Saint-Cirgue

      Merci beaucoup pour votre commentaire Eric. Je suis heureux de savoir que l’article a pu aider !

  3. farid

    pourrais-je avoir le lien de téléchargement du livre??

    1. Guillaume Saint-Cirgue

      Le lien est ci-dessus

      1. Maissa

        Merci beaucoup j’apprécie cette formation et elle m’aide à bien comprendre le machine learning

  4. Mariem

    s’il vous plait j’ai une question concernant la régression linéaire si par exemple je veux prédire un target mais qui n’est pas un vecteur c’est t a dire une matrice comment je peux faire la formulation de la dataset j’ai vu votre vidéo pour un target vecteur de 1 colone et m linges mais pour un autre cas ?

    1. Guillaume Saint-Cirgue

      Bonjour, c’est très simple a faire ! Je vous conseille d’utiliser sklearn. Voici un exemple dans lequel on prédit 2 valeurs pour chaque prédiction (les données sont aléatoires, mais c’est juste pour montrer que c’est possible)
      import numpy as np
      from sklearn.linear_model import LinearRegression
      X = np.random.randn(10, 4) # 4 variables X
      y = np.random.randn(10, 2) # 2 variables y
      model = LinearRegression().fit(X, y)
      print(model.predict(X))

  5. Mariem

    Merci beaucoup , mais reste en peu n’est pas cler pour la formulation Mathématiques

    Moi par exemple j’ai : x_1 jusqu’à x_n i= 1 jusqu’a n et pour chaque x_i m valeurs c’est dire que chaque x_i peut prendre m valeurs moi je veux prédire les y correspondent à x_1 jusqu’à x_n mais pour m valeurs
    je veux formuler le tableau du dataset mais je n’arrive pas également le modèle mathématiques (Régression linéaire simple)

    1. Guillaume Saint-Cirgue

      Oui je vois la situation. Avez-vous regardé la vidéo sur la regression polynomiale ? Je pourrais faire une vidéo pour répondre a votre question plus en détails

      1. Mariem

        Non j’ai pas vu un votre vidéo pour la régression polynomiale

        Oui se sera mieux pour moi un vidéo contient les détails merci beaucoup

        1. Mariem

          je pense que la modèle soit comme ça

          f(x) = ax^n + bx^n-1 + …….. + c ?

  6. Mariem

    x_1……..x_n sont des variables aléatoires

  7. David

    Merci pour ce premier cours qui constitue une bonne introduction parfaitement compréhensible.

  8. perla

    Bonjour
    pour la régression linéaire
    concernant l’algorithme du Gradient
    a = a – la dérive de la fonction coût par rapport à a multiplié par alpha
    j’ai pris n = 2 par exemple
    j’ai une question : le vecteur a est un vecteur colonne et la dérive de la fonction coût par rapport à a est un vecteur ligne comment je peux faire la soustraction ?

  9. ChretienTimmamo

    Bonjour,
    Merci Guillaume pour cette belle introduction au Machine Learning.

  10. abdessamad

    merci beaucoup pour vos efforts, j’espère avoir une série sur les réseaux de neurones.

  11. merci beaucoup,
    serait il possible que tu nous fasses des videos sur tensorflow 2 s’il te plait

  12. Noura Bentaher

    Bonjour, j’ai bien tout compris , vous avez vraiment une façon d’explication bien organisée. Merci pour tout l’effort que vous consacrer pour ce travail. Bon courage!!

Laisser un commentaire