Decouverte du Machine Learning sur le Cloud AWS

December 12, 2017
Slides : http://chilp.it/9ffad6b En quoi le Machine Learning diffère t-il de l’analyse de données traditionnelle ? Quels sont les différents types d'apprentissage ? Quels sont les principaux types de problème que le Machine Learning peut résoudre ? Toutes ces questions et bien d’autres sont abordées sans théorie et jargon inutiles, avec la participation des experts de la société PredicSis. ✚ Retrouvez tous nos événements : https://aws.amazon.com/fr/events/ ✚ Rendez-vous sur notre site internet : http://amzn.to/2ktrf5g ✚ Suivez-nous sur Twitter : https://twitter.com/aws_actus

Transcript

Bienvenue à tous et à toutes. Nous allons commencer cette semaine de webinaires dédiés au machine learning et à l'IA par une introduction au machine learning. Vous êtes très nombreux aujourd'hui, merci beaucoup de votre fidélité et j'espère que ce premier webinaire vous permettra de découvrir le sujet et de commencer à appréhender ce très vaste sujet qu'est le machine learning. Avant de commencer, je voudrais que mes invités puissent se présenter. Bonjour Jean-Louis, je suis CEO et cofondateur de Predixis. Et Sylvain Ferrandiz, le responsable produit chez Predixis. On parlera de ce que vous faites tout à l'heure, bien sûr on va rentrer dans les détails. Voilà l'agenda de ce premier webinar. Pour commencer, on va se poser la question de pourquoi le machine learning. Moi, j'aime bien toujours commencer par le pourquoi, j'aime bien commencer par à quoi ça sert, pourquoi on a besoin d'un nouveau jouet technique, pourquoi les outils traditionnels ne permettent pas de répondre aux problèmes. Ensuite, on étudiera quelques use cases, quelques cas clients d'AWS et de Predixis, et puis on parlera rapidement des bases du machine learning. Il ne s'agit pas ici de faire un cours d'université, ce n'est pas le lieu, on n'a pas le temps et ce n'est pas ce que j'avais envie de faire. Je pense que ce n'est pas ce que vous avez envie d'entendre. Donc je vais vraiment vous parler des bases, des fondamentaux, des quelques mots clés qu'il faut connaître. Et puis le plus vite possible, on ira dans les démos où je vous montrerai quelques algos types de machine learning et on essaiera de toucher un petit peu du doigt leur fonctionnement et de comprendre, de construire un peu d'intuition autour de ces algos. Et puis bien sûr, comme d'habitude, on répondra à vos questions. Alors, pourquoi le machine learning ? Sans doute dans vos entreprises, vous travaillez déjà avec de la donnée. Vous avez certainement déjà l'habitude de construire des plateformes et des applications qui vont faire de l'analyse sur les données passées, qui vont faire une rétrospective des données pour faire de l'analyse, pour faire du reporting, pour produire à des fins de production ou pour les métiers, et bien tout un tas d'analyses, de documents, de rapports qui vont montrer les tendances du passé, les chiffres de vente, la progression des abonnés, etc. Donc là, dans un cas comme ça, on travaille avec des données du passé et on travaille avec des technologies traditionnelles de bases de données, de data warehouse, comme par exemple RDS ou MatchShift. Ce n'est évidemment pas le sujet qui nous préoccupe aujourd'hui puisque ça, on sait très bien le faire. On a des équipes qui sont capables avec ces outils-là d'analyser le passé et de fournir une vue précise de ce qui s'est passé. Le deuxième sujet, c'est le présent. On veut savoir en temps réel ce qui se passe chez les clients, sur la plateforme, sur le site web. On va construire avec des outils de streaming comme Kinesis, par exemple, des applications, des dashboards qui vont nous donner une vue instantanée. Les gens parmi vous qui font des OPS sont forcément dans leur bureau avec une télé avec du monitoring, des métriques, des KPI, etc. Et puis les autres également, que ce soit des chiffres d'affaires, des métriques de production dans l'usine, etc. Bref, la vue instantanée. Et puis il reste évidemment la troisième partie qui est le futur, c'est-à-dire la capacité à prédire ce qui va se passer, ou ce qui pourrait se passer avec un niveau de confiance et une probabilité relativement élevée. Et le rôle du machine learning, c'est ça, c'est le futur. Le machine learning, c'est la technologie qui, sur la base d'un jeu de données que vous allez fournir, va détecter des tendances, des motifs, et pour ne pas dire des habitudes, si on parle d'utilisateurs, et donc va les utiliser pour faire des prédictions sur de nouveaux échantillons qui se présenteront dans le futur. Donc on va utiliser de la donnée passée pour essayer de comprendre des tendances, comprendre des comportements et prédire de nouveaux comportements sur de nouveaux échantillons. Donc le machine learning, c'est le futur. Et donc pour faire du machine learning, il faut des données, c'est essentiel. Le jeu de données, on va en parler beaucoup pendant cette semaine. Tout commence toujours par la construction d'un jeu de données. Et puis on va passer dans un processus de machine learning qu'on va détailler aujourd'hui. Et grâce à ça, on va pouvoir rendre les applications plus intelligentes parce qu'au lieu de se baser sur une programmation explicite, sur le code de l'application qui effectue des traitements, on va pouvoir, grâce à ces modèles de prédiction, détecter, prédire ou deviner des événements qui vont se produire dans le futur. Pourquoi est-ce qu'on ne peut pas faire ça avec des outils traditionnels ? On va prendre un exemple qui est approprié, c'est bientôt Noël, donc imaginons que nous soyons fabricant de jouets et qu'on veuille identifier une liste de clients susceptibles d'acheter ce magnifique quadcopter pour la modique somme de 49,99$. Étant une société sérieuse avec des pratiques sérieuses, on a une base de données avec des clients, on a des développeurs et des DBA, on sait faire du SQL, on est compétent dans notre domaine. Donc on va se dire, commençons par faire une première requête qui va identifier les clients qui ont passé une commande dans les 30 derniers jours. Les clients actifs, votre équipe CRM, vous expliquerez ça mieux que moi, sont a priori des gens qui vont continuer à acheter. Donc sortons une première liste de clients qui ont commandé depuis moins de 30 jours. Et puis on pourrait se dire, oui mais là on veut vendre des jouets. Donc est-ce qu'il ne faudrait pas zoomer un peu sur les jouets ? Regardons des clients qui ont acheté un jouet il y a moins de 30 jours. Et puis on pourrait dire, oui mais un jouet, si les gens ont acheté des poupées ou des peluches, c'est peut-être pas tout à fait le même public qu'un acheteur de gadgets, de drones et de trucs comme ça. Donc on va chercher des gens qui ont déjà acheté un produit dont la description contient le mot hélicoptère. Ils ont déjà acheté peut-être un hélicoptère télécommandé, donc on peut avoir l'intuition qu'ils vont être intéressés par le quadcopter. Mais en même temps, on n'a pas envie de perdre le fait que quelqu'un qui achète beaucoup de jouets a peut-être envie de continuer à acheter des jouets. Donc on va chercher des clients qui ont acheté un hélicoptère il y a moins de 60 jours ou des clients qui ont passé deux commandes pour un total supérieur à 200 euros dans le mois écoulé, depuis moins de 30 jours. Ce qui paraît être une règle métier raisonnable. Ils ont acheté beaucoup il y a moins de 30 jours, peut-être qu'ils sont en train de faire leur course de Noël, et donc ils vont continuer à acheter. Bon, pourquoi pas ? Essayons. Mais on se rend compte que l'hélicoptère, ça ne va pas, parce que quelqu'un qui a déjà acheté un quadcopter, peut-être qu'il en veut un deuxième, peut-être qu'il veut l'offrir à quelqu'un de sa famille, un collègue, etc. Donc bon, donc adaptons. On continue à modifier cette règle comme ça. Et tout ça va évidemment donner lieu à de grandes discussions philosophico-techniques entre l'équipe CRM, l'équipe produit, l'équipe IT. Je pense que vous l'avez tous vécu. Je vous devine en train d'opiner du chef devant votre écran. Ça doit vous rappeler votre quotidien. Et donc on va discuter, on va vraiment discuter comme ça, j'allais dire ad nauseam, de oui mais est-ce qu'il faut mettre copter, est-ce qu'il faut mettre autre chose ? Et puis on essaie d'arriver à un consensus. Et puis quelqu'un va dire non, non, mais en fait, non, non, c'est pas bon, voilà, 90 jours c'est pas bon, mettons 120 jours et puis peut-être que 200 euros c'est trop, il n'y a pas tant de gens que ça qui ont dépensé 200 euros en 30 jours. Bon, on va mettre 150 et puis on va essayer et puis on voit. Et on continue comme ça, et on continue comme ça, et ça ne marche pas. La conclusion de ça, c'est que ça ne marche pas parce qu'on se base sur des présupposés, on se base sur des avis, des convictions et ces fameuses règles métiers qui viennent polluer le code de vos applications, qui viennent polluer les tables de vos bases au fil du temps, s'empilent à tel point que généralement au bout d'un an, deux ans, trois ans, quatre ans, cinq ans, plus personne ne sait à quoi elles servent. Le gars qui les a ordonnées ou le gars qui les a implémentées n'est plus là, mais personne n'ose toucher. Je peux je les ai vécus, donc je pourrais ne pas vous donner de nom, mais voilà, où on disait, où dans le code, on voyait, si le client égale blablabla, end product category égale blablabla, et bien on faisait ça. Et puis il y avait un enchevêtrement de règles métiers, qui est un terme poli pour dire des hacks, qui s'empilent, qui nuisent à la lisibilité du code, nuisent parfois au bon fonctionnement de l'application, et malheureusement, n'ont généralement plus aucun sens, si tant est qu'elles en aient eu à un instant T. Donc, cette solution-là, c'est une impasse, et c'est l'objectif du machine learning de régler ce problème, et de dire, au lieu d'essayer de deviner, de combiner, de magouiller sa donnée avec des avis plus ou moins divergents, on va éliminer complètement cette approche et on va laisser le machine learning faire. C'est le machine learning qui doit apprendre quels sont les clients qui sont les plus susceptibles d'acheter un quadcopter à 49,99$. C'est vraiment le fondement du machine learning, c'est qu'on ne programme pas explicitement les choses, on prend un algorithme, on prend des données et on laisse l'algorithme apprendre les données. C'est ça l'objectif du machine learning. Quelques exemples très concrets. Un cas d'application fréquent du machine learning, c'est de stocker et d'apprendre des données utilisateurs. On a vu un exemple à l'instant. Quels sont ceux de mes clients qui sont les plus susceptibles d'acheter ce produit ? C'est le cas canonique de la relation client. Sur la base d'un profil, on essaie de trouver des clients qui sont les plus susceptibles de réagir à une campagne marketing, de cliquer sur un lien, d'acheter un produit, etc. Un autre exemple, la détection de fraude, qui est un gros problème dans l'e-commerce, est de détecter qu'effectivement un achat est frauduleux parce que peut-être l'adresse de livraison ne correspond pas du tout à l'adresse de la carte, peut-être même dans un continent différent, etc. Il peut y avoir toute une série de critères qui vous permettent d'établir un score pour savoir si cette commande est valide ou pas. Et puis la recommandation de contenu, qui est un cas aussi très fréquent, vous lisez tel type d'articles sur LinkedIn, vous lisez tel type d'articles sur votre journal favori, quels sont les autres articles qu'on devrait vous montrer pour vous intéresser. Evidemment, il y a une vaste gamme d'exemples, la détection de fraude, la personnalisation de contenu, le marketing ciblé, la classification de contenu, la prédiction de churn, donc prédire quels sont les clients qui peuvent cesser ou qui risquent de cesser d'utiliser votre service, le support client, la maintenance prédictive. Alors j'ai quelques exemples AWS à vous montrer, mais je voulais laisser la parole à Jean-Louis. Tu peux nous donner des exemples concrets de clients. Un exemple classique, c'est le churn prediction, c'est-à-dire anticiper le désabonnement d'un client. Donc on a plusieurs de nos clients qui font cela, je citerai le cas de la Banque Postale, où les utilisateurs ne sont pas des experts du tout en machine learning, ils connaissent leur métier, ils connaissent les datas, et ils avaient un besoin qui était de connaître les clients à risque de résilier leur assurance, deux mois avant l'échéance de celle-ci, pour pouvoir engager des campagnes de rétention. Donc, l'intérêt du machine learning, c'est qu'ils n'ont pas codé ces règles métiers, ils ont fait apprendre sur les données, donc deux jours pour tester si les données parlaient, et ensuite la mise en production, tu y reviendras aussi, mais ça c'est très important, c'est être capable de donner des listes de clients appelés au call center. Tout ce process a duré quatre semaines, et la partie apprentissage avec la machine et le câblage dans l'entreprise, donc c'est extrêmement rapide, et les résultats, 30% d'amélioration des campagnes immédiatement. C'est super significatif et surtout dans un délai court. On a bien entendu, c'est un projet de quatre semaines. Quatre semaines mise en production quand même chez un gros assureur français. Donc avec des process, avec des règles, on ne fait pas les choses n'importe comment, et pourtant on le fait en quatre semaines. Et ça, un projet classique si on le fait sans machine learning, automatique, dans une infrastructure qui ne serait pas aussi celle d'AWS, qui a toutes les briques aussi pour aller très vite, c'est des projets de six mois minimum. Sylvain, tu avais un exemple à nous donner ? Oui, parce qu'effectivement, il y a ce cas qui est très représentatif d'un cas de scoring, on appelle en batch, par paquet, mais on a aussi des clients typiquement assure people qui utilisent la solution sur des contextes de lead scoring. L'objectif est d'arriver à savoir quels sont les clients qui méritent finalement de recevoir une offre ou quelque chose qui les amène à convertir, sachant qu'il y a des clients, on a beau les actionner, ça ne changera pas leurs décisions, qu'elles soient positives ou négatives. Donc il faut être un peu plus fin et capable en temps réel de savoir lesquels doivent être accompagnés. Oui, parce que ces campagnes, elles ont un coût. Enfin, il faut préciser, c'est qu'on a toujours l'impression qu'envoyer des mails ou faire appeler des gens par un call center, c'est pas coûteux. Mais si, si, c'est coûteux. Donc, sans compter le fait qu'être sollicité pour des trucs qui ne nous intéressent pas, ça a aussi un effet négatif. Il y a toujours ce facteur expérience utilisateur qui n'est pas mesurable, mais qui est toujours mieux géré par du machine learning. Et dans ce cas-là, une capacité à scorer en temps réel les leads à accompagner avec des résultats qui sont montés jusqu'à 30% de réduction finalement. D'accord, donc là aussi il y a des améliorations importantes. On verra tout à l'heure quand on parlera dans le deuxième webinar d'Amazon Machine Learning et d'architecture, on rentrera plus dans les détails de la solution de Predixis. Donc si ça vous intéresse, surtout restez avec nous. Alors, quelques exemples qu'on connaît tous. Voilà, ça c'est un extrait de la tête de ma homepage Amazon hier. Donc bon, vous aurez vite compris quels sont mes goûts musicaux. Et puis vous aurez sans doute compris que je suis aussi en train de faire les courses de Noël. Donc bon, voilà, un exemple de recommandation de produits pour moi et pour mes enfants manifestement, liés à tout simplement ma navigation et mon utilisation du site Amazon. Donc tout ça, c'est du machine learning. Un autre exemple d'Amazon, qui est plutôt un exemple back-office cette fois, le problème qu'on essaie de résoudre ici, c'est lorsqu'un client appelle un call center Amazon, comment est-ce qu'on peut identifier l'interlocuteur le mieux à même d'aider ce client. Sachant qu'on a des milliers de catégories de produits, que tout le monde ne peut pas être un expert de tous les produits, et que si on a un problème de console de jeu, il vaut mieux tomber sur quelqu'un qui s'y connaît, et que si on a un problème d'outil de jardinage, il vaut mieux tomber sur quelqu'un qui s'y connaît. Et donc, pour résoudre cette combinatoire infernale entre le nombre de clients, le nombre de catégories, le nombre de produits, le nombre de problèmes, Amazon a implémenté des modèles de machine learning qui sont invoqués pendant que vous faites l'appel. C'est-à-dire quand vous composez le numéro du call center, pendant que l'appel est routé, on va identifier le numéro d'appel, évidemment, on va identifier le client, et donc sur la base du profil de ce client et de ses dernières commandes, on va faire des appels à des modèles de machine learning pour essayer de prédire quel est son problème le plus probable et router cet appel vers la bonne personne. Tout ça en quelques secondes, pendant le bip bip bip bip de la communication. Voilà comment on peut optimiser aussi une expérience de support client. Quand j'ai découvert ce truc-là, je me suis dit que ce n'est pas croyable. Je trouve ça vraiment extraordinaire. Vraiment un cas d'usage inédit et hyper puissant étant donné l'échelle. Voilà un autre cas d'utilisation chez un client, un gros client dans le secteur financier qui s'appelle FINRA. FINRA est le plus gros régulateur des marchés financiers, le plus gros régulateur privé des marchés financiers américains. Donc leur job, il est facile à expliquer, ils observent toutes les transactions sur les marchés financiers américains, ils les ingèrent et ils essaient de détecter les choses suspectes pour ne pas dire illégales, pour ensuite les signaler aux autorités. Donc vous imaginez le travail, il faut donc ingérer des dizaines de milliards de transactions par jour, et puis la nuit, parce que quand le marché est fermé, faire tourner des modèles de machine learning qui vont essayer de détecter ce qui pourrait être bizarre, suspect, voire illégal. Et donc ils font ça avec des modèles qui sont construits sur Amazon EMR, qui est un service dont je parlerai demain, qui est l'environnement Hadoop Managé d'AWS, et ils utilisent jusqu'à 10 000 nœuds Hadoop en parallèle pour faire ça, c'est un nombre incroyable. Imaginez si vous deviez construire un cluster de 10 000 nœuds Hadoop en propre, je pense que votre directeur financier aurait un infarctus avant même que vous lui ayez détaillé le projet, et donc avec EMR et l'élasticité de l'infra AWS, on peut démarrer 10 000 noeuds et on peut le faire de manière économique, et j'en parlerai demain. Et grâce à cette approche, FINRA estime qu'ils économisent environ 20 millions de dollars annuellement en infrastructures, ce qui est un chiffre sympathique. Un autre exemple dans le monde de l'industrie, c'est une société qui s'appelle Ambient. Et donc ils ont tout simplement inventé un puits de forage de pétrole autonome. C'est-à-dire qu'un opérateur de puits doit tous les jours faire le tour de ces puits, vérifier qu'il n'y a pas de panne, vérifier qu'il n'y a pas de fuite, vérifier que le truc fonctionne. Et évidemment, ça a un coût et ça ne permet pas non plus de détecter les problèmes très vite. Peut-être que le problème se produit une demi-heure après la dernière visite et donc il faut attendre 24 heures. Et donc ici, Ambient, grâce au machine learning, est capable d'optimiser la production du puits, donc de savoir quand est-ce qu'il faut pomper, pendant combien de temps, à quelle vitesse, etc. Ce qui permet de maximiser le rendement quand il faut, et puis d'économiser le matériel quand il n'y a pas besoin de pomper ou que les conditions ne sont pas les bonnes. On fait de la détection de pannes, donc la maintenance prédictive, si le puits détecte un problème, détecte un risque de panne, un risque de fuite, etc., il va le signaler avant pour qu'effectivement un technicien puisse venir et intervenir sur le site. Voilà, et tout ça s'appuie là aussi sur le machine learning. Donc vous voyez, le machine learning, ce n'est pas juste pour le site web, ce n'est pas juste pour la finance, c'est aussi beaucoup, beaucoup pour l'industrie, autant pour des raisons d'optimisation de coûts que des raisons de maintenance. Voilà quelques exemples. On en donnera d'autres tout au fil de la semaine, bien évidemment, mais on va rentrer maintenant un peu dans le vif du machine learning. Le machine learning, finalement, l'objectif du machine learning est assez simple. L'objectif du machine learning, c'est pour une entrée, pour un échantillon d'entrée qu'on va appeler X, pourquoi pas. Alors ça peut être ce que vous voulez, ça peut être un profil utilisateur, ça peut être un article de journal, ça peut être ce qu'on veut, et bien on va essayer de définir, on va essayer d'apprendre la fonction f qui, à partir de cette entrée x, va produire le bon résultat y. Donc par exemple, pour un article de journal, ça peut être trouver le thème principal de cet article. Pour une image, ça peut être détecter ce qu'il y a dans l'image. Pour les exemples que tu donnais tout à l'heure, Jean-Louis, ça peut être pour un client de la Banque Postale se rendre compte qu'effectivement, il risque d'abandonner le service dans les deux mois, etc. L'objectif, c'est ça. On connaît notre échantillon. Dans notre jeu de données, on connaît les résultats. Dans la plupart des cas, on a des données historiques, on va y revenir tout à l'heure. Et donc à partir de ces données historiques, on veut apprendre et construire un modèle qui va nous permettre de prédire le bon résultat pour les nouveaux échantillons. Et donc ce qu'on appelle un modèle, c'est un algorithme, qui est souvent un algorithme standard, on en verra quelques-uns dans deux minutes, un jeu de données que vous allez construire et faire ingénière. Et puis des paramètres qui vont être appris par l'algorithme pendant l'analyse du dataset. Donc c'est vraiment ces trois trucs-là, un algorithme, un jeu de données, et puis des paramètres que l'algorithme a appris sur le jeu de données. La combinaison de ces trois sujets, c'est le modèle. Alors, quelques exemples. Il y a l'apprentissage supervisé qui est sans doute le plus fréquent où le jeu de données est étiqueté. Donc on va fournir des échantillons qui sont étiquetés. Donc on va dire que effectivement tous ces clients-là, ils se sont désabonnés. Par contre, tous ceux-là, ils ne se sont pas désabonnés. Donc on fournit à l'algorithme un jeu de données avec les échantillons et le résultat attendu. Par exemple ici, on pourrait dire voilà le prix des appartements à New York depuis 10 ans en fonction du code postal, du nombre de pièces, etc. Maintenant, tu apprends sur cette base-là. Maintenant, je te donne une nouvelle maison, je te dis qu'elle est à telle adresse et qu'elle a 5 pièces, combien est-ce qu'elle vaut ? Ensuite, il y a l'apprentissage non supervisé où là, on va donner un dataset qui n'est pas étiqueté. Donc on va juste donner des échantillons. Donc cette fois on va dire voilà 100 000 profils clients, regroupe-les en 100 groupes cohérents, construis 100 groupes et maintenant je te montre un nouveau client et tu me dis à quel groupe il ressemble le plus. Donc là on donne des données non étiquetées. Puis il y a un troisième type d'apprentissage qui s'appelle l'apprentissage par renforcement, où là on va donner un objectif à l'algorithme, sans rentrer trop dans les détails parce que cette catégorie-là est plus compliquée, on est dans des types de problèmes de voilà un graphe de 1000 nœuds, trouve-moi le point le plus court entre A et B, le fameux problème du voyageur de commerce, là l'objectif c'est de minimiser la distance, c'est de minimiser un paramètre et donc l'algorithme va progressivement apprendre à optimiser et à générer les chemins les plus courts. Les classes de problèmes les plus fréquentes, donc dans l'apprentissage supervisé, on a la régression qui consiste à prédire une valeur, donc prédire le prix d'une maison, prédire la probabilité qu'un moteur tombe en panne dans les 24 heures et là l'algorithme roi c'est ce qu'on appelle la régression linéaire, on va voir ça dans deux minutes. Ensuite, on a la classification, donc ça c'est bien ce que c'est la classification, c'est grouper des échantillons de manière cohérente. Donc un cas classique, c'est dans le domaine médical, sur par exemple des données d'analyse médicale sur les tumeurs, de dire est-ce que c'est une tumeur qui est bénigne ou est-ce que c'est une tumeur qui est maligne. Donc là il y a deux catégories. Mais on pourrait classer des clients entre des clients premium, non premium, on pourrait avoir deux classes, on pourrait avoir cinq classes, on pourrait avoir dix classes. Quand on fait de la classification d'images par exemple, on peut dire dans cette image il y a un chat, il y a un chien, il y a un lion, il y a un tigre. On peut avoir plein de catégories, ce n'est pas forcément deux catégories. Et là, il y a toute une palette d'algorithmes. On verra dans quelques minutes la régression logistique, mais sachez qu'il en existe plein d'autres. J'en ai juste cité quelques-uns. Et puis, dans le cas de l'apprentissage non supervisé, le cas d'usage type, c'est ce qu'on appelle le clustering. Donc, c'est regrouper des échantillons qui se ressemblent. Par exemple, mes clients. J'ai mes 100 000 clients avec des profils, et je veux les grouper, je veux faire des paquets de clients et je veux être capable d'identifier à quel groupe un nouveau client appartient parce que je veux savoir quelle est la campagne marketing par exemple à laquelle il va être le plus susceptible de réagir. Donc là on se contente de fournir des échantillons et c'est l'algorithme lui-même qui va comprendre comment les regrouper et comment constituer ces fameux clusters. Et là l'algorithme dominant c'est un algorithme qui s'appelle K-Means, mais dont je ne parlerai pas aujourd'hui. Donc voilà les grandes classes de problèmes. Alors avant de passer aux démos, je voulais vous ouvrir un peu plus le périmètre. Là on parle d'algorithmes, on parle de classification, on parle de problèmes, etc. à résoudre, mais il faut bien comprendre que le machine learning c'est beaucoup plus que des algos. Donc tout le monde se concentre tout le temps sur et quel modèle je prends et quel algo je prends et comment je le paramètre, etc. Mais en fait c'est vraiment finalement ça n'est qu'une petite partie ici centrale sur l'ensemble du sujet parce que le problème du machine learning commence bien en amont. Déjà, c'est à quelle question est-ce que je veux répondre ? Et on sait bien que c'est fondamental. Quelle est la question à laquelle je dois répondre ? Et je rencontre encore plein de gens pour qui c'est clair. Mon conseil c'est si vous savez pas à quelle question vous voulez répondre, commencez par définir la question parce que sinon le reste va être compliqué. Donc ensuite on va essayer de cadrer un peu le problème, on va essayer de comprendre comment y répondre, avec quel type de données. Donc par exemple, si je veux connaître le prix des maisons, prédire le prix des maisons à New York, bon il va me falloir des données historiques sur les transactions immobilières, comment est-ce que je me les procure, où est-ce que je les trouve, est-ce que j'en ai en interne, est-ce qu'il faut que je les achète, est-ce qu'il faut... Voilà. Déjà, il y a tout ce sujet-là. Où est-ce que je trouve la donnée et de quel type de données j'ai besoin et où est-ce que je la trouve. Donc la phase vraiment de collection, de collecte, la phase d'intégration, comment je la fais rentrer dans ma plateforme. Ensuite, il va falloir la nettoyer, il va falloir la visualiser, et seulement ensuite on va rentrer vraiment dans le machine learning à proprement parler. Donc on va rentrer dans la définition des features, on va rentrer dans l'entraînement, l'évaluation, etc. On verra ces étapes un peu plus en détail dans le deuxième webinar. Et puis une fois que tout ça fonctionne, je vais lire sur le poste du data scientist, il y a surtout comment est-ce que je le déploie, comment est-ce que je l'amène en production, on en parlait tout à l'heure, c'est cette flèche là, la flèche du passage en production, c'est sans doute l'étape la plus difficile. Et on verra tout à l'heure comment on peut y répondre. Donc on voit vraiment que l'algo, certes c'est important, mais il y a tout un ensemble de briques et d'étapes indispensables en amont et en aval de la construction du modèle. Et vraiment j'insiste sur ce point, il faut avoir ces services, Jean-Louis l'a dit tout à l'heure, il faut avoir du stockage, il faut avoir du calcul, il faut avoir de l'analytics, il faut avoir des outils de déploiement. Il faut une plateforme robuste pour pouvoir faire tout ça. Alors, passons aux démos. On va commencer par une première démo qu'on va faire contre toute attente dans Excel. Et vous allez tout de suite comprendre pourquoi. Donc, on va faire une régression linéaire dans Excel. Alors évidemment, j'ai un jeu de données qui est très simple. Donc concentrez-vous pour l'instant sur les colonnes bleues, ok ? Et sur le graphe qui est à côté. Donc vous voyez ici, j'ai 10 échantillons, x de 1 à 10, et puis pour chaque échantillon, j'ai une valeur. Et puis quand je trace ces points, ça me donne ça. Bon, c'est pas vraiment une droite, c'est pas tout à fait une droite, mais on sent que c'est pas loin d'être une droite. Donc le but du jeu maintenant, c'est est-ce qu'on peut trouver la meilleure droite qui passe par ces points ? Alors comme on est tous allé à l'école, on sait qu'il y a une formule mathématique qui nous permet de faire ça, mais ici on va le faire avec un algo de machine learning. Donc cet algo, il a pour but de trouver ces deux paramètres, W0 et W1, vous reconnaissez ici l'équation d'une droite, fonction affine, et donc je veux trouver ces deux paramètres, W0 et W1, qui vont me permettre ici de tracer la meilleure droite possible. Alors comment est-ce qu'on va faire ? On va faire ça très simplement. On va partir de deux valeurs initiales, on va prendre 0 parce qu'on ne sait pas par quoi commencer. Donc on va commencer par 0 pour ces deux valeurs. Ok ? Donc les voilà. Et donc pour mon premier point, je vais calculer la valeur prédite. Donc ici, c'est 0 plus 0 fois 1, donc ça fait 0. D'accord ? Et donc l'erreur de prédiction, c'est-à-dire l'erreur entre la valeur prédite et la valeur réelle, c'est moins 1. D'accord ? Mon erreur sur cette prédiction initiale, c'est moins 1. Donc l'erreur est négative. L'hypothèse que je vais faire, c'est que si je bouge W0 et W1 dans le sens inverse, c'est-à-dire si je les augmente positivement d'un petit pas, je vais sans doute me rapprocher de la vérité progressivement. Donc ici, j'ai une erreur négative. Donc je vais calculer W0 et W1. D'accord ? Et je vais multiplier tout simplement cette erreur de prédiction. Je vais changer son signe, d'abord. Et je vais la multiplier par une petite valeur que j'appelle le learning rate, le taux d'apprentissage. Et donc cet algorithme, c'est ce qu'on appelle le SGD, Stochastic Gradient Descent, c'est un algorithme qui, de manière itérative, va me permettre de me rapprocher des bonnes valeurs. Vous allez voir. Donc là, j'ai mis W0 à 0,01 et 0,01 aussi pour W1. Et je fais ma deuxième prédiction. Je fais 2 fois 0,01 plus 0,01, ça donne 0,03. Cette fois, mon erreur de prédiction, c'est moins 2,47. Et je continue. Je prends cette erreur de prédiction. Elle est toujours négative. Je la repasse positive. Et je rajoute à W0 et W1, cette erreur positive multipliée par 0,01. Et ça me donne ça. Et je continue. Et je continue. Et je continue. Et je continue. Et donc, au bout de quelques itérations, donc là, vous voyez, j'aurais passé deux fois tout le dataset. Poussons l'exercice encore un peu. On va le faire encore 3 ou 4 fois. On voit progressivement, j'ajoute ou je soustrais, quand l'erreur est positive, à W0 et à W1, des petites quantités qui me permettent de converger. Je vois finalement que ma fonction d'erreur, elle aussi, tourne autour de 0. Parfois j'atteins 0, parfois je suis un peu autour, mais je sens quand même que je ne suis pas très loin du bon résultat. Mon erreur est pas mal. Et quand je vois la courbe qui est tracée à la fin, donc là c'est la courbe qui va correspondre à ces deux valeurs de W0 et W1, je me rends compte qu'elle n'est pas si mal. Elle est un peu basse peut-être. Et puis c'est vrai que si je regarde ma courbe d'erreur, je me rends compte que j'ai tendance à rebondir un peu de part et d'autre. Ce que je pourrais peut-être faire, c'est me dire, tiens, au bout de... à partir de ce point-là, au lieu d'utiliser 0.01 comme learning rate, peut-être que je vais prendre 0.001. Histoire de faire des plus petits pas, des plus petits ajustements. Je vais le changer ici. Voilà, je vais passer sur mon learning rate affiné. Et je vais juste recalculer ces quelques points-là. Je me rends compte que, ah, c'est pas mal, mes oscillations sont plus petites. Et ma droite, elle est un peu mieux, elle est remontée un petit peu. Si je continuais, je finirais par avoir une droite assez parfaite. Ok ? Alors, qu'est-ce que ça nous apprend ? Ça nous apprend qu'on peut, avec un algo simple comme ça, sur la base d'un jeu de données, apprendre automatiquement des bons paramètres. Ici, c'est un cas très simple. On essaie d'apprendre les bons paramètres pour une droite, mais la régression linéaire, on pourrait la généraliser à une fonction à 50 paramètres, si on voulait. À partir du moment où il y a une relation linéaire entre l'entrée et la sortie, on peut, de manière itérative, apprendre quels sont les bons paramètres. On voit sur cet exemple-là qu'il y a tout un tas de bonnes questions à se poser. Ici, je suis parti de 0 et de 0, mais il y avait peut-être de meilleures valeurs. Par exemple, si j'essayais 0.5 et 0.5, est-ce que ce n'est pas mieux ? Regardez ma droite, elle est mieux. On va le refaire. Ça, c'est 0.0. Si j'étais parti de 0.5, 0.5, je me rends compte que ma droite, elle est bien, elle est meilleure. Donc, c'est un meilleur point de départ. La question est comment choisir le learning rate. Là, je suis parti de 0.01, mais si j'étais parti de 0.1 par exemple, on voit que ça marche pas du tout, on converge pas. Et si j'étais parti de 0.001 directement, on se rend compte que 0.001, on a du mal à apprendre, la droite a du mal à monter. Donc un learning rate trop grand, ça va pas, un learning rate trop petit, ça va pas. Il y a des questions à se poser, comme quand est-ce qu'il faudrait le réduire, à quel moment est-ce qu'il faut que je le réduise pour que mes oscillations et ma fonction d'erreur se rapprochent de zéro. Et puis pendant combien de temps faut que je fasse ça. Là, je fais pendant six ou sept itérations. Même sur un exemple comme ça, tout simple, on touche du doigt les vraies problématiques du machine learning. C'est pour ça que je voulais vous le montrer dans Excel, parce qu'on voit que ce n'est pas un problème de code, finalement, c'est vraiment un problème de quels sont les choix qu'on va faire, quel est l'algorithme qu'on prend, quels sont les poids qu'on va choisir, quels sont les learning rates qu'on va choisir, etc. On va quand même faire la même chose avec du code. Donc on va faire exactement le même exemple en Python avec une librairie qui s'appelle Scikit-learn, qui est extrêmement populaire chez les data scientists. C'est une bonne librairie pour faire du machine learning. Vous voyez ici j'ai les mêmes valeurs. Donc j'ai mes X et j'ai mes Y. Ok ? Je construis un modèle de régression linéaire basé sur Scikit-learn. Je lui passe X et Y. Et c'est tout. J'adore Python. Voilà, c'est tout. Vous allez me dire que c'est plus simple qu'Excel. Oui, c'est plus simple qu'Excel, mais le truc, c'est que là, on ne voit pas ce qui se passe. Et si on veut comprendre un peu, avoir l'intuition de ce qui se passe quand on fait ça, c'est intéressant de le faire dans Excel. Je peux même sauver mon modèle pour m'en servir plus tard, et puis je peux afficher les deux coefficients. Donc ici, ça va être W1 en réalité, et ici ça va être W0. Je vais faire des prédictions pour voir à quel point mon modèle est correct, et puis on va tracer la courbe. Voilà le résultat qu'on obtient. Les points bleus, on remet les choses en perspective. Les points bleus sont les mêmes que tout à l'heure et la droite orange ici, c'est la droite qui a été calculée par Scikit-learn. Finalement, on voit que mon bricolage de tout à l'heure n'était pas si mauvais. Là, j'avais W0 égale 0.53 et 0.68. Ici, j'obtiens 0.13 et 0.114. Je n'étais pas très loin. Il aurait fallu que j'entraîne encore un peu mon modèle dans Excel. Voilà un exemple vraiment tout simple, où en quelques lignes de Python, on arrive à faire une régression linéaire. C'est du machine learning. C'est un exemple simple avec un tout petit dataset, mais c'est du machine learning. Quelques lignes de code. Et puis un dernier exemple, une régression logistique. La régression logistique, c'est un algorithme de classification. Ici, je vais utiliser un dataset sur des iris, sur les fleurs, qui mesure 4 propriétés de 3 variétés d'iris différentes. Donc la longueur des pétales, etc. Et pour la petite histoire, ce dataset date de 1936. C'est assez amusant. On va charger le dataset. Ce dataset aura des échantillons. Pour chaque échantillon, il y aura quatre valeurs numériques. Il y aura une target, donc un label, qui sera 0, 1 ou 2, qui sera le type d'iris concerné. On construit le modèle. On l'entraîne. Et puis ensuite on prédit et on affiche les résultats. Vous voyez, c'est vraiment entraîner le modèle, c'est littéralement une seule ligne de code. On va l'exécuter et on va regarder un peu la qualité de cette régression. Voilà, ici on voit qu'on a donc 150 échantillons avec 4 features. Les 4 features, les pétales, etc. Voilà quelques exemples. On a 150 labels. Les 10 premiers que j'ai affichés sont tous de la même catégorie à 0. Et donc ensuite, quand on entraîne le modèle et qu'on prédit les 150 échantillons, on obtient un certain nombre de métriques ici. Je ne rentre pas aujourd'hui dans ces détails, on en reparlera sans doute tout à l'heure, mais on voit des métriques pour chacune des catégories. Par exemple, la catégorie 0, donc cette catégorie d'iris-là, elle a été parfaitement prédite. Il n'y a aucune erreur sur les 50 échantillons qui sont dans le dataset. Sur le deuxième, on a quelques petites erreurs, sur le troisième, quelques petites erreurs. Voilà, donc on voit ici ce qu'on appelle la matrice de confusion. On voit, ça c'est la catégorie 1, donc les 50 échantillons ont été prédits correctement. La catégorie 2, donc il y en a 45 qui ont été prédits correctement, 5 qui ont été prédits incorrectement comme étant de la catégorie 2. Ici on a la catégorie 3, donc 49 qui ont été prédits correctement, et 1 qui a été incorrectement prédit comme étant de la deuxième catégorie. Voilà, ce qu'on appelle la matrice de confusion. En 20 lignes, j'ai mis beaucoup de commentaires, il n'y a même pas 20 lignes de code, on arrive à faire un petit classifiant. Voilà deux exemples d'apprentissage supervisé, une régression linéaire pour prédire une valeur, prédire la droite qui passe par le point, et une régression logistique ici pour faire de la classification d'items. Voilà ce qu'on pouvait dire pour ce premier webinar. On va passer aux questions. Je voulais juste finir sur cette citation de Jeff Bezos, qui est le fondateur d'Amazon, qui montre à quel point le machine learning et l'IA sont importants pour Amazon et pour AWS et pour les clients d'AWS. On est vraiment dans une époque où la technologie a fait des sauts énormes et on va le voir tout au fil de la semaine. Voilà, quelques ressources supplémentaires pour creuser les sujets. Scikit-learn dont j'ai parlé tout à l'heure. Un site qui s'appelle machinelearningmastery.com que j'aime beaucoup, qui est extrêmement didactique, que je recommande à tous les débutants. Beaucoup d'articles pour bien débuter. Il y a un cours de machine learning sur Coursera qui est pas mal du tout. Il faut s'accrocher un petit peu plus, mais qui est très complet. Et puis nos amis de Predixis sont en train de monter un cours, je vais les laisser en parler, pendant que je regarde déjà les questions. Oui, en effet, notamment avec toutes les annonces de nouveaux services AI et ML disponibles sur AWS, il y a un vrai besoin, et on souhaite apporter une formation là-dessus, d'être capable de construire un peu tout le workflow qu'on a vu tout à l'heure, sur un de tes slides, mais de manière vraiment concrète pour répondre à des cas métiers. Voilà, donc l'URL est là, vous aurez les slides tout à l'heure, n'hésitez pas si vous voulez des cours un peu plus structurés et puis l'aide d'experts en machine learning pour vous aider à bien commencer dans vos entreprises, n'hésitez pas à vous tourner vers Predixis. Voilà le sondage, vous avez l'habitude, donc je vous laisse voter pendant une trentaine de secondes. 5, vous êtes très contents, et 1, vous êtes très mécontents, ne vous trompez pas. 5 est la meilleure note et 1 la plus mauvaise note. Et pendant que vous votez, on va commencer à regarder vos questions. Et il y en a énormément, je pense qu'on aura pas le temps de tout faire. Oui, j'ai oublié de le dire, je vais répondre déjà. Tout ça est sur GitHub, y compris la feuille Excel qui a l'air de vous plaire. Je suis content parce que j'ai passé du temps à faire ça. Voilà, donc github.com/julien-simon. Je vous la laisse à l'écran. Il y a un répertoire qui s'appelle AWS à l'intérieur de ce repository. Et là-dedans, vous trouverez un autre répertoire qui s'appelle ML et vous trouverez tout là dedans. Je vous laisse à l'écran pour que vous puissiez récupérer. Oui, les slides aussi vous les aurez, je pense que Hugo va vous les partager si ça n'est déjà fait, j'ai oublié de le préciser tout à l'heure. Jean-Louis, quelles sortes de données sont utilisées dans le cadre du Churn Prediction à l'avant-postale ? C'est classiquement des données historiques. Comme tu l'as dit, Julien, les clients ont un comportement. Il y a des clients qui se désabonnent, des clients qui ne se désabonnent pas. Après, il y a toutes les données que toutes les entreprises ont sur leurs clients, les appels au call center, les demandes de remboursement suite à un sinistre, toutes les données classiques que les assureurs ont pour faire leur travail. Ces données, en fait, le machine learning peut en dégager des profils, des patterns. Donc le profil de la personne qui va se désabonner. On va regarder les clients qui sont désabonnés, ceux qui ne sont pas désabonnés, et la machine va apprendre comme tu l'as fait avec une droite, c'est un peu différent là, c'est du supervisé, et va sortir les variables qui expliquent le fait qu'un abonné va partir dans les deux mois avant la fin de son contrat. Ce profil-là va être appliqué aux données chaudes, on va dire les données de personnes qui sont encore en cours de contrat et va permettre de dire, étant donné que le profil de ce client est très proche du profil du client qui a résilié, il y a un risque fort que ce client résilie ou alors il est très loin, donc il n'y a pas de risque a priori de le faire. C'est toujours le même principe qu'on fasse du churn, qu'on fasse de la détection de pannes. Est-ce que Big Data et Machine Learning vont bien ensemble ? La réponse est oui. Vous l'avez bien compris en voyant le scope du Machine Learning. C'est vraiment... Oui, on retrouve, c'est une question de Laurent. Donc c'est une bonne question parce qu'effectivement, la phase de collecte, de nettoyage, de préparation des données est vraiment essentielle. Si les données sont sales ou s'il y a des valeurs manquantes ou incohérentes, etc., le modèle ne va pas bien fonctionner. Donc avoir en amont un pipeline de données qui va regrouper, collecter, nettoyer, normaliser, etc., est vraiment important. Oui, lorsqu'on le fait à l'échelle en production, on a absolument besoin de ça. J'ajouterais que le V qui est important du Big Data pour l'intelligence artificielle, c'est la variété. Votre intelligence artificielle sera d'autant meilleure qu'elle ait accès à un plus grand nombre de sources de données qui capturent un plus grand nombre de comportements de manière brute. Et c'est l'intelligence artificielle qui va tirer de ces données brutes, de ce maximum de sources de données différentes, la connaissance qui sera réutilisée dans une application métier. Le learning rate est forcément toujours le même pour tous les paramètres. Ici, dans mon exemple, dans ma feuille Excel, histoire de faire simple, j'ai choisi d'avoir le même learning rate pour mes deux paramètres. On pourrait tout à fait envisager d'avoir des learning rates différents pour les deux paramètres. Il y a même des algorithmes, des variations de l'algorithme SGD qui sont automatiquement capables d'adapter le learning rate par paramètres. On en parlera un petit peu lorsqu'on fera du deep learning plus tard dans la semaine. Ici, on est resté sur un exemple simple, mais vous avez raison, c'est un des paramètres importants. Il y a une question sur les prix qui est très importante. Oui, vas-y. Effectivement, le but du machine learning, ce n'est pas réservé aux grands groupes. C'est ça la révolution du machine learning, c'est-à-dire qu'aujourd'hui, sur Amazon, tu démarres ton projet de machine learning, ce n'est pas 6 mois, 8 mois, c'est quelques heures de travail pour voir si ça commence à donner des résultats et ça coûte quelques dollars. Donc c'est vraiment une rupture aussi dans la barrière d'entrée et ça n'est plus du tout réservé aux grands groupes. Exact. Alors il y avait une autre question, quelle est la différence entre machine learning et deep learning ? On va parler de deep learning plus tard dans la semaine, pas de soucis. Si je dois répondre en 10 secondes, le machine learning travaille sur des données structurées où les features, donc les colonnes, sont bien nettes et bien apparentes. Dans le deep learning, on va travailler sur des données non structurées comme des images ou de la voix où les variables ne sont pas apparentes et où ça va être le rôle du modèle de les apprendre automatiquement. On a encore un peu de temps pour quelques petites questions rapides. Question sur les statistiques et le machine learning. Celle de Alan Benier. Pourquoi parle-t-on d'intelligence alors que l'approche semble être purement statistique ? Aujourd'hui on a présenté quelque chose qui est très statistique, qui est un algorithme de régression. On a beaucoup parlé de la régression aujourd'hui. Mais l'IA, ça va, et on le voit sur tout ce qui sort actuellement autour des applications du deep learning, ça va du speech-to-texte à la détection de visages dans les images, en passant par la reconnaissance vocale. C'est ce qu'on va voir dans la semaine. Là on a commencé doucement, mais on va aller dans des comportements et des apprentissages de comportement de plus en plus compliqués. Ok, allez, une dernière ? Alors, question de Willy qui est intéressante aussi. Est-ce qu'on doit utiliser beaucoup de données sources ou est-ce qu'il existe déjà des datas qui nous éviteraient de refaire l'apprentissage ? C'est une bonne question parce qu'on l'a vu tout à l'heure, le point clé c'est de construire son jeu de données. Si on parle de prédiction de churn, oui, il va falloir le faire sur ses propres clients. Mais par exemple, si on voulait faire... On pourrait imaginer que, l'industrie bancaire partage de manière anonyme des jeux de données sur le comportement de tel ou tel type de client, etc., et qu'on se les échange et qu'on puisse travailler. Donc à partir du moment où il y a des jeux de données qui correspondent à votre secteur d'activité et qui peuvent vous aider à prédire, ça peut être intéressant de les regarder. On verra quand on parlera de deep learning plus tard dans la semaine, pour tout ce qui est justement images, reconnaissance d'images, vidéos, etc. Il y a beaucoup de jeux de données qui existent déjà. Donc on peut d'une part les récupérer et apprendre, puis on peut même récupérer des modèles qui ont déjà été entraînés sur ces datasets et se contenter de les utiliser en les affinant un petit peu. Donc la problématique du dataset est toujours centrale. Voilà, on n'a plus de temps, donc on va faire une pause de 3 minutes et puis on vous retrouve dans quelques instants pour le deuxième webinar sur Amazon Machine Learning. Merci beaucoup, à tout de suite.

Tags

Machine LearningIntroductionPrédictionDonnées HistoriquesAlgorithme Supervisé