Press "Enter" to skip to content

Author: konieczny

3.7. Sécurité

Comme beaucoup d’autres domaines applicatifs, la cybersécurité n’échappe pas à la grosse tendance liée à l’essor de l’apprentissage automatique. Ce qui suit fait d’abord rapidement le point sur l’intelligence artificielle en cybersécurité depuis ses débuts jusqu’à maintenant puis esquisse quelques lignes pour les prochaines années.

Très brièvement, la sécurité informatique concerne les moyens matériels, humains et organisationnels visant à assurer la confidentialité, l’intégrité et la disponibilité des informations et des services. Pour ce faire, on utilise des moyens de prévention tels que les pare-feux*, le chiffrement et le contrôle d’accès, et des moyens de détection tels que les systèmes de détection d’intrusions (IDS – Intrusion Detection System) et de monitoring et d’analyse de logs*. À cela, on peut ajouter des outils d’analyse forensique (analyse d’un système informatique après incident), de reprise après incidents, etc.

Plusieurs systèmes et travaux de recherche proposent des approches à base d’intelligence artificielle en cybersécurité. Pour plus de lisibilité, ces approches peuvent être réparties en deux grandes catégories: i) les approches statistiques et apprentissage automatique et ii) les approches logiques* ou symboliques.

Dans la première catégorie, on dénombre surtout une variété d’approches pour traiter, essentiellement, le problème de détection d’intrusions et d’anomalies dans les flux de données* analysées. Traditionnellement, l’approche la plus utilisée en pratique est dite “par signatures” en ce sens que la détection d’attaques consiste en la recherche de traces caractéristiques des attaques connues. En pratique, cette approche peut s’avérer efficace en termes de taux de détection par rapport au taux de fausses alertes sous-jacent, mais souffre d’un problème majeur qui est celui de l’incapacité de détecter les attaques inconnues ou nouvelles, communément appelées zero day attacks*. Pour y remédier, un autre type d’approches dites comportementales se basent, quant à elles, uniquement sur les activités et fonctionnements normaux d’un système. En général, ce modèle normal d’activités est appris sur les données d’observation du système en conditions normales. Malheureusement, toutes les approches comportementales génèrent un taux de fausses alertes trop élevé pour être déployées en pratique. Cela dit, il est clair que des techniques d’apprentissage automatique peuvent être construites sur des données et utilisées pour la détection d’intrusions ou d’anomalies. En effet, il suffit de collecter des données ou des traces d’activités que l’on veut détecter, apprendre un modèle supervisé ou non supervisé pour détecter des activités d’intérêt.

C’est ainsi que les tout premiers travaux sur la détection d’intrusions, au début des années 1980, utilisaient des réseaux de neurones*. Depuis, on a utilisé pratiquement toutes les techniques d’apprentissage supervisé* et non supervisé* en détection d’intrusions et d’anomalies. Le gros du travail est, comme dans beaucoup de domaines, consacré à la collecte, la vérification et l’étiquetage des jeux de données représentatifs des activités à détecter. Cela est d’autant plus difficile que des jeux de données, récents et de qualité, sont presque introuvables dans la communauté de recherche et chez les praticiens de la sécurité informatique.

Les approches symboliques en sécurité informatique se déclinent d’abord sous la forme de systèmes experts, probabilistes ou non, implémentant des règles de détection. Il s’agit dans la plupart des cas d’automatiser des raisonnements d’experts en sécurité informatique. On trouve ensuite des systèmes de représentation de connaissances, comme des ontologies*, en vue d’automatiser certaines tâches de raisonnement. En effet, il existe actuellement plusieurs ontologies et taxonomies généralistes ou spécifiques à certains domaines de la sécurité informatique. Ainsi, une ontologie en sécurité réseau formalisera les concepts, les entités et les relations relatifs aux protocoles de communication, vulnérabilités, intrusions, services, etc. On trouve également des approches symboliques dans certains systèmes de contrôle d’accès où il est question d’exprimer et d’implanter une politique de sécurité en termes de permissions qu’ont les utilisateurs sur l’accès aux données et dans quelles conditions ils les ont.

En général, on retrouve les deux approches combinées pour traiter différentes tâches d’intérêt. Ainsi, on retrouve souvent des approches d’apprentissage automatique pour la détection d’intrusions et des approches statistiques et symboliques pour la corrélation d’événements et d’alertes

issues des outils de détection utilisés. En analyse forensique, on combine souvent des modèles probabilistes et/ou logiques pour évaluer la plausibilité des différentes hypothèses possibles, identifier des causes, établir les responsabilités, etc.

Vu les énormes quantités de données à analyser, les techniques d’apprentissage automatique sont plus que nécessaires pour le traitement de ces données, pour la détection de traces de comportements malveillants, d’anomalies, etc. Mais cela ne suffit pas, puisque l’analyse et la prise de décision depuis les résultats remontés par les algorithmes d’apprentissage, et plus généralement d’intelligence artificielle, nécessitent l’expertise humaine. Cette dernière peut s’appuyer sur des techniques d’intelligence artificielle symbolique comme mentionné plus haut, concernant la corrélation d’alertes et d’événements. L’explicabilité, un des derniers thèmes émergents en intelligence artificielle, peut apporter une aide précieuse pour comprendre, par exemple, les activités détectées et les recommandations proposées.

À la différence des autres domaines applicatifs, plusieurs freins doivent être levés pour le déploiement à grande échelle de l’apprentissage automatique en sécurité informatique. En particulier, les jeux de données disponibles pour paramétrer les algorithmes d’apprentissage comme le deep learning* sont très peu mis à disposition et souvent de taille insuffisante. Les exemples d’attaques sont des événements sous-représentés par rapport au comportement “normal” du système sous surveillance. Ce dernier point n’est pas sans conséquence lorsqu’on utilise ces techniques d’apprentissage automatique. Par ailleurs, on compare souvent la détection d’intrusions à la recherche d’une aiguille dans une botte de foin. Cette comparaison n’est malheureusement pas correcte puisque dans le cas de la détection d’intrusions, on ne sait souvent pas ce que l’on cherche ni là où il faut chercher. Il est clair qu’il faut développer des solutions permettant de partager et de mutualiser des jeux de données anonymisés pour la sécurité, tels que les logs réseau, les logs système ou les logs applicatifs. Comme ces jeux de données contiennent généralement des informations sensibles, il s’agit d’un travail difficile, car il faut que les données, une fois anonymisées, restent utiles pour la détection d’intrusions.

Il est à noter enfin que l’intelligence artificielle peut représenter, de son côté, de nouveaux défis pour la sécurité informatique, car elle peut être utilisée, par exemple, pour rendre encore plus sophistiquée des techniques d’attaques et de brouillage (“obfuscation”).

3.6. Planification

Une des caractéristiques majeures d’un système intelligent est qu’il est proactif: il a des buts qui lui sont propres et qu’il poursuit activement. Cela le distingue d’un système purement réactif comme un thermostat qui fonctionne selon un principe stimulus-réponse. Il y a des buts qui se réalisent sans qu’il agisse (comme mon but d’arriver à destination lorsque je suis dans un train), mais en général le système doit intervenir pour atteindre ses objectifs : il doit planifier d’effectuer une ou plusieurs actions qui contribuent à l’obtention de son but.

Dès les débuts de l’intelligence artificielle, la planification joue un rôle central. Pendant longtemps l’attention portait sur la planification classique: étant donné un état initial A, un but à atteindre B et un ensemble d’actions possibles, est-ce qu’il existe une suite d’actions menant de A à B? Il s’agit d’un problème difficile et plusieurs hypothèses sont faites afin de le simplifier: les actions sont déterministes (excluant par exemple l’action de lancer un dé), prennent exactement une unité de temps, et l’environnement (y compris les autres agents) n’intervient pas. Même sous ces restrictions la complexité* du problème de décider s’il existe un plan ou non est très élevée. Malgré la difficulté computationnelle inhérente, l’efficacité des algorithmes de planification s’est améliorée de manière spectaculaire, et lors des compétitions annuelles les meilleurs planificateurs réussissent à résoudre des benchmarks* avec plusieurs milliers de variables.

Grâce à ces succès, de plus en plus de chercheurs ont commencé à relâcher les hypothèses de la planification classique et ont considéré des variantes comme des actions temporellement étendues ou des systèmes à plusieurs agents. L’une des dernières extensions, particulièrement intéressante couvre en particulier des situations où il faut raisonner sur les connaissances* des agents, y compris des meta-connaissances* (des connaissances à propos des connaissances d’autres agents, du type “Je pense que Bruno pense que la fenêtre est ouverte”) et plus généralement des connaissances d’ordre supérieur. Il s’agit alors de planification épistémique* qui a des applications par exemple en robotique sociale, où il faut pouvoir se mettre à la place d’un autre agent.

3.5. Résolution de problèmes combinatoires

Beaucoup de problèmes industriels sont combinatoires. Dès que l’on veut agencer des tâches tout en respectant la capacité des machines ou l’ordre entre certaines tâches, on résout un problème combinatoire. La généralisation de l’utilisation de l’intelligence artificielle pour résoudre de tels problèmes date du milieu des années 1990. Les deux principaux paradigmes d’intelligence artificielle utilisés sont la programmation par contraintes* et SAT*.

Parmi les premiers succès, on peut citer l’utilisation de la programmation par contraintes pour optimiser les chaînes de montage de voitures en fonction des voitures commandées et du temps de montage des options sur une voiture. Plusieurs constructeurs ont utilisé ces techniques dès les années 1990, augmentant grandement l’efficacité de production (jusqu’à 40 % de gain observé). À la même époque, une des applications qui a rendu célèbre la programmation par contraintes a été l’utilisation d’ILOG Solver* pour optimiser le parcours des excavatrices à charbon

dans une grande mine aux États-Unis. Le rendement de cinq excavatrices a été égalé avec seulement quatre, simplement en optimisant leur parcours dans la mine.

Dans le domaine hospitalier, les emplois du temps des infirmières sont calculés par un programme à contraintes dans plusieurs grands hôpitaux. Un des avantages de cette approche par rapport à la programmation linéaire* est la facilité avec laquelle on modifie un modèle à contraintes pour exprimer les variations de réglementation du travail selon les années ou le pays. Depuis peu, on utilise également des programmes à contraintes pour gérer/minimiser les files d’attente de patients en soins ambulatoires.

Dans le domaine du transport, la programmation par contraintes a été utilisée pour l’affectation des membres d’équipage à leurs trajets, l’affectation d’avions aux portes d’embarquement ou l’affectation de trains aux quais.

Dans un cadre plus général que l’affectation de tâches / ressources, un problème de planification consiste à atteindre un but en exécutant une séquence d’actions (nous détaillerons cette thématique à la section suivante). Jusqu’aux années 1990, ce problème était trop difficile pour les techniques existantes. Mais un seuil a été franchi quand on a découvert qu’en bornant le nombre d’actions à réaliser (quitte à l’augmenter plus tard) on pouvait coder ce problème en une formule de la logique* des propositions et le résoudre avec un solveur SAT* permettant ainsi de venir à bout de très gros problèmes de planification. C’est avec des techniques d’intelligence artificielle que l’on planifie les actions des robots envoyés dans l’espace, qui, vu la distance, doivent décider par eux-mêmes les actions à faire pour atteindre le but fixé.

La technique consistant à borner le nombre d’actions pour pouvoir utiliser un modèle SAT a aussi prouvé son efficacité dans la vérification de programmes ou de microprocesseurs. On borne le nombre d’étapes de l’automate représentant le fonctionnement du composant à vérifier pour pouvoir le coder par une formule de la logique propositionnelle dont les solutions correspondent à la détection d’une erreur.

De plus en plus de problèmes rencontrés par les biologistes sont combinatoires. Dans les années 2000 la programmation par contraintes a résolu des problèmes comme l’ordonnancement de marqueurs génétiques, la prédiction de structures d’ARN ou la conception de protéines.

Les années 2010 ont vu la programmation par contraintes utilisée pour des problèmes soulevés par le développement durable. La programmation par contraintes permet d’organiser les tâches d’un “data center” de sorte à éviter les gros besoins d’électricité lors des pics de consommation, où l’on doit avoir recours à une centrale thermique, alors qu’à un autre moment on peut utiliser l’énergie éolienne, par exemple. La programmation par contraintes permet aussi d’organiser les pâturages de moutons en Irlande ou les couloirs sanitaires pour les ours dans les Rocheuses.

Enfin, la preuve de théorèmes mathématiques et la simplification de preuves sont deux exemples récents et prometteurs d’utilisation de SAT (voir la section « IA et Mathématiques » pour un exemple).

3.4. Diagnostic, recommandation, décision

Pouvoir prédire l’état d’un système et recommander une action à entreprendre pour améliorer ce dernier est un enjeu essentiel dans de nombreux domaines.

Quelques exemples notables incluent :

  • la maintenance préventive, qui consiste à prévenir les pannes dans les systèmes technologiques ou industriels de manière optimale, en identifiant les moments clés où une maintenance peut prévenir une panne future. Il s’agit d’un enjeu important de ce qui est connu aujourd’hui sous le nom d’industrie 4.0*, et qui concerne aussi bien les domaines de l’énergie (maintenance d’éoliennes, parfois situées dans des zones difficiles d’accès comme la haute mer) que du transport (maintenance du réseau ferroviaire, automatisation des systèmes) ou de la production (réduction des rebuts de production) ;
  • le diagnostic médical partiellement automatisé, qui consiste principalement à fournir une aide aux médecins, soit en formulant un premier diagnostic à partir des données* du patient, soit en complémentant son propre avis. Ce diagnostic peut ensuite servir de base à la proposition de traitements adaptés ;
  • la modélisation* de préférences d’utilisateurs de sites internet ou de visiteurs, qui a pour objectif de produire les recommandations les plus pertinentes en fonction de ces préférences. Les domaines concernés par cette démarche incluent, bien entendu, le tourisme (recommandation de voyages complets, de trajets, de lieux de résidence…) et le commerce (recommandation de produits culturels, technologiques ou électro-ménagers…), mais aussi d’autres domaines moins évidents comme la pédagogie (recommandation de parcours ou de ressources pédagogiques, en fonction des préférences et du niveau de l’apprenant).

Nous pourrions continuer à égrener de nombreux exemples, comme la prédiction de défauts de paiements (de crédits, de loyers…) suivie de la proposition d’un plan de paiement, ou encore le fait de reconnaître la nature d’un courrier électronique pour l’affecter au dossier le plus adapté. En pratique, les composants de tels systèmes descriptifs (s’ils se contentent de poser une prédiction ou un diagnostic) ou prescriptifs (s’ils proposent ou recommandent en plus des actions à réaliser) seront très variés, et fonctions des contraintes imposées par l’application. Ces composants feront souvent appel à des éléments mentionnés ailleurs dans cet ouvrage: par exemple, analyser les commentaires laissés sur un site internet nécessitera d’utiliser le traitement du langage naturel, et analyser les résultats d’une radiographie ou d’une IRM feront appel à des outils propres à l’analyse d’image.

La variété des domaines d’applications des systèmes de diagnostic/recommandation et d’aide à la décision fait que les caractéristiques de ces derniers peuvent être très différentes, d’un cas à l’autre. Si en faire une liste exhaustive est difficile, nous pouvons citer quelques caractéristiques principales :

  • la taille du domaine de recherche, qui peut varier de quelques alternatives, quand il s’agit par exemple de reconnaître entre quelques maladies, à plusieurs milliards d’entre-elles, quand il s’agit par exemple de recommander une configuration personnalisée de produit ou de voyage touristique. Un large domaine demandera, en général, des méthodes de recherche plus efficaces et pointues;
  • le fait de renseigner la confiance accordée au diagnostic ou à la pré- diction, le plus souvent au moyen d’un modèle d’incertitude. S’il s’agit d’un aspect essentiel pour les applications les plus sensibles, où l’im- pact des actions résultant des recommandations est important (dia- gnostic médical, conduite autonome), il est secondaire dans d’autres applications, où informer de la confiance du résultat ajoute une com- plexité superflue (par exemple, liste de films recommandés suite à un achat) ;
  • le niveau d’interaction requis et l’explicabilité des recommandations et/ou prédictions effectuées, deux aspects souvent importants dans des problèmes d’aide à la décision personnalisés nécessitant des inte- ractions, mais moins essentiels pour des systèmes traitant de grands volumes de données et très automatisés.

3.3. Recherche d’information

Le web sémantique* est né au cours des années 1990 dans le but de faire un “web pour les machines”, c’est-à-dire un web dans lequel l’information n’est pas simplement destinée à être lue par un humain, mais puisse être exploitée directement par les ordinateurs. L’ambition initiale est que les textes et éléments multimédias présents dans les pages web soient complétés par des éléments de connaissance sur lesquels l’ordinateur va pouvoir raisonner pour fournir des réponses pertinentes à des questions complexes.

Le web sémantique est une application à grande échelle des travaux de recherche en représentation de connaissances* (cf. section “Représenter l’information”). Il est nourri par un web de données liées (“Linked Data”) offrant de manière distribuée de grandes quantités d’information. Ces informations sont décrites dans le langage RDF* qui permet d’exprimer des (méta-)données sous forme de graphes dont les nœuds sont identifiés, comme les pages du web, par des IRI (Internationalized Resource Identifier), et les classes et relations peuvent être définies par des termes d’une ontologie* utilisant le langage OWL*.

Bien sûr, cela ne signifie pas que l’ordinateur comprend le sens des symboles utilisés : ce n’est pas parce que les termes “escalade” et “Mont Granier” sont attachés à une image que l’ordinateur sait ce qu’est l’escalade, ni ce qu’est un mont. Mais il est possible d’utiliser des techniques d’intelligence artificielle de sorte que l’ordinateur se comporte de manière pas si éloignée de ce qu’il ferait s’il comprenait.

Des techniques fondées sur la fréquence de co-occurrences de motifs (et en particulier de mots) permettent de déterminer une proximité assez fiable entre ces motifs. Elles associeront par exemple les mots “mont”, “montagne”, “massif ”, “escalade”, “avalanche”, mais aussi “neige” et “données” (à cause de l’expression actuelle “avalanche de données”). Cependant, dans un contexte où sont présents “massif ” et “escalade”, “neige” sera plus proche de “montagne” que “données”. Pour définir cette similarité, on considère ces termes comme des dimensions d’un espace vectoriel, dont les points caractérisent des documents. Ces dimensions sont réduites en rapprochant celles associées le plus souvent : c’est la base de “latent semantic analysis*” et des “word embeddings*”. Cela fonctionne entre documents (textuels ou multi-médias) de langues différentes si on dispose d’un corpus annoté multilingue.

La fouille de données permet d’extraire des motifs fondés sur des propriétés structurelles. Par exemple, on va trouver une classe d’objets, les montagnes, décrits par leurs noms, leurs altitudes, leurs massifs et parfois leurs coordonnées géographiques. Organiser le résultat de la fouille en une représentation explicite de la connaissance est l’objet de la découverte de connaissance qui peut organiser les motifs extraits en une véritable ontologie des objets géographiques comme les montagnes, les rivières, les massifs et les relations entre eux (qu’une montagne fait éventuellement partie d’un massif montagneux et qu’elle peut être localisée dans un ou plusieurs pays).

Enfin, à partir d’une telle représentation de la connaissance, il est possible de déduire de nouvelles informations, d’identifier les descriptions d’un même objet ou de répondre à des requêtes. Ainsi, quelqu’un cherchant des images d’“alpinisme dans le massif de la Chartreuse”, pourra se voir retourner une image étiquetée “escalade” et “Mont Granier”. Pour cela, le système enchaînera des étapes de raisonnement sur différents éléments de connaissances, à savoir que ”escalade” est une catégorie d’“alpinisme” et que le “Mont Granier” est situé dans le “massif de la Chartreuse”.

3.2. Traitement du langage naturel

Le traitement automatique des langues naturelles (TALN) est une discipline de l’informatique et des sciences du langage qui s’intéresse à la modélisation* et l’automatisation des processus cognitifs langagiers, que ce soit la compréhension de messages, la lecture de textes, le dialogue, la traduction, l’acquisition de connaissances* à partir de textes, etc. Comme discipline informatique, le TALN conçoit des programmes qui peuvent comprendre ou émuler* la communication avec des humains dans sa diversité et ses usages. Il définit des algorithmes, élabore des outils et des architectures logicielles. L’ensemble de ces traitements repose sur des ressources (lexiques, grammaires, corpus annotés, etc.) dont la constitution est une problématique en soi.

Le TALN est souvent classé comme une sous-thématique de l’intelligence artificielle. Cependant, au vu du nombre important de chercheurs et d’industriels qu’il rassemble et de la spécificité et la complexité du langage naturel, il constitue une discipline scientifique à part entière.

Il partage les principaux paradigmes de l’intelligence artificielle (Représenter, Décider, Apprendre, Résoudre) auxquels il faut ajouter celui de Communiquer. Le TALN occupe une position clé dans les nombreuses situations où informations et connaissances sont produites ou reçues par des humains et de ce fait majoritairement exprimées en langue naturelle.

La langue forme un système complexe de moyens d’expressions où les unités de langues ne peuvent se définir que par leurs relations. L’analyse linguistique définit les unités linguistiques et les opérations qui les relient à d’autres unités. Ce système est représenté à l’aide de modèles linguistiques ou statistiques. Les modèles linguistiques sont fondés sur la logique*. Ils encodent des expertises sous forme de règles qui permettent de décrire a priori le fonctionnement d’une langue. Ces modèles produisent des analyses d’énoncés à partir desquelles peut être inféré le sens.

Les modèles statistiques sont construits à partir des données* langagières brutes ou enrichies avec des descriptions linguistiques. Ces modèles servent à prédire le sens d’un mot en examinant l’ensemble des contextes dans lesquels celui-ci apparaît, mais aussi à fournir l’analyse grammaticale d’une phrase, à déterminer son caractère subjectif, etc.

Autant d’analyses peuvent être menées que de descriptions de phénomènes linguistiques ajoutées aux données. Ce sont les modèles statistiques qui sont communément employés depuis les années 1990. Ils sont inférés des données langagières par des processus d’apprentissage automatique.

Le TALN et l’apprentissage ont une longue histoire commune. Ainsi le premier système de traduction automatique dans les années 1950 était statistique. Le TALN applique les méthodes d’apprentissage de l’intelligence artificielle, mais définit aussi ses propres méthodes.

Deux types de méthodes existent: celles qui permettent d’approximer un modèle linguistique et celles qui sont dédiées à une tâche particulière. Pour les premières, toutes les méthodes d’apprentissage supervisé* de l’intelligence artificielle permettant de classer les données sont utilisées pour produire des analyses linguistiques. Pour les dernières, les modèles importent peu, seule compte la performance atteinte pour la tâche. L’apparition de méthodes basées sur les réseaux de neurones profonds a permis à nombre de tâches du TALN, comme la traduction ou le résumé automatique, d’effectuer un bond qualitatif. Le TALN définit ses propres architectures neuronales et estime ses modèles neuronaux à l’aide de grands corpus. Par exemple, les modèles neuronaux de traduction automatique sont construits à partir de traductions existantes.

Par ailleurs, les données langagières constituent toujours un champ d’expérimentations pour de nombreux modèles statistiques numériques. Ainsi, la conférence française en apprentissage automatique (CAP) organise de manière récurrente des compétitions sur des données linguistiques. L’édition de 2018 portait par exemple sur la prédiction du niveau en anglais d’un apprenant en langue étrangère à partir de productions écrites d’apprenants annotées en niveaux.

Les paradigmes “Raisonner”, “Décider” et “Résoudre” sont aussi présents en TALN. Ils sont constamment mobilisés face aux ambiguïtés omniprésentes en analyse automatique. Des modèles de l’intelligence artificielle sont expérimentés pour résoudre des problèmes de compréhension. La compréhension porte sur l’étude de la signification des mots et de leur combinaison afin de créer et d’interpréter des énoncés cohérents. Elle établit ensuite des liens entre les énoncés et leurs contextes textuels et situationnels. Ainsi, les réseaux de préférences conditionnelles adaptés et enrichis servent à identifier les préférences des clients sur des produits en analysant des dialogues. À l’inverse, certains modèles typiques du TALN sont aussi explorés en intelligence artificielle. Le plus connu est celui de l’analogie, illustré par le schéma de phrase “A est à B ce que C est à D”, comme “les électrons sont au noyau atomique ce que les planètes sont au soleil ”.

3.1. Vision et traitement d’images

Le domaine de la vision par ordinateur s’intéresse à la compréhension des contenus visuels, tels que les images et séquences vidéo issues de supports divers: caméras embarquées dans les téléphones, robots ou voitures intelligentes, contenus multimédias (films et journaux télévisés), documents numériques, imagerie médicale etc. Les problèmes étudiés sont divers, allant de la simple classification d’images et de la reconnaissance d’objets, de gestes et d’activités humaines, à la prédiction structurée et la compréhension détaillée d’une scène : identification de l’ensemble des acteurs d’une scène, estimation de leur posture, des relations entre les acteurs et éventuellement les objets de la scène, labellisation de l’ensemble des éléments de la scène; pour certaines applications, la reconstruction d’un modèle 3D de la scène est nécessaire.

Le verrou scientifique principal est le fossé sémantique entre, d’un côté, le signal d’entrée, dit de bas niveau, et de l’autre côté, la prédiction sémantique, par exemple la classe d’objets à reconnaître. Mathématiquement, cela se caractérise par des espaces de grandes dimensions dans lesquels sont plongées les images, et par les problèmes d’estimation sous-jacents. À titre d’exemple on peut citer l’estimation des coordonnées des articulations des personnes dans une image pour une application d’interaction homme-machine.

Dans ce contexte, les méthodologies dominantes ont traditionnellement été la géométrie, le traitement de signal et l’apprentissage automatique. Les approches procèdent en combinant une modélisation* explicite de certains phénomènes, et l’apprentissage à partir de données* d’autres parties du modèle. En revanche, ce compromis a été récemment modifié en faveur de l’apprentissage. L’apprentissage à partir de grandes masses de données a été une force motrice majeure de l’évolution du domaine depuis quelques années, et également d’autres domaines tels que la reconnaissance de la parole et le traitement automatique des langues, avec un impact important à la fois sur le monde académique et sur le monde industriel. Les méthodes de type apprentissage profond* se sont établies comme méthodes de référence pour un grand nombre de problèmes en gagnant les plus prestigieuses compétitions scientifiques, l’événement clé étant la victoire de la campagne “ImageNet 2012” par l’équipe de Geoffrey Hinton** de l’Université de Toronto.

Conceptuellement, ces modèles permettent d’apprendre, de manière conjointe, une représentation hiérarchique d’un objet ou d’une action, et le modèle de prédiction servant à sa reconnaissance.

La conception “manuelle” de traits caractéristiques (descripteurs nécessaires pour l’identification des objets) par un expert, chercheur ou ingénieur, a été réduite à un rôle minimal par rapport aux méthodes traditionnelles d’apprentissage. L’intervention du spécialiste a basculé de la conception des caractéristiques vers le choix du biais inductif du modèle d’apprentissage, par exemple l’architecture d’un réseau de neurones profond*.

Suite au succès de l’apprentissage automatique, une certaine convergence de modèles a eu lieu entre les domaines de la vision par ordinateur, le traitement de la parole et le traitement des langues. Les communautés se sont rapprochées, ce dont témoigne un partage de concepts, de modèles, d’algorithmes et même des applications impliquant plusieurs domaines, tels que les systèmes de question-réponse visuels. D’autres liens ont été tissés avec les neurosciences, dont certains résultats ont trouvé une place importante dans le domaine de la vision. À titre d’exemple on peut citer la notion de modèle d’attention, permettant à un modèle (neuronal) de porter une attention particulière à une partie spécifique des données, qui a été déterminée, par le modèle, comme pertinente par rapport à la tâche en question.

Les recherches des dernières années ont démontré la capacité des réseaux de neurones profonds à apprendre des modèles complexes et efficaces à partir de grandes masses de données. Pour certaines applications, telles que la détection et la reconnaissance d’objets et l’estimation de la posture articulée des humains, le succès est indéniable, avec des transferts technologiques mis en place par les grands groupes industriels. Pour d’autres applications, il a été démontré que le succès de cette méthodologie n’est pas forcément dû à une capacité acquise de raisonner, mais plutôt dû à l’exploitation statistique de certaines régu- larités et de biais inhérents aux jeux de données, ce qui représente un frein important à leur capacité de généralisation. L’avenir du domaine portera sans doute sur une augmentation des capacités de raisonnement de haut niveau et sur l’intégration de notions de causalité.

** Imagenet classification with deep convolutional neural networks. Alex Krizhevsky, Ilya Sutske- ver et Geoffrey Hinton. Dans Neural Information Processing Systems (NIPS), pp. 1097-1105. 2012.

2.4. Résoudre

Une part importante de l’intelligence artificielle est la résolution de problèmes difficiles (la difficulté venant souvent du nombre d’opérations à effectuer pour résoudre le problème). Illustrons cela sur un exemple concret, à savoir la création d’une grille de mots croisés: une fois les dimensions de la grille fixées, il s’agit de sélectionner des mots et de les positionner de sorte que deux mots consécutifs soient séparés par au moins une case noire, et que chaque intersection entre un mot placé horizontalement et un mot placé verticalement corresponde bien à une lettre commune. S’il n’y a pas de contrainte sur le nombre ou la position des cases noires, le problème est relativement facile. Si, en revanche, on souhaite limiter le nombre de cases noires, leurs positions ou restreindre le vocabulaire autorisé, alors le problème devient plus complexe. Il faut envisager beaucoup de combinaisons de mots avant d’en trouver une qui soit correcte, et une légère augmentation de la taille de la grille augmente fortement ce nombre de combinaisons. Cette explosion combinatoire rend le problème intrinsèquement difficile. Des techniques d’intelligence artificielle, dont nous donnerons quelques exemples, peuvent alors permettre une résolution efficace.

L’enjeu est important, car de très nombreux cas pratiques sont confrontés à ce phénomène d’explosion combinatoire: par exemple, réaliser l’emploi du temps d’un collège, planifier l’activité d’un robot, configurer un produit selon les préférences d’un utilisateur, ou encore ranger des cartons dans un conteneur en minimisant la place perdue.

Pour résoudre ces problèmes, on pourrait explorer de façon exhaustive l’ensemble des combinaisons, jusqu’à trouver une solution. Mais cette exploration systématique, pour être réalisée en un temps acceptable, doit faire appel à des stratégies et techniques dédiées. S’il s’agit de fabriquer une grille de mots croisés, on peut, par exemple, utiliser des règles pour déduire au plus tôt qu’un début de grille ne peut pas être complété en une grille satisfaisant toutes les contraintes, apprendre que certaines zones de la grille sont plus difficiles à remplir que d’autres, ou que certains mots sont plus faciles à placer que d’autres.

En intelligence artificielle, on cherche des algorithmes de résolution de problèmes génériques, c’est-à-dire qui n’utilisent pas de connaissances préalables sur les problèmes, mais reposent sur des méthodologies et principes généraux.

Pour résoudre un problème avec de tels algorithmes, l’utilisateur doit simplement décrire son problème en utilisant un langage de modélisation* : il s’agit essentiellement de définir les inconnues du problème pour lesquelles on cherche une valeur (par exemple, les cases de la grille), ainsi que les contraintes* portant sur ces inconnues (par exemple, toute suite verticale ou horizontale de cases entre deux cases noires doit former un mot).

Jean-Louis Laurière (1945-2005) a conçu en 1978 un premier système général de résolution de problèmes, à base de contraintes, appelé ALICE**. De nombreux systèmes de programmation par contraintes* ont été proposés depuis et sont largement utilisés dans le monde industriel. Certains de ces algorithmes génériques sont dédiés à la résolution de problèmes formulés en logique (le problème SAT*).

D’autres méthodes de résolution pour des problèmes complexes de grandes dimensions, appelées méta-heuristiques*, sont également génériques et s’inspirent, par exemple, de phénomènes naturels ou physiques, tels que la théorie de l’évolution de Darwin (algorithmes évolutionnaires*) ou du comportement de certains animaux (optimisation par colonies de fourmis* par exemple).

Un certain nombre de problèmes nécessitent une résolution collective et/ ou distribuée, par exemple se mettre d’accord sur la date d’une réunion, ou s’organiser pour une distribution de colis. Il s’agit plus généralement de coopérer et de se coordonner pour atteindre un but collectif, ou de négocier lorsque les agents ont des intérêts divergents. Cela constitue la problématique des systèmes multi-agents* (certains de ces agents pouvant être des humains).

** A language and a program for stating and solving combinatorial problems. Jean-Louis Laurière. Dans Artificial Intelligence, vol. 10(1), pp. 29-127. 1978.

2.3. Apprendre

L’apprentissage est une capacité cognitive essentielle. Sans elle, un agent est condamné à ne jamais changer de perspective sur le monde, à sans cesse reproduire les mêmes règles de comportement.

L’apprentissage automatique (“Machine Learning*”) est la discipline visant à doter des machines de la capacité, d’une part, de découvrir des régularités à partir d’observations, qui peuvent provenir de bases de

données, de capteurs, de textes, etc. et, d’autre part, de se programmer (et de se reprogrammer) par l’expérience.

Le monde, dans son ensemble, n’est pas chaotique. Cela signifie que l’on peut décrire de nombreux phénomènes en extrayant des données* (ou observations) des régularités, des modèles, cela à des fins de compréhension ou pour faire des prédictions.

Supposons que l’on étudie des patients victimes de certaines pathologies dans un hôpital. On cherchera à savoir si l’on peut distinguer des catégories de patients, s’il est possible de faire des prédictions sur leurs évolutions futures. On voudra également savoir si l’on peut intervenir pour modifier le pronostic lié à certaines maladies, voire pour un patient donné, par exemple en introduisant un nouveau médicament. Il faut alors aller au-delà de simples corrélations pour découvrir les liens de causalité. Ces exemples simples font appel à des apprentissages différents.

Pour décrire le monde, on parle d’apprentissage non supervisé*. On cherchera par exemple des catégories, ou clusters*, des règles d’association*, des projections dans des espaces de représentation plus interprétables par les experts humains. Le but est d’interpréter et de comprendre les données.

Pour réaliser des prédictions, par exemple que cette forme de couleur dominante rouge devant la caméra d’un véhicule autonome est un panneau stop, on parle d’apprentissage supervisé*. En effet, les données sont alors fournies avec une partie descriptive, mais aussi avec une étiquette spécifiant une prédiction idéale. Le but est d’apprendre un modèle permettant de faire de bonnes prédictions à propos de données nouvelles, ce que l’on appelle généralisation. Finalement, l’apprentissage de relations de causalité, appelé souvent apprentissage prescriptif, fait appel à des modélisations* plus sophistiquées du monde.

La programmation par l’expérience, qui permet à un robot d’accomplir sa tâche en s’améliorant, ou bien à un agent virtuel de s’améliorer au jeu de go ou à un jeu vidéo jusqu’à devenir imbattable par les êtres humains, fait appel à de l’apprentissage par renforcement*. L’agent apprend les réflexes appropriés à chaque situation. Ce processus peut faire intervenir de l’apprentissage non supervisé ou supervisé. Ici aussi, il faut généraliser les résultats des expériences passées à de nouvelles situations.

Bien sûr, d’autres formes d’apprentissage sont étudiées, comme l’apprentissage de préférences ou de recommandations ou encore l’apprentissage par transfert permettant d’adapter un modèle à un autre domaine.

Les modèles permettant de décrire ou de prédire sont multiples. Il peut s’agir de modèles de type statistique spécifiant des distributions de probabilités*, des règles de type logique*: si … alors …, des frontières définies géométriquement dans des espaces de (re-)description des données du type réalisé par les fameux réseaux de neurones*, des réseaux sémantiques, et bien d’autres choses encore. Quel que soit le modèle favorisé, les questions fondamentales sont : permet-il une description appropriée du monde pour le comprendre ou pour réaliser des prédictions justes? Est-il possible de déterminer un tel modèle à partir des données disponibles? Par exemple, dans le cas de modèles très versatiles, comme les réseaux de neurones profonds* actuels, il faut énormément de données pour en apprendre les très nombreux paramètres.

La recherche porte sur les types de modèles à la fois intéressants et apprenables, c’est-à-dire permettant d’approcher les régularités sous-jacentes du monde avec des ressources en calcul et en données raisonnables. Cela implique de définir des algorithmes permettant d’apprendre ces modèles et d’en analyser les propriétés.

L’apprentissage supervisé doit se garder des biais présents dans les données qu’on ne voudrait pas reproduire par un modèle prédictif pour des

raisons éthiques. Si on souhaite, par exemple, entraîner un modèle à répondre à des demandes de crédit (cas d’une banque), et si certaines données utilisées (par exemple les salaires) sont biaisées en faveur d’un genre, il faudrait pouvoir éviter que le modèle n’intègre ce biais. Détecter et réparer ces biais est un problème de recherche actuel important.

Si l’apprentissage supervisé est maintenant bien compris, il reste beaucoup à faire pour établir des garanties sur l’apprentissage non supervisé, l’apprentissage par transfert et l’apprentissage de relations de causalité, par exemple.

Les modèles sont souvent vus comme des boîtes noires*, difficiles à interpréter et l’intégration de l’apprentissage, du raisonnement et des connaissances est donc un sujet appelé à se développer. Cette intégration peut être une des solutions possibles au problème de l’explicabilité des résultats fournis par ces boîtes noires, constituant une thématique de recherche actuelle importante, appelée IA explicable* (en anglais “Explainable AI”).

La capacité d’apprendre à partir de très peu d’exemples, ce que nous réalisons tous les jours est encore une tâche difficile pour les machines. Apprendre sur l’apprentissage, pour mieux comprendre aussi les agents cognitifs naturels, est donc encore un horizon, comme il l’était pour les pionniers de l’intelligence artificielle il y a 60 ans.