Et si je vous expliquais ce qu’est l’Intelligence Artificielle, juste avec Excel ? Eh oui, c’est possible. Nous allons nous mettre dans la peau d’un agent immobilier qui souhaite estimer le prix de vente de ses nouveaux biens, et expliquer ainsi les principes de l’IA et du Machine Learning.
Je suis donc un agent immobilier, j’ai des années de pratique, et je veux trouver un moyen de mettre mon expérience dans une intelligence artificielle (en général, deux jours après, des journalistes titreront “Une Intelligence Artificielle met tous les agents immobiliers au chômage“, mais vous allez voir que c’est un peu plus subtil que cela).
Je regarde les dernières ventes que j’ai faites, et je les mets dans le tableau Excel suivant (cliquez pour agrandir) :
Ok, donc nous avons vendu 9 appartements de différentes surfaces. J’en rentre un dixième au portefeuille, question : à combien vais-je l’estimer ?
Comment deviner le prix ?
L’intuition nous dit que le prix de vente est corrélé à la surface, et le graphique suivant (prix en fonction de la surface) nous le confirme :
La ligne pointillée orange, estimée par Excel, nous confirme que, grosso-modo, les prix suivent un répartition à peu près proportionnelle à la surface. Très bien. Avec quelques cours de mathématiques (niveau collège), on se rappelle que la formule pour aligner les points sur cette ligne consiste à dire que “prix de vente = constante + surface * facteur”. On va appeler a la constante et b le facteur, on a donc :
prix de vente = a + b * surface
Si on connait a et b, alors on peut à peu près deviner le prix de notre appartement de 70m2. Et la bonne nouvelle, c’est que a et b sont faciles à trouver. Je vous propose trois méthodes :
- Le doigt mouillé. Si, si, ça marche pas si mal que ça. La courbe en pointillés se dirige vers le zéro, donc on va dire que a ne vaut pas grand chose. Et si on prend nos exemples ici et là en divisant le prix par le m2, on a une vague idée que le facteur b va être de l’ordre de 10.000€. C’est ce calcul, de tête et très grossier, que fait votre agent immobilier fait quand il estime le prix de votre maison. À un cheval près.
- Vos cours de 5ème sur les fonctions affines. Vous vous en souvenez ? Moi non-plus.
- La régression linéaire, qui est la base de l’apprentissage machine et donc de l’intelligence artificielle. C’est ce que nous allons développer ici.
La régression linéaire façon Excel
Pour obtenir notre résultat avec élégance et préparer notre réflexion sur l’AI, nous allons utiliser une fonction méconnue d’Excel qui nous permet d’estimer ces deux facteurs. Cette fonction s’appelle LINEST et retourne une matrice (!), c’est à dire qu’il faut sélectionner plusieurs cellules pour la saisir puis appuyer sur Ctrl+Shift (ou Control+Command sous Mac) en cliquant sur la coche verte de la barre de formules.
Voilà. Excel parvient maintenant à prédire avec une erreur modérée le prix des différents appartements. À noter que l’erreur la plus importante se trouve sur l’exemple n°8, que l’on voit bien d’ailleurs en décalage sur la courbe.
Excel nous fait du Machine Learning
Ce que l’on appelle en général “Intelligence Artificielle”, c’est ça : la capacité de prédire un résultat futur sur la base d’exemples passés. Tout découle de là. Et de cet exemple trivial à un moteur conversationnel comme SIRI, il y a certes un monde en terme de puissance de calcul, mais le principe de base est le même :
- une phase dite “d’apprentissage”, qui consiste à analyser des exemples et à leur trouver une corrélation ;
- plus on a de données en entrée, plus notre algorithme sera précis ;
- on est capable de prédire une donnée numérique à partir d’une donnée numérique et c’est tout ; des nombres produisent des nombres.
Un “vrai” algorithme de machine learning va travailler avec peut-être des millions d’exemple, et effectuer une régression sur des milliers de colonnes au lieu de juste une seule comme ici (à noter qu’avec Excel, on peut intégrer des dizaines de variables dans la fonction LINEST, comme quoi c’est déjà une bonne base). Mais le principe reste le même.
Et pour prédire, par exemple, un risque de maladie à partir d’une prise de sang ? Pareil : des nombres en entrée, et en sortie, plutôt qu’une valeur purement numérique, on obtient un résultat de type OUI/NON. Ce type d’algorithme s’appelle un classifieur : partant des données de base, il indique une classe de résultat. Pour OUI/NON il y a deux classes, pour reconnaitre des lettres d’un alphabet il y en aura 26, etc.
Et la reconnaissance vocale, me direz-vous ? Pareil : sauf qu’au lieu d’une surface en entrée et d’un prix en sortie, on découpe un son en tout petits morceaux (des échantillons) et en sortie on a un nombre qui représente un phonème. C’est un classifieur ! Pour permettre des résultats plus précis, on fait appel à ce qui s’appelle du deep learning : on organise plusieurs algorithmes en couches (souvent 3 à 5 couches), et le résultat d’un des algorithmes est la donnée d’entrée d’un autre. La phase d’apprentissage se charge du reste. Ok, c’est un peu plus compliqué mathématiquement, mais loin d’être insurmontable.
Et la reconnaissance visuelle ? Pareil. Sauf qu’au lieu de surface d’appartements, on découpe une image une grille (ou pixels), chaque donnée d’entrée étant une cellule de la grille. Par exemple, un jeu de données très connu est le MNIST, qui consiste en 60.000 images de 28×28 pixels représentant… des chiffres manuscrits.
Hop hop hop, ça nous fait 28×28=784 colonnes de niveaux de gris à entrer dans notre petit algorithme de classification linéaire façon Excel, et rien qu’avec cela on prédit par la suite un nouveau chiffre manuscrit avec une erreur de “seulement” 7,6%. En “emboîtant” les algorithmes en deep learning, le taux d’erreur tombe à moins de 1% d’erreur. Ça semble facile, non ?
C’est ainsi que nos chèques sont lus par des lecteurs optiques. Ces lecteurs ont remplacé l’homme sur des tâches atomiques, répétitives et sans grande valeur. Et notre agent immobilier, est-ce parce qu’il va gagner en temps et en précision qu’il va disparaitre ? Certainement pas !
D’une façon générale, le Machine Learning, comme les applications d’automatisation de processus en général, permettent de gagner en performance sur des tâches répétitives, source d’erreur, ennuyeuse, pour les faire changer d’échelle et de dimension.
Et alors, Excel est-il sexiste (aka “c’est quoi, le biais”) ?
Enfin, un reproche régulièrement formulé à l’égard de l’IA est qu’elle serait “sexiste” (ou raciste, au choix). Un algorithme n’est qu’un programme mathématique qui prend des données en entrée et fournit un résultat en sortie, il n’a ni émotions ni sentiments, quoi qu’on en veuille. Il se conforme donc aux données qui lui ont été fournies.
Dans l’exemple ci-dessus, le MINST, il est intéressant de voir que les chiffres sont écrit par des américains, et que nous n’écrivons pas exactement de la même manière en France (le “1”, le “7” et le “9” sont des exemples particulièrement marquants). L’algorithme n’est pas raciste mais biaisé, c’est à dire qu’il a vu une majorité d’exemples américains et fonctionne donc moins bien sur des exemples européens. La solution ? Plus de données, toujours plus de données, encore plus de données — et diversifiées.
L’IA, ce n’est pas un robot tueur qui lit dans vos pensées et vous hait
(Non, ça c’est la définition d’un chat)
Eh non. L’IA, ou plus particulièrement le Machine Learning, c’est une discipline très humaine, en plein essor, qui nécessite :
- de la puissance de calcul
- plein plein plein plein de données
- des data scientists qui savent comment trier et organiser ces données avant de les faire passer dans un algo (et ça tome bien, c’est notre métier chez NumeriCube)
- des data scientists qui savent quel algo utiliser au bon moment
C’est un vaste champ des possibles et c’est une discipline qui n’attend que vous pour être explorée !
Ah, et surtout, plutôt qu’Excel, essayez Python et Scikit-learn pour développer vos algorithmes, ce sera beaucoup plus simple !