Vous n’avez pas pu y échapper : les mots « Machine Learning » apparaissent sous vos yeux un peu partout et tout le temps. Accolés, mélangés, appariés, mixés, avec bien d’autres termes plus ou moins ésotériques : « Big Data », « apprentissage automatique », « apprentissage artificiel », etc. Et bien d’autres. Enfin pas si ésotériques après quelques années d’ENSAE, tout de même. Difficile cependant de faire le tri, y compris lorsque quelques années seulement sont passées depuis l’obtention de votre diplôme…

Le but de cet article est de vous aider à y voir un peu plus clair dans cette jungle, mais surtout de vous orienter dans vos lectures si jamais vous souhaitez investir un peu de votre temps libre pour, enfin, dénouer les dilemmes mentaux que le sujet peut parfois provoquer. Je n’ai pour ainsi dire aucune légitimité, sinon un enthousiasme personnel pour des techniques et des possibilités désormais à la portée de tous. Vous trouverez donc sans peine contributeur plus investi, plus doué, plus cultivé que moi sur un sujet aux développements sans limites… En témoigne l’activité frénétique, visible par exemple sur le site arXiV (voir [1]), où les publications autour de l’application des techniques d’apprentissage artificiel en de multiples domaines sont humainement impossibles à suivre, même si l’on devait y dédier toutes ses journées.

Mais je vais tenter de mettre à la portée de ceux que le sujet peut intéresser, des ressources (avec une cardinalité finie) permettant de se faire rapidement une culture appliquée de qualité. Une première approche serait de parcourir en totalité le site Pathmind (voir [2]) et lire toutes les ressources qu’il cite. Un peu chronophage… Les références données ici ne sont donc que quelques portes d’entrée qu’il ne tiendra qu’à vous de pousser. Tout ce que je raconte n’est qu’un résumé des ressources que je donne, aussi se reporter à l’original est une saine démarche. Et la bonne nouvelle est que certaines de ces références ont été écrites par d’éminents anciens ENSAE. Un petit lexique clôturera cette publication pour que tout lecteur puisse avoir accès à un référentiel l’aidant à y voir clair.

Quelques clarifications préliminaires

La première ambiguïté à lever est de savoir de quoi nous parlons. Bien souvent, dans la presse ou dans des articles de vulgarisation, se mêlent joyeusement plusieurs concepts. Ce que je souhaite vous présenter ici, ce sont des lectures donnant les éléments clés des techniques concernées, ainsi qu’une mise en perspective de la théorie sous-jacente au Machine Learning avec le corpus statistique usuel auquel nous sommes plus habitués. Je n’aborderai par exemple pas le sujet de l’application de ces techniques et de leur intrusion dans notre vie quotidienne. Je ne serai pas en mesure de détailler ma vue personnelle sur leur avenir ou la place qu’elles prendront dans tel ou tel domaine, et ce, que leur utilisation aille de la finance de marché aux instituts de sondage, des études épidémiologiques à la radiologie. Le lecteur pourra se reporter aux dossiers déjà réalisés et consultables sur le site de Variances sur l’Intelligence Artificielle (voir http://variances.eu/?cat=164) ou au livre (plus généraliste que les références plus techniques égrenées dans la suite) de Yann Le Cun « Quand la machine apprend » (voir [16]) qui pourront donner une idée sur le futur de ces techniques et leur interopérabilité. Cas particulier concernant l’utilisation de ces algorithmes pour la banque et la finance, le joli papier de Charles-Albert LeHalle (voir [17]) est également à conseiller (aussi pour les aspects historiques abordés au début de cet article).

Un peu de poésie !

Si je devais vous convaincre que ces algorithmes possèdent même une certaine poésie, je vous conseille plus que vivement de visionner l’extraordinaire (et le mot est faible) reportage suivant les développements de Google (voir référence [3]) pour battre en mars 2016 le champion incontesté du jeu de Go, Lee Sedol. Si les aspects scientifiques abordés sont intéressants, le reportage, visionnable même en famille, préfigure et illustre la rupture franche que ces algorithmes apporteront et apportent déjà dans notre vie quotidienne (les spécialistes comme les néophytes auront la même émotion au coup 37 de la partie 2 !).

Des champs d’application sans fin

L’article remarquable de Le Cun, Bengio et Hinton dans Nature ([4]) exprime particulièrement bien toutes les potentialités de l’Apprentissage Statistique aujourd’hui. Si le Deep Learning* est célèbre aujourd’hui, c’est entre autres pour la capacité qu’ont ces algorithmes à reconnaître des visages ou permettre la conduite autonome. Fort bien. Mais il n’y a pas que dans le domaine des images que les progrès sont fulgurants. La génomique, le marketing, la chimie, la radiologie sont bouleversés. On trouve des applications dans la résolution d’équations différentielles comme dans l’industrie, avec la prévision de composants défectueux. Dans le domaine du langage, la compréhension du langage naturel, la classification de thème, la possibilité de poser des questions ou d’y répondre, la traduction, sont tout autant de champs où l’Apprentissage Statistique enregistre des percées stupéfiantes.

Une trajectoire cahoteuse

Tout n’a cependant pas été si facile pour l’Apprentissage Statistique, souvent confondu ou réduit aux premiers réseaux de neurones comme le perceptron*. Ce qui a changé, bien évidemment, c’est l’augmentation des capacités des ordinateurs puis du calcul distribué et en nuage, et l’omniprésence évidente de la donnée, des images aux données collectées par des acteurs privés ou publics. En effet, on parle pour les réseaux de neurones d’une traversée du désert dans les années 90, tant ceux qui croyaient encore en eux se faisaient rares. On donne souvent l’exemple du concours de reconnaissance d’images ImageNet où à partir de 2012, les 25 % d’erreurs jusqu’à présent incompressibles, se sont alors transformés en quelques pourcents. Pour certains usages, un algorithme même imparfait mais nourri avec un volume de données terrifiant peut dépasser des solutions que l’on pensait les meilleures, mais entraînées sur des ensembles de données plus restreints. L’une des clés de la force d’Uber, par exemple, n’est pas tant le fait de connecter chauffeurs et passagers, mais de pouvoir connaître les habitudes de tout un chacun à (très) grande échelle. Cependant il faut distinguer deux champs majeurs. Premièrement les mathématiques, et la compréhension de pourquoi ces algorithmes fonctionnent et comment ils se généralisent. Et l’informatique qui permet de répondre efficacement à des problématiques précises avec une chaîne de techniques qui deviennent petit à petit une suite de briques de plus en plus faciles à assembler, y compris à un niveau personnel, pas seulement au niveau industriel.

Que lire ?

Allez, coupons court au suspense. Si vous voulez aller vite et savoir quelles sont les grandes tendances et les grands courants en Machine Learning, une référence « culte », efficace et remarquable est l’article de Le Cun, Bengio et Hinton (trois références absolues, lauréats du Prix Turing – voir [4]) « Deep Learning ». Malgré son nom, assez spécialisé, le papier est remarquable de concision et brasse des thèmes généraux qui permettent de situer les diverses techniques. Si vous êtes prêts à investir un peu plus de temps, alors je vous conseille l’excellent livre d’Aurélien Géron (voir [5]) dont une double traduction existe du reste en français. D’autres références que ce livre existent bien entendu, mais sa concision, sa clarté, son exhaustivité, et sa facilité, associées aux exemples de code, en font une référence idéale pour débuter ou même se mettre à niveau. Il peut être complété par la lecture du livre très connu de Hastie, Tibshirani et Fridman (voir [6]), moins didactique et plus mathématique. Et si vraiment, vous êtes prêts à investir du temps (et apprendre, vraiment, plein de choses) je ne peux que vous conseiller les cours de Stéphane Mallat au Collège de France, dont ceux des années passées sont disponibles en ligne et en vidéo sur le site de l’institution (voir [7]). Le cours demande un investissement en temps mais apporte vraiment un complément de très grande qualité aux précédentes lectures. Pour une plongée dans l’apprentissage profond, une « gueuse » de confiance sera le livre de Bengio, Courville, Goodfellow et Bach (voir [15]) dédié au sujet. Enfin si vous souhaitez passer une certification, il en existe de nombreuses en ligne, proposées par de multiples universités. La plus connue est celle d’Andrew Ng à Stanford (voir [13]) et est relativement aisée même si elle demande un suivi minimal. Evidemment, des recherches simples vous donneront d’autres noms en fonction du temps que vous souhaitez y consacrer ; ce n’est qu’un exemple.

Une précision cependant : à la fin de ces lectures, deux thèmes particuliers ne seront que faiblement couverts. Il s’agit de l’Apprentissage par Renforcement (RL ou Reinforcement Learning*) et l’Analyse du Langage Naturel (Natural Language Processing ou NLP*). Nous y reviendrons plus bas.

Econométrie et Machine Learning

S’il y a un article par lequel tout statisticien curieux devrait commencer, c’est celui de Charpentier, Flachaire et Ly (voir [8]). Je pense à titre personnel que ce papier est assez unique dans le paysage car il prend le temps de faire des rappels historiques, de poser les choses mathématiquement tout en balayant un champ large des techniques existantes. Condenser autant de messages dans aussi peu de place est une petite prouesse. Je citerai ici quelques phrases importantes que je retiens de cette lecture. Un fait important à retenir, et que l’article avance très à propos, est que « si l’économétrie étudie abondamment les propriétés (souvent asymptotiques) [des estimateurs], l’apprentissage statistique s’intéresse davantage aux propriétés du modèle optimal (suivant un critère qui reste à définir), voire simplement pour quelques observations jugées d’intérêt. » Ceci est très loin d’être anodin. Une des différences est aussi que désormais les techniques de Machine Learning sont utilisées dans des contextes très précis et non supervisés. Prenons l’exemple de la description de contenu de vidéo à destination de la production de labels pour classer ces vidéos. Si l’algorithme (non supervisé) commence à dérailler et à produire des recommandations inadaptées à des enfants, alors l’algorithme n’est pas seulement erroné, il est tout bonnement inacceptable. Idem pour les chatbots devenus racistes (comme un opérateur en avait fait la désagréable découverte il y a quelque temps). Sans parler des risques en conduite autonome. Ce qui change donc est l’acceptation des risques de première ou deuxième espèce, dans un contexte bien précis. Le contrôle théorique des propriétés de l’algorithme ou son temps de développement, importent moins que sa mise en production effective et sa fiabilité.

L’article [8] détaille en particulier pourquoi « le problème de choix de modèle est aussi vu sous un angle assez différent. (…) les économètres utilisent des critères (…) pour choisir un modèle optimal (pénalisant la qualité d’ajustement d’un modèle par sa complexité, ex-post, lors de la phase de validation ou de choix), alors qu’en apprentissage statistique, c’est la fonction objectif qui tiendra compte d’une pénalisation (…) ressemblant à une forme de pénalisation ex-ante. » Une autre manière de le dire est que « l’économétrie repose fondamentalement sur un modèle probabiliste (…)  En apprentissage statistique, on n’a pas besoin de modèle probabiliste. » On va dans un cas poser un estimateur et dériver ses propriétés théoriques pour juger ex-post de sa validité. Dans le deuxième cas, on se tournera vers des méthodes plus empiriques pour sélectionner un modèle crédible tout en prédéfinissant des garde-fous. [5] le dit « Le vrai objectif en soi n’est pas la lecture de ses actions mais la capacité de généralisation et d’extrapolation à de nouvelles données. » (Historiquement, on pourrait même rapprocher cet intérêt pour la capacité de généralisation des travaux de Vapnik dans les années 70, où pour la première fois, le statisticien s’intéresse à la robustesse des modélisations, en déconnectant possiblement le modèle d’étude du processus génératif des données.) Les dangers de l’entreprise étant alors le manque de données, la mauvaise qualité de la donnée, la surreprésentation de variables non explicatives, le sur ou sous-apprentissage. Malgré tout, les dangers sont les mêmes que pour l’économétrie plus classique !

Quelques concepts

Que doit-on alors appeler Intelligence Artificielle ? La question est vaste et trouve ses sources dans la volonté d’imiter le fonctionnement du cerveau et des capacités de raisonnement humain. Ainsi, l’ensemble des concepts qu’elle recouvre est trop vaste pour être ici résumé. Nous pouvons cependant restreindre notre champ d’intérêt à l’Apprentissage Automatique, ou Machine Learning en anglais. [5] donne deux définitions utiles pour comprendre le paysage. Pour le citer, je les reprends ici en commençant par celle d’Arthur Samuel : « L’apprentissage automatique est la discipline donnant aux ordinateurs la capacité d’apprendre sans qu’ils soient explicitement programmés. » et celle de Tom Mitchell : « Un programme informatique apprend à partir d’une expérience si les résultats obtenus pour une tâche et une mesure de performance s’améliorent grâce à cette expérience. »

Nous préférerons parler dans le reste du texte d’Apprentissage Statistique, acception plus large et aux accents théoriques plus adaptés à notre propos. L’Apprentissage Statistique se sépare généralement entre apprentissage supervisé et non supervisé. L’apprentissage supervisé* présente à « l’expérimentateur » des données d’entrée avec en correspondances des réponses, valeurs ou classes, ou résultats attendus. La régression telle que nous la connaissons est un tel exemple. Dans l’apprentissage non supervisé*, on laisse l’algorithme apprendre seul, sans cible et sans résultat pré-attendu au départ pour les données d’entrée. Un cas hybride est l’apprentissage semi-supervisé qui combine les deux notions, en utilisant dans un premier temps l’apprentissage non supervisé, la supervision et l’expertise rentrant en compte pour régler plus précisément l’algorithme dans un second temps.

Les enseignements du cours de [7] sont un peu plus profonds. Ils sont troublants dans la mesure où ils vous permettront de vous rendre compte que pouvoir dire « pourquoi et comment tout cela fonctionne » reste une entreprise assez hasardeuse. Les ressorts profonds de la manière dont les succès du Deep Learning* se réalisent sont encore très mystérieux. Leur généricité l’est plus encore : comment un réseau optimisé pour reconnaître des visages peut, à peu de frais, se généraliser à de la reconnaissance de parole ? Pour citer Stéphane Mallat, le Deep Learning ne semble marcher que lorsque les réseaux sont très structurés, et non simplement grâce aux grands volumes de données. En particulier, pour l’apprentissage supervisé, ce n’est plus tant le fait d’avoir des données qui devient névralgique : il devient « coûteux d’avoir des labels » (c’est-à-dire : que faut-il apprendre ?). Stéphane Mallat parle même des labels comme d’un « fantasme dont il faudrait pouvoir se débarrasser », lui voyant dans l’architecte qui construit le réseau de neurones, le principal pourvoyeur d’information a priori. Là encore, les vidéos de son cours le diront mieux que moi ! A ce titre, et pour en revenir aux biais potentiels qu’un « expert en label » pourrait introduire, un courant fort et montant sur la notion d’équité se fait jour. Le fait de produire un fair learning n’est pas du tout anecdotique dès lors qu’ils envahissent nos vies, s’ils sont « orientables ou orientés » (volontairement ou non, du reste) sans que l’on s’en aperçoive. On pourra se reporter aux ressources disponibles par exemple sur le site de Jean-Michel Loubes à Toulouse (voir [18]).

[4] précise en particulier (et c’est un message à probablement méditer car c’est une conclusion concise et simple de personnes très, très compétentes !) est que le futur de l’Apprentissage Statistique et du Deep Learning se situe plus que probablement dans l’amélioration des techniques d’apprentissage non supervisé dont nous n’avons probablement fait qu’effleurer la puissance jusqu’à présent.

La folie Machine Learning

Une autre lecture intéressante est celle de l’article de Marcos Lopez de Prado, « Beyond Econometrics: A Roadmap Towards Financial Machine Learning » (voir [9]). Si cette publication n’est pas du niveau du papier [8] et qu’elle poursuit probablement des buts plus opportunistes et moins fondamentaux, il s’agit au moins de la vue d’un chercheur actif en finance ; sa lecture renseigne sur les différences de perception entre l’économétrie plus traditionnelle et le Machine Learning. Intègres ou non, les arguments développés nous en apprennent dès lors autant en creux sur la vision des gens qui l’utilisent. L’auteur des présentes lignes ne cautionne donc pas tous les arguments du papier, mais le message est intéressant car il montre à quel point il est désormais important, pour les entreprises comme pour les chercheurs dans la sphère académique, d’utiliser ces termes ou de publier autour de ces concepts. Lopez de Prado y souligne par exemple que le Machine Learning peut être vu au premier ordre « comme une évolution naturelle des statistiques traditionnelles à l’ère des ordinateurs » et « si le but de l’économétrie est de définir des relations causales, les algorithmes de Machine Learning sont destinés à la prédiction hors échantillon ». Si cette première assertion est déjà sujette à débat, elle est néanmoins éclairante sur les intentions des utilisateurs extensifs du Machine Learning : prévoir, quantifier, classer dans une situation inconnue.

Evidemment, la plupart du temps, comme en économétrie, le modélisateur est aux manettes. [8] rappelle du reste que « les économètres se sont beaucoup interrogés sur la manière dont les données étaient construites, et ne se sont jamais contentés de “construire des modèles” ». Derrière la mise en place d’une procédure, aussi brillante soit-elle, il y a toujours un humain à l’heure actuelle. Si l’économètre pose un modèle et le teste, le chercheur ou le data analyst (puisque c’est souvent l’acception utilisée) doit toujours chercher à évaluer ses modèles pour choisir dans sa boîte à outils entre de nombreuses solutions alternatives. Sur les fondamentaux de cette démarche, [9] passe probablement à côté de cette similarité en confinant l’économétrie à un champ trop restreint. Mais encore une fois, le propos n’est pas là : voir comment les gens parlent de l’une ou l’autre des matières reste enrichissant.

Reinforcement Learning*

Parmi tous ces concepts, une technique tient une place un peu particulière : il s’agit de l’Apprentissage par Renforcement (RL pour Reinforcement Learning*). Dans ce cas, la formulation du problème est assez proche, dans l’esprit, de ce qui peut être exprimé en théorie des jeux. Plus précisément, cette approche est justement utilisée pour modéliser des stratégies optimales pour résoudre des jeux de plateau, des jeux vidéo, effectuer du contrôle de trajectoire, ou en construction de portefeuille en finance. Dans ce cas, un agent choisit des actions dans un environnement qu’il ne connaît pas forcément. Il doit trouver, en fonction d’une récompense qu’il cherche à maximiser, une stratégie d’évolution optimale, en fonction des récompenses que son environnement lui renvoie. Evidemment, ce cadre utilise largement les éléments de contrôle optimal enseignés à l’ENSAE. Une illustration amusante et didactique se trouve sur le site du département de robotique de l’ETH (https://rsl.ethz.ch/robots-media.html) densément rempli de vidéos et de ressources sur les projets finaux atteignables avec une telle technique. Le coût d’entrée purement technique sur la thématique est plus important que pour d’autres champs de l’Apprentissage Statistique. Des livres existent mais on peut donner trois références gratuites. Tout d’abord l’introduction généraliste et complète du livre de Sutton et Barto suite à leur cours à Stanford (voir [10]). Disponible sur arXiV, on pourra aussi citer le travail de [11], référence plus orientée vers le Deep Learning. Enfin, à destination d’une utilisation en finance, un très bon et récent papier de Charpentier, Elie et Remlinger (voir [12]) est également à conseiller. Une partie des vidéos du cours de Stéphane Mallat ([7]) aborde aussi le sujet.

Le cas particulier du NLP*

La volonté de modéliser le langage est assez ancienne et remonte probablement à plusieurs siècles. Jusqu’à présent et y compris dans la deuxième moitié du XXe siècle, les principaux efforts ont consisté à dégager et imbriquer des efforts de structure et d’analyse : articuler les notions de grammaire, de structure, de sens. Et les différents efforts qui ont été faits ont toujours oscillé entre une approche très rationnelle et très structurée, et une approche beaucoup plus empirique, partant des corpus de textes étudiés. C’est cette approche qui va permettre à l’Intelligence Artificielle de proposer un renouveau de l’étude du langage. En cela les Réseaux de Neurones Profonds ont beaucoup aidé et ce depuis environ 10 ans, obtenant des résultats très impressionnants pour la traduction. Désormais le NLP s’applique aussi au résumé de textes et de vidéos. Les références sont plus éclatées sur ce thème et s’investir en NLP demande un réel effort. On peut tout de même citer l’exemple de la finance, avec le papier de Loughran et McDonald (voir [14]) qui est souvent cité. Le début du papier peut tout de même éclairer tout lecteur dans les grandes lignes sur le sujet.

Conclusion

Il faut voir que pour le moment nous sommes encore dans une phase où les machines n’apprennent encore guère réellement toutes seules. Leur autonomie n’est pas totale, et nous sommes encore loin d’une pleine « intelligence artificielle » faite d’un cerveau en silicium. Mais pour répondre à des tâches ciblées, éventuellement ambitieuses et très complexes, le coût de réalisation a drastiquement baissé. C’est ce que [17] formule en identifiant que nous sommes passés « des machines apprenantes à l’intelligence bon marché ». Preuve en est la difficulté d’interpréter les modèles qui gardent encore leur aspect « boîte noire » dans beaucoup de cas. On pourra à ce titre parcourir les références sur le sujet citées dans les présentations du cours en ligne d’Arthur Charpentier disponible à l’adresse suivante : https://freakonometrics.hypotheses.org/58249.

Ces thématiques, finalement pas si nouvelles mais réellement passionnantes, sont un passe-temps délicieux pour toute personne avide de connaissance. Même avec une vie de famille et un travail prenant au jour le jour, se replonger dans ces concepts pour comprendre les enjeux d’une période incroyable reste un plaisir plutôt qu’une contrainte. J’espère que ces quelques lectures vous permettront de satisfaire votre curiosité et vous ouvriront des perspectives.


Bibliographie

 

[1] arXiV – Sanity Preserver – http://www.arxiv-sanity.com/

[2] Pathmind – https://pathmind.com/wiki/deeplearning-research-papers

[3] AlphaGo – The Movie | Full Documentary – https://www.youtube.com/watch?v=WXuK6gekU1Y

[4] Yann LE CUN, Yoshua BENGIO, Geoffrey HINTON – Deep Learning – Nature, 521(7553):436-44 – May 2015 – https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf

[5] Aurélien GERON – Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow: Concepts, Tools, and Techniques to Build Intelligent Systems – O’Reilly, 2de Edition, 2019

[6] Trevor HASTIE, Robert TIBSHIRANI, Jerome FRIEDMAN – The Elements of Statistical Learning, Data Mining, Inference, and Prediction – Springer, 2de Edition https://web.stanford.edu/~hastie/Papers/ESLII.pdf

[7] Stéphane MALLAT – Cours en ligne au Collège de Francehttps://www.college-de-france.fr/site/stephane-mallat/index.htm

[8] Arthur CHARPENTIER, Emmanuel FLACHAIRE, Aantoine LY – Econométrie et Machine Learninghttps://hal.archives-ouvertes.fr/hal-01568851v3

[9] Marcos LOPEZ DE PRADO – Beyond Econometrics: A Roadmap Towards Financial Machine Learning – Papier de recherche, 2019 –  https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3365282

[10] Richard SUTTON and Andrew BARTO – Reinforcement Learning: An Introduction, 2015 – https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf

[11] Vincent FRANCOIS-LAVET, Peter HENDERSON, Riashat ISLAM, Marc BELLEMARE, Joëlle PINEAU – An Introduction to Deep Reinforcement Learning, 2018 – https://arxiv.org/pdf/1811.12560.pdf

[12] Arthur CHARPENTIER, Romuald ELIE, Carl REMLINGER – Reinforcement Learning in Economics and Finance, 2020 – https://arxiv.org/abs/2003.10014

[13] Andrew NG – Coursera, Stanford – https://fr.coursera.org/learn/machine-learning

[14] Tim LOUGHRAN, Bill McDONALD – Textual Analysis in Finance, 2020 –https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3470272

[15] Yoshua BENGIO, Aaron COURVILLE, Ian GOODFELLOW, Francis BACH – L’apprentissage Profond, 2018 – Massot

[16] Yann LE CUN – Quand la machine apprend : La révolution des neurones artificiels et de l’apprentissage profond, 2019 – Odile Jacob

[17] Charles-Albert LEHALLE – La finance de marché à l’ère de l’intelligence bon marché, 2019 – https://hal.archives-ouvertes.fr/hal-02314348/

[18] Jean-Michel LOUBES – Fairness & Robustness in Machine Learninghttps://perso.math.univ-toulouse.fr/loubes/fairness-robustness-in-machine-learning/


Lexique

Activation Function (ou Fonction d’activation): fonction monotone croissante (non forcément strictement) appliquée en sortie d’un neurone dans un réseau. Pour des variables d’entrée X, elle s’applique sur w.X où w sont les poids à optimiser. Sa définition dépend à la fois du réseau et de l’objectif (classification ou régression). Des exemples sont la fonction sigmoïde, tangente hyberbolique ou ReLu (voir ci-après).

ADABOOST (pour Adaptive Boosting): algorithme particulier de boosting (voir par ailleurs). Généralisation de l’idée initiale du boosting. Utilisé en classification.

Accuracy (ou Exactitude) : même si cela pourrait se traduire en français par « précision », ce n’est pas l’indicateur « precision » (voir plus bas). Il s’agit du nombre total de bonnes prédictions au regard du nombre total d’exemples.

Backpropagation (ou Rétropropagation du gradient) : dans les réseaux de neurones, méthode de calcul du gradient donc utilisée dans l’optimisation des poids du réseau. C’est une méthode parmi d’autres.

Bagging (pour Bootstrap Aggregating ou Ensachage) : méthode ensembliste (souvent conjuguée aux arbres de décision en pratique). Le Bagging est appliqué avec un classificateur sur des sous-ensemble de l’ensemble d’apprentissage tirés au hasard et avec remise. Si le tirage est sans remise, on parle alors de Pasting.

Boosting (ou Hypothesis Boosting): algorithme itératif utilisant une suite d’apprentissage où à chaque étape, l’algorithme suivant corrige les erreurs du précédent. Des poids a priori sur les données de l’ensemble d’apprentissage sont redéfinis en fonction du tour précédent. L’idée est d’insister au fil du temps sur les exemples récalcitrants où l’apprentissage est encore en échec en leur donnant plus de poids. La fonction finale est obtenue comme une combinaison linéaire d’un ensemble de fonctions dépendant directement des exemples. L’un des problèmes potentiellement rencontrés par le boosting est que l’algorithme finisse par essayer d’ajuster à la fin des exemples trop bruités.

CART (pour Classification and Regression Tree ou Apprentissage par arbre de décision) : voir Regression Tree.

Classification : le but de la classification est de déterminer (de manière supervisée ou non) quels éléments de l’ensemble de données appartiennent à une classe donnée. Il peut y avoir 2 ou plus modalités de classe, assimilable alors à une variable catégorielle. La régression logistique est l’exemple le plus simple et le plus parlant de classification.

Clustering (ou Partitionnement de données) : algorithme non supervisé cherchant à séparer les données en sous-ensemble les plus homogènes possibles, au sens d’un critère à préciser. Chaque sous-ensemble (ou classe) se doit d’être le plus homogène possible et le plus différent possible des autres sous-ensembles.

CNN (pour Convolutional Neural Network ou Réseau de Neurones Convolutif) : Type particulier de réseau neuronal profond. Ils sont particulièrement destinés à des situations où les données d’entrée sont constitués de tableaux multiples comme par exemple des vidéos. Ils ont gagné leurs lettres de nobles en obtenant de bons résultats dans une période où les réseaux de neurones n’étaient plus trop à la mode (voir  [4])

Cross-Validation (ou Validation croisée) : méthode d’aide au choix des hyperparamètres ou de sélection du meilleur modèle d’apprentissage avec un jeu de données fixé. En pratique, on divise l’ensemble de données entre un jeu d’entraînement, un jeu de validation, et un jeu de test. « Philosophiquement, », le jeu d’entraînement sert à optimiser et estimer les paramètres des modèles concurrents, le jeu de validation à sélectionner le meilleur modèle parmi les modèles à disposition, et le jeu de test à évaluer le modèle retenu sur des données « jamais vues ». Il existe plusieurs types de validation croisée (notamment en effectuant des séparations entraînement/validation variées dans le jeu de données de non-test). Voir par exemple [8] pour une mise en perspective de cette technique avec la notion de loi d’estimateur.

DBSCAN : algorithme de clustering* qui détermine les clusters selon la notion de densité, un groupe étant alors une région de grande intensité.

 Deep Learning (Apprentissage Profond) : ensemble des modèles d’apprentissages particulièrement utiles en reconnaissance d’images, d’objets ou de signaux audio. Le mot « deep » vient du fait qu’ils sont des réseaux de neurones particuliers en ce sens qu’ils accumulent des dizaines voire des centaines de couches de réseaux de neurones pour « apprendre des représentations des données avec différents niveaux d’abstraction » ([4]). Chaque couche est en générale simple mais non-linéaire. Leur succès vient notamment du fait de pouvoir entraîner ces réseaux sur des ensembles de données gigantesques. Dans le cas de la reconnaissance d’images, les premières couches détectent généralement les arrêtes, les suivantes les motifs et les combinaisons de ces arrêtes. Mais la structuration de ces premières couches n’a pas été initialement guidée par des expérimentateurs, c’est l’optimisation globale de ces réseaux qui permet d’observer ce comportement. Le nombre de poids à optimiser dans un réseau peut être de l’ordre de la centaine de millions, mais un « petit » réseau à 5 couches peut déjà pour certaines applications produire des résultats étonnants. Toujours selon [4], les réseaux profonds « exploitent la propriété que de nombreux signaux naturels sont le résultat de hiérarchies composées, où les propriétés de haut-niveau sont le résultat de la composition de propriétés de plus bas niveau ».

DNN (pour Deep Neural Networks ou Réseaux de Neurones Profonds) : voir Deep Learning.

ElasticNet : régression linéaire régularisée où la pénalité est une combinaison des pénalités utilisées dans une régression Lasso* et une régression de type Ridge*.

Ensemble Methods (ou Méthodes Ensemblistes) : le but est de produire en partant d’une famille de prédicteurs non optimaux, un algorithme de prédiction meilleur que le meilleur classificateur individuel de la famille. Pour que l’astuce fonctionne il faut que les classificateurs soient suffisamment imparfaits, différents et indépendants entre eux.

Epoch : dans l’optimisation par descente de gradient, correspond à un parcours complet du jeu de données.

F1 Score : moyenne harmonique des scores de type Recall et Precision, très utilisé pour choisir parmi des algorithmes de classification. Le F1 Score met en avant les classificateurs assez équilibrés, poussant à une utilisation qui dépend de la situation.

Feature Extraction : action de réduire la dimensionnalité tout en structurant un problème d’apprentissage. Le but est de pouvoir appréhender plus simplement un problème très vaste pour, sinon le résoudre, du moins donner des réponses avec des techniques usuelles d’Apprentissage Statistique. Pour comprendre la différence avec une technique de réduction de dimension (comme l’ACP), dans les équipes de Data Analysts des banques ou hedge funds, la feature extraction consiste à partir d’un jeu de données large de générer tous les indicateurs quantitatifs utiles aux équipes de trading (avec ou sans demande de la part de ces équipes).

GAN (pour Generalized Adversarial Networks ou Réseaux Adverses Génératifs): type d’algorithme non-supervisé. Relativement récents, ces algorithmes sont dits génératifs et fonctionnent en apprenant l’un contre l’autre. Difficiles à faire converger, ils peuvent donner des résultats particulièrement ahurissants en génération d’image, recherche de molécules, ou apprentissage de jeux. Un premier réseau est générateur, génère une observation, et son réseau adversaire tente de déterminer si cette observation est réelle ou générée.

Gradient Boosting : il ne s’agit pas d’une méthode d’optimisation mais bien, comme le Boosting, le Bagging, ou les Forêts Aléatoires, d’une méthode utilisant un ensemble de modèles. L’algorithme utilise en particulier le gradient de la fonction de perte pour modifier les poids des exemples de l’ensemble d’apprentissage à chaque nouveau modèle. Généralement utilisé avec des modèles de type CART.

Hyperparamètre : paramètre à choisir et fixer pour définir un modèle et pour pouvoir ensuite estimer les paramètres du modèle sur l’ensemble d’entraînement. Par exemple il peut s’agir du nombre maximal de feuilles pour une forêt aléatoire, de la pénalisation dans une régression lasso, du nombre de couches pour un réseau de neurones.

KNN (pour K-Nearest Neighbors ou K plus proches voisins) : algorithme d’apprentissage supervisé non-paramétrique utilisé en classification comme en régression, consistant à associer à une donnée d’entrée une prédiction fondée sur les K observations les plus proches de cette donnée dans l’ensemble de données initiales (cette proximité étant à définir).

Keras : outil d’apprentissage venant comme une surcouche de Tensorflow (voir plus bas) particulièrement utile pour le deep learning (entre autres). Le but de Keras est de mettre l’accent sur la facilité d’utilisation, l’ergonomie et la simplicité pour l’utilisateur.

Lasso : régression linéaire régularisée par une pénalisation de type L1, c’est-à-dire pénalisant les coefficients différents de zéro. Le principe est de mettre à zéro les composantes les moins influentes.

 LightGBM : algorithme de Gradient Boosting utilisant des arbres, avec en particulier une croissance verticale (séparation des feuilles). Plus adapté sur de grands ensembles de données.

LSTM (pour Long Short-Term Memory) : extension des réseaux de neurones qui adjoint au réseau une mémoire exploitée dans des unités cachées du réseau appelée « cellule mémoire » connectée à la fois à elle-même et à la suite du réseau. Particulièrement utilisées en reconnaissance vocale, en NLP* (voir par ailleurs) et en général dans les modèles séquentiels. Cas particulier de RNN* (voir par ailleurs).

Neural Networks (ou Réseaux de Neurones) : méthode d’apprentissage pour la régression ou la classification initialement inspirée d’une conception schématique d’un neurone humain. Leur champ d’application est extrêmement vaste désormais (voir Deep Learning plus haut).

NLP (pour Natural Language Processing ou Traitement Naturel du Langage) : ensemble des techniques et algorithmes permettant de déchiffrer un texte. Ce champ est en fait très vaste et englobe des approches et des finalités très diverses. Il demande en général un angle d’étude spécifique. Le champ du NLP va l’extraction de sentiment à la réalisation de résumés, en passant par la traduction.

Online Learning (ou Apprentissage En Ligne) : apprentissage où contrairement aux situations où tout l’ensemble de données est disponible d’un coup (permettant de séparer entre test, validation, entraînement), les données arrivent en flux, et où l’algorithme entraîné doit s’adapter à cette apparition séquentielle de la donnée en même temps que son utilisation réelle.

PCA (pour Principal Component Analysis ou Analyse en Composantes Principales) : technique de réduction de dimension très bien enseignée à l’ENSAE !

Perceptron : classificateur linéaire supervise, un des plus anciens (date des années 50), peut être vu comme le réseau de neurone le plus simple.

Precision (Précision): dans une tâche de classification, ratio du nombre de vrais positifs sur le nombre total de positifs prédits. Décrit quelle est la proportion de prédits qui sont effectivement pertinents. Aussi appelé valeur prédictive positive. Voir F1-Score pour une interprétation.

Random Forests (ou Forêts aléatoires) : extension ensembliste des arbres de régression. Méthode particulièrement puissante et très utilisée à l’heure actuelle. Les arbres sont notamment entraînés sur des sous-ensembles de variables piochés au hasard.

Recall (Rappel): dans une tâche de classification, ratio du nombre de vrais positifs sur le nombre total de positifs réels. Identique à la sensibilité (ou sensitivity en anglais). Voir F1-Score pour une interprétation.

 Réduction de dimension : terme qui recouvre toutes les techniques où partant d’un ensemble de données dans un espace de grande dimension, les projette sur un sous-ensemble plus petit de l’espace. Le principe est de se « centrer sur l’essentiel », réduire la complexité du problème et peut aussi aider à la visualisation. La PCA* est un tel exemple.

Regression Trees (ou Arbres de Régression) :  méthode d’apprentissage supervisé utilisant un arbre comme modèle de prévision. Le parcours au sein de l’arbre se fait via une comparaison des variables explicatives avec des valeurs types, qui mènent aux feuilles qui représentent les valeurs prises par la variable expliquée.

Reinforcement Learning (ou Apprentissage par Renforcement) : très différent des autres concepts présentés ; ici l’algorithme est entraîné sous forme d’un « agent » pouvant effectuer des actions dans un ecosystème qu’il observe et avec lequel interagit en pouvant évaluer des récompenses associées aux actions choisies. Le résultat est une « politique » d’actions à mener.

ReLU : alias pour Rectified Linear Unit. Simplement définie par f(x)=max(0, x).

Ridge : régression linéaire régularisée par une pénalisation de type L2. Alternative au Lasso*.

RNN (pour Recurrent Neural Nets ou Réseaux de Neurones Récurrents) : les RNN peuvent être vus « comme des réseaux très profonds où toutes les couches partagent les mêmes poids » ([4]). Pensés à l’origine pour la traduction et la reconnaissance de texte, leurs couches intermédiaires ou cachées sont considérées comme un vecteur d’état qui contient l’information sur tout le passé. Ils peuvent être très puissants mais leur entraînement est souvent problématique en pratique (stabiliser le calcul du gradient peut être compliqué).

ROC (pour Reveiver Operating Character) : courbe qui croise le taux de faux positifs avec le taux de vrais positifs et permet de mesurer l’efficacité d’un classificateur.

Scikit-Learn : package Python dédié au Machine Learning. Voir [5].

Specificity (Spécificité) : dans une tâche de classification, ratio du nombre de vrais négatifs sur le nombre total de négatifs réels.

Supervised Learning (ou Apprentissage Supervisé) : ensembles des techniques d’apprentissage où les données d’entraînements sont présentées avec le résultat correspondant (classe, label, vecteur de valeurs, etc.)

SVM (pour Support Vector Machines ou Séparateurs à Vaste Marge) : technique de classification ou de régression supervisée particulièrement utile sur des échantillons des taille modeste. Célèbre pour utiliser l’astuce du noyau du Théorème de Mercer, elle focalise en particulier sur quelques échantillons (les « supports ») pour inférer les frontières de décision. Cette technique permet en effet d’obtenir des frontières très non linéaires sans pour autant ajouter activement des dimensions multiples aux variables initiales.

TensorFlow : outil d’Apprentissage Statistique développé par Google depuis 2015. Extrêmement utilisé, par exemple dans un contexte Python.

Transfer Learning : le transfer learning (ou apprentissage de transfert) n’est pas vraiment une technique ou un algorithme à proprement parler mais représente le fait d’utiliser ce qui a été appris ou extrait d’une première situation d’apprentissage dans un autre cadre pour aider à diminuer l’erreur de généralisation. Particulièrement utilisé en reconnaissance du langage, la discussion sur ce thème dépasse le présent dossier et le lecteur pourra se référer au lien suivant (en anglais) : https://towardsdatascience.com/a-comprehensive-hands-on-guide-to-transfer-learning-with-real-world-applications-in-deep-learning-212bf3b2f27a

Unsupervised Learning (ou Apprentissage Non Supervisé) : contrairement à l’apprentissage supervisé, type d’apprentissage où le système apprend seul, sans que les données soient présentées avec des valeurs cibles. Probablement le champ de l’Apprentissage Statistique où il reste le plus de choses à découvrir (voir la conclusion de [4]).

VADER : alias pour Valence Aware Dictionary and sEntiment Reasoner. Développé en open source sous licence du MIT, il s’agit d’un package pour Python qui permet d’extraire d’un texte un indicateur de sentiment base sur des règles et un lexique. Le lexique utilisé est tourné vers l’analyse des media sociaux.

XGBoost (pour eXtreme Gradient Boosting) : algorithme particulier de Gradient Boosting* (voir par ailleurs).

Les derniers articles par Guillaume Simon (tout voir)