00:21 Introduction
01:53 De la prévision à l’apprentissage
05:32 Apprentissage automatique 101
09:51 L’histoire jusqu’à présent
11:49 Mes prédictions pour aujourd’hui
13:54 Précision sur des données que nous n’avons pas 1/4
16:30 Précision sur des données que nous n’avons pas 2/4
20:03 Précision sur des données que nous n’avons pas 3/4
25:11 Précision sur des données que nous n’avons pas 4/4
31:49 Gloire au modèle de correspondance
35:36 Une profondeur dans l’apprentissage 1/4
39:11 Une profondeur dans l’apprentissage 2/4
44:27 Une profondeur dans l’apprentissage 3/4
47:29 Une profondeur dans l’apprentissage 4/4
51:59 Visez grand ou rentrez chez vous
56:45 Au-delà de la perte 1/2
01:00:17 Au-delà de la perte 2/2
01:04:22 Au-delà de l’étiquette
01:10:24 Au-delà de l’observation
01:14:43 Conclusion
01:16:36 Prochain cours et questions du public

Description

Les prévisions sont irréductibles dans la supply chain car chaque décision (achat, production, stockage, etc.) reflète une anticipation des événements futurs. L’apprentissage statistique et l’apprentissage automatique ont largement supplanté le domaine classique de la « prévision », tant d’un point de vue théorique que pratique. Nous tenterons de comprendre ce que signifie une anticipation basée sur les données du futur, d’un point de vue moderne de l’apprentissage.

Transcription complète

Slide 1

Bienvenue dans la série de cours sur la supply chain. Je suis Joannes Vermorel et aujourd’hui je vais présenter “Machine Learning pour la Supply Chain”. Nous ne pouvons pas imprimer en 3D des biens en temps réel et nous ne pouvons pas les téléporter là où ils doivent être livrés. En réalité, presque toutes les décisions de la supply chain doivent être prises en regardant vers l’avenir, en anticipant la demande future ou les mouvements de prix, en reflétant implicitement ou explicitement des conditions de marché futures anticipées, que ce soit du côté de la demande ou de l’offre. En conséquence, la prévision est une partie intégrante et irréductible de la supply chain. Nous ne connaissons jamais l’avenir avec certitude ; nous ne pouvons que deviner l’avenir avec des degrés de certitude variables. L’objectif de ce cours est de comprendre ce que l’apprentissage automatique apporte en termes de capture de l’avenir.

Slide 2

Nous verrons dans ce cours que fournir des prévisions plus précises est, dans le grand schéma des choses, un souci relativement secondaire. En fait, de nos jours, en supply chain, la prévision signifie prévision des séries temporelles. Historiquement, les prévisions des séries temporelles sont devenues populaires au début du XXe siècle aux États-Unis. En effet, les États-Unis ont été le premier pays à avoir des millions d’employés de la classe moyenne qui possédaient également des actions. Comme les gens voulaient être des investisseurs avisés, ils voulaient avoir des informations sur leurs investissements, et il s’est avéré que les séries temporelles et les prévisions des séries temporelles étaient un moyen intuitif et efficace de transmettre ces informations. Vous pouviez avoir des prévisions des séries temporelles sur les futurs prix du marché, les futurs dividendes et les futures parts de marché.

Dans les années 80 et 90, lorsque la supply chain a été essentiellement numérisée, les logiciels d’entreprise de la supply chain ont également commencé à bénéficier des prévisions des séries temporelles. En réalité, les prévisions des séries temporelles sont devenues omniprésentes dans ce type de logiciels d’entreprise. Cependant, si vous regardez cette image, vous pouvez réaliser que les prévisions des séries temporelles sont en réalité une façon très simpliste et naïve de regarder vers l’avenir.

Vous voyez, si je regarde simplement cette image, je peux déjà deviner ce qui va se passer ensuite : il est très probable qu’une équipe va arriver, qu’elle va nettoyer ce désordre et très probablement qu’elle va ensuite inspecter les chariots élévateurs pour des raisons de sécurité. Ils pourraient même effectuer quelques réparations légères et avec un degré de confiance élevé, je peux dire que très probablement ce chariot élévateur sera bientôt remis en service. En regardant simplement cette image, nous pouvons également prédire quelles sortes de conditions ont conduit à cette situation. Rien de tout cela ne correspond à la perspective d’une prévision des séries temporelles, et pourtant toutes ces prédictions sont très pertinentes.

Ces prédictions ne concernent pas vraiment l’avenir en soi, car cette photo a été prise il y a un certain temps, et même les événements qui ont suivi la prise de cette photo font maintenant partie de notre passé. Mais néanmoins, ce sont des prédictions dans le sens où nous faisons des déclarations sur des choses dont nous ne sommes pas sûrs. Nous n’avons pas de mesure directe. Donc, la chose principale qui nous intéresse est de savoir comment je suis même capable de produire ces prédictions et de faire ces déclarations ?

Il s’avère qu’en tant qu’être humain, j’ai vécu, j’ai été témoin d’événements et j’en ai appris. C’est ainsi que je peux réellement produire ces déclarations. Et il s’avère que l’apprentissage automatique est exactement cela : c’est l’ambition de pouvoir reproduire cette capacité d’apprentissage avec des machines, les machines préférées étant de loin les ordinateurs de nos jours. À ce stade, vous vous demandez peut-être comment l’apprentissage automatique est même différent d’autres termes tels que l’intelligence artificielle, les technologies cognitives ou l’apprentissage statistique. Eh bien, il s’avère que ces termes en disent beaucoup plus sur les personnes qui les utilisent que sur le problème lui-même. En ce qui concerne le problème, les frontières entre tous ces domaines sont très floues.

Slide 3

Maintenant, plongeons dans une revue de l’archétype des cadres d’apprentissage automatique, en couvrant une courte série de concepts centraux de l’apprentissage automatique. La plupart des articles scientifiques et des logiciels produits dans ce domaine de l’apprentissage automatique exploitent largement ce cadre. La fonctionnalité représente une donnée mise à disposition pour effectuer la tâche de prédiction. L’idée est que vous avez une tâche de prédiction à effectuer, et une fonctionnalité (ou plusieurs fonctionnalités) représente ce qui est mis à disposition pour effectuer cette tâche. Dans le contexte des prévisions de séries temporelles, la fonctionnalité représenterait la section passée de la série temporelle, et vous auriez un vecteur de fonctionnalités représentant tous les points de données passés.

L’étiquette représente la réponse à la tâche de prédiction. Dans le cas d’une prévision de séries temporelles, elle représente généralement la partie de la série temporelle que vous ne connaissez pas, là où se trouve l’avenir. Si vous avez un ensemble de fonctionnalités plus une étiquette, on parle d’une observation. La configuration typique d’apprentissage automatique suppose que vous disposez d’un ensemble de données contenant à la fois des fonctionnalités et des étiquettes, qui représente votre ensemble de données d’entraînement.

L’objectif est de créer un programme appelé le modèle qui prend les fonctionnalités en entrée et calcule l’étiquette prédite souhaitée. Ce modèle est généralement conçu grâce à un processus d’apprentissage qui parcourt l’ensemble des données d’entraînement et construit le modèle. L’apprentissage dans l’apprentissage automatique est la partie où vous construisez réellement le programme qui effectue les prédictions.

Enfin, il y a la perte. La perte est essentiellement la différence entre l’étiquette réelle et celle prédite. L’objectif est que le processus d’apprentissage génère un modèle qui effectue des prédictions aussi proches que possible des étiquettes réelles. Vous voulez un modèle qui maintient les étiquettes prédites aussi proches que possible des étiquettes réelles.

L’apprentissage automatique peut être considéré comme une vaste généralisation de la prévision des séries temporelles. Du point de vue de l’apprentissage automatique, les fonctionnalités peuvent être n’importe quoi, pas seulement un segment passé d’une série temporelle. Les étiquettes peuvent également être n’importe quoi, pas seulement le segment futur d’une série temporelle. Le modèle peut être n’importe quoi, et même la perte peut être à peu près n’importe quoi. Nous avons donc un cadre qui est beaucoup plus expressif que les prévisions des séries temporelles. Cependant, comme nous le verrons, la plupart des principales réalisations de l’apprentissage automatique en tant que domaine d’étude et de pratique découlent des découvertes d’éléments qui nous obligent à revoir et à remettre en question la liste des concepts que je viens de présenter brièvement.

Slide 4

Cette conférence est la quatrième d’une série de conférences sur la supply chain. Les sciences auxiliaires représentent des éléments qui ne sont pas la supply chain en soi, mais qui représentent quelque chose d’importance fondamentale pour la supply chain. Dans le premier chapitre, j’ai présenté mes points de vue sur la supply chain à la fois en tant qu’étude physique et en tant que pratique. Dans le deuxième chapitre, nous avons passé en revue une série de méthodologies nécessaires pour aborder un domaine comme la supply chain qui présente de nombreux comportements adverses et ne peut pas être facilement isolé. Le troisième chapitre est entièrement consacré aux personae de la supply chain, qui est une façon de se concentrer sur les problèmes que nous essayons de résoudre.

Dans ce quatrième chapitre, j’ai progressivement parcouru l’échelle de l’abstraction, en commençant par les ordinateurs, puis les algorithmes, et la conférence précédente sur l’optimisation mathématique, qui peut être considérée comme la couche de base de l’apprentissage automatique moderne. Aujourd’hui, nous nous aventurons dans l’apprentissage automatique, qui est essentiel pour capturer l’avenir qui prévaut dans toutes les décisions de la supply chain que nous devons prendre chaque jour.

Slide 5

Alors, quel est le plan pour cette conférence ? L’apprentissage automatique est un domaine de recherche énorme, et cette conférence sera guidée par une courte série de questions qui se rapportent aux concepts et aux idées que j’ai présentés précédemment. Nous verrons comment les réponses à ces questions nous obligent à revoir la notion même d’apprentissage et la façon dont nous abordons les données. L’une des réalisations les plus spectaculaires de l’apprentissage automatique est qu’il nous a obligés à réaliser qu’il y a tellement plus en jeu par rapport aux grandes ambitions initiales des chercheurs qui pensaient que nous serions capables de reproduire l’intelligence humaine en une décennie.

En particulier, nous examinerons l’apprentissage profond, qui est probablement le meilleur candidat que nous ayons pour émuler un degré plus élevé d’intelligence à l’heure actuelle. Bien que l’apprentissage profond soit apparu comme une pratique incroyablement empirique, les progrès et les réalisations accomplis grâce à l’apprentissage profond jettent un nouvel éclairage sur la perspective fondamentale de l’apprentissage à partir de phénomènes observés.

Slide 6

Le premier problème que nous rencontrons avec la modélisation, qu’elle soit statistique ou autre, est la précision des données que nous n’avons pas. Du point de vue de la supply chain, cela est essentiel car notre intérêt réside dans notre capacité à anticiper l’avenir. Par définition, l’avenir représente un ensemble de données que nous n’avons pas encore. Il existe des techniques, telles que le backtesting ou la validation croisée, qui peuvent nous donner des mesures empiriques sur ce que nous devrions attendre de la précision des données que nous n’avons pas. Cependant, pourquoi ces méthodes fonctionnent-elles est un problème relativement intrigant et difficile. Le problème n’est pas d’avoir un modèle qui correspond aux données que nous avons ; il est facile de construire un modèle qui correspond aux données en utilisant un polynôme avec un degré suffisant. Pourtant, ce modèle n’est pas très satisfaisant car il ne capture pas ce que nous aimerions capturer.

L’approche classique de ce problème est connue sous le nom de compromis biais-variance. À droite, nous avons un modèle avec très peu de paramètres qui sous-ajuste le problème, ce que nous appelons un biais élevé. À gauche, nous avons un modèle avec trop de paramètres qui sur-ajuste et a trop de variance. Au milieu, nous avons un modèle qui trouve un bon équilibre entre le biais et la variance, que nous appelons un bon ajustement. Jusqu’à la fin du XXe siècle, il n’était pas très clair comment aborder ce problème au-delà du compromis biais-variance.

Slide 7

La première véritable intuition sur la précision des données que nous n’avons pas est venue des théories de l’apprentissabilité publiées par Valiant en 1984. Valiant a introduit la théorie PAC - Probably Approximately Correct. Dans cette théorie PAC, la partie “probablement” se réfère à un modèle avec une probabilité donnée de donner des réponses suffisamment bonnes. La partie “approximativement” signifie que la réponse n’est pas trop éloignée de ce qui est considéré comme bon ou valide.

Valiant a montré que dans de nombreuses situations, il n’est tout simplement pas possible d’apprendre quoi que ce soit, ou plus précisément, que pour apprendre, nous aurions besoin d’un nombre d’échantillons tellement extravagant qu’il ne serait pas pratique. C’était déjà un résultat très intéressant. La formule affichée provient de la théorie PAC, et c’est une inégalité qui vous dit que si vous voulez produire un modèle qui est probablement approximativement correct, vous devez avoir un nombre d’observations, n, supérieur à une certaine quantité. Cette quantité dépend de deux facteurs : epsilon, le taux d’erreur (la partie approximativement correcte), et eta, la probabilité d’échec (un moins eta est la probabilité de ne pas échouer).

Ce que nous voyons, c’est que si nous voulons avoir une plus petite probabilité d’échec ou un epsilon plus petit (une plage suffisamment bonne), nous avons besoin de plus d’échantillons. Cette formule dépend également de la cardinalité de l’espace des hypothèses. L’idée est que plus les hypothèses concurrentes sont nombreuses, plus nous avons besoin d’observations pour les trier. C’est très intéressant car, essentiellement, bien que la théorie PAC nous donne principalement des résultats négatifs, elle nous dit ce que nous ne pouvons pas faire, c’est-à-dire construire un modèle probablement approximativement correct avec moins d’échantillons. La théorie ne nous dit pas vraiment comment faire quelque chose ; elle n’est pas très prescriptive quant à la manière de devenir réellement meilleur pour résoudre n’importe quelle tâche de prédiction. Néanmoins, c’était un jalon car cela a cristallisé l’idée qu’il était possible d’aborder ce problème de précision et de données que nous n’avions pas de manière beaucoup plus robuste que de simplement effectuer des mesures très empiriques avec, disons, la validation croisée ou le backtesting.

Slide 8

Une décennie plus tard, la première percée opérationnelle est survenue lorsque Vapnik et quelques autres ont établi ce qui est aujourd’hui connu sous le nom de théorie de Vapnik-Chervonenkis (VC). Cette théorie montre qu’il est possible de capturer la véritable perte, appelée risque, qui est la perte que vous observerez sur les données que vous n’avez pas. Il était possible de prouver mathématiquement que vous aviez la capacité de connaître quelque chose sur l’erreur réelle, que vous ne pouvez jamais mesurer. C’est un résultat très déconcertant.

Essentiellement, cette formule, directement issue de la théorie VC, nous dit que le risque réel est borné par le risque empirique, qui est le risque que nous pouvons mesurer sur les données que nous avons, plus un autre terme fréquemment appelé risque structurel. Nous avons le nombre d’observations, n, et eta, qui est la probabilité d’échec, tout comme dans la théorie PAC. Nous avons également h, qui est une mesure de la dimension VC du modèle. La dimension VC reflète la capacité du modèle à apprendre ; plus la capacité du modèle à apprendre est grande, plus la dimension VC est grande.

Avec ces résultats, nous constatons que pour les modèles qui ont la capacité d’apprendre n’importe quoi, nous ne pouvons rien dire à leur sujet. C’est très déconcertant. Si votre modèle peut tout apprendre, alors vous ne pouvez rien dire, du moins mathématiquement, à son sujet.

La percée de 1995 est venue de la mise en œuvre par Cortes et Vapnik de ce qui serait plus tard connu sous le nom de Machines à Vecteurs de Support (SVM). Ces SVM sont littéralement la mise en œuvre directe de cette théorie mathématique. L’idée est que parce que nous avons une théorie qui nous donne cette inégalité, nous pouvons mettre en œuvre un modèle qui équilibre la quantité d’erreur que nous commettons sur les données (le risque empirique) et la dimension VC. Nous pouvons directement construire un modèle mathématique qui équilibre exactement ces deux facteurs pour rendre l’égalité aussi serrée et aussi faible que possible. C’est exactement ce que sont les Machines à Vecteurs de Support (SVM). Ces résultats étaient si impressionnants, opérationnellement, qu’ils ont donné de très bons résultats et ont eu un impact significatif sur la communauté de l’apprentissage automatique. Pour la première fois, la précision sur les données que nous n’avons pas n’était pas une réflexion après coup ; elle était directement obtenue par la conception mathématique même de la méthode. C’était si impressionnant et puissant que cela a distrait toute la communauté de l’apprentissage automatique pendant une décennie en suivant cette voie. Comme nous le verrons, cette voie s’est avérée être principalement une impasse, mais il y avait de bonnes raisons à cela : c’était un résultat absolument stupéfiant.

Opérationnellement, en raison du fait que les SVM sont principalement issus d’une théorie mathématique, ils avaient très peu de sympathie mécanique. Ils n’étaient pas adaptés aux matériels informatiques que nous avons. Plus précisément, la mise en œuvre naïve des SVM entraîne un coût quadratique en termes d’empreinte mémoire par rapport au nombre d’observations. C’est beaucoup, et par conséquent, cela rend les SVM très lents. Il y a eu par la suite des améliorations avec certaines variantes en ligne des SVM qui ont considérablement réduit les besoins en mémoire, mais néanmoins, les SVM n’ont jamais été considérés comme une approche vraiment évolutive pour effectuer l’apprentissage automatique.

Diapositive 9

Les SVM ont ouvert la voie à une autre classe de modèles qui ne surajustaient probablement pas non plus. Le surajustement consiste essentiellement à être très imprécis sur les données que vous n’avez pas. Les exemples les plus notables sont probablement les forêts aléatoires et les arbres boostés par gradient, qui se trouvent être leurs descendants presque immédiats. Au cœur de ces modèles se trouve le boosting, un méta-algorithme qui transforme les modèles faibles en modèles plus forts. Le boosting est apparu à la fin des années 80 suite à des questions posées par Kearns et Valiant, que nous avons mentionnés précédemment dans cette présentation.

Pour comprendre le fonctionnement d’une forêt aléatoire, c’est relativement simple : prenez votre ensemble de données d’entraînement, puis prenez un échantillon de cet ensemble. Sur cet échantillon, construisez un arbre de décision. Répétez cette opération, en créant un autre échantillon à partir de l’ensemble de données d’entraînement initial et en construisant un autre arbre de décision. Répétez ce processus, et à la fin, vous obtenez de nombreux arbres de décision. Les arbres de décision sont relativement faibles en termes de modèles d’apprentissage automatique, car ils ne peuvent pas capturer des motifs très complexes. Cependant, si vous regroupez tous ces arbres et que vous moyennez les résultats, vous obtenez une forêt, appelée forêt aléatoire, car chaque arbre a été construit sur un sous-échantillon aléatoire de l’ensemble de données d’entraînement initial. Ce que vous obtenez avec une forêt aléatoire, c’est un modèle d’apprentissage automatique beaucoup plus fort et meilleur.

Les arbres boostés par gradient ne sont qu’une légère variation de cette idée. La principale variation est que, au lieu d’échantillonner votre ensemble de données d’entraînement et de construire un arbre de manière aléatoire, avec tous les arbres construits indépendamment, les arbres boostés par gradient construisent d’abord la forêt, puis l’arbre suivant est construit en examinant les résidus de la forêt que vous avez déjà. L’idée est que vous avez commencé à construire un modèle composé de nombreux arbres, et vous faites des prédictions qui divergent de la réalité. Vous avez ces deltas, qui sont les différences entre les valeurs réelles et prédites, appelées résidus. L’idée est que vous allez entraîner le prochain arbre non pas sur l’ensemble de données d’origine, mais sur un échantillon de résidus. Les arbres boostés par gradient fonctionnent encore mieux que les forêts aléatoires. En pratique, les forêts aléatoires surajustent un peu. Il existe des preuves qui montrent que, dans certaines conditions, les forêts aléatoires ne sont pas censées surajuster.

Fait intéressant, les arbres boostés par gradient dominent les meilleurs scores de presque toutes les compétitions d’apprentissage automatique depuis une quinzaine d’années. Lorsque vous regardez environ 80 à 90% des compétitions Kaggle, vous verrez qu’il s’agit essentiellement d’un arbre boosté par gradient qui arrive en première position. Cependant, malgré cette domination incroyable dans les compétitions d’apprentissage automatique, il y a eu très peu de percées dans l’application des arbres boostés par gradient aux problèmes de chaîne d’approvisionnement dans la pratique. La principale raison est que les arbres boostés par gradient ont très peu de sympathie mécanique ; leur conception n’est pas du tout adaptée aux matériels informatiques que nous avons.

Il est facile de comprendre pourquoi : vous construisez un modèle avec une série d’arbres, et le modèle finit par être aussi grand qu’une fraction de votre ensemble de données. Dans de nombreuses situations, vous vous retrouvez avec un modèle qui est plus grand, en termes de données, que l’ensemble de données de départ. Donc, si votre ensemble de données est déjà très volumineux, alors votre modèle est gigantesque, et c’est un problème très problématique.

En ce qui concerne l’histoire des arbres boostés par gradient, il y a eu une série de mises en œuvre, commençant par GBM (Gradient Boosted Machines) en 2007, qui a vraiment popularisé cette approche dans un package R. Dès le début, il y avait des problèmes de scalabilité. Les gens ont rapidement commencé à paralléliser l’exécution avec PGBRT (Parallel Gradient Boosted Regression Trees), mais c’était encore très lent. XGBoost a été un tournant car il a gagné un ordre de grandeur en termes de scalabilité. L’idée clé dans XGBoost était d’adopter une conception en colonnes dans les données pour accélérer la construction de l’arbre. Plus tard, LightGBM a recyclé toutes les idées de XGBoost mais a changé la stratégie de construction des arbres. XGBoost faisait pousser l’arbre de niveau en niveau, tandis que LightGBM a décidé de faire pousser l’arbre de feuille en feuille. Le résultat net est que LightGBM est maintenant plusieurs ordres de grandeur plus rapide, en tenant compte du même matériel informatique, que GBM ne l’a jamais été. Pourtant, d’un point de vue pratique de la supply chain, l’utilisation des arbres boostés par gradient est généralement trop lente pour être réalisable. Ce n’est pas impossible de les utiliser ; c’est juste que c’est un obstacle tellement important que cela n’en vaut généralement pas la peine.

Slide 10

La chose déconcertante est que les arbres boostés par gradient sont suffisamment puissants pour remporter presque toutes les compétitions d’apprentissage automatique, et pourtant, à mon humble avis, ces modèles sont une impasse technologique. Les machines à vecteurs de support, les forêts aléatoires et les arbres boostés par gradient ont tous en commun qu’ils ne sont rien de plus que des correspondances de modèles. Ce sont de très bonnes correspondances de modèles, notez bien, mais vraiment rien de plus. Ce qu’ils font exceptionnellement bien, c’est essentiellement la sélection de variables, et ils sont très doués pour cela, mais il n’y a pas grand-chose de plus. En particulier, ils n’ont pas la capacité de transformer l’entrée en autre chose qu’une sélection ou un filtrage direct de l’entrée.

Si nous revenons à l’image du chariot élévateur que j’ai présentée au tout début de cette conférence, il n’y a absolument aucun espoir que l’un de ces modèles puisse faire les mêmes déclarations que celles que je viens de faire, peu importe la taille de l’ensemble de données d’images. Vous pourriez littéralement nourrir tous ces modèles avec des millions d’images prises dans des entrepôts du monde entier, et ils ne seraient toujours pas capables de faire des déclarations du genre : “Oh, j’ai vu un chariot élévateur dans cette situation ; une équipe va arriver et effectuer des réparations.” Pas vraiment.

En pratique, ce que nous avons constaté, c’est que le fait que ces modèles remportent des compétitions d’apprentissage automatique est trompeur car il y a des facteurs qui jouent en leur faveur dans de telles situations. Premièrement, les ensembles de données du monde réel sont très complexes, ce qui est différent des compétitions d’apprentissage automatique où, au mieux, vous avez des ensembles de données jouets représentant seulement une fraction des complexités auxquelles sont confrontées les configurations du monde réel. Deuxièmement, pour remporter une compétition d’apprentissage automatique en utilisant des modèles tels que les arbres boostés par gradient, vous devez effectuer une ingénierie des caractéristiques approfondie. Étant donné que ces modèles sont des correspondances de modèles glorifiées, vous devez avoir les bonnes caractéristiques pour que la simple sélection de variables rende le modèle excellent. Vous devez injecter une grande dose d’intelligence humaine dans la préparation des données pour que cela fonctionne. C’est un gros problème car, dans le monde réel, lorsque vous essayez de résoudre un problème pour de vraies supply chains, le nombre d’heures d’ingénierie que vous pouvez consacrer au problème est limité. Vous ne pouvez pas passer six mois sur un aspect de problème minuscule, limité dans le temps, d’un aspect de votre supply chain.

Le troisième problème est que, dans les chaînes d’approvisionnement, les ensembles de données changent constamment. Ce n’est pas seulement que les données changent, mais le problème change également progressivement. Cela aggrave les problèmes que vous rencontrez avec l’ingénierie des caractéristiques. Fondamentalement, nous nous retrouvons avec des modèles qui remportent des compétitions d’apprentissage automatique et de prévision, mais si nous commençons à regarder une décennie à l’avance, nous constatons que ces modèles ne sont pas l’avenir de l’apprentissage automatique ; ce sont le passé.

Slide 11

Le deep learning était la réponse à ces correspondances de modèles superficiels. Le deep learning est souvent présenté comme le descendant des réseaux neuronaux artificiels, mais la réalité est que le deep learning n’a décollé que le jour où les chercheurs ont décidé d’abandonner les métaphores biologiques et de se concentrer plutôt sur la sympathie mécanique. Encore une fois, la sympathie mécanique, c’est-à-dire bien s’entendre avec les ordinateurs que nous avons, est essentielle. Le problème que nous avions avec les réseaux neuronaux artificiels était que nous essayions de mimiquer la biologie, mais les ordinateurs que nous avons sont totalement différents des substrats biologiques qui soutiennent notre cerveau. Cette situation rappelle les débuts de l’histoire de l’aviation, où de nombreux inventeurs ont essayé de construire des machines volantes en imitant les oiseaux. De nos jours, nous avons des machines volantes qui volent beaucoup plus vite que les oiseaux les plus rapides, mais la façon dont ces machines volent n’a presque rien en commun avec la façon dont les oiseaux volent.

La première idée concernant le deep learning était le besoin de quelque chose de profond et expressif qui puisse appliquer n’importe quel type de transformation aux données d’entrée, permettant ainsi un comportement prédictif intelligent à émerger du modèle. Cependant, il devait également bien s’entendre avec le matériel informatique que nous avions. L’idée était que si nous avions des modèles complexes qui s’entendaient très bien avec le matériel informatique, nous serions très probablement en mesure d’apprendre des fonctions qui sont plusieurs ordres de grandeur plus complexes, toutes choses étant égales par ailleurs, par rapport à toute méthode qui n’aurait pas le même degré de sympathie mécanique.

La programmation différentiable, qui a été présentée dans la conférence précédente, peut être considérée comme la couche de base du deep learning. Je ne vais pas revenir sur la programmation différentiable dans cette conférence, mais j’invite le public à regarder la conférence précédente si vous ne l’avez pas encore vue. Vous devriez être en mesure de comprendre ce qui suit même si vous n’avez pas vu la conférence précédente. La conférence précédente devrait clarifier certains des détails techniques du processus d’apprentissage lui-même. En résumé, la programmation différentiable est simplement un moyen, si nous choisissons une forme spécifique de modèle, d’identifier les meilleures valeurs pour les paramètres qui existent dans ce modèle.

Alors que la programmation différentiable se concentre sur l’identification des meilleurs paramètres, l’apprentissage automatique se concentre sur l’identification des formes supérieures de modèles qui ont la plus grande capacité à apprendre à partir des données.

Slide 12

Alors, comment créons-nous un modèle pour une fonction arbitrairement complexe qui peut refléter n’importe quelle transformation arbitrairement complexe sur les données d’entrée ? Commençons par un circuit de valeurs en virgule flottante. Pourquoi des valeurs en virgule flottante ? Eh bien, c’est parce que c’est le genre de chose sur lequel nous pouvons appliquer la descente de gradient, qui, comme nous l’avons vu dans la conférence précédente, est très scalable. Donc, des nombres en virgule flottante. Nous allons avoir une séquence de nombres en virgule flottante, ce qui signifie des nombres à virgule flottante en entrée et des nombres à virgule flottante en sortie.

Maintenant, que faisons-nous au milieu ? Faisons de l’algèbre linéaire, et plus précisément, faisons de la multiplication de matrices. Pourquoi cela ? La réponse à la question de savoir pourquoi la multiplication de matrices a été donnée lors de la toute première conférence de ce quatrième chapitre. Cela concerne la façon dont les ordinateurs modernes sont conçus ; essentiellement, il est possible d’obtenir une accélération relativement importante en termes de vitesse de traitement si l’on se limite à l’algèbre linéaire. Donc, c’est l’algèbre linéaire. Maintenant, si je prends mes entrées et que j’applique une transformation linéaire, qui est simplement une multiplication de matrices avec une matrice nommée W (cette matrice contient les paramètres que nous voulons apprendre plus tard), comment pouvons-nous la rendre plus complexe ? Nous pouvons ajouter une deuxième multiplication de matrices. Cependant, si vous vous souvenez de vos cours d’algèbre linéaire, lorsque vous multipliez une fonction linéaire par une autre fonction linéaire, vous obtenez une fonction linéaire. Donc, si nous composons simplement la multiplication de matrices, nous avons toujours une multiplication de matrices, et elle est toujours complètement linéaire.

Ce que nous allons faire, c’est d’intercaler des non-linéarités entre les opérations linéaires. C’est exactement ce que j’ai fait sur cet écran. J’ai intercalé une fonction généralement connue dans la littérature de l’apprentissage profond sous le nom d’Unité Linéaire Rectifiée (ReLU). Ce nom, qui est fantastiquement compliqué par rapport à ce qu’il fait, est simplement une fonction très simple qui dit que si je prends un nombre et si ce nombre est positif, alors je retourne exactement le même nombre (donc c’est une fonction identité), mais si le nombre est négatif, je retourne 0. Vous pouvez également l’écrire comme le maximum de votre valeur et zéro. C’est une non-linéarité très triviale.

Nous pourrions utiliser des fonctions non-linéaires beaucoup plus sophistiquées. Historiquement, lorsque les gens faisaient des réseaux neuronaux, ils voulaient utiliser des fonctions sigmoïdes sophistiquées parce que c’était censé fonctionner de cette façon dans nos neurones. Mais la réalité est que nous ne voulons pas gaspiller de puissance de traitement pour calculer des choses qui sont sans importance. L’idée clé est que nous devons introduire quelque chose qui est non-linéaire, et peu importe quelle fonction non-linéaire nous utilisons. La seule chose qui importe est de la rendre très rapide. Nous voulons garder le tout aussi rapide que possible.

Ce que je construis ici s’appelle des couches denses. Une couche dense est essentiellement une multiplication de matrices avec une non-linéarité (l’Unité Linéaire Rectifiée). Nous pouvons les empiler. À l’écran, vous pouvez voir un réseau, qui est généralement appelé un perceptron multicouche, et nous avons trois couches. Nous pourrions continuer à les empiler, et nous pourrions en avoir 20 ou 2 000 ; cela n’a pas vraiment d’importance. La réalité est que, aussi simpliste que cela puisse paraître, si vous prenez un tel réseau avec seulement quelques couches et le mettez dans votre cadre de programmation différentiable, qui vous donnera les paramètres, la programmation différentiable en tant que couche de base sera capable d’entraîner les paramètres, qui sont initialement choisis au hasard. Si vous voulez les initialiser, il suffit d’initialiser tous les paramètres au hasard. Vous obtiendrez des résultats assez décents pour une très grande variété de problèmes.

C’est très intéressant car, à ce stade, vous avez pratiquement tous les ingrédients fondamentaux de l’apprentissage profond. Donc, félicitations à l’audience ! Vous pouvez probablement commencer à ajouter “spécialiste de l’apprentissage profond” à votre CV car c’est presque tout ce qu’il y a à savoir. Eh bien, pas vraiment, mais disons que c’est un bon point de départ.

Slide 13

La réalité est que l’apprentissage profond ne nécessite que très peu de théorie en dehors de l’algèbre tensorielle, qui est essentiellement de l’algèbre linéaire informatisée. Cependant, l’apprentissage profond nécessite de nombreuses astuces. Par exemple, nous devons normaliser les entrées et stabiliser les gradients. Si nous commençons à empiler de nombreuses opérations de ce type, les gradients peuvent croître de manière exponentielle à mesure que nous remontons dans le réseau, et à un certain point, cela dépassera la capacité de représenter ces nombres. Nous avons des ordinateurs du monde réel et ils ne sont pas capables de représenter des nombres arbitrairement grands. À un certain point, vous dépassez simplement votre capacité à représenter le nombre avec une valeur en virgule flottante sur 32 bits ou 16 bits. Il existe de nombreuses astuces pour la stabilisation des gradients. Par exemple, l’astuce la plus courante est la normalisation par lots, mais il existe d’autres astuces pour cela.

Si vous avez des entrées qui ont une structure géométrique, par exemple, unidimensionnelle comme une série temporelle (ventes historiques, comme nous le voyons dans la supply chain), cela peut être bidimensionnel (pensez-y comme une image), tridimensionnel (cela pourrait être un film), ou quadridimensionnel, etc. Si les entrées ont une structure géométrique, alors il existe des couches spéciales qui peuvent capturer cette structure géométrique. Les plus célèbres sont probablement appelées couches de convolution.

Ensuite, vous avez également des techniques et des astuces pour traiter les entrées catégorielles. En apprentissage profond, toutes vos entrées sont des valeurs en virgule flottante, alors comment traitez-vous les variables catégorielles ? La réponse est les embeddings. Vous avez des pertes de substitution, qui sont des pertes alternatives qui présentent des gradients très raides et facilitent le processus de convergence, amplifiant ainsi ce que vous pouvez apprendre des données. Il existe de nombreuses astuces, et toutes ces astuces peuvent généralement être intégrées au programme que vous composez car nous travaillons avec la programmation différentiable comme couche de base.

L’apprentissage profond consiste vraiment à composer un programme qui, une fois exécuté à travers le processus de formation offert par la programmation différentiable, a une très grande capacité d’apprentissage. La plupart des éléments que je viens de lister à l’écran sont également de nature programmatique, ce qui est très pratique étant donné que nous avons la programmation différentiable, un paradigme de programmation, pour soutenir tout cela.

Slide 14

À ce stade, il devrait devenir plus clair pourquoi l’apprentissage profond est différent de l’apprentissage automatique classique. L’apprentissage profond ne concerne pas les modèles. En fait, la plupart des bibliothèques d’apprentissage profond open-source n’incluent même pas de modèles. Avec l’apprentissage profond, ce qui compte vraiment, ce sont les architectures de modèle, que vous pouvez considérer comme des modèles à personnaliser fortement lorsque vous souhaitez les adapter à une situation spécifique. Cependant, si vous adoptez une architecture appropriée, vous pouvez anticiper que votre personnalisation préservera toujours l’essence de la capacité de votre modèle à apprendre. Avec l’apprentissage profond, nous déplaçons l’intérêt du modèle final, qui devient quelque chose de peu intéressant, vers l’architecture, qui devient le véritable objet de recherche.

À l’écran, vous pouvez voir une série d’exemples d’architectures notables. Tout d’abord, LSTM, qui signifie Long Short-Term Memory, a commencé à fonctionner vers 2007. L’historique de publication de LSTM est un peu plus compliqué, mais il a essentiellement commencé à fonctionner dans le style de l’apprentissage profond en 2007. Il a été remplacé par les Gated Recurrent Units (GRU), qui sont essentiellement la même chose que LSTM mais plus simples et plus agréables. Essentiellement, une grande partie de la complexité de LSTM découle des métaphores biologiques. Il s’avère que vous pouvez abandonner les métaphores biologiques, et ce que vous obtenez est quelque chose de plus simple qui fonctionne à peu près de la même manière. Ce sont les Gated Recurrent Units (GRU). Plus tard, les transformers sont apparus, ce qui a rendu à la fois LSTM et GRU obsolètes. Les transformers ont été une percée car ils étaient beaucoup plus rapides, plus économes en ressources informatiques et avaient une capacité d’apprentissage encore plus grande.

La plupart de ces architectures sont accompagnées de métaphores. LSTM a une métaphore cognitive, la mémoire à court terme à long terme, tandis que les transformers sont accompagnés d’une métaphore de recherche d’informations. Cependant, ces métaphores ont très peu de pouvoir prédictif, et elles pourraient en fait être plus une source de confusion et de distraction par rapport à ce qui fait vraiment fonctionner ces architectures, ce qui n’est pas encore entièrement compris à ce stade.

Les transformers sont d’un grand intérêt pour la supply chain car ce sont l’une des architectures les plus polyvalentes. Ils sont utilisés pour pratiquement tout de nos jours, de la conduite autonome à la traduction automatisée et de nombreux autres problèmes complexes. Cela témoigne de la puissance de choisir la bonne architecture, qui peut ensuite être utilisée pour résoudre une grande diversité de problèmes. En ce qui concerne la supply chain, l’une des principales difficultés de faire quoi que ce soit avec l’apprentissage automatique est que nous avons une telle diversité incroyable de problèmes à résoudre. Nous ne pouvons pas nous permettre d’avoir une équipe qui passe cinq ans à des efforts de recherche pour chaque sous-problème auquel nous sommes confrontés. Nous avons besoin de quelque chose où nous pouvons avancer rapidement et ne pas avoir à réinventer la moitié de l’apprentissage automatique chaque fois que nous voulons résoudre le problème suivant.

Slide 15

Un aspect de l’apprentissage profond qui est vraiment choquant lorsque l’on commence à y réfléchir est le nombre massif de paramètres. Dans le perceptron multicouche que j’ai présenté il y a quelques minutes, avec des couches denses qui impliquent une multiplication de matrices, nous pouvons avoir beaucoup de paramètres dans ces matrices. En fait, il n’est pas très difficile d’avoir autant de paramètres que nous avons de points de données ou d’observations dans nos ensembles de données d’entraînement. Comme nous l’avons vu au tout début de notre cours, si nous avons un modèle avec autant de paramètres, il devrait souffrir énormément de problèmes de surajustement.

La réalité avec l’apprentissage profond est encore plus déconcertante. Il y a de nombreuses situations où nous avons beaucoup plus de paramètres que d’observations, et pourtant nous ne rencontrons pas de problèmes de surajustement dramatiques. Encore plus déconcertant, les modèles d’apprentissage profond ont tendance à s’adapter complètement à l’ensemble de données d’entraînement, de sorte que vous obtenez une erreur quasi nulle sur votre ensemble de données d’entraînement, et ils conserveront toujours leur pouvoir prédictif pour les données que nous n’avons pas.

Il y a deux ans, l’article Deep Double Descent publié par OpenAI a apporté un éclairage très intéressant sur cette situation. L’équipe a montré que nous avons essentiellement une vallée étrange dans le domaine de l’apprentissage automatique. L’idée est que si vous prenez un modèle avec seulement quelques paramètres, vous avez beaucoup de biais et la qualité de vos résultats sur des données non vues n’est pas très bonne. Cela correspond à la vision classique de l’apprentissage automatique et à la vision statistique classique également. Si vous augmentez le nombre de paramètres, vous allez améliorer la qualité de votre modèle, mais à un certain point, vous allez commencer à surajuster. C’est exactement ce que nous avons vu avec la discussion précédente sur le sous-ajustement et le surajustement. Il y a un équilibre à trouver.

Cependant, ce qu’ils ont montré, c’est que si vous continuez à augmenter le nombre de paramètres, quelque chose de très étrange va se produire : vous allez surajuster de moins en moins, ce qui est exactement le contraire de ce que la théorie classique de l’apprentissage statistique prédirait. Ce comportement n’est pas accidentel. Les auteurs ont montré que ce comportement est très robuste et répandu. Cela se produit pratiquement tout le temps dans une grande variété de situations. On ne sait pas encore très bien pourquoi, mais ce qui est très bien compris à ce stade, c’est que le double descente profonde est très réel et répandu.

Cela aide également à comprendre pourquoi l’apprentissage profond est relativement tardif dans le domaine de l’apprentissage automatique. Pour que l’apprentissage profond réussisse, nous devions d’abord réussir à construire des modèles capables de traiter des dizaines de milliers, voire des centaines de milliers de paramètres pour dépasser cette vallée étrange. Dans les années 80 et 90, il n’aurait pas été possible de réaliser une percée en apprentissage profond, simplement parce que les ressources informatiques matérielles n’étaient pas capables de franchir cette vallée étrange.

Heureusement, avec les ressources informatiques actuelles, il est possible de former des modèles sans trop d’effort qui ont des millions, voire des milliards de paramètres. Comme nous l’avons souligné dans les conférences précédentes, il existe maintenant des entreprises comme Facebook qui forment des modèles avec plus d’un billion de paramètres. Nous pouvons donc aller très loin.

Slide 16

Jusqu’à présent, nous avons supposé que la fonction de perte était connue. Mais pourquoi devrait-il en être ainsi ? En effet, considérons la situation d’un magasin de mode du point de vue de la supply chain. Un magasin de mode a des niveaux de stock pour chaque SKU, et nous voulons projeter la demande future. Nous voulons projeter un scénario possible qui soit crédible pour la demande future de ce magasin. Ce qui va se passer, c’est que lorsque certains SKUs seront en rupture de stock, nous devrions observer une cannibalisation et une substitution. Lorsqu’un SKU donné est en rupture de stock, normalement la demande devrait, en partie, se reporter sur des produits similaires.

Mais si nous essayons d’aborder cette approche avec des métriques de prévision classiques telles que l’erreur moyenne absolue en pourcentage (MAPE), l’erreur moyenne absolue (MAE), l’erreur quadratique moyenne (MSE) ou d’autres métriques qui fonctionnent SKU par SKU, jour par jour ou semaine par semaine, nous ne capturerons aucune de ces comportements. Ce que nous voulons vraiment, c’est une métrique qui capture si nous sommes très bons pour capturer tous ces effets de cannibalisation et de substitution. Mais à quoi devrait ressembler cette fonction de perte ? C’est très flou, et cela semble nécessiter un comportement assez sophistiqué. L’une des principales avancées de l’apprentissage profond a été essentiellement de trouver l’idée que la fonction de perte devrait être apprise. C’est exactement ainsi que l’image à l’écran a été produite. Il s’agit d’une image entièrement générée par une machine ; aucune de ces personnes n’est réelle. Elles ont été générées, et le problème était le suivant : comment construire une fonction de perte ou une métrique qui vous dit si une image est un portrait humain réaliste ou non ?

La réalité est que si vous commencez à penser en termes de style d’erreur moyenne absolue en pourcentage (MAPE), vous vous retrouvez avec une métrique qui fonctionne pixel par pixel. Le problème est qu’une métrique qui fonctionne pixel par pixel ne vous dit rien sur le fait que l’image dans son ensemble ressemble à un visage humain. Nous avons le même problème dans le magasin de mode pour les SKUs et la projection de la demande. Il est très facile d’avoir une métrique au niveau du SKU, mais cela ne nous dit rien sur l’image globale du magasin dans son ensemble. Pourtant, du point de vue de la supply chain, nous ne nous intéressons pas à la précision au niveau du SKU ; nous nous intéressons à la précision au niveau du magasin. Nous voulons savoir si les niveaux de stock sont bons dans leur totalité pour le magasin, pas s’ils sont bons pour un SKU puis un autre SKU. Alors comment la communauté de l’apprentissage profond a-t-elle abordé ce problème ?

Slide 17

Cet exploit impressionnant a été réalisé grâce à une technique magnifiquement simple appelée Réseaux antagonistes génératifs (GAN). Dans la presse, vous avez peut-être entendu parler de ces techniques sous le nom de deepfakes. Les deepfakes sont des images qui ont été produites avec cette technique GAN. Comment cela fonctionne-t-il ?

Eh bien, la façon dont cela fonctionne est que vous commencez d’abord par un générateur. Le générateur prend du bruit en entrée, qui ne sont que des valeurs aléatoires, et il va produire une image dans le cas présent. Si nous revenons au cas de la supply chain, il produirait des trajectoires pour tous les points de demande observés pour chaque SKU pour, disons, les trois prochains mois dans ce magasin de mode. Ce générateur est lui-même un réseau d’apprentissage profond.

Maintenant, nous allons avoir un discriminateur. Un discriminateur est également un réseau d’apprentissage profond, et le but du discriminateur est d’apprendre à prédire si ce qui vient d’être généré est réel ou synthétique. Le discriminateur est un classificateur binaire qui doit simplement dire s’il est réel ou non réel. Si le discriminateur est capable de prédire correctement qu’un échantillon est faux, c’est-à-dire synthétique, nous allons conduire les gradients vers le générateur et laisser le générateur en apprendre.

Ce qui se passe avec cette configuration, c’est que le générateur commence à apprendre comment générer des échantillons qui trompent et confondent réellement le discriminateur. En même temps, le discriminateur apprend à devenir meilleur pour discriminer entre les échantillons réels et les échantillons synthétiques. Si vous prenez ce processus, il converge normalement vers un état où vous obtenez à la fois un générateur de très haute qualité qui génère des échantillons incroyablement réalistes, et un très bon discriminateur qui peut vous dire s’ils sont réels ou non. C’est exactement ce qui est fait avec les GAN pour générer ces images photoréalistes. Si nous revenons à la supply chain, vous trouverez des experts dans les cercles de la supply chain qui disent que pour une situation particulière, la meilleure métrique est le MAPE, ou le MAPE pondéré, ou autre. Ils vont vous donner des recettes en vous disant que dans certaines situations, vous devez utiliser telle ou telle métrique. La réalité est que l’apprentissage profond montre qu’une métrique de prévision est un concept dépassé. Si vous voulez atteindre une précision multidimensionnelle, pas seulement ponctuelle, vous devez apprendre la métrique. Bien qu’à l’heure actuelle, je soupçonne qu’il y ait très peu de supply chains qui utilisent ces techniques, à un moment donné dans le futur, elles le feront. Ce sera la norme d’apprendre la métrique de prévision en utilisant des réseaux antagonistes génératifs ou les descendants de ces techniques, car c’est un moyen de capturer le comportement subtil et multidimensionnel qui est vraiment intéressant, au lieu d’avoir simplement une précision ponctuelle.

Slide 18

Maintenant, jusqu’à présent, chaque observation était accompagnée d’une étiquette, et l’étiquette était la sortie que nous voulions prédire. Cependant, il y a des situations qui ne peuvent pas être formulées comme des problèmes d’entrée-sortie. Les étiquettes ne sont tout simplement pas disponibles. Si nous prenons un exemple de supply chain, cela pourrait être un hypermarché. Dans les hypermarchés, les niveaux de stock ne sont pas parfaitement précis. Les marchandises peuvent être endommagées, volées ou périmées, et il y a de nombreuses raisons pour lesquelles les enregistrements électroniques dans votre système ne reflètent pas vraiment ce qui est disponible sur l’étagère tel que perçu par les clients. L’inventaire est trop coûteux pour être une source de données en temps réel sur l’inventaire précis. Vous pouvez faire des inventaires, mais vous ne pouvez pas parcourir tout l’hypermarché tous les jours. Ce que vous obtenez, c’est une grande quantité de stocks légèrement inexacts. Vous en avez des tonnes, mais vous ne pouvez pas vraiment dire lesquels sont exacts ou non.

C’est essentiellement le genre de situation où l’apprentissage non supervisé a vraiment du sens. Nous voulons apprendre quelque chose ; nous avons des données, mais nous n’avons pas les bonnes réponses disponibles. Nous n’avons pas ces étiquettes. Ce que nous avons, ce sont simplement des tonnes de données. L’apprentissage non supervisé a été considéré pendant des décennies par la communauté de l’apprentissage automatique comme un Graal. Pendant très longtemps, c’était l’avenir, mais un avenir lointain. Cependant, récemment, il y a eu des percées incroyables dans ce domaine. L’une des percées a été réalisée, par exemple, par une équipe de Facebook avec un article intitulé “Unsupervised Machine Translation Using Monolingual Corpora Only”.

Ce que l’équipe de Facebook a fait dans cet article était de construire un système de traduction qui n’utilisait qu’un corpus de texte en anglais et un corpus de texte en français. Ces deux corpus n’ont rien en commun ; ce n’est même pas le même texte. C’est simplement du texte en anglais et du texte en français. Ensuite, sans donner de traduction réelle au système, ils ont appris un système qui traduit de l’anglais vers le français. C’est un résultat absolument stupéfiant. Au fait, la façon dont cela est accompli est en utilisant une technique qui rappelle énormément les réseaux antagonistes génératifs que je viens de présenter précédemment. De même, une équipe chez Google a publié BERT (Bidirectional Encoder Representations from Transformers) il y a deux ans. BERT est un modèle qui est entraîné de manière largement non supervisée. Nous parlons à nouveau de texte. La façon dont cela est fait avec BERT est en prenant d’énormes bases de données de texte et en masquant aléatoirement des mots. Ensuite, vous entraînez le modèle à prédire ces mots et vous répétez l’opération pour l’ensemble du corpus. Certaines personnes se réfèrent à cette technique comme étant auto-supervisée, mais ce qui est très intéressant avec BERT et là où cela devient pertinent pour la supply chain, c’est que soudainement, la façon dont vous abordez vos données est de construire une machine où vous pouvez cacher des parties des données et la machine est toujours capable de compléter les données.

La raison pour laquelle cela est d’une importance primordiale pour la supply chain est que fondamentalement, ce qui est fait avec BERT dans le contexte du traitement du langage naturel peut être étendu à de nombreux autres domaines. C’est la machine à répondre ultime aux “et si”. Par exemple, et si j’avais un magasin de plus ? Ce “et si” peut être répondu car vous pouvez simplement modifier vos données, ajouter le magasin et interroger le modèle d’apprentissage automatique que vous venez de construire. Et si j’avais un produit supplémentaire ? Et si j’avais un client supplémentaire ? Et si j’avais un prix différent pour ce produit ? Et ainsi de suite. L’apprentissage non supervisé est d’un intérêt primordial car vous commencez à traiter vos données dans leur ensemble, pas seulement comme une liste de paires. Vous obtenez un mécanisme qui est totalement général et peut faire des prédictions sur n’importe quel aspect qui se trouve être quelque peu présent dans les données. C’est très puissant.

Slide 19

Maintenant, enfin, nous devons revoir tout le concept d’observation. Au départ, nous avons dit qu’une observation était une paire de caractéristiques plus une étiquette. Nous avons vu comment nous pouvons supprimer l’étiquette, mais qu’en est-il des caractéristiques elles-mêmes et de l’observation ? Le problème avec la supply chain est que nous n’avons pas vraiment d’observations. Il n’est même pas clair que nous puissions décomposer une supply chain en une liste d’observations indépendantes ou homogènes. Comme discuté dans une conférence précédente, ce que nous devons observer dans une supply chain n’est pas une observation scientifique directe de la supply chain elle-même. Ce que nous avons, ce sont une série de logiciels d’entreprise, et la seule façon dont nous pouvons observer une supply chain est indirectement à travers les enregistrements collectés dans ces logiciels d’entreprise. Cela peut être l’ERP, le WMS, le point de vente, etc. Mais en fin de compte, tout ce que nous avons, ce sont essentiellement des enregistrements électroniques qui sont de nature transactionnelle car tous ces systèmes sont généralement mis en œuvre sur des bases de données transactionnelles. Ainsi, les observations ne sont pas indépendantes. Les enregistrements que nous avons sont relationnels, littéralement, car ils vivent dans une base de données relationnelle. Lorsque je dis qu’ils ont des relations, je veux dire que si vous regardez un client avec une carte de fidélité, par exemple, il est connecté à tous les produits qu’il a achetés. Chaque produit est connecté à tous les magasins où le produit fait partie de l’assortiment. Chaque magasin est connecté à tous les entrepôts qui ont la capacité de desservir le magasin d’intérêt. Ainsi, nous n’avons pas d’observations indépendantes ; nous avons des données avec une structure relationnelle superposée, et aucun de ces éléments n’est vraiment indépendant des autres.

La percée pertinente dans le deep learning pour aborder ce type de données interconnectées est connue sous le nom d’apprentissage de graphes. L’apprentissage de graphes est exactement ce dont vous avez besoin pour aborder des comportements tels que la substitution et la cannibalisation dans la mode. La meilleure façon de voir la cannibalisation est de penser que tous les produits sont en concurrence pour les mêmes clients, et en analysant les données qui relient les clients et les produits, vous pouvez analyser la cannibalisation. Attention, l’apprentissage de graphes n’a rien à voir avec les bases de données de graphes, qui sont quelque chose de totalement différent. Les bases de données de graphes sont essentiellement des bases de données utilisées pour interroger des graphes, sans apprentissage impliqué. L’apprentissage de graphes consiste à apprendre des propriétés supplémentaires sur les graphes eux-mêmes. Il s’agit d’apprendre des relations qui peuvent être observées ou non, ou qui ne peuvent pas être observées entièrement, ou de décorer le type de relation que nous avons avec une superposition de connaissances exploitables.

Je pense que, en raison du fait que par conception, la supply chain est un système où toutes les parties sont interconnectées - c’est la malédiction de la supply chain, où vous ne pouvez pas simplement optimiser localement quoi que ce soit sans déplacer les problèmes - l’apprentissage de graphes deviendra de plus en plus courant comme approche pour aborder ces problèmes dans la supply chain et l’apprentissage automatique. Essentiellement, les réseaux neuronaux de graphes sont des techniques d’apprentissage profond conçues pour traiter les graphes.

Slide 20

En conclusion, penser que l’apprentissage automatique consiste à fournir des prévisions plus précises est, pour le dire légèrement, plutôt naïf. C’est comme dire que le principal objectif d’une automobile est d’avoir accès à un cheval plus rapide. Oui, il est vrai qu’il est probable que grâce à l’apprentissage automatique, nous puissions obtenir des prévisions plus précises. Cependant, cela ne représente qu’une petite partie d’une image très vaste, et une image qui ne cesse de s’agrandir à mesure que des percées sont réalisées dans la communauté de l’apprentissage automatique. Nous avons commencé avec des cadres d’apprentissage automatique qui comprenaient une série de concepts : caractéristique, étiquette, observation, modèle et perte. Ce petit cadre élémentaire était déjà beaucoup plus général que la perspective de prévision des séries temporelles. Avec le développement récent de l’apprentissage automatique, nous constatons que même ces concepts s’estompent lentement et progressivement en raison du fait que nous découvrons des moyens de les transcender. Pour la supply chain, ce changement de paradigme est d’une importance capitale car cela signifie que nous devons appliquer ce même type de changement de paradigme en ce qui concerne la prévision. L’apprentissage automatique nous force à repenser entièrement notre approche des données et ce que nous pouvons en faire. L’apprentissage automatique ouvre des portes qui étaient fermement closes jusqu’à très récemment.

Slide 21

Maintenant, jetons un coup d’œil à quelques questions.

Question : Les forêts aléatoires n’utilisent-elles pas le bagging ?

Mon point est que, oui, elles en sont une extension, et il y a plus que cela. Le bagging est une technique intéressante, mais chaque fois que vous voyez une technique d’apprentissage automatique, vous devez vous demander : est-ce que cette technique va me faire progresser vers ma capacité à résoudre les problèmes vraiment difficiles comme la cannibalisation ou la substitution ? Et est-ce que ce genre de technique va bien fonctionner avec le matériel informatique dont vous disposez ? C’est l’une des principales leçons que vous devriez retenir de cette leçon.

Question : Avec la poussée des entreprises vers l’automatisation totale avec des robots, quel est l’avenir des travailleurs des entrepôts logistiques ? Seront-ils remplacés par des robots dans un avenir proche ?

Cette question n’est pas exactement liée à l’apprentissage automatique, mais c’est une très bonne question. Les usines ont subi une transformation massive vers une robotisation intensive, qui peut ou non utiliser des robots. La productivité des usines a augmenté, et même maintenant en Chine, les usines sont en grande partie automatisées. Les entrepôts ont été en retard dans cette évolution. Cependant, ce que je vois aujourd’hui, c’est le développement d’entrepôts de plus en plus mécanisés et automatisés. Je ne dirais pas que ce sont nécessairement des robots ; il existe de nombreuses technologies concurrentes pour construire un entrepôt qui atteint un degré plus élevé d’automatisation. L’essentiel est que la tendance est claire. Les entrepôts et les centres logistiques en général vont connaître la même amélioration massive de la productivité que nous avons déjà observée dans la production.

Pour répondre à votre question, je ne dis pas que les personnes seront remplacées par des robots ; elles seront remplacées par l’automatisation. L’automatisation prendra parfois la forme d’un robot, mais elle peut également prendre de nombreuses autres formes. Certaines de ces formes sont simplement des configurations astucieuses qui améliorent considérablement la productivité sans impliquer le type de technologie que nous associons intuitivement aux robots. Cependant, je pense que la partie logistique de la supply chain dans son ensemble va diminuer. La seule chose qui maintient cette croissance pour le moment est le fait qu’avec l’essor du e-commerce, nous devons nous occuper du dernier kilomètre. Le dernier kilomètre occupe de plus en plus la majeure partie de la main-d’œuvre chargée de la logistique. Même le dernier kilomètre sera automatisé dans un avenir proche. Les véhicules autonomes sont à nos portes ; ils étaient promis pour cette décennie, et bien qu’ils puissent arriver un peu tard, ils arrivent.

Question : Pensez-vous que l’apprentissage automatique vaut la peine d’investir du temps pour l’apprendre afin de travailler dans la supply chain ?

Absolument. À mon avis, l’apprentissage automatique est une science auxiliaire de la supply chain. Considérez la relation qu’un médecin entretient avec la chimie. Si vous êtes un médecin moderne, personne ne s’attend à ce que vous soyez chimiste. Cependant, si vous dites à votre patient que vous ne savez absolument rien en chimie, les gens penseront que vous n’avez pas ce qu’il faut pour être un médecin moderne. L’apprentissage automatique devrait être abordé de la même manière que les personnes qui étudient la médecine abordent la chimie. Ce n’est pas une fin en soi, mais un moyen. Si vous voulez faire un travail sérieux dans la supply chain, vous devez avoir des bases solides en apprentissage automatique.

Question : Pourriez-vous donner des exemples où vous avez appliqué l’apprentissage automatique ? L’outil est-il devenu opérationnel ?

Parlant en tant que Joannes Vermorel, entrepreneur et PDG de Lokad, nous avons plus de 100 entreprises en production en ce moment, toutes utilisant l’apprentissage automatique pour diverses tâches. Ces tâches comprennent la prévision des délais d’approvisionnement, la production de prévisions probabilistes de la demande, la prédiction des retours, la prédiction des problèmes de qualité, la révision des estimations du temps moyen entre les réparations non planifiées et la détection de l’exactitude des prix concurrentiels. Il existe de nombreuses applications, telles que la réévaluation des matrices de compatibilité entre les voitures et les pièces dans l’après-vente automobile. Avec l’apprentissage automatique, vous pouvez corriger automatiquement une grande partie des erreurs de base de données. Chez Lokad, non seulement nous avons ces 100 entreprises en production, mais cela fait près d’une décennie que c’est le cas. L’avenir est déjà là ; il n’est tout simplement pas uniformément réparti.

Question : Quel est le meilleur moyen d’apprendre l’apprentissage automatique sur son temps libre ? Recommanderiez-vous des sites comme Udemy, Coursera ou autre chose ?

Ma suggestion serait une combinaison de Wikipedia et de la lecture d’articles. Comme vous l’avez vu dans cette conférence, il est important de comprendre les fondamentaux et de rester à jour avec les derniers développements dans le domaine. Comme vous l’avez vu dans ces conférences, je cite des articles de recherche réels. Ne faites pas confiance aux informations de seconde main ; allez directement à ce qui a été publié. Toutes ces choses sont directement disponibles en ligne. Il y a des articles sur l’apprentissage automatique qui sont mal écrits et indéchiffrables, mais il y a aussi des articles brillamment écrits qui fournissent des aperçus clairs sur ce qui se passe. Ma suggestion est d’aller sur Wikipedia pour avoir une vue d’ensemble d’un domaine, afin que vous puissiez avoir une idée générale, puis commencer à lire des articles. Au début, cela peut sembler opaque, mais après un certain temps, vous vous y habituerez. Vous pouvez opter pour Udemy ou Coursera, mais personnellement, je ne l’ai jamais fait. Mon objectif lorsque je donne ces conférences est de vous donner quelques intuitions pour que vous ayez une vue d’ensemble. Si vous voulez entrer dans les détails, plongez simplement dans l’article réel qui a été publié il y a des années ou des décennies. Optez pour des informations de première main et faites confiance à votre propre intelligence.

L’apprentissage profond est un domaine de recherche très empirique. La plupart des choses qui sont faites ne sont pas extrêmement complexes, mathématiquement parlant. Cela ne va généralement pas au-delà de ce que vous apprenez à la fin du lycée, donc c’est assez accessible.

Question : Avec l’avènement d’outils sans code comme CodeX et Co-Pilot d’OpenAI, pensez-vous que les praticiens de la supply chain écriront des modèles en langage courant à un moment donné ?

La réponse courte est : non, pas du tout. L’idée de contourner la programmation existe depuis longtemps. Par exemple, Visual Basic de Microsoft était censé être un outil visuel pour que les gens n’aient plus à programmer ; ils pouvaient simplement composer visuellement des choses comme des Legos. Mais de nos jours, cette approche s’est révélée inefficace, et la prochaine tendance consiste à exprimer les choses verbalement.

Cependant, la raison pour laquelle j’utilise des formules mathématiques dans ces conférences est qu’il y a de nombreuses situations où utiliser une formule mathématique est le seul moyen de transmettre clairement ce que vous essayez de dire. Le problème avec la langue anglaise, ou toute langue naturelle, est qu’elle est souvent imprécise et sujette à interprétation erronée. En revanche, les formules mathématiques sont précises et claires. Le problème avec le langage courant est qu’il est incroyablement flou, et bien qu’il ait ses utilisations, la raison pour laquelle nous utilisons des formules est de donner un sens non ambigu à ce qui est dit. J’essaie de limiter l’utilisation des formules, mais lorsque j’en inclue une, c’est parce que je pense que c’est le seul moyen de transmettre clairement l’idée, avec un niveau de clarté dépassant ce que je peux dire verbalement.

En ce qui concerne les plateformes à faible code, je suis très sceptique, car cette approche a été tentée de nombreuses fois par le passé sans grand succès. Mon point de vue personnel est que nous devrions rendre la programmation plus adaptée à la gestion de la supply chain en identifiant pourquoi la programmation est difficile et en éliminant la complexité accidentelle. Ce qui reste, c’est la programmation correcte pour la supply chain, ce que Lokad vise à faire.

Question : L’apprentissage automatique rend-il les prévisions de la demande plus précises pour les données historiques de ventes saisonnières ou régulières ?

Comme je l’ai mentionné dans cette présentation, l’apprentissage automatique rend le concept de précision obsolète. Si vous regardez la dernière compétition de prévision de séries chronologiques à grande échelle, la compétition M5, les 10 meilleurs modèles étaient tous des modèles d’apprentissage automatique dans une certaine mesure. Donc, est-ce que l’apprentissage automatique rend les prévisions plus précises ? Factuellement, basé sur la compétition de prévision, oui. Mais cela n’est que marginalement plus précis par rapport à d’autres techniques, et ce n’est pas une précision extraordinaire.

De plus, vous ne devriez pas considérer la prévision d’un point de vue unidimensionnel. Lorsque vous parlez de précision pour la saisonnalité, vous considérez un produit à la fois, mais ce n’est pas la bonne approche. La véritable précision consiste à évaluer comment le lancement d’un nouveau produit affecte tous les autres produits, car il y aura une certaine forme de cannibalisation. La clé est d’évaluer si la manière dont vous reflétez cette cannibalisation dans votre modèle est précise ou non. Soudain, cela devient un problème multidimensionnel. Comme je l’ai présenté dans la conférence avec les réseaux génératifs, la définition de ce que signifie réellement la précision doit être apprise ; elle ne peut pas être donnée. Les formules mathématiques, telles que l’erreur absolue moyenne, le pourcentage d’erreur absolue moyenne et l’erreur quadratique moyenne, ne sont que des critères mathématiques. Ce ne sont pas les types de mesures dont nous avons réellement besoin ; ce sont simplement des mesures très naïves.

Question : Le travail banal des prévisionnistes sera-t-il remplacé par la prévision en mode automatique ?

Je dirais que le futur est déjà là, mais il n’est pas uniformément réparti. Chez Lokad, nous prévoyons déjà des dizaines de millions de références quotidiennement, et je n’ai personne qui ajuste les prévisions sur la liste de paie. Donc oui, cela se fait déjà, mais ce n’est qu’une petite partie de l’image. Si vous avez besoin que des personnes ajustent les prévisions ou ajustent les modèles de prévision, cela indique une approche dysfonctionnelle. Vous devriez considérer le besoin d’ajuster les prévisions comme un bug et y remédier en automatisant cette partie du processus.

Encore une fois, d’après l’expérience de Lokad, ces choses seront entièrement éliminées car nous l’avons déjà fait. Nous ne sommes pas les seuls à le faire de cette manière, donc pour nous, c’est presque de l’histoire ancienne, cela fait presque une décennie.

Question : Dans quelle mesure l’apprentissage automatique est-il activement utilisé pour prendre des décisions en matière de supply chain ?

Cela dépend de l’entreprise. Chez Lokad, cela est utilisé partout, et évidemment, lorsque je dis “chez Lokad”, je veux dire dans les entreprises servies par Lokad. Cependant, la grande majorité du marché utilise encore essentiellement Excel, sans apprentissage automatique du tout. Lokad gère activement des milliards d’euros ou de dollars de stocks, donc c’est déjà une réalité et cela l’est depuis un certain temps. Mais Lokad ne représente même pas 0,1 % du marché, nous sommes donc encore une exception. Nous sommes en croissance rapide, tout comme plusieurs concurrents. Je soupçonne que c’est encore une configuration marginale sur l’ensemble du marché de la supply chain, mais elle connaît une croissance à deux chiffres. Ne sous-estimez jamais la puissance de la croissance exponentielle sur une longue période. À terme, cela deviendra très important, espérons-le avec Lokad, mais c’est une autre histoire.

Question : Avec de nombreuses inconnues dans la supply chain, quelle est une stratégie qui peut la rendre prévisible pour un modèle ?

L’idée est que, oui, il y a des tonnes d’inconnues, mais les entrées de votre modèle ne sont pas vraiment choisies. Cela revient à ce que vous avez dans vos systèmes d’entreprise, comme les données disponibles dans votre ERP. Si votre ERP dispose d’un historique des niveaux de stock, vous pouvez les utiliser comme partie de votre modèle d’apprentissage automatique. Si votre ERP ne conserve que les niveaux de stock actuels, ces données ne sont pas disponibles. Vous pouvez commencer à prendre des instantanés de vos niveaux de stock si vous souhaitez les utiliser comme entrées supplémentaires, mais le message principal est qu’il y a très peu de choix concernant ce que vous pouvez utiliser comme entrées ; c’est littéralement ce qui existe dans vos systèmes.

Mon approche habituelle est que si vous devez créer de nouvelles sources de données, cela va être lent et douloureux, et ce ne sera probablement pas votre point de départ pour utiliser l’apprentissage automatique dans les chaînes d’approvisionnement. Les grandes entreprises sont numérisées depuis des décennies, donc ce que vous avez dans vos systèmes transactionnels, comme votre ERP et votre WMS, est déjà un excellent point de départ. Si, à l’avenir, vous réalisez que vous voulez en avoir plus, comme des informations sur la concurrence, des niveaux de stock autorisés ou des délais de livraison donnés par vos fournisseurs, ce seront des ajouts intéressants à utiliser comme entrées pour vos modèles. Habituellement, ce que vous utilisez comme entrées est quelque chose avec lequel vous avez une bonne intuition et qui est corrélé avec ce que vous essayez de prédire en premier lieu, et une intuition de haut niveau est généralement suffisante. Le bon sens, qui est difficile à définir, est largement suffisant. Ce n’est pas le goulot d’étranglement en termes d’ingénierie.

Question : Quel est l’impact des décisions de tarification sur l’estimation de la demande future, même d’un point de vue probabiliste, et comment y faire face d’un point de vue d’apprentissage automatique ?

C’est une très bonne question. Il y a eu un épisode sur LokadTV qui a abordé ce problème. L’idée est que ce que vous apprenez devient ce qui est généralement appelé une politique, un objet qui contrôle la manière dont vous réagissez à différents événements. La façon dont vous prévoyez est de produire une sorte de paysage, à la manière de Monte Carlo. Vous allez produire une trajectoire, mais votre prévision ne sera pas des points de données statiques. Cela va être un processus beaucoup plus générateur, où à chaque étape du processus de prévision, vous devrez générer le type de demande que vous pouvez observer, générer les décisions que vous prenez, et régénérer le type de réponse du marché à ce que vous venez de faire.

Il devient très compliqué d’évaluer l’exactitude de votre processus de génération de réponse à la demande, et c’est pourquoi vous devez réellement apprendre vos métriques de prévision. C’est très délicat, mais c’est pourquoi vous ne pouvez pas simplement considérer vos métriques de prévision, vos métriques de précision, comme un problème unidimensionnel. Pour résumer, la prévision de la demande devient un générateur, donc fondamentalement dynamique, pas statique. C’est quelque chose de générateur. Ce générateur réagit à un agent, un agent qui sera mis en œuvre sous la forme d’une politique. Le générateur et le système de prise de décision politique doivent tous deux être appris. Vous devez également apprendre la fonction de perte. Il y a beaucoup à apprendre, mais heureusement, le deep learning est une approche très modulaire et programmatique qui se prête bien à la composition de toutes ces techniques.

Question : Est-il difficile de collecter des données, en particulier auprès des PME ?

Oui, c’est très difficile. La raison en est que, si vous traitez avec une entreprise dont le chiffre d’affaires est inférieur à 10 millions, il n’y a pas de service informatique. Il peut y avoir un petit ERP en place, mais même si les outils sont bons, décents et modernes, vous n’avez pas d’équipe informatique en place. Lorsque vous demandez les données, il n’y a personne dans l’entreprise cliente qui a les compétences pour exécuter une requête SQL afin d’extraire les données.

Je ne suis pas sûr de comprendre votre question correctement, mais le problème n’est pas exactement la collecte des données. La collecte des données se fait naturellement via le logiciel de comptabilité ou l’ERP en place, et de nos jours, il existe des ERP accessibles même aux entreprises assez petites. Le problème est l’extraction des données de ces logiciels d’entreprise. Si vous travaillez avec une entreprise dont le chiffre d’affaires est inférieur à 20 millions de dollars et qui n’est pas une entreprise de commerce électronique, il y a de fortes chances que le service informatique n’existe pas. Même lorsqu’il y a un petit service informatique, il s’agit généralement d’une seule personne responsable de la configuration des machines et des postes de travail Windows pour tout le monde. Ce n’est pas quelqu’un qui est familier avec les bases de données et les tâches administratives plus avancées en termes de configurations informatiques.

D’accord, je pense que c’est tout. La prochaine session aura lieu dans quelques semaines. Ce sera le mercredi 13 octobre. À la prochaine !

Références

  • A theory of the learnable, L. G. Valiant, novembre 1984
  • Support-vector networks, Corinna Cortes, Vladimir Vapnik, septembre 1995
  • Random Forests, Leo Breiman, octobre 2001
  • LightGBM: A Highly Efficient Gradient Boosting Decision Tree, Guolin Ke, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye, Tie-Yan Liu, 2017
  • Attention Is All You Need, Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin, dernière révision en décembre 2017
  • Deep Double Descent: Where Bigger Models and More Data Hurt, Preetum Nakkiran, Gal Kaplun, Yamini Bansal, Tristan Yang, Boaz Barak, Ilya Sutskever, décembre 2019
  • Analyzing and Improving the Image Quality of StyleGAN, Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila, dernière révision en mars 2020
  • Generative Adversarial Networks, Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, juin 2014
  • Unsupervised Machine Translation Using Monolingual Corpora Only, Guillaume Lample, Alexis Conneau, Ludovic Denoyer, Marc’Aurelio Ranzato, dernière révision en avril 2018
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, dernière révision en mai 2019
  • A Gentle Introduction to Graph Neural Networks, Benjamin Sanchez-Lengeling, Emily Reif, Adam Pearce, Alexander B. Wiltschko, septembre 2021