Le guide des bases de l’intelligence artificielle

Titouan Olivier
Aboutgoods Company
Published in
11 min readJan 11, 2019

--

A l’origine, je souhaitais écrire un article sur les bases du machine learning dans le but d’expliquer au plus grand nombre notre métier et les technologies que nous utilisons au quotidien chez Aboutgoods Company. Après quelques recherches sur le sujet, je suis tombé sur un article de Dan Harris qui expliquait le concept de manière simple avec des explications très pertinentes.

Plutôt que de tenter de réinventer ce qui a déjà été fait, j’ai préféré contacter Dan Harris pour lui proposer de traduire son article et permettre à nos lecteurs de comprendre simplement les bases du machine learning. Il a accepté et je vous propose donc ce guide des bases de l’intelligence en français. Vous pouvez retrouver l’article original ici A Simple Guide to the Basics of A.I

Merci à Dan et bonne lecture !

Les termes comme “machine learning”, “deep learning”, “réseaux de neurones”, “intelligence artificielle” ou encore “data science”... sont des mots à la mode ces dernières années dans le secteur des nouvelles technologies. Grâce aux progrès de la puissance de calcul et à l’augmentation de la quantité de données disponibles, ces techniques connues depuis des décennies peuvent maintenant être mises en pratique de manière réelles.

Mais que signifient réellement ces termes ?

Les équations mathématiques donnent aux machines une compréhension de base des concepts que nous avons appris en tant qu’humains.

La plupart d’entre nous ont déjà entendu les grandes explications de type “il suffit d’apprendre aux machines comment faire pour qu’elles résolvent des problèmes pour nous” mais beaucoup ne sont probablement pas au courant de ce qui se passe réellement sous le capot. Les bases du machine learning sont assez simples, intuitives, et plus important encore, assez intéressantes pour être apprises par n’importe qui dans un laps de temps relativement court.

Ce guide est destiné à ceux qui n’ont aucune connaissance en machine learning et qui veulent comprendre comment cela est utilisé par un ordinateur pour résoudre un problème.

La droite d’ajustement

Beaucoup d’entre nous se souviendront peut-être d’un concept appris à l’école appelé la “droite d’ajustement”, en référence à des points tracés sur un graphique. La droite d’ajustement est une droite tracée au milieu des points de telle sorte qu’elle représente de manière globale ce que les données montrent. Ça pourrait ressembler à ça :

Une droite d’ajustement à travers des points de données. Source de toutes les images : Dan Harris

Ce concept est en fait du machine learning dans sa forme la plus élémentaire. Au lieu de calculer ces points nous-mêmes et d’essayer de tracer notre propre droite d’ajustement, nous pouvons soumettre les données à un ordinateur.

Par exemple, nous pouvons imaginer que les données représentées dans le graphique ci-dessus correspondent à la pointure des chaussures et à la taille d’un certain nombre de personnes. Le point en bas à gauche représente la personne la plus petite aux plus petits pieds, et le point en haut à droite représente la personne la plus grande aux plus grands pieds. Comme la pointure et la taille ne sont pas complètement corrélées, tous les points ne correspondent pas à l’affirmation selon laquelle “ les personnes plus grandes ont des pieds plus grands”, mais la droite d’ajustement suggère que cela est vrai en général.

Avec la droite d’ajustement, il est possible de faire des estimations sur de nouvelles données qu’on ajouterait au graphique. Supposons que vous trouviez une chaussure. Grâce à sa pointure, vous êtes en mesure de faire une estimation de la taille de son propriétaire.

Faire une estimation grâce à la droite d’ajustement

C’est simple, n’est-ce pas ? Dans le machine learning, c’est ce qu’on appelle la “régression linéaire”. Ne vous laissez pas effrayer par ce nom. Si vous comprenez tout ce qui précède, alors vous comprenez la régression linéaire. Il s’agit d’une technique simple de machine learning utilisée pour aider à réaliser des prédictions sur des ensembles de données qui ont une forme linéaire.

Le processus de régression linéaire pour le machine learning est le suivant :

  1. Recueillir des points de données.
  2. Donner les points de données à un programme qui peut leur appliquer une régression linéaire pour obtenir une droite d’ajustement.
  3. Utiliser la droite d’ajustement pour faire des prédictions sur les nouvelles données.

On appelle ça du “machine learning” parce que l’ordinateur (ou la machine) a appris (ou créé une équation mathématique) de quelle manière la taille et la pointure sont liées. L’équation mathématique donne à la machine une compréhension de base d’un concept que nous avons nous même appris en tant qu’humains : de manière générale, les personnes les plus grandes ont les plus grands pieds

De nombreux autres scénarios peuvent utiliser la régression linéaire comme par exemple deviner le coût d’une maison en fonction du nombre de pièces qu’elle possède ou déterminer la taille d’une famille en fonction du nombre de cadeaux qu’il y a sous le sapin de noël.

Le problème avec la régression linéaire

La régression linéaire est excellente lorsque les données ont la forme d’une ligne comme dans l’exemple ci-dessus. Mais dans quelle mesure celle-ci est efficace lorsque la forme de l’ensemble de données ne ressemble pas à des lignes ? Elles ressemblent peut-être à ceci :

Des points de données qui n’ont pas vraiment une forme linéaire.

La droite d’ajustement des ces données ressemblerait donc à ça :

Points de données non-linéaires avec une droite d’ajustement

La droite d’ajustement fait un travail correct de corrélation des données mais il semble qu’elle pourrait faire beaucoup mieux. Puisque la forme des données n’est pas tout à fait une ligne droite, la droite d’ajustement dessinée ne correspond pas précisément aux données. C’est un problème dans le machine learning connu sous le nom de “sous-adaptation” : la droite d’ajustement ne correspond pas vraiment aux données. Mais si nous transformons la droite d’ajustement pour qu’elle devienne courbée, cela pourrait mieux fonctionner.

Points de données non linéaires avec une courbe d’ajustement.

Nous pouvons aisément imaginer utiliser cette courbe pour faire des suppositions précises de la même manière que nous l’avons fait avec une droite d’ajustement. Il s’agit d’une simple extension de la régression linéaire appelée “régression polynomiale”. Encore une fois, ne vous laissez pas effrayer par le nom. Si vous comprenez pourquoi une courbe peut être plus utile qu’une droite dans ce cas là, alors vous comprenez pourquoi la régression polynomiale est utile.

Maintenant que nous savons créer un modèle (c’est-à-dire trouver une ligne ou une courbe optimale pour un ensemble de points) pour des données qui ont une forme droite ou courbe, nous savons tout faire, n’est-ce pas ? Malheureusement c’est loin d’être le cas. Mais nous pouvons désormais nous appuyer sur ces concepts de base pour continuer notre apprentissage.

Choisir la précision d’un modèle

Le problème de la régression polynomiale est qu’il faut décider du degré de flexibilité à lui donner avant de l’utiliser, ce qui peut être délicat. Revenons à notre premier ensemble de données :

Un ensemble de points de données linéaires

Auparavant, nous utilisions la régression linéaire pour tracer une ligne droite à travers ces points. Mais au lieu de cela, nous aurions pu utiliser la régression polynomiale pour tracer une courbe d’ajustement à travers les données qui pourrait fonctionner encore mieux qu’une ligne droite. Ça pourrait ressembler à quelque chose comme ça :

Ensemble de données linéaires avec une courbe d’ajustement.

Une chose à savoir à propos de la régression polynomiale est que nous pouvons lui dire exactement dans quelle mesure nous voulons que la courbe d’ajustement soit courbée. Plus elle est courbée, plus elle a de souplesse pour représenter l’ensemble de données. La courbe d’ajustement ci-dessus est assez simple, mais nous aurions pu aller plus loin et en tracer une comme celle-ci :

Ensemble de données linéaires avec une courbe d’ajustement quartique.

Ou nous aurions pu rendre la courbe d’ajustement encore plus courbée qui donnerait quelque chose comme ça :

Ensemble de données linéaires avec une courbe d’ajustement sextique.

Chacune des courbes ci-dessus semble décrire de mieux en mieux la corrélation qu’il y a entre les points, mais quelque chose ne va pas, surtout dans le dernier exemple. En donnant beaucoup de souplesse à la régression polynomiale pour décider de la courbure de la courbe d’ajustement, elle s’est efforcée de passer directement par bon nombre des points de données. Cela donne donc une courbe qui semble moins utile qu’une droite d’ajustement pour faire de la prédiction.

Par exemple, si nous reprenons l’exemple de la pointure et de la taille des individus, nous pouvons voir que la courbe d’ajustement très courbée propose la même taille pour deux pointures différentes :

Une courbe d’ajustement qui sur-adapte les données

Ce problème dans le machine learning est appelé “sur-ajustement” à l’opposé du sous-ajustement. Cela signifie que la courbe d’ajustement que nous avons créée ne généralise pas très bien. Elle fait un excellent travail de corrélation des données dont nous disposons, mais n’aide pas à faire des prévisions fiables pour toute nouvelle donnée. L’une des principales préoccupations du machine learning est de trouver une droite ou une courbe qui soit assez courbée pour imiter la forme générale d’un ensemble de données, mais pas trop pour qu’elle puisse généraliser assez et permettre de bonnes prévisions sur de nouvelles données.

C’est là que la régression polynomiale atteint ses limites. Nous devons déterminer explicitement à quel point nous voulons que la courbe d’ajustement soit courbée avant de l’utiliser, ce qui n’est pas évident à décider, surtout lorsque les données sont complexes.

Jusqu’à présent dans nos exemples, les points ne portaient que sur deux dimensions, comme la pointure et la taille, ce qui signifie que nous avons toujours été en mesure de les représenter sur des graphiques bidimensionnels. Il était donc assez facile de voir la tendance générale des données. Ce n’est en revanche pas souvent le cas dans l’utilisation réelle du machine learning qui comporte généralement plus de deux dimensions. Sans connaitre la forme des données représentées, il devient difficile de déterminer une courbe de régression polynomiale représentative.

Avec un peu d’effort, les réseaux de neurones peuvent aussi être utilisés pour répondre à des questions oui/non au lieu de renvoyer des valeurs.

Une solution peut être d’essayer plusieurs niveaux de courbure de la régression polynomiale pour déterminer celle qui fonctionne le mieux. Mais ce dont nous avons vraiment besoin, c’est d’une technique de machine learning qui définit parfaitement la courbure, ni trop pour généraliser les données, ni pas assez pour être représentatif.

Cette question de flexibilité se pose lorsque les data-scientists passent des techniques de régression linéaire et polynomiale à l’utilisation d’un réseau neuronal. En soit, un réseau neuronal ressemble beaucoup à une régression polynomiale dans le sens où il est capable d’apprendre des ensembles de données qui ont des formes très courbées. Ils ne règle pas seul le problème du sur-ajustement mais lorsqu’il est combiné à une technique appelée régularisation, cela a tendance à s’arranger.

Le détail du fonctionnement des réseaux neuronaux et de la régularisation ne sont pas vraiment importants pour comprendre les bases du machine learning. L’élément clé à retenir est que les réseaux neuronaux sont efficaces pour apprendre les formes d’ensembles de données complexes (plus que la régression linéaire ou polynomiale ) et que la régularisation les aide à empêcher de sur-ajuster les données.

Obtenir des ordinateurs des réponses à nos questions

Pour les concepts couverts jusqu’à présent (régression linéaire, régression polynomiale et réseaux de neurones) nous nous sommes seulement intéressés aux manières d’utiliser un ordinateur pour nous donner une valeur en fonction de données que nous lui fournissons. Le modèle de la pointure et de la taille nous donne un nombre (la taille) lorsque nous lui donnons une pointure ; de même, le modèle du coût de la maison en fonction du nombre de pièces nous donne un nombre (le prix) lorsque nous lui donnons un nombre de pièces.

Mais une valeur n’est pas toujours ce que nous cherchons. Parfois, nous souhaiterions plutôt que le modèle de machine learning réponde à une question. Par exemple, si vous vendez votre maison, vous ne voulez peut-être pas seulement connaitre la valeur de celle-ci mais également savoir si elle sera vendue dans les six semaines.

La bonne nouvelle, c’est qu’il existe des techniques de machine learning (semblables à celles que nous avons déjà vues) qui répondent à une question précise au lieu de simplement donner un chiffre. Un modèle de machine learning peut être mis en place pour répondre par oui ou par non à la question de la vente en six semaines lorsque nous lui fournissons certaines données de base, comme le nombre de pièces, le coût ou la superficie. Évidemment, ce modèle ne sera jamais parfait parce que le marché immobilier ne suit pas des règles exactes, mais le machine learning peut être utilisé pour donner des réponses à ce type de questions avec un niveau de précision important (selon la qualité des données fournies).

Pour la régression linéaire, on appellerait cela une forme linéaire de régression logistique (encore une fois, ne vous laissez pas décourager par la terminologie, les méthodes qui en découlent sont en fait très intuitives). Il pourrait répondre à des questions comme “Cet email est-il un spam ?” ou “Va-t-il pleuvoir demain ?”. Les deux méthodes (la régression linéaire et la régression logistique) permettent de calculer une droite d’ajustement, mais leur façon de l’utiliser est différente. Pour rappel, voici le modèle de régression linéaire que nous avons utilisé pour l’ensemble de données afin de prédire un autre nombre pour nous :

La régression logistique fonctionne de la même façon, mais trouve une droite d’ajustement qui sépare les données en deux groupes. Cette droite peut ensuite être utilisée pour prédire si un nouveau point se trouve dans un groupe ou dans l’autre selon de quel côté de la ligne il se trouve.

Modèle de régression logistique linéaire pour le filtrage du spam.

Tout comme pour la régression linéaire, la régression logistique peut être étendue pour utiliser un modèle polynomial courbé qui offre plus de souplesse pour ajuster la forme des données. Avec un peu d’effort, les réseaux de neurones peuvent donc être utilisés pour répondre à des questions oui/non au lieu de renvoyer des valeurs.

Si nous voulons répondre à des questions plus compliquées que celles qui ont seulement des réponses oui/non, nous pourrions soit utiliser une technique appelée régression logistique multinomiale, soit adapter les réseaux neuronaux pour pouvoir également traiter ces cas . Les modèles créés de cette façon pourraient répondre à une question du type “Demain sera-t-il pluvieux, ensoleillé ou enneigé ?” La partie “multinomiale” signifie simplement que la réponse peut être l’une des nombreuses options. Dans l’exemple, les trois réponses possibles seraient pluie, soleil ou neige.

Voila pour les bases du machine learning. J’espère que ce concept est un peu plus clair pour vous désormais. Un deuxième article est à venir pour continuer de démystifier de nombreux détails techniques et concepts du jargon qui apparaissent lorsque qu’on s’intéresse au machine learning. Beaucoup d’entre nous ont tendance à être victimes du raisonnement selon lequel, parce qu’un sujet est nouveau et peu familier pour nous, il doit être difficile.

Rendez-vous dans quelques jours pour la suite !

Vous pouvez retrouver plus d’articles sur l’intelligence artificielle, le deep learning ou encore la big data directement sur le blog d’Aboutgoods Company : blog.aboutgoods-company.com

--

--