Catégorie : Intelligence artificielle

  • Simulation physique augmentée par l’IA : enjeux et démarche de validation

    Simulation physique augmentée par l’IA : enjeux et démarche de validation

    L’utilisation de la simulation numérique dans l’industrie se heurte à plusieurs limites, telles que la difficulté à modéliser certains phénomènes physiques ou bien le coût de calcul qui peut être très élevé. Dans ce contexte, l’Intelligence Artificielle (IA) s’est imposée comme une piste prometteuse pour y faire face et permettre une utilisation plus efficace des simulateurs physiques dans la prise de décision. Dans cet article, nous nous intéressons aux défis associés à la mise en place des simulateurs physiques augmentés par l’IA, et nous discuterons les enjeux liés à leur validation pour un déploiement industriel.

     

    Simulation numérique et apprentissage : une démarche classique de l’hybridation

    La simulation numérique représente aujourd’hui un outil indispensable dans la conception et le pilotage des systèmes physiques complexes, grâce notamment à son coût relativement faible par rapport aux essais réels réalisés directement sur le système à concevoir. Par le passé, de nombreuses applications industrielles ont pu bénéficier des apports de la simulation pour améliorer les performances des systèmes physiques. Cependant, durant les dernières années, les simulations numériques font face à une complexité grandissante des systèmes physiques à modéliser et doivent évoluer afin d’intégrer de plus en plus de disciplines avec des périmètres applicatifs variés. Dans certains cas, les phénomènes physiques peuvent être difficiles à modéliser ou peuvent donner naissance à des modèles numériques demandant un temps de calcul très élevé, ce qui rend difficile le recours à la simulation numérique pour une prise de décision en milieu industriel.

    Pour faire face à ces limites, de nombreux travaux de recherche dans le domaine du calcul scientifique ont proposé des méthodes numériques ad hoc afin d’améliorer le compromis coût/précision des simulations numériques. Ces travaux ont offert à l’industrie plusieurs approches, largement utilisées aujourd’hui, pour faire face au coût de calcul important des simulateurs physiques. Nous pouvons citer les méthodes de réduction de modèles (ROM) et les modèles de substitution (appelés aussi surface de réponse, ou modèles surrogate).

    L’idée de base de ces méthodes repose sur la création d’un modèle appris à partir des données simulées qui se substituera au solveur physique, cher à calculer. Ces techniques restent cependant adaptées à des problèmes physiques relativement simples et mono-disciplinaires et peinent à résoudre des cas plus complexes comme par exemple les problèmes aux grandes dimensions ou les problèmes inverses.

    Simulation numérique et apprentissage profond : la promesse d’une révolution

    Durant les dix dernières années, un engouement particulier a été observé pour l’utilisation de techniques d’apprentissage basées principalement sur des architectures de réseaux de neurones profonds. Les avancées spectaculaires qu’a connu ce type de méthodes dans d’autres domaines applicatifs comme la reconnaissance d’images ou le traitement automatique du langage naturel (NLP) a fortement motivé les chercheurs de la communauté du calcul scientifique à explorer leur potentiel apport dans la simulation physique. Grâce à des architectures complexes de réseaux de neurones, ces méthodes se sont avérées prometteuses avec plusieurs hybridations réussies rapportées dans la littérature. Outre ce gain important et non-négligeable, l’apprentissage profond a aussi permis de faire émerger de nouveaux champs applicatifs qui n’existaient pas auparavant avec les approches classiques d’apprentissage comme les réseaux antagonistes génératifs (GANs) [2], le transfert de connaissances entre deux modèles via les techniques de transfer learning [3], l’apprentissage du processus d’apprentissage lui-même avec les techniques de méta-learning [4], etc.

    La démocratisation de ce type d’approches pour une utilisation industrielle se heurte néanmoins à plusieurs limites parmi lesquelles les deux des plus importantes sont sans conteste le coût de l’obtention des données d’apprentissage et la validation des simulateurs ainsi « augmentés ».

    Le coût de la génération/obtention de données physiques
    Les phénomènes physiques complexes requièrent souvent des réseaux de neurones de très grande taille pour être correctement appréhendés, ce qui nécessite le recours à des volumes de données très importants pour la phase d’apprentissage. Bien que cela soit possible en utilisant des données simulées générées à partir d’un solveur physique, l’utilisation exclusive des données réelles pour entraîner un réseau de neurones profond s’avère aujourd’hui une tâche difficile en raison des quantités limitées d’échantillons disponibles. Il est important de noter que même pour des données simulées, le coût de génération peut représenter un frein pour réaliser un apprentissage de qualité, surtout pour les données précises obtenues avec des simulations physiques fines (comme le 3D par exemple).

    La validation des simulateurs physiques augmentés
    La question de la validation des systèmes prédictifs a toujours été considérée comme un défi important, et cela dès l’apparition des premiers travaux d’intelligence artificielle. En 1950, Alain Turing posa les premières briques d’une démarche pour évaluer la faculté d’une machine à bien imiter le raisonnement humain avec le test dit « de Turing » [1]: « Si un Humain n’est pas capable de dire lors d’une conversation lequel de ses interlocuteurs est un ordinateur, alors on peut considérer que l’ordinateur a passé avec succès le test ».

    Depuis, plusieurs travaux de recherche se sont intéressés à cette question et plusieurs approches et critères ont été proposés dans la littérature, permettant d’aboutir à une démarche plus au moins standardisée aujourd’hui. Cependant, le constat de base en ce qui concerne la modélisation physique  reste clair : il n’existe pas aujourd’hui une approche permettant de valider formellement un résultat issu d’un simulateur physique augmenté par l’IA. Il est à noter que les simulateurs physiques classiques (non-augmentés) bénéficient tout de même d’une démarche de validation avec des critères très largement utilisés comme les bornes d’erreurs ou la vitesse de convergence. Cela ne doit pas pour autant créer un frein pour l’utilisation de l’IA pour hybrider les modèles physiques, car le manque à gagner serait considérable, vu le succès observé dans d’autres domaines.

    Dans le même temps, une autre approche de cette question de validation peut se trouver dans le fait de considérer l’IA comme étant une discipline expérimentale à part entière, comme la biologie par exemple. Dans ce contexte, l’expérimentation, l’étude comparative et surtout la reproductibilité des résultats deviennent les ingrédients de base pour une évaluation efficace des modèles physiques appris, sans toutefois apporter de possibilité de certification, indispensable pour les systèmes critiques.

    Le benchmarking pour valider les simulateurs physiques hybrides

    Compte tenu des challenges décrit dans la section précédente, nous nous sommes focalisés au sein du projet HSA (Hybridation Simulation apprentissage) [5] du programme IA2 (Ingénierie Augmentée et Intelligence Artificielle) [6] sur la problématique de validation expérimentale des simulateurs physiques augmentés. Dans ce cadre, nous avons proposé une méthodologie outillée de benchmarking générique et modulaire pour couvrir les différentes étapes de développement de simulateurs physiques augmentées.

    Cette méthodologie est en cours d’évaluation sur plusieurs cas d’usages industriels du projet HSA, décrivant des domaines physiques hétérogènes et variés (mécanique des solides, mécanique des fluides (CFD), simulation acoustique, simulation électrique, simulation thermique). L’objectif derrière cette démarche est d’obtenir une plateforme consolidée qui permettrait à la communauté du calcul scientifique d’intégrer de nouveaux cas d’usage physique facilement. La méthodologie proposée (illustrée ci-dessous) s’articule autour de trois modules principaux qui représentent aussi les trois étapes principales dans la mise en place d’un simulateurs physique augmenté :

    Méthodologie d'apprentissage des simulateurs physiques augmentés. Illustration avec deux cas d’usage : réseaux électrique et roulage de pneu
    Méthodologie d’apprentissage des simulateurs physiques augmentés. Illustration avec deux cas d’usage : réseaux électrique et roulage de pneu

       1- Gestion de données. Durant cette étape l’utilisateur doit définir l’ensemble des données relatives au phénomène physique étudié. Nous distinguons deux types de données : les données réelles (issues des essais physiques, collectées sur le terrain) et les données simulées générées à partir d’un solveur numérique. Nous devons définir aussi l’ensemble des scénarios physiques que nous souhaitons couvrir durant l’étude en répondant principalement aux questions : quel est le phénomène physique étudié ? quels sont les variables d’entrée ? quelles sont les observables ?
       2- Benchmarking. L’utilisateur sélectionne les scénarios et les ensembles de données concernés par son étude, ainsi que les méthodes d’apprentissage choisies pour entrainer le modèle physique, et qui seront comparées par la suite sur la base des critères d’évaluation. Pour mener à bien la phase d’apprentissage, nous nous interfaçons avec les plateformes déjà disponibles dans l’état de l’art et offrons un choix important en termes d’architectures de réseaux de neurones. Il est à noter que nous pouvons considérer aussi d’autres méthodes d’apprentissage classique et d’autres modélisations physiques pouvant servir de points de repère pour les comparaisons.
       3- Évaluation. Une fois les modèles appris, l’utilisateur doit évaluer les résultats obtenus par les différentes méthodes d’apprentissage. Pour cela nous avons proposé un ensemble de critères définis spécifiquement pour les simulateurs physiques augmentés, tout en prenant en considération les aspects liés au passage à l’échelle en contexte industriel. Ces critères sont regroupés en quatre catégories principales: les critères statistiques liés à l’apprentissage, les critères de généralisation OOD (out of distribution), les critères liés au respect des lois physiques (comme par exemple : loi de conservation de la masse, loi de Joule, loi d’Ohm, etc.), et enfin les critères de maturité pour la mise en œuvre industrielle.

     

    Durant les dernières années, l’hybridation de la simulation physique par les techniques d’IA, et plus précisément par les techniques d’apprentissage profond, s’est installée progressivement comme une piste de recherche prometteuse. L’objectif étant de renforcer davantage le rôle de la simulation numérique en milieu industriel, notamment dans la prise de décision lors des différentes phases de cycle de vie des systèmes physiques complexes. Les premiers travaux menés au sein du projet HSA de l’IRT SystemX se sont attaqués à la problématique de validation des systèmes physiques hybrides et ont permis d’établir une démarche de benchmarking générique qui a été appliquée avec succès sur deux cas d’usage industriels différents. Une attention particulière a été accordée à l’applicabilité des méthodes hybrides en milieu industriel, afin de faciliter leur utilisation pour résoudre des problèmes physiques du monde réel. Les travaux en cours et futurs viseront à élargir le spectre des applications en intégrant de nouveaux cas d’usages industriels, en profitant du cadre collaboratif offert par le projet HSA. Cette démarche permettra de consolider l’approche proposée et d’offrir à la communauté de calcul scientifique un outil qui serait capable d’intégrer facilement de nouvelles applications physiques hybrides.

     

    Références

    [1] Turing, A. M. (2009). Computing machinery and intelligence. In Parsing the turing test (pp. 23-65). Springer, Dordrecht.

    [2] Creswell, A., White, T., Dumoulin, V., Arulkumaran, K., Sengupta, B., & Bharath, A. A. (2018). Generative adversarial networks: An overview. IEEE signal processing magazine, 35(1), 53-65.

    [3] Zhuang, F., Qi, Z., Duan, K., Xi, D., Zhu, Y., Zhu, H., … & He, Q. (2020). A comprehensive survey on transfer learning. Proceedings of the IEEE, 109(1), 43-76.

    [4] Hospedales, T., Antoniou, A., Micaelli, P., & Storkey, A. (2021). Meta-learning in neural networks: A survey. IEEE transactions on pattern analysis and machine intelligence, 44(9), 5149-5169.

    [5] https://www.irt-systemx.fr/projets/HSA/

    [6] https://www.irt-systemx.fr/programmes-de-recherche/ia2

  • IA de confiance : comment assurer l’adoption de l’IA par l’industrie ?

    IA de confiance : comment assurer l’adoption de l’IA par l’industrie ?

    Depuis son émergence dans les années 1950, l’intelligence artificielle (IA) est en pleine progression, accentuée par le développement de la puissance de calcul informatique disponible et d’Internet au cours des années 2000. Pour autant, malgré ses multiples succès, l’IA peut encore être source d’inquiétude et a de nombreux défis à relever, côté industrie et côté utilisateur, pour être admise de tous. Parmi ces défis, se dressent les verrous relatifs à l’énergie, à la sécurité et à la confidentialité mais aussi à la confiance de ses utilisateurs. Cet article étudiera la question de l’adoption de l’IA dans les systèmes critiques.

     

    Le contexte de l’IA de confiance

    Depuis quelques années, l’IA connaît un regain d’intérêt et gagne en performance. Les technologies d’IA couvrent un champ d’application extrêmement large : dans les domaines de la santé, de la banque, de la finance et de l’assurance, pour les systèmes de recommandation en ligne et bien entendu, celui de l’automobile avec les véhicules autonomes et connectés. Elles donnent aux systèmes dans lesquels elles sont intégrées, la capacité de prendre des décisions de manière autonome et réalisent certaines tâches mieux que les humains, comme c’est le cas depuis quelques années dans le domaine de l’annotation de radiographies ou encore dans celui du traitement automatique du langage.

    Toutefois, les usages de l’IA suscitent des inquiétudes d’ordre éthique, moral et juridique auxquelles des solutions doivent être apportées. De plus, plusieurs défis[1] doivent encore être relevés par l’intelligence artificielle avant la généralisation de son adoption par l’industrie puis par ses utilisateurs. En plus des inquiétudes que l’IA suscite, se dressent des verrous liés à l’énergie, avec la consommation exponentielle nécessaire à l’entrainement de réseaux de neurones de plus en plus complexes ; liés à la sécurité et à la confidentialité, avec la capacité qu’ont certains systèmes d’extraire des informations sensibles d’une base de données d’entrainement ; mais également à la confiance : celle portée par l’utilisateur humain en un système dont le fonctionnement repose, au moins en partie, sur des technologies d’ IA.

    Pour permettre l’adoption de l’IA auprès de ses futurs utilisateurs, les industriels doivent fournir des éléments leur permettant d’avoir confiance en l’IA qu’ils intègrent à leurs systèmes, surtout critiques (i.e. dont les erreurs et les échecs sont susceptibles d’avoir des conséquences importantes), et c’est ce point que nous allons aborder ici.

    Plusieurs organismes tentent de fournir des définitions de ce qu’est la confiance envers les systèmes d’intelligence artificielle. Elle a été le sujet principal du groupe d’experts mobilisés par la Commission Européenne (dont tous les travaux se font dans l’optique « trustworthy AI »). L’organisation internationale de normalisation, ISO, considère une vingtaine de facteurs différents, avec des ramifications.

    La confiance, en particulier envers les artefacts numériques dont l’IA fait partie, est une combinaison de facteurs technologiques et sociologiques :

    • Technologiques, comme la capacité de vérifier la justesse d’une conclusion proposée par une IA, la robustesse à des perturbations, le traitement de l’incertitude, etc.
    • Sociologiques, comme la validation par des pairs, la e-réputation sur les réseaux sociaux, l’attribution d’un label par un tiers de confiance, Les questions d’interaction avec les utilisateurs sont intermédiaires entre ces deux types de facteurs : transparence, explicabilité, qualité des interactions de manière plus générale.

    Les facteurs sociologiques ne sont pas propres à l’IA : dans un réseau de confiance entre humains, la transmission de la confiance ne fait pas nécessairement appel aux facteurs technologiques. Par contre, la base technologique de la confiance en IA est bien spécifique et pose de nombreux défis. On ne sait pas, aujourd’hui, prouver que les conclusions d’un système entraîné par apprentissage sur une base de données sont les bonnes, qu’elles sont robustes à des petites variations, qu’elles ne sont pas entachées de biais, etc. Il existe de nombreux programmes de R&D à ce sujet, dont un des plus importants est l’initiative Confiance.ai centrée sur les systèmes critiques (transport, défense, énergie, industrie), portée par de grands groupes industriels dans le cadre du Grand Défi sur la fiabilisation et la certification de l’IA.  Tant que cette question restera ouverte, le risque pour l’IA de se heurter au mur de la confiance sera majeur. Il le sera encore plus pour les systèmes à risque (au sens de la Commission Européenne dans sa proposition de réglementation de l’IA « AI Act ») et pour les systèmes critiques (au sens du programme Confiance.ai).

    L’adoption de l’IA par l’industrie

    Comme en atteste une étude menée auprès des industriels membres du programme Confiance.ai, il s’avère que si l’intérêt porté sur l’IA et ses promesses est évident, son intégration effective est beaucoup plus timide. Si le manque de méthodes et d’outils est un motif récurrent de la non-adoption de l’IA au-delà de preuves deconcepts ou de prototypes, les préoccupations exprimées désignent avant tout l’absence d’un cadre de conception outillé à la fois fiable et efficace, sur lequel il est possible de s’appuyer et de se référer.

    On entend par « fiable », sa façon de caractériser le système et son comportement, c’est à dire son aptitude à correctement effectuer ses tâches. Fiable également au travers de la justification de cette caractérisation via notamment des attributs de confiance[2], attributs qui permettent de qualifier et de vérifier l’aptitude du système à répondre aux attentes des parties prenantes. Parmi ces attributs on entend :

    • l’explicabilité qui désigne la mesure dans laquelle le comportement d’un modèle ou du système qui l’héberge, peut être rendu compréhensible pour les humains ;
    • l’équité et donc l’impartialité et la justesse des résultats d’inférence ;
    • la robustesse qui qualifie la capacité du système à maintenir une réponse cohérente lorsque les entrées du système sont sujettes à des perturbations,
    • la légalité et donc la conformité du système avec les lois, normes et réglementations en vigueur ;
    • la vérifiabilité ou comment il est possible d’évaluer que les exigences initialement exprimées sont effectivement satisfaites ;
    • la qualité de la donnée, évaluables au travers d’un ensemble de dimensions couvrant des aspects relevant entre autres, mais pas uniquement, de la traçabilité, de la couverture du domaine d’emploi, de la fiabilité ou encore, de la précision ;
    • le maintien en conformité de l’ensemble du système intégrant de l’IA vis-à-vis des spécifications et de ses exigences : la maintenabilité.[3]

    On entend par « efficace », outre sa rentabilité dans le contexte d’une exploitation industrielle et commerciale, la simplicité de son intégration dans les environnements de conception préexistants. En effet, un cadre de conception outillé aussi fiable et rentable soit-il, ne saurait remplacer les environnements et les habitudes de travail historiques des équipes d’ingénierie si l’état de transition implique des efforts trop conséquents.

    Un accompagnement vers l’IA de confiance

    C’est à cet ensemble de besoins que l’Environnement de Confiance, finalité du programme Confiance.ai, se propose de répondre, de bout en bout : de la spécification de la problématique jusqu’au maintien en conditions opérationnelles du système intégrant de l’IA. Cela implique de fait, le contrôle de son comportement et, le cas échéant, la mise à jour de ses composants.

    L’instanciation de l’Environnement de Confiance se présente sous la forme d’une chaine outillée modulaire et interopérable :

    • modulaire car destinée à couvrir et à atteindre des attributs de confiance différents selon le cas d’usage formulé et dont la variabilité ne saurait être abordée par un simple et unique ensemble d’outils, ce qui répond à la question de la fiabilité,
    • interopérable afin d’en assurer l’intégration progressive dans les ateliers et les environnements de conception existants. Interopérabilité qui se matérialise d’une part par la compatibilité de la chaine outillée avec les outils de conception utilisés dans les environnements et d’autre part par l’agnosticisme de l’environnement d’exécution sous-jacent vis-à-vis des infrastructures susceptibles de l’héberger. Ainsi, la démarche adoptée envisage non pas de transformer les environnements existants mais au contraire, de s’appuyer dessus afin de la compléter le plus simplement possible.

    Outre cette chaîne outillée, un ensemble de méthodes et de guides de conception complètent l’Environnement de Confiance : ils sont à disposition des utilisateurs, quels que soient leurs rôles et sont destinés à les accompagner tout du long du processus de réalisation d’un système à base d’IA de confiance. Si cette approche leur permet d’appréhender eux-mêmes l’identification et la définition des attributs de confiance propres à leur système, elle représente un travail conséquent, susceptible de ralentir l’adoption du cadre de conception. En l’occurrence, la simplification de cette étape est envisageable au moyen d’un outil propre à l’environnement et dédié à cette étape préliminaire de spécification des attributs de confiance.

    Une interface de l’Environnement de Confiance
    Une interface de l’Environnement de Confiance

    Instanciation des méthodes et guides réalisés au sein du programme Confiance.ai, cet outil utilise comme éléments d’entrées la formalisation du cas d’usage : les exigences fonctionnelles et non fonctionnelles, l’identification et la sélection des contraintes réglementaires et normatives, ou encore la couverture opérationnelle qui précise les bornes dans lesquels le système est supposé fonctionner. Une fois ces informations spécifiées, il devient possible, au moyen d’un cadre d’analyse dédié à la conception d’IA de confiance et spécifiquement réalisé dans le cadre du programme[4], de générer d’une part une stratégie de vérification et de validation (V&V) en adéquation avec les exigences système : criticité, risque, coût, etc., d’autre part une stratégie d’activités d’ingénierie permettant de concevoir un composant d’IA en phase avec ces exigences. Cette approche permet non seulement la définition des attributs et propriétés attendues par le système mais également de tracer leurs relations avec les activités d’ingénierie qui permettent de prouver qu’elles sont atteintes. En plus d’offrir de la visibilité sur les raisons qui justifient ces attributs et la façon de les obtenir, cet approche intègre la possibilité pour les utilisateurs d’intervenir sur le résultat de ces recommandations, qu’il s’agisse de la nature même des propriétés retenues ou de leur valeur. Si cette liberté est nécessaire du fait des marges d’incertitude qui surviennent parfois lors des phases de spécification, elle est justifiée car l’environnement de confiance n’a pas vocation à être omniscient : il pose des recommandations qui orientent et simplifient la pose du cadre de conception mais n’a pas un rôle prescriptif et seul l’expert doit avoir le contrôle.

     

    C’est ainsi que le programme Confiance.ai se propose d’adresser la problématique de la confiance en l’IA en adoptant une attitude plus nuancée assurant l’adjonction progressive de l’IA dans les processus d’ingénierie existants sans chercher à bouleverser des concepts et des méthodes appliqués depuis des décennies. De premiers déploiements de l’Environnement de Confiance ont ainsi déjà lieu. En effet, disposer au plus tôt du retour d’expérience des partenaires industriels et de leurs équipes d’ingénierie s’inscrit dans la démarche du programme qui se doit d’éviter un effet tunnel aux conséquences potentiellement désastreuses si l’écart entre les contraintes industrielles et les éléments livrés se révélait trop importants. Si une évolution continue est mise à disposition des partenaires du programme, chaque fin d’année marque la livraison d’une nouvelle version qui vient répondre aux objectifs fixés douze mois plus tôt.

    [1] The wall of safety for AI: approaches in the Confiance.ai program

    [2] Engineering dependable AI Systems

    [3] Machine Learning in Certified Systems White Paper Machine Learning in Certified Systems – Archive ouverte HAL (archives-ouvertes.fr)

    [4] À noter que la mesure de la confiance envers les systèmes d’IA – et donc la liste des attributs y contribuant – fait actuellement l’objet d’un travail important non seulement au sein du programme Confiance.ai, mais aussi dans le cadre des activités de normalisation de l’IA associées à la proposition de réglementation européenne sur l’IA.

     

  • Le machine learning au service de la conduite autonome

    Le machine learning au service de la conduite autonome

    Le machine learning est aujourd’hui omniprésent. Il transforme peu à peu l’industrie et notamment le marché des voitures autonomes. Au sein de cet article, nous expliciterons la notion de voiture autonome, dans le but d’identifier les méthodes existantes pour les faire fonctionner. L’enjeu est primordial : comprendre les liens entre l’apprentissage de la conduite par des machines et la compréhension humaine, tant sur l’aspect sémantique que sur l’aspect factuel.

    Qu’est-ce qu’une voiture autonome ?

    Les voitures autonomes s’apprêtent à bouleverser nos déplacements et notre gestion du trafic routier. Il convient donc d’en dresser une définition. Jusqu’à récemment, une définition unanime n’avait pas encore été approuvée par l’ensemble des acteurs internationaux, tant sur le plan technique (en termes de méthodes d’apprentissage), que sur le plan juridique (en termes de responsabilités et de législation routière), ou même géographique (en termes de dépendances entre les deux précédents points et selon le pays). Un consensus récent a cependant vu le jour, définissant divers niveaux d’automatisation , lesquels nous permettent non seulement d’entrevoir l’avenir mais également de situer l’avancement des recherches.

    Les niveaux d’automatisation – U.S. National Highway Traffic Safety Administration

    Le rapport du véhicule avec ce qui l’entoure et la manière qu’il peut avoir de réagir aux événements qui se déroulent autour de lui sont des enjeux primordiaux pour l’instauration d‘une confiance de la société envers cette innovation. Le fonctionnement d’une voiture autonome peut être décrit comme suit : le véhicule perçoit son environnement, planifie son trajet puis infère le trajet en fonction des informations des capteurs. Il y a donc trois sous-composantes : la perception, la planification et le contrôle. Il est alors possible d’entrevoir le rôle primordial que pourrait jouer la donnée, puisqu’elle semble être à l’origine la base d’apprentissage nécessaire à la prise de décision du véhicule autonome au sein de cette chaîne de traitement. Une question importe : comment se servir du machine learning dans ce cas ?

    La question du machine learning en conduite autonome

    Le machine learning, y compris sa variante récente deep learning, est un sous-domaine de l’intelligence artificielle. Il est possible de distinguer plusieurs types d’apprentissages adaptés à un secteur applicatif particulier. Dans le transport autonome, on se concentre sur l’apprentissage supervisé et celui par renforcement, mais ces deux derniers ne se basent pas du tout sur le même paradigme théorique.

    En apprentissage supervisé, la donnée est prépondérante. Cette dernière est labélisée (chaque donnée possède une description), et le système apprend simplement à relier un ensemble de caractéristiques observées à un label. Si nous cherchons à reconnaître quel fruit se trouve sur une image, chaque donnée pourrait décrire la circonférence et la couleur du fruit, et on connaîtrait déjà la typologie de chacune de ces entrées.

    Le système pourrait ensuite être capable de conclure la nature du fruit à chaque nouveau duo de circonférence et de couleur qu’on lui donnerait. L’explosion du deep learning a d’ailleurs rendu ces tâches beaucoup plus simples qu’auparavant et les réseaux de neurones sont maintenant au cœur des méthodes utilisées. Dans le cas des voitures autonomes, la perception identifierait un panneau de signalisation et des données sur la vitesse par exemple et prendrait une décision sur l’accéleration à appliquer ou sur le fait de freiner, en fonction de cette information.

    Workflow de perception et de prises de décision à travers les données capteurs

     

    Bien que de nombreux modèles apparaissent et sont fonctionnels, nous restons dépendants de la donnée. De grandes quantités de ces dernières sont nécessaires pour obtenir une représentativité suffisante des situations. Sans données variées, la voiture pourrait faire face à une situation qu’elle n’a jamais rencontrée . Il serait donc intéressant de pouvoir jouer sur les données différemment pour se rapprocher de l’intelligence humaine, pour aller au-delà de cet apprentissage par l’association. Mais comment faire ?

    Un paradigme différent face aux données

    L’apprentissage par renforcement pourrait être considéré comme un modèle de théorie des jeux, à la croisée de nombreux domaines allant de l’informatique aux neurosciences en passant par la psychologie. En effet, un agent agit sur un environnement au moyen d’actions. Ce dernier lui renvoie une récompense, qui est la première clé du renforcement. Nous déduisons de la connaissance à partir des observations passées et nous souhaitons maximiser la récompense à travers le temps. La donnée n’est plus le socle, mais constitue une interaction avec l’agent en décrivant l’environnement après une action ! Les équations de Bellman permettent alors de formaliser la prise décision et la maximisation de la récompense.

    Principe de l’apprentissage par renforcement

    Comment savoir si une action fut le meilleur choix ? C’est le principe d’exploration/exploitation qui constitue la seconde clé du renforcement. Imaginons que notre environnement soit constitué de deux portes qui se trouvent face à nous. La première nous offrirait une petite somme constante à chaque fois qu’on l’ouvrirait, tandis que la seconde nous offrirait un immense trésor mais seulement à de très rares ouvertures de cette dernière. Il nous faudrait alors trouver le bon équilibre. L’agent risquerait de considérer la première porte comme étant la plus intéressante, mais la seconde mériterait de ne pas complètement être délaissée : l’exploration de ce que nous ne connaissons pas, face à l’exploitation des éléments connus de l’environnement.

    Le renforcement utilise des modèles tels que les réseaux de neurones, plus connus pour leur utilisation dans l’apprentissage supervisé, pour des problèmes où l’apprentissage se fait avec des données pour lesquelles on ne connaît pas réellement la réponse attendue au premier abord. En effet, le principe d’exploration/exploitation énoncé plus haut implique une modification constante des entrées et des actions possibles, ce qui va à l’encontre des modèles supervisés qui ont ce besoin en données labélisées. Par l’utilisation de plusieurs astuces, on se retrouve pour certaines méthodes dans une situation similaire au supervisé et les réseaux de neurones sont alors en mesure d’être utilisés de manière stable. Ces derniers ont une finalité différente de ce que l’on peut rencontrer habituellement. Il faut donc relier le modèle, l’algorithme en somme, et la formulation du problème dans lequel on se trouve.

    Liens entre modèles et formulation d’un problème

    Si l’on revient à notre cas d’usage, l’environnement serait donc la route autour de notre véhicule, ce dernier prenant des actions dans cet environnement qui lui renvoie des récompenses selon les actions prises. Il s’agit donc d’un apprentissage par l’erreur, comme si le modèle raisonnait pour éviter de prendre de mauvaises décisions au fil du temps. Le nombre de portes devient cependant gigantesque, et plusieurs problèmes, déjà énoncés pour certains, apparaissent :

    • l’apprentissage est souvent complexe, le modèle met du temps à se stabiliser,
    • l’espace des actions et résultats possibles est énorme dans le cas des voitures autonomes,
    • les entrées et sorties dont le système se sert pour apprendre changent constamment, puisque l’environnement est dynamique.

    On entraîne le plus souvent les systèmes de renforcement dans des simulateurs réalistes pour veiller à étudier leurs comportements avant d’imaginer pouvoir les mettre en production pour le monde réel, compte tenu des problèmes énoncés. Après la perception et la représentation des données qui en découle, la prise de décision en renforcement pourrait aller plus loin que celle étudiée via les méthodes supervisées : l’intelligence artificielle capable de raisonner, la clé pour que les voitures autonomes soient définitivement une réalité et se rapprochent du raisonnement humain, capable de moduler ses décisions en fonction de l’environnement qui l’entoure.

     

    Entre extraction de connaissances et raisonnement, combiner le meilleur des différents mondes pourrait donc permettre à l’être humain de voir sa vison du transport révolutionnée. Comme un pas de plus vers l’intelligence artificielle généralisée, les voitures autonomes sont au cœur des préoccupations puisque la technique rencontre ici un système critique, qui nécessite une mise en relation directe de son efficacité avec les biais humains qu’elles se doivent d’outrepasser.
    Il reste encore de nombreuses travaux à effectuer, la recherche et l’industrie s’intéressant de plus en plus au renforcement comme l’avenir du domaine, et potentiellement sa sécurisation, enjeu majeur du déploiement de ces technologies.

  • Vérification des réseaux de neurones : entre besoins et défis

    Vérification des réseaux de neurones : entre besoins et défis

    Le Réseau de Neurone (RN) est l’une des principales méthodes d’apprentissage automatique supervisé. La vérification de son comportement, c’est-à-dire l’évolution de ses sorties en fonction de la variation de ses entrées, représente un réel défi. Néanmoins, cette vérification est nécessaire dans un environnement incertain où les entrées du RN sont bruitées. Cet article introduit l’importance de la vérification du RN, donne quelques exemples d’applications et décrit la formulation de leur vérification.

    Dans un article précèdent, Loic Cantat, responsable du domaine «  Science des données, Intelligence Artificielle et Interactions » et Georges Hebrail, responsable de l’axe de recherche « Science des Données et Interaction » ont présenté un état de lieux des principales approches de Machine Learning (algorithmes, outils et plateformes). Le Réseau de Neurones (RN) est l’une des approches de Machine Learning (ML) les plus populaires. Il est appliqué à plusieurs domaines, à savoir la robotique, la télécommunication, les véhicules autonomes, etc.

    Dans le contexte des véhicules autonomes, les RNs peuvent être utilisés pour différentes problématiques :

    • la perception du véhicule (détection et reconnaissance des obstacles tels que les piétons, les panneaux de signalisation, le marquage au sol, etc.),
    • la surveillance du conducteur (état de ses yeux, angle de sa tête, sa fréquence cardiaque et respiratoire, etc.),
    • et la prise de décision en fonction de l’environnement du véhicule (changement de voie, calcul de la vitesse et angle de braquage, etc.).

    Quel que soit le domaine d’application, la décision des réseaux de neurones (détecter la présence ou l’absence d’un piéton, changer ou garder la voie, etc.) peut impacter la sécurité du conducteur, des passagers et des autres utilisateurs de la route. Par exemple, détecter l’absence du piéton alors qu’il est réellement présent peut provoquer un grave accident. Ces mauvaises décisions sont généralement causées par la perturbation de l’environnement du système de décision, d’où le besoin d’une part de métriques permettant l’évaluation de la sécurité des RNs face à l’incertitude de leur environnement extérieur, et d’autre part de stratégies adversaires permettant la sécurisation des RNs contre ces incertitudes.

    Au cours de cet article, nous rappellerons le principe de fonctionnement d’un réseau de neurones. Nous définirons ensuite la sécurité d’un RN, le défi qu’elle engendre et les applications les nécessitant. Finalement, nous présenterons quelques approches de vérification d’un RN ainsi que les critères permettront de les comparer.

    Qu’est-ce qu’un réseau de neurones ?

    Un RN est composé de trois types de couches : une couche d’entrée, une couche de sortie et un ensemble de couches cachées. Le fonctionnement générique d’un RN est le suivant :

    • La couche d’entrée prend une donnée sous n’importe quel format (image, audio, description d’un trafic réseau, etc.).
    • La couche de sortie délivre une information qui peut avoir plusieurs formats (une valeur discrète, valeur continue, un vecteur de probabilités, etc.).
    • Pour passer de la couche d’entrée à la couche de sortie, une chaine de traitement est faite à travers les couches cachées. Ces dernières peuvent être des couches de convolution, de réduction de dimensionnalité, des fonctions d’activation etc.

    Au sein de cet article, nous définirons l’espace des entrées par l’ensemble de toutes les entrées possibles du RN ; et l’espace des sorties par l’ensemble des sorties possibles du RN.

    Vocabulaire d’un réseau de neurones

    Que signifie la sécurité des réseaux de neurones et comment la vérifier ?

    L’étude de la sécurité d’un réseau de neurone consiste à vérifier la capacité du RN à prendre la même décision pour toutes les données similaires, malgré les perturbations qu’elles peuvent engendrer. On appelle « une attaque » tout bruit pouvant perturber le RN.

    Le vérificateur (le système vérifiant la sécurité du RN) prend en entrée, une donnée et une attaque, et délivre à la sortie l’information sous la forme d’une « donnée sécurisée contre l’attaque ou donnée non-sécurisée contre l’attaque ».

    L’idée principale de la vérification consiste à calculer, à partir de la donnée en entrée, toutes les données possibles suite à l’attaque en question (données bruitées), et vérifier que les propriétés de la donnée originale restent valides pour les données bruitées. Les propriétés sont fixées préalablement, elles peuvent être l’appartenance à une plage d’intervalle ou encore l’appartenance à une classe d’objet.

    Principe de la vérification du réseau de neurones

    La figure suivante schématise la vérification de la sécurité d’un réseau de neurones pour une entrée donnée et pour une attaque connue. L’espace des entrées, en bleu, est l’ensemble de toutes les entrées résultantes de l’attaque en question. L’espace atteignable des sorties du RN, en rouge, désigne l’ensemble de toutes les sorties possibles. En calculant l’ensemble atteignable, deux cas peuvent exister :

    • l’ensemble atteignable est inclus dans l’ensemble désiré en vert, c’est-à-dire les propriétés des entrées sont conservées, et donc le RN est dit sécurisé.
    • l’ensemble atteignable n’est pas inclus, totalement ou partiellement, dans l’ensemble désiré, en vert, alors les propriétés ne couvrent pas l’ensemble des entrées, et donc le RN est dit non-sécurisé.
    Sécurité d’un réseau de neurones

    Pourquoi la sécurité des réseaux de neurones est-elle un défi ?

    La variation d’éclairage d’une image de piéton peut perturber le réseau de neurones qui classera par la suite le piéton comme un autre objet. Ces facteurs perturbants sont nombreux et diffèrent d’un contexte à un autre (image, audio, vidéo, etc.). Ces facteurs peuvent être regroupés en trois catégories :

    • Les facteurs environnementaux liés à l’environnement extérieur du système : il s’agit des conditions météorologiques, de l’infrastructure routière, du comportement du trafic routier, etc.
    • Les facteurs matériaux dus à la défaillance du système liée à sa durée de vie, sa configuration, son interférence avec d’autres capteurs, etc.
    • Les facteurs algorithmiques (logiciels) liés à l’erreur de précision des variables, etc.

    Le visuel ci-dessous illustre un exemple de deux attaques de RNs : dans le contexte de traitement d’images, le port des lunettes peut être une attaque qui perturbe le système biométrique de reconnaissance des visages et dans le contexte de traitement audio, un petit bruit inséré dans le signal audio a complètement modifié la transcription du signal.

    Exemples des attaques perturbant le réseau de neurones. Gauche : exemple en traitement d’images. Droite : exemple en audio.
    Exemples des attaques perturbant le réseau de neurones. Gauche : exemple en traitement d’images. Droite : exemple en audio.

    Tous ces facteurs perturbants peuvent impacter la performance du RN. Le défi actuel n’est pas uniquement de former un système de prise de décision performant (par exemple, en matière de taux de reconnaissance, de taux de bonnes détections, etc.) mais aussi le fait que ce dernier soit sécurisé (i.e. robuste) à la perturbation de ses entrées. Il s’agit du problème de vérification (ou certification) du réseau de neurones.

    Quelles sont les applications de la vérification de RN ?

    Les algorithmes de Machine Learning sont de plus en plus utilisés pour résoudre des problèmes très complexes et très sensibles à la tolérance des fautes. Prenons l’exemple de deux applications d’utilisation de réseaux de neurones : la première consiste à estimer les ressources nécessaires pour une application dans le cloud et la deuxième consiste à estimer l’angle de braquage d’un véhicule autonome. Bien que les deux applications aient la même importance, commettre une erreur de prise de décision dans la deuxième application a plus de risques que dans la première. En conséquence, la vérification d’un RN est fortement recommandée dans les applications à risques. Avoir des outils permettant de fournir des garanties formelles sur le comportement des systèmes reste un défi.

    D’une manière générale les applications à risque nécessitent une vérification/certification du RN avant son déploiement. Parmi ces applications, nous pouvons citer la cybersécurité (détection d’anomalies, détection d’intrusion, protection du mot de passe, etc.), la médecine (une mauvaise décision pourrait mettre en danger la vie des patients) et les systèmes autonomes (véhicules, robots, avions, etc.).

    Comment le problème de vérification de réseau de neurones a-t’il été formulé dans la littérature ?

    Les approches de l’état de l’art se différencient par la façon avec laquelle le problème de vérification de réseau de neurones a été formulé. On peut identifier deux stratégies de vérification du RN :

    • La première stratégie suppose l’existence d’un contre-exemple ; un exemple où le RN n’est pas sécurisé et tente de le trouver. L’existence du contre-exemple prouve que le RN n’est pas sécurisé.
    • La deuxième stratégie consiste à calculer l’ensemble atteignable de toutes les entrées et vérifie s’il est inclus dans l’ensemble désiré. Son inclusion prouve que le RN est sécurisé.

    Quels sont les critères pertinents qui peuvent nous aider à choisir l’approche de vérification ?

    Pour un utilisateur intéressé à vérifier son RN, la question qui se pose est la suivante : quels sont les critères permettant de choisir l’approche la plus adéquate ?

    Parmi les critères qui distinguent une approche de vérification d’un réseau de neurones d’une autre, on cite :

    • Le temps moyen de réponse : il s’agit du temps moyen nécessaire pour vérifier une entrée donnée.
    • La scalabilité : certaines approches perdent leur efficacité lorsqu’elles sont appliquées sur les réseaux de neurones de large profondeur. La scalabilité est définie par la capacité de l’approche à rester efficace même pour des RNs de large profondeur.

     

    Dans cet article, nous avons évoqué le problème de vérification de réseau de neurones, un problème très important pour les systèmes à faible tolérance aux fautes pour garantir sa sécurité. D’une manière générale, ce problème est celui de la vérification de l’évolution des sorties d’un réseau de neurones en fonction de la perturbation de ses entrées. Cette perturbation est due globalement au trouble de l’environnement extérieur du réseau de neurones. Pour résoudre le problème de vérification, plusieurs approches ont été proposées avec des formulations différentes. Pour un contexte donné, l’approche la plus adéquate peut-être sélectionnée en fonction de son temps moyen de réponse et de sa scalabilité. Le comportement des approches en fonction de ces critères varie d’un contexte à l’autre et d’un type de données à un autre.

  • Le Machine Learning, un domaine de l’Intelligence Artificielle en forte évolution

    Le Machine Learning, un domaine de l’Intelligence Artificielle en forte évolution

    Le Machine Learning est l’une des principales technologies de l’Intelligence Artificielle (IA). Cet article vous propose un état des lieux des approches de Machine Learning et des plateformes et outils actuellement disponibles dans ce domaine.

    Le Machine Learning et sa place dans l’IA

    Dans leur rapport au Sénat en mars 2017 (synthèse du rapport), le député Claude de Ganay et la sénatrice Dominique Gillot retiennent six grands domaines pour définir l’intelligence artificielle, en lien étroit avec cinq domaines des sciences humaines et sociales (partie droite du graphique ci-dessous) :

    Les pourcentages indiquent la répartition estimée de manière approximative des chercheurs français entre les différents domaines de l’intelligence artificielle. (Source : Rapport Claude de Ganay/Dominique Gillot « Pour une intelligence artificielle maîtrisée, utile et démystifiée »).

    L’apprentissage automatique (« Machine Learning » en anglais) est l’un des principaux domaines de l’intelligence artificielle. Il permet de réaliser des programmes informatiques, accomplissant des tâches difficiles à programmer par des moyens traditionnels (ou bien au prix d’un effort, d’une expertise et d’un temps bien plus important). L’idée est de concevoir des algorithmes capables d’apprendre à trouver eux-mêmes une solution, soit à partir d’exemples déjà résolus (apprentissage supervisé), soit en récompensant chaque progression de l’algorithme vers une solution satisfaisante (apprentissage par renforcement).

    Les différents types de Machine Learning

    Le Machine Learning consiste à construire un algorithme qui utilise directement des données représentatives du problème que l’on cherche à résoudre. En conséquence, les différents types de Machine Learning correspondent aux manières d’utiliser ces données pour « apprendre à la machine » à résoudre un problème.
    Elles se distinguent principalement par le niveau de supervision de l’apprentissage, et/ou la manière de récompenser la progression de l’apprentissage vers une bonne solution. Nous avons dressé ci-dessous une liste des principales typologies :

    → Apprentissage supervisé (supervised)

    On présente à l’algorithme des exemples de la tâche à réaliser, où sont fournies à la fois les entrées (des images par exemple) et les sorties (résultats) souhaitées (par exemple voiture, avion, etc.). Le but de l’algorithme de Machine Learning (réseaux de neurones, SVM – machine à vecteurs de support, etc.) est alors de rechercher une règle générale qui fait correspondre les entrées aux sorties.
    Le cas général de l’apprentissage supervisé est adapté lorsque l’on connait le résultat attendu pour un grand nombre de données d’entrée. Plus les modèles sont complexes, plus la quantité de données nécessaires pour obtenir de bons résultats est grande.
    En fonction des données disponibles pour l’apprentissage, on pourra utiliser des versions dérivées de l’apprentissage supervisé telles que celles présentées ci-dessous :

    • Apprentissage semi-supervisé (semi-supervised) : l’ordinateur ne reçoit qu’un signal d’apprentissage incomplet. Pour une partie des exemples, les entrées sont disponibles mais les sorties sont manquantes.
    • Apprentissage actif (active) : l’ordinateur ne peut obtenir la sortie que pour un nombre limité d’entrées (basé sur un budget) et doit optimiser son choix des exemples pour lesquels il demande d’acquérir la sortie. L’apprentissage se déroule de manière interactive, les exemples étant présentés à l’utilisateur pour être étiquetés.
    • Apprentissage par renforcement (reinforcement) : les données d’entraînement (sous forme de récompenses et de punitions) ne sont données qu’à titre de rétroaction aux actions du programme dans un environnement dynamique, comme la conduite d’un véhicule ou le jeu contre un adversaire. Un exemple de ce type d’algorithme est le Q-Learning.

    → Apprentissage non supervisé (unsupervised)

    Cette méthode se distingue de l’apprentissage supervisé par le fait qu’il n’y a a priori pas de connaissance des sorties attendues. Dans l’apprentissage non supervisé, il y a comme entrée un ensemble de données collectées. Ensuite le programme traite ces données comme des variables aléatoires et construit un modèle de « densités jointes » pour cet ensemble de données. L’algorithme doit découvrir par lui-même la structure plus ou moins cachée des données.
    Voici deux exemples de méthode d’apprentissage non supervisé :

    • Le clustering pour identifier dans un ensemble de données, des sous-populations présentant des caractéristiques proches. Cette méthode permet par exemple d’identifier des groupes de personnes au sein d’un échantillon.
    • L’auto-encodeur correspond à la capacité à construire une représentation intermédiaire des données d’entrée, équivalente mais de plus petite dimension, et permettant de générer, à partir de cette représentation un résultat aussi proche que possible des données sources.

    Exemple : à partir d’un ensemble d’images HD couleur (1082x920x3~=3 millions de valeurs), on construit un réseau de neurones qui, pour chacune des images, fournira une représentation sous la forme de X valeurs (1000 par exemple) permettant de reconstruire une image la plus proche possible de l’original. Cette méthode peut être utilisée pour la compression d’images (on ne transfère plus que les 1000 valeurs au lieu des 3 millions), mais cette méthode peut aussi avoir d’autres usages. En effet, pour compresser l’image, le réseau va devoir chercher à « interpréter » le contenu de l’image, et donc identifier des caractéristiques propres à celles-ci. Ces caractéristiques sont utiles pour la classification d’images, on pourra donc utiliser le modèle appris via un auto-encodeur (sur des images non étiquetées), pour le réutiliser dans l’apprentissage d’un classifieur d’images.

    → Apprentissage par transfert (transfer)

    L’apprentissage par transfert peut être vu comme la capacité d’un système à reconnaître et appliquer des connaissances et des compétences apprises à partir de tâches antérieures sur de nouvelles tâches ou domaines partageant des similitudes. Les questions qui se posent alors sont : comment identifier les similitudes entre la ou les tâche(s) cible(s) et la/les tâche(s) source(s) ? Comment transférer la connaissance de la/des tâche(s) source(s) vers la/les tâche(s) cible(s) ?
    Nous avons donné un exemple de transfert dans la description de l’auto-encodeur, mais cette technique s’applique à bien d’autres cas. Elle permet souvent de pallier le faible nombre de données disponibles pour un problème donné, en utilisant les résultats obtenus avec des problématiques proches.
    Pour une vision plus complète des méthodes de Machine Learning, voici une carte mentale construite par l’IRT SystemX :

    Les applications du Machine Learning

    Avec l’informatisation de la plupart des processus dans les entreprises, de nombreuses données reflétant l’activité de l’entreprise, de ses employés et de ses clients sont générées. Ces données contiennent les « règles » ou les « équations » régissant ces processus : on peut donc envisager d’automatiser certaines tâches en utilisant ces données comme exemples d’apprentissage. On trouve donc des applications du Machine Learning dans quasiment tous les secteurs, comme l’atteste le diagramme ci-dessous issu d’un blog du 4 juin 2016 du magazine économique américain Forbes.

    Comment mettre en œuvre le Machine Learning ?

    Pour développer une application basée sur du Machine Learning, il faut trois éléments principaux :

    → Des données

    Comme le principe de ces applications est d’utiliser des données servant d’exemples pour l’apprentissage, il est indispensable de disposer de telles données, qui peuvent être notées ou non, en fonction du problème posé (supervisé ou non). On distingue les données servant à l’apprentissage, pour construire le modèle, de celles servant à l’évaluation de la performance du modèle. Dans tous les cas, on préfère utiliser des données réelles, mais dans certains cas, celles-ci ne sont pas suffisantes. Il est donc nécessaire de générer des données synthétiques pour compléter les données réelles.

    → Des algorithmes

    Les méthodes d’apprentissage automatique sont mises en œuvre par des algorithmes qui s’appliquent aux données au travers d’outils informatiques (hardware et software). On distingue plusieurs types d’outils :

    • ceux qui permettent de stocker et structurer les données (fichiers, bases de données, solutions Big Data),
    • ceux qui permettent d’appliquer les algorithmes sur les données pour construire des modèles (réseau de neurones, random forest, etc.),
    • ceux qui permettent d’évaluer leurs performances et mettre en production des modèles (plateformes de Machine Learning).

    La plupart des environnements disponibles permettent d’utiliser conjointement ces deux types d’outils.

    → De la connaissance et du savoir-faire

    Comme tout outil, il faut disposer du mode d’emploi avant de mettre en œuvre une méthode de Machine Learning. Le domaine étant très actif, les méthodes et outils évoluent très vite. Il est indispensable de se documenter pour se tenir à jour des dernières avancées. Les bonnes pratiques se trouvent en consultant régulièrement des publications scientifiques, les benchmarks, les tutoriels et les MOOC en ligne, ou bien en participant ou en organisant des hackathons et des challenges.

    Où trouve-t-on les données ?

    Lorsque l’on travaille sur un projet, les premières sources de données sont celles fournies par le projet (par exemple des données de trafic routier ou de consommation d’énergie). Néanmoins, il est souvent nécessaire de compléter les données privées disponibles dans le projet par d’autres données (par exemple, les données météo sont de bons facteurs explicatifs du trafic routier ou de la consommation d’énergie). De nombreuses plateformes dites Open Data (et des moteurs de recherche dédiés) permettent de rechercher et télécharger ces données externes aux projets, disponibles gratuitement ou devant être achetées. Ces plateformes permettent aussi de publier ses propres données (avec l’accord des commanditaires), et ainsi d’augmenter leur visibilité et de profiter du résultat de la recherche ouverte appliqués à ces données.

    Dans certains cas, la quantité et la diversité de nos données privées – éventuellement augmentées par des données externes – restent insuffisantes. Il faut alors envisager de générer des données synthétiques, les plus réalistes possible. Bien que ce problème soit récurrent, on ne trouve pour l’instant que peu d’outils génériques ou de plateformes de génération de données.

    Comment gérer les données pour le Machine Learning ?

    Nous avons expliqué dans les paragraphes précédents que la donnée était au cœur des méthodes de Machine Learning. Un élément à prendre en compte est donc le stockage et la gestion de ces données pour mettre en œuvre ces méthodes correctement.
    La gestion des données pour le Machine Learning doit répondre à plusieurs problématiques.

    → Comment collecter les données ?

    Les données brutes – publiques ou privées – sont rarement exploitables directement, les travaux suivants sont souvent nécessaires pour obtenir des résultats pertinents :

    • le nettoyage des données pour éviter l’apprentissage de comportements non souhaités,
    • l’étiquetage des données pour définir le résultat attendu de l’apprentissage,
    • la qualification des données pour estimer leur représentativité.

    De plus, cette collecte peut être effectuée ponctuellement, ou résulter d’un processus de flux avec une arrivée constante de nouvelles données. Certaines plateformes mettent à disposition tout un ensemble d’outils et/ou d’infrastructures pour simplifier ce processus.

    → Comment stocker les données ?

    Une fois collectées ces données doivent être stockées, et là encore le stockage va dépendre de la typologie de données collectées et de la phase du projet (développement/exploitation).
    En fonction de la typologie des données, il est possible d’utiliser des fichiers (par exemple des images ou bien fichiers binaires propres aux frameworks utilisés) pour des données homogènes. Par contre, si les données sont nombreuses et variées, il est préférable d’avoir recours à des bases de données.
    Concernant le déploiement, les algorithmes de Machine Learning s’insèrent dans les systèmes d’information au même titre que d’autres composants, avec un accès aux data warehouses (entrepôts de données) et aux data lakes (méthode de stockage des données utilisée par le Big Data).
    Dans tous les cas, on conserve l’historique des données et traitements associés dans la phase de développement (cahier de laboratoire) et l’exploitation (gestion de configuration).

    Où trouve-t-on les algorithmes ?

    Pour mettre en œuvre les algorithmes de Machine Learning, il n’est plus nécessaire de les programmer. De nombreux outils sont disponibles sous la forme de librairies, de framework ou de plateformes, le plus souvent sous forme de logiciel libre.

    Il est néanmoins possible de distinguer trois manières de mettre en œuvre ces algorithmes :

    → L’installation d’outils « in premises » : par exemple scikit learn, tensorflow, pytorch, R
    Les logiciels sont installés directement sur le PC du Data Scientist ou sur un serveur auquel on lui donne un accès pour travailler à distance. Ces outils nécessitent la connaissance d’un langage de programmation (majoritairement Python, mais d’autres langages sont disponibles) pour définir les modèles à utiliser, injecter les données, et piloter les phases d’apprentissage.

    → Des plateformes Cloud (MLaaS) : Azure ML, Watson, Google, Amazon
    Ces plateformes permettent de mettre en œuvre des algorithmes de Machine Learning via des applications web déployées sur le Cloud. Ces plateformes sont souvent dédiées à une typologie de données.

    → Des environnements hybrides : Dataiku, OpenML
    Ces plateformes peuvent être utilisées comme des services (MLaaS) ou déployées dans un environnement.

     

    Le Machine Learning s’avère donc être une branche de l’intelligence artificielle prometteuse, porteuse de nombreuses évolutions technologiques dans de nombreux domaines sociétaux et industriels. Afin de soutenir son développement, de nombreux outils sont aujourd’hui à disposition :

    • Des plateformes de mise à disposition de données ont été créées, telles que gouv.fr, le Machine Learning Repository de l’UC Irvine, ou encore OpenDataSoft. Ces sources de données externes peuvent être utilisées dans des projets de R&D en complément des données privées.
    • Des plateformes et/ou environnements de développement : nous citerons par exemple Amazon Machine Learning, Dataiku, SciKit-Learn et Tensorflow + Keras, pytorch.

    Des plateformes de connaissance, pour développer son expertise autour des méthodes de Machine Learning via des MOOCs, des tutoriels mis à disposition en ligne et des publications scientifiques.

    Plutôt que de décrire les technologies et algorithmes sous-jacents au Machine Learning, nous avons présenté dans cet article les spécificités de cette nouvelle approche par rapport aux méthodes analytiques[1] plus classiques de la science informatique.
    La pertinence des solutions à base de Machine Learning est très dépendante des connaissances métier (pour la formulation et l’identification du problème que l’on souhaite résoudre), des données associées (à partir desquelles le Machine Learning pourra être effectué) et de la structure du modèle utilisé pour les traiter à partir des outils disponibles (le métier des spécialistes en Machine Learning). A cette fin, nous avons partagé un vocabulaire et une compréhension des enjeux pour faciliter les collaborations entre « expert métiers » de cas d’usage et spécialistes du Machine Learning.