P age |1 CHAPITRE 1 : GENERALITES SUR L’INTELLIGENCE ARTIFICIELLE 1.1. NOTION D’INTELLIGENCE ARTIFICIELLE 1.1.1. Intelligence naturelle et intelligence artificielle On ne peut pas parler d’intelligence artificielle (IA) sans comprendre l’intelligence naturelle. De plus, le concept d’intelligence (naturelle) manque de consensus dans sa définition. C’est encore un concept qui reste un concept encore mal défini scientifiquement. Mais, aux fins de ces notes, nous définissons l’intelligence comme suit : Définition 1.1 (Intelligence). L’intelligence est l’ensemble des processus retrouvés, qui permettent de comprendre, d’apprendre ou de s’adapter à des situations nouvelles. L’intelligence est trop souvent étroitement liée à celle des humains. Et pourtant, tous les êtres vivants, les animaux (hommes et bêtes) et les végétaux font preuve d’une certaine forme d’intelligence [Mathivet, 2014]. En effet, on pense souvent aux grands singes (capables d’apprendre la langue des signes et de communiquer grâce à elle), les chiens ou les dauphins. On peut aussi citer le cas du Hans le malin, un cheval qui « savait » compter et répondait par des coups de sabots au sol (par exemple à la question « Combien fait 3 + 4 ? », il tapait du pied 7 fois). En effet, il était capable de détecter des micromouvements sur le visage des spectateurs pour savoir s’arrêter: il avait ainsi adapté son comportement à son environnement pour obtenir douceurs et caresses. On peut aussi parler des animaux montrant une intelligence collective remarquable. Il y a par exemple les termites qui sont capables de construire des nids immenses et climatisés, faits de multitudes de couloirs et de chambres. Les fourmis sont un autre très bon exemple avec la présence de rôles : reine, ouvrières, nourrices, gardiennes, combattantes et Cours d’Intelligence Artificielle P age |2 même éleveuses, étant donné que certaines espèces « élèvent » des pucerons et les protègent des coccinelles pour ensuite les « traire » et manger le miellat produit. De nombreuses espèces végétales se sont adaptées pour attirer certaines proies (comme les plantes carnivores) ou des insectes qui vont disséminer leur pollen. Au contraire, certains se protègent via des sucs toxiques ou des épines. Cependant, comme pour l’intelligence naturelle, l’« intelligence artificielle », terme créé par John McCarthy, n’a pas toujours un consensus dans la définition. Ce que l’on peut retenir est qu’on retrouve donc le côté « artificiel » atteint par l’utilisation d’ordinateurs ou de procédés électroniques sophistiqués et le côté « intelligence » associé à son objectif d’imiter le comportement. Cette imitation peut se faire : (1) soit dans le raisonnement Ici, il y a des définitions utilisées lient l’IA à un aspect humain (ou naturelle) de l’intelligence, et celles qui la lient à un modèle idéal d’intelligence, pas forcément humain, appelé rationalité. Exemple 1.1. Dans les jeux ou la pratique des mathématiques, dans la compréhension des langues naturelles). Nous cherchons donc à ce que les machines pensent comme des humains ou pensent rationnellement. (2) soit dans la manière d’agir Ici, il y a des définitions utilisées soulignent que le but de l’IA est d’avoir toutes les apparences de l’intelligence (humaine ou rationnelle), et celles qui insistent sur le fait que le fonctionnement interne du système d’IA doit également ressembler à celui de l’être humain et être au moins aussi rationnel. Exemple 1.2. Dans la perception : visuelle (interprétation des images et des scènes), auditive (compréhension du langage parlé) ou par d’autres capteurs, dans la commande d’un robot dans un milieu inconnu ou hostile). Nous cherchons donc à ce que les machines agissent comme des humains ou agissent rationnellement. Cours d’Intelligence Artificielle P age |3 1.1.2. Définitions de l’intelligence artificielle Les considérations d’imitation énumérées ci-dessus déterminent les quatre façons de définir l’IA. (1) Machines qui agissent comme les humains Ceci peut être observé avec le célèbre test de Turing. C’est un test d’intelligence basé sur la capacité d’une machine à imiter la conversation humaine. Ce test est décrit par Alan Turing en 1950 dans sa publication Computing Machinery and Intelligence. Ce test consiste à mettre un humain dans une confrontation verbale à l’aveugle avec un ordinateur et un autre humain. Le test prend la forme d’un jeu à trois joueurs : un interrogateur (humain), un autre humain et un ordinateur, le tout dans des pièces différentes. L’interrogateur pose des questions textuelles aux deux parties sans savoir laquelle d’entre elles est un ordinateur. Si l’interrogateur est incapable de dire laquelle des personnes interrogées est un ordinateur, l’ordinateur est considéré comme ayant réussi le test. Par conséquent, nous pouvons conclure que l’ordinateur est intelligent. Suivant cette approche, l’IA se définit de la manière suivante : Définition 1.2 (Intelligence artificielle). L’IA est une discipline qui étudie comment mettre en œuvre des machines capables d’accomplir des tâches pour lesquels l’homme est encore toujours meilleur. (2) Machines qui pensent comme les humains Pour pouvoir dire qu’une machine donnée pense comme un humain, il faut être capable de déterminer comment les êtres humains pensent lorsqu’ils pénètrent dans le fonctionnement interne de l’esprit. Il y a trois façons de le faire : - L’introspection, c’est-à-dire la tentative de s’emparer de ses propres pensées ; Les expériences psychologiques, c’est-à-dire l’observation d’une personne dans ses comportements ; L’imagerie cérébrale, qui va consister à observer le cerveau en fonctionnement. Une fois que nous avons une théorie de l’esprit suffisamment précise, il devient possible d’exprimer cette théorie sous la forme d’un programme informatique. Si les comportements d’entrées/sorties du programme correspondent à ceux des humains, alors nous pouvons conclure que l’ordinateur est intelligent. Suivant cette approche, l’IA se définit de la manière suivante : Cours d’Intelligence Artificielle P age |4 Définition 1.3 (Intelligence artificielle). L’IA est une discipline qui étudie comment amener les machines à penser, à être doter d’un esprit au sens plus littéral. (3) Machines qui agissent rationnellement Ici, une machine est considérée comme intelligente si elle agit pour mieux répondre à ses objectifs. Autrement dit, si elle agit pour obtenir la meilleure solution ou, dans un environnement incertain, la meilleure solution prévisible. Cette machine est donc un agent rationnel. Suivant cette approche, l’IA se définit de la manière suivante : Définition 1.4 (Intelligence artificielle). L’IA est une discipline qui étudie la conception des agents rationnels. (4) Machines qui pensent rationnellement Ici, une machine est considérée comme intelligente si elle peut raisonner en suivant les lois de la logique. Cette approche se heurte à deux obstacles. Premièrement, certaines capacités (telles que la perception), en particulier lorsque la connaissance n’est pas certaine à 100%, ne sont pas facilement exprimables en logique. Deuxièmement, cette rationalité n’est pas réalisable en pratique, car la technologie actuelle ne permet pas d’effectuer des calculs aussi complexes. Suivant cette approche, l’IA se définit de la manière suivante : Définition 1.5 (Intelligence artificielle). L’IA est une discipline qui étudie les moyens informatiques qui rendent possibles la perception, le raisonnement et l’action. 1.2. HISTORIQUE DE L’INTELLIGENCE ARTIFICIELLE 1.2.1. Intelligence artificielle avant 2000 Bien qu’ils ne soient pas les créateurs du terme IA, déjà au début des années 1950, le mathématicien américain John Von Neumann et le mathématicien britannique Alan Turing seront les pères fondateurs de la technologie qui la sous-tend : ils sont passés des calculatrices à la logique décimale du XIXe siècle (qui traitaient donc des valeurs de 0 à 9) et des machines logiques binaires (qui sont basées sur l’algèbre de Boole, traitant des chaînes plus ou moins importantes de 0 ou 1). Les deux chercheurs ont ainsi formalisé l’architecture de nos ordinateurs contemporains et démontré qu'il s'agit d'une machine universelle, capable d’exécuter ce qui est programmé. Cours d’Intelligence Artificielle P age |5 Turing, quant à lui, a posé pour la première fois la question de l’intelligence possible d’une machine dans son célèbre article de 1950 « Computing Machinery and Intelligence » dans lequel le mathématicien explore le problème de définir si une machine est consciente ou non. C’est donc de cet article que va dériver ce que l’on appelle désormais le Test de Turing que nous avons présenté plus haut. Si controversé que soit cet article (ce « test de Turing » ne paraît pas qualifiant pour beaucoup d’experts), il sera souvent cité comme étant à l’origine de la remise en cause de la limite entre l’humain et la machine. Une autre origine probable remonte à 1949 dans une publication du mathématicien américain Warren Weaver avec un mémo sur la traduction automatique des langues qui suggère qu’une machine pourrait très bien accomplir une tâche qu’est l’intelligence humaine. Cependant, la formalisation de l’intelligence artificielle comme véritable domaine scientifique remonte à 1956 lors d’une conférence aux États-Unis tenue au Dartmouth College. Par la suite, ce domaine atteindra des universités prestigieuses telles que Stanford, MIT ou Edimbourg. Au milieu des années 1960, les recherches autour de l’IA sur le sol américain étaient principalement financées par le ministère de la Défense. Parallèlement, des laboratoires s’ouvrent partout à travers le monde. Certains experts prédisaient à l’époque que « les machines seront capables, dans 20 ans, de faire le travail que n’importe qui peut faire ». Alors que l’idée était visionnaire, même en 2018, l’intelligence artificielle n’a pas encore pris cette importance dans nos vies. En 1974 vint une période appelée « AI Winter ». De nombreux experts ne parviennent pas à réaliser leurs plans, et les gouvernements britannique et américain réduisent le financement des académies. Ils préfèrent soutenir des idées qui sont plus susceptibles de conduire à quelque chose de concret. Dans les années 1980, le succès des systèmes experts a permis de relancer des projets de recherche sur l’intelligence artificielle. Un système expert était un ordinateur capable de se comporter comme un expert (humain), mais dans un domaine précis. Grâce à ce succès, le marché de l’IA atteint une valeur d’un milliard de dollars, ce qui motive les différents gouvernements à nouveau soutenir financièrement des projets plus académiques. Le développement exponentiel des performances des ordinateurs, notamment en suivant la loi de Moore, entre 1990 et 2000 a permis d’exploiter l’IA dans des domaines jusque-là peu répandus. A cette époque, on trouve du data mining, voire des diagnostics médicaux. Il faudra attendre 1997 pour une véritable sortie médiatique lorsque le célèbre Deep Blue créé par IBM bat Garry Kasparov, alors champion du monde d’échecs. Cours d’Intelligence Artificielle P age |6 1.2.2. Intelligence artificielle entre 2000 et 2010 Au début des années 2000, l’intelligence artificielle a été intégrée à un grand nombre de films de « science-fiction » présentant des scénarios plus ou moins réalistes. Le plus marquant du nouveau millénaire est certainement Matrix, le premier volet de la saga sorti en salles le 23 juin 1999. Il sera suivi par A.I. par Steven Spielberg sorti en 2001, inspiré de Stanley Kubrick, puis I, Robot (2004). Metropolis (1927), Blade Runner (1982), Tron (1982) et Terminator (1984) avaient déjà ouvert la voie, mais on ne connaissait pas encore assez l’IA et ses applications pour imaginer de vrais scénarios. Entre 2000 et 2010, notre entreprise a connu un véritable boom informatique. Non seulement la loi de Moore continue de suivre son cours, mais les hommes s'équipent. Les ordinateurs personnels deviennent de plus en plus accessibles, Internet se répand, les smartphones font leur apparition, etc. La connectivité et la mobilité annoncent l’ère de l’Homo Numericus. Jusqu’en 2010, il y a aussi des questions sur l’éthique de l’intégration de l’IA dans de nombreuses industries. Ainsi, en 2007, la Corée du Sud a dévoilé une charte d’éthique des robots dans le but de fixer des limites et des normes pour les utilisateurs comme pour les fabricants. En 2009, le MIT a lancé un projet réunissant des scientifiques de premier plan en IA pour réfléchir aux grandes pistes de recherche dans ce domaine. 1.2.3. Intelligence artificielle à partir de 2010 Depuis le début de notre décennie, l’IA a brillé grâce aux prouesses de Waston d’IBM. En 2011, ce super-cerveau a battu les deux plus grands champions de Jeopardy!. Un exercice loin d’être simple pour un ordinateur. Cependant, après Deep Blue, les années 2010 marquent un tournant dans la médiatisation de la recherche. La loi de Moore continue de guider l’avancement de l’intelligence artificielle, mais le traitement des données renforce tout cela. Pour effectuer une tâche, un système n’a besoin que de règles. Quand il s’agit de réfléchir ou de donner la réponse la plus juste possible, ce système doit apprendre. C’est ainsi que les chercheurs développent de nouveaux processus pour l’apprentissage automatique (machine learning) puis le deep learning. Rapidement, ces approches basées sur les données ont battu de nombreux records, incitant de nombreux autres projets à suivre cette voie. De plus, le développement des technologies pour l'intelligence artificielle permet de lancer une grande variété de projets et de ne plus penser à de l’informatique pure et dure, mais d’intégrer le traitement d’images. C’est à partir de ce moment que certaines entreprises prendront les devants. En effet, le problème avec l’IA n’est plus d’avoir le cerveau pour construire des systèmes, mais d'avoir Cours d’Intelligence Artificielle P age |7 des données à traiter. C’est pourquoi Google devient rapidement un pionnier. En 2012, la firme de Mountain View n’avait que quelques plans d'utilisation, contre 2 700 trois ans plus tard. En 2013, Facebook a ouvert le Facebook Artificial Intelligence Research (FAIR) dirigé par Yann Le Cun. Un tournant qui éloigne le géant de sa mission sociale pour se tourner vers les sciences. Amazon, Microsoft, Apple, Netflix, Tesla ne sont pas en reste non plus, tout comme de nombreuses entreprises chinoises. La gestion des données appliquera l’IA pour mieux comprendre les rayons X que les médecins, conduire des voitures, traduire, jouer à des jeux vidéo complexes, créer de la musique, voir à travers un mur, imaginer un jeu manquant une photo, … Les domaines où les intelligences artificielles sont impliquées sont plus que nombreux et cela soulève de nombreuses questions sur le rôle professionnel de l’Homme dans les années à venir. La place médiatique qu’occupe désormais l’intelligence artificielle ne laisse pas les questions concernant ce domaine entre les mains des chercheurs, mais dans le débat public. Cela crée logiquement autant de tension que d’excitation. Malheureusement, nous ne sommes qu’au début de l’intégration massive de ces technologies. Les décennies à venir nous réservent encore bien des surprises. 1.3. APPLICATIONS DE L’INTELLIGENCE ARTIFICIELLE Répondre à la question des possibilités actuelles de l’IA n’est pas facile car il est difficile de donner une réponse concise à cette question. En effet, cette réponse fait référence à de multiples activités appartenant à de nombreux sous-domaines. Cependant, plusieurs cas d’applications peuvent être mis en exergue : (1) Véhicules autonomes Définition 1.6 (Véhicule autonome). Un véhicule autonome, également appelé véhicule automatisé ou véhicule à délégation de contrôle, est un véhicule automobile capable de rouler - sur route ouverte - sans l’intervention d’un conducteur. L’utilisation de ce type de véhicule a montré leur efficacité. Exemple 1.3 (Véhicule Stanley). Un véhicule autonome baptisé Stanley a remporté la course de 220 km, ainsi que le Grand Challenge DARPA 2005, roulant sur le terrain accidenté du désert de Mojave à une vitesse moyenne de 35 km/h. Stanley est un Volkswagen Touareg bourré de radars, de télémètres laser pour Cours d’Intelligence Artificielle P age |8 percevoir l’environnement et de logiciels capables de prendre le contrôle du volant, des freins et de l’accélérateur. Exemple 1.4 (Véhicule Boss). L’année suivante, en 2006, le véhicule autonome Boss, développé à CMU, a remporté le « Urban Challenge » en roulant en toute sécurité dans le flux de circulation dans les rues d’une base de l’armée de l’air, en respectant le code de la route et en évitant les piétons et autres véhicules. (2) Reconnaissance automatique de la parole Définition 1.7 (Reconnaissance automatique de la parole). La reconnaissance automatique de la parole (souvent improprement appelée reconnaissance vocale) est une technique informatique qui analyse la voix humaine captée avec un microphone et la transcrit en texte lisible par machine. Exemple 1.5 (Système de United Airlines). Un système de reconnaissance automatique de la parole et de gestion du dialogue peut tenir toute la conversation avec un voyageur qui appelle United Airlines pour réserver un vol. (3) Reconnaissance de visage Définition 1.8 (Reconnaissance de visage). La reconnaissance de visage, appelée aussi reconnaissance faciale est une méthode d’identification ou de vérification de l’identité d’un individu à l’aide de son visage. Les systèmes de reconnaissance faciale peuvent être utilisés pour identifier des personnes sur des photos, des vidéos ou en temps réel. Exemple 1.6 (DeepFace). Un système de reconnaissance de visage nommé DeepFace, est créé en 2015 par un groupe de recherche de Facebook pour identifier les visages humains dans les images. DeepFace qui permet de déterminer si deux visages photographiés appartiennent à la même personne, avec un taux de précision de 97,25%. Lors du même test, les humains répondent correctement dans 97,53 % des cas, soit seulement 0,28 % de mieux que le programme Facebook. Exemple 1.7 (Jeux Olympique de 2020 à Tokyo). La reconnaissance faciale sera utilisée pour les Jeux Olympiques de 2020 à Tokyo (qui s’est du 23 juillet au 8 août 2021). Cette technologie sera utilisée pour identifier les personnes autorisées et leur accorder automatiquement l'accès, améliorant ainsi leur expérience et leur sécurité. Cours d’Intelligence Artificielle P age |9 Suite à la pandémie de COVID-19, la recherche s’oriente également vers des systèmes de recommandation de visage adaptés aux masques faciaux. (4) Filtre anti-spam Définition 1.9 (Lutte antipourriel). La lutte antipourriel, également appelée lutte antispam ou lutte anti-spamming ou bien lutte antipollupostage) est un ensemble de comportements, de systèmes et de moyens techniques et juridiques permettant de combattre le pourriel (ou « spam », e-mails publicitaires indésirables). Chaque jour, plusieurs entreprises (Google, Yahoo, etc.) utilisent des algorithmes qui classent des milliards d’e-mails comme spam, empêchant leurs destinataires de détruire ce qui représenterait 80 à 90 % de tous leurs messages s’ils étaient pas marqués comme indésirables auparavant. (5) Jeux vidéo Dans le domaine des jeux vidéo, l’IA est utilisée pour offrir une expérience de jeu de qualité. Cela peut être l’animation de personnages non-joueurs (qui sont généralement conçus pour servir d’adversaires, d’aides ou de compagnons lorsque les joueurs humains ne sont pas disponibles ou recherchés) en les faisant se comporter comme des êtres humains, ou en limitant les compétences du programme afin de donner au joueur un sentiment d’équité. Exemple 1.8 (Deep Blue). Deep Blue d’IBM est le premier ordinateur à battre le champion du monde d’échecs, le russe Garry Kasparov, sur un score de 3,5 contre 2,5 en 19971. Kasparov a même affirmé que certains coups portés par Deep Blue étaient « l’œuvre d’un grand maître humain ». Les champions humains ont étudié la défaite de Kasparov et ont pu remporter quelques victoires les années suivantes. Exemple 1.9 (AlphaGo). AlphaGo, un programme informatique capable de jouer au jeu de Go, développé par la société britannique DeepMind et racheté en 2014 par Google est aussi un des exemples célèbres de l’application de l’IA dans le domaine des jeux vidéo. En octobre 2015, AlphaGo a battu le Champion d’Europe de Go, le joueur français d’origine chinoise Fan Hui (maître de Go 2e dan professionnel), 5-0 en parties lentes et 3-2 en parties rapides. C’est la première fois qu’un programme de Go bat un joueur professionnel dans un match sans handicap sur un goban pleine grandeur (19 × 19). La nouvelle n’a été annoncée que le 1 Notons qu’en 1996, Kasparov a gagné Deep Blue 4 contre 2 en 1996. Cours d’Intelligence Artificielle P a g e | 10 27 janvier 2016 pour coïncider avec la publication d’un article dans la revue Nature décrivant l’algorithme utilisé. AlphaGo affronte en mars 2016 le joueur sud-coréen Lee Sedol (maître de Go 9e dan professionnel, niveau maximum), considéré comme le meilleur joueur du monde entre 2000 et 2010. Le match en 5 parties se termine par la victoire 4-1 de l’ordinateur. Avant même le dernier match et assuré de la victoire, AlphaGo est classé de manière honorifique « maître de Go 9e dan professionnel » par la Hanguk Kiwon (fédération coréenne de jeu de go). (6) Robotique Définition 1.10 (Robot). Un robot est un appareil mécatronique (combinant mécanique, électronique et informatique) conçu pour effectuer automatiquement des tâches qui imitent ou reproduisent, dans un domaine précis, des actions humaines. La conception de ces appareils fait l’objet d'une discipline scientifique, une branche de l’automatisation appelée robotique. Exemple 1.10 (Roomba). La société iRobot Corporation a vendu plus de deux millions d’exemplaires de Roomba, aspirateurs robots à usage domestique. Un grand détecteur de choc ainsi qu’un capteur infrarouge sont montés sur la partie avant du robot. Une poignée et des boutons de commande sont logés sur la face supérieure de l’appareil. Le dessous a deux roues de suspension principales et le mécanisme d’aspiration composé de deux brosses contrarotatives. Exemple 1.11 (PackBot). La même entreprise exporte également vers l’Irak et l’Afghanistan le PackBot le plus redouté qui est utilisé pour identifier les substances dangereuses, déminer ou localiser les tireurs d’élite. Ils ont également été utilisés pour faciliter la recherche dans les débris du World Trade Center après le 11 septembre 2001. (7) Traduction automatique Définition 1.11 (Robot). La traduction automatique désigne la traduction brute d’un texte entièrement réalisée par un ou plusieurs programmes informatiques. Dans le cas de la traduction d’une conversation audio, en direct ou enregistrée, on parle de transcription automatique. Plusieurs entreprises comme Google (Google Translate), Microsoft (Microsoft Traduction) Cours d’Intelligence Artificielle P a g e | 11 Exemple 1.12. Le programme informatique traduit automatiquement de l’arabe à l’anglais, permettant à un anglophone de lire le titre « Ardogan confirme que la Turquie n’accepterait aucune pression, en leur demandant instamment qu’ils reconnaissent Chypre. ». Le programme utilise un modèle statistique construit à partir d’échantillons de traduction arabe-anglais et d'échantillons de textes anglais totalisant deux milliards d'occurrences de mots. Aucun des informaticiens de l'époque ne parlait arabe, mais ils parlaient le langage des statistiques et des algorithmes d'apprentissage. Exemple 1.13. En 2018, un outil d’IA développé par Quantmetry, une jeune société de conseil en IA, réussit à traduire en douze heures un livre de 800 pages de texte, de graphiques et de formules mathématiques, écrit avec LaTeX. Exemple 1.14. Grâce à l’IA, depuis 2020, Google a rendu la traduction automatique de discours ou de conversation orales accessible depuis des téléphones portables. (8) Médias sociaux Tout d’abord, il faut bien faire la différence entre les deux termes dont la plupart des gens abusent, en particulier les gens de la presse, à savoir : « réseau social » et « réseau social ». En fait, de nombreuses personnes ont aujourd’hui tendance à utiliser les deux termes de manière interchangeable. Définition 1.12 (Réseau social). Un réseau social est un ensemble d’acteurs ou entités sociaux (individus et/ou organisations) reliés par des interactions sociales, constituant un groupe ayant un sens (famille, collègues, ami du groupe, communauté, etc.). Donc, un réseau social est mathématiquement modélisé comme un réseau (au sens de la théorie des graphes) où mes nœuds sont les individus et/organisation et les arêtes représentent des interactions sociales. En revanche, Définition 1.13 (Média social). un média social est une plateforme web qui est utilisée pour construire les réseaux sociaux (virtuels) et ; crée et publier/partager certains contenus générés par l’utilisateur. Les technologies des médias sociaux prennent différentes formes telles que - des blogs (Blogger, Skyblog) ; des microblogs (Twitter) ; des sites de réseaux sociaux généralistes ou réseaux sociaux numériques généralistes (Facebook, MySpace); Cours d’Intelligence Artificielle P a g e | 12 - des sites de réseaux sociaux scientifiques ou réseaux sociaux numériques scientifiques (Research Gate, Academia); des sites de réseaux sociaux professionnels ou réseaux sociaux numériques professionnels (LinkedIn, Viadeo) ; des outils de discussion (WhatsApp, Facebook Messanger, Telegram) ; des plateformes de partage de photos (Instragram, Fricker) ; des plateformes de partage de vidéos (TikTok, YouTube) ; des plateformes de partage de musique (Deezer, SoundCloud) ; des projets collaboratifs (Wikipedia); des forums (Gaia Online, ) ; du jeu social et des mondes virtuels (World of Warcraftet, Mafia Wars) ; etc. Cependant, les sites de médias sociaux tels que Facebook, Twitter et Snapchat contiennent des milliards de profils d’utilisateurs, qui doivent être stockés et gérés de manière très efficace. L’IA permet d’organiser et de gérer des quantités massives de données (Big Data). Les techniques d’IA peuvent analyser de nombreuses données pour identifier les dernières tendances, les hashtags et les besoins des différents utilisateurs. Cours d’Intelligence Artificielle P a g e | 13 EXERCICES NON RESOLUS2 Exercice 2.1. Définir dans vos propres termes : (1) Intelligence ; (2) Intelligence artificielle. Exercice 2.2. Chaque année, on décerne le prix Lœbner au programme le plus à même de réussir à une version du test de Turing. Recherchez des informations sur le dernier lauréat de ce prix. (1) Quelles techniques a-t-il utilisées ? (2) En quoi a-t-il fait avancer le domaine de l’IA ? Exercice 2.3. (1) Est-ce que les actions réflexes (comme ôter sa main d’un poêle brûlant) sont rationnelles? (2) S’agit-il d’actions intelligentes ? Exercice 2.4. Dans quelle mesure les systèmes informatiques suivants sont-ils des exemples d’intelligence artificielle : – – – – Lecteur de code à barres du supermarché. Moteurs de recherche sur Internet. Téléphone avec menu par reconnaissance vocale. Algorithme de routage de paquets pour Internet qui s’adapte dynamiquement à l’état du réseau. Exercice 2.5. « Les ordinateurs ne peuvent certainement pas être intelligents ; ils ne peuvent faire que ce que leurs programmeurs leur disent de faire. ». 2 La plupart des exercices ici sont tire de la troisième édition du livre de Stuart Russel et Peter Norvig intitulé « Intelligence artificielle. Avec plus de 500 exercices ». Cours d’Intelligence Artificielle P a g e | 14 La dernière proposition est-elle vraie, et entraîne-t-elle logiquement la première ? Exercice 2.6. « Les animaux ne peuvent certainement pas être intelligents ; ils ne peuvent faire que ce que leur commandent leurs gènes. ». La dernière proposition est-elle vraie, et entraîne-t-elle logiquement la première ? Cours d’Intelligence Artificielle P a g e | 15 CHAPITRE 2 : SYSTÈMES EXPERTS 2.1. INTRODUCTION AUX SYSTÈMES EXPERTS 2.1.1. Notion de système expert Peu de temps après l’avènement des ordinateurs modernes à la fin des années 40 et au début des années 50, les chercheurs ont commencé à réaliser l’immense potentiel de ces machines pour la société moderne. L’un des premiers défis a été de rendre une telle machine capable de « penser » comme les humains. En particulier, rendre ces machines capables de prendre des décisions importantes comme le font les humains. Parmi les défis qui se sont présentés, il y avait le domaine médical où l’on devrait avoir les machines qui peuvent prendre des décisions comme des médecins, qui sont des experts dans le domaine. C’est ainsi qu’à la fin des années 1950, juste après l’arrivée de l’ère de l’information, les chercheurs ont commencé à expérimenter la possibilité d’utiliser la technologie informatique pour imiter la prise de décision humaine. Un cas précis est lorsque les chercheurs biomédicaux ont commencé à créer des systèmes assistés par ordinateur pour des applications de diagnostic en médecine et en biologie [Ledley et Lusted, 1959][Weiss et al., 1978]. Ces systèmes de diagnostic précoce utilisaient les symptômes des patients et les résultats des tests de laboratoire comme données d’entrée pour générer un résultat diagnostique. Ces systèmes ont souvent été décrits comme les premières formes de systèmes experts. Cependant, les chercheurs s’étaient rendu compte qu’il y avait des limites importantes lors de l’utilisation de méthodes traditionnelles telles que l’appariement de modèles statistiques d’organigrammes ou la théorie des probabilités. Cependant, Définition 2.1 (Système expert). un système expert est un système informatique émulant la capacité de prise de décision d’un expert humain. Cours d’Intelligence Artificielle P a g e | 16 Autrement dit, c’est un outil capable de reproduire les mécanismes cognitifs d’un expert, dans un domaine particulier. Il est précisément capable de répondre aux questions en raisonnant à partir de faits et de règles connus. Les systèmes experts sont conçus pour résoudre des problèmes complexes en raisonnant à travers des bases de connaissances, représentés principalement comme des règles « Si P (fait ou prémisse) Alors Q (nouveau fait ou conclusion) » plutôt que par un code procédural conventionnel. Cette situation antérieure a progressivement conduit au développement de systèmes experts, qui utilisaient des approches fondées sur la connaissance. Ces premiers systèmes experts (appliqués en médecine) étaient le système expert MYCIN, conçu par Shortliffe et Buchanan [1975] ; le système expert INTERNIST-I, conçu par Millet et al. [1982] et plus tard, au milieu des années 1980, le CADUCEUS, conçu par Feigenbaum et McCorduck [1984]. 2.1.2. Apports des systèmes experts Les motivations qui ont poussé les entreprises à mettre en place des systèmes experts peuvent être regroupées en trois catégories : - La gestion de l’expertise; L’augmentation de la capacité de l’expert ; La diffusion de la connaissance. 2.1.2.1. Gestion de l’expertise Le rôle d’une entreprise est de prendre en charge l’intelligence (les ressources humaines) qu’elle utilise qui naturellement est distribuée, de la formaliser et de la sauvegarder. En effet, les experts sont des hommes rares, très chers et difficiles à remplacer. D’où la nécessité pour l’entreprise de s’approprier la technique des systèmes experts et ainsi conserver l’expertise (savoir et savoir-faire de l’expert) sous une forme claire et accessible à tous. Le système expert devient alors un moyen de formation. 2.1.2.2. Augmentation de la capacité de l’expert Un système expert peut donc assister un expert humain (spécialiste du domaine) car ses connaissances proviennent de plusieurs experts humains. En revanche, le spécialiste du domaine étant humain, il peut donc être sujet à la fatigue, à l’oubli, etc. alors que le système expert est insensible à de telles considérations. Il est ainsi possible, grâce à un système expert, de trouver plus rapidement une solution à un problème en donnant accès aux connaissances d’autres experts humains. Cours d’Intelligence Artificielle P a g e | 17 2.1.2.3. Diffusion de la connaissance Les experts étant humains, il est souvent nécessaire pour une entreprise que leur expertise soit répartie dans de nombreux services afin de décentraliser la prise de décision et ainsi gagner en rapidité et en cohérence. Ainsi, la répartition permet aux utilisateurs d’avoir une expertise à tout moment. 2.2. ARCHITECTURE ET ACTEURS D’UN SYSTÈME EXPERT 2.2.1. Architecture d’un système expert Le composant central d’un système expert est l’ensemble de ses connaissances. Ces connaissances peuvent regrouper des faits réels sous forme assertionnelle (ou sous forme des phrases) et des moyens (opérations) pour ajouter de nouveaux faits et un autre pour les consulter. Ces moyens sont des règles. Ces opérations peuvent impliquer l’inférence, c’està-dire la dérivation de faits nouveaux à partir d’anciens. En résumé, un système expert est essentiellement composé de deux sous-systèmes : la base de connaissances et le moteur d’inférence. (1) La base de connaissances représente des faits et des règles. Il se compose de faits dans un domaine particulier ainsi que de règles pour résoudre un problème, de procédures et de données intrinsèques pertinentes au domaine. Pour faire simple, Base de connaissances = Base de faits + Base de règles. Dans les premiers systèmes experts tels que Mycin et Dendral, ces faits étaient principalement représentés comme des affirmations plates sur les variables. Dans les systèmes experts ultérieurs développés avec des shells commerciaux, la base de connaissances a pris plus de structure et a utilisé des concepts de programmation orientée objet. Le monde était représenté sous forme de classes, de sous-classes et d’instances et les assertions ont été remplacées par des valeurs d’instances d’objets. Les règles fonctionnaient en interrogeant et en affirmant les valeurs des objets. (2) Le moteur d’inférence a pour fonction de récupérer les connaissances pertinentes dans la base de connaissances, de les interpréter et de trouver une solution pertinente au problème de l’utilisateur. Le moteur d’inférence acquiert les règles de sa base de connaissances et les applique aux faits connus, appelés prémisses pour inférer de nouveaux faits, appelés conclusions. Les moteurs d’inférence peuvent également inclure une explication et des capacités de débogage. Cours d’Intelligence Artificielle P a g e | 18 Somme toute, Système expert = Base de connaissances + Moteur d’inférence. Base de connaissances Base de faits Moteur d’inférence Base de règles Système expert Figure 2.1. Architecture d’un système expert. Il existe de nombreux types de moteurs d’inférence, capables de traiter différentes formes de règles logiques pour déduire de nouveaux faits à partir de la base de connaissances. Mais avant d’aller plus loin avec les moteurs d’inférence, intéressons-nous d’abord à quelques rappels (et éventuellement à quelques ajouts sur la logique mathématique). Ces concepts vous permettent d’implémenter correctement les moteurs d’inférence. 2.2.2. Acteurs de réalisation d’un système expert Il y a cinq acteurs dans la réalisation d’un système expert. (1) L’expert, qui est le spécialiste du domaine. Il s’agit d’une personne qui a longuement travaillé dans un domaine et qui connait tous les rouages, il possède le savoir et le savoir-faire du domaine. Compte tenu de son rôle-clé dans la réalisation d’un système expert, l’expert (ou mieux les experts) doi(ven)t être suffisament dispobile(s) lors de la phase d’acquisition des connaissances et le suivi de l’application. (2) Le cogniticien ou ingénieur des connaissances, qui est la personne chargée d’extraire les connaissances des experts et de proposer plusieurs modèles de bases de connaissances reproduits le plus fidèlement possible. C’est une personne qui permet de définir le périmètre du système expert à concevoir. Il permet également d’intégrer les informations extraites dans la base de connaissances sous forme rationnelle, de tester et valider le système expert et le produit. Cours d’Intelligence Artificielle P a g e | 19 (3) Les développeurs, qui sont des personnes qui devront traduire en une application à l’aide un outil de développement approprié tel qu’un langage de programmation 3. Naturellement, ces personnes sont des informaticiens. (4) Les utilisateurs, qui sont des personnes qui devront utiliser l’outil conçu. En effet, les utilisateurs doivent travailler en collaboration avec les développeurs, afin que ces derniers puissent inclure leurs désidératas dans la conception des interfaces utilisateurs. (5) Les managers, qui sont des personnes pour qui le système expert est développés. Dans les deux sections suivantes, nous détaillons les différents composants d’un système expert. 2.3. BASE DE CONNAISSANCES Comme signalé plus haut, la base de connaissances est composée de deux types de connaissances : des connaissances sous forme des assertions (appelées faits) ainsi que des connaissances sous forme des opérations (appelées règles) pour résoudre un problème. Exemple 2.1 (Pour le diagnostic de la COVID-19). Nous pouvons utiliser les faits et règles suivants pour un système expert permettant de diagnostiquer la COVID-19. Faits : 𝐹1 : « Le patient a la fièvre » ; 𝐹2 : « Le patient a des frissons »; 𝐹3 : « Le patient a la toux sèche »; 𝐹4 : « Le patient ressent la fatigue »; 𝐹5 : « Le patient a des courbatures » ; 𝐹6 : « Le patient a des maux de gorge » ; 𝐹7 : « Le patient a des symptômes gastro-intestinaux (douleur abdominale, diarrhée, vomissements) »; 𝐹8 : « Le patient a la conjonctivite » ; 𝐹9 : « Le patient a des maux de tête » ; 𝐹10 : « Le patient a une perte de l’odorat ou du goût » ; 𝐹11 : « Le patient a une éruption cutanée » ; 𝐹12 : « Le patient a une décoloration des doigts » ; Les langages de programmation les plus adaptés à l’IA sont le Python, le R, le Prolog, le Lisp, le Scheme, le Scala, le Julia, mais aussi le Java, le C++ et le C#. 3 Cours d’Intelligence Artificielle P a g e | 20 𝐹13 : « Le patient a une décoloration des orteils » ; 𝐹14 : « Le patient a des difficultés à respirer (ou essoufflement) » ; 𝐹15 : « Le patient a la sensation d’oppression (ou douleur au niveau de la poitrine) » ; 𝐹16 : « Le patient a une perte d’élocution » ; 𝐹17 : « Le patient a une perte de motricité ». Règles : 𝑅1 : Si ((𝐹1 𝑒𝑡 𝐹2 𝑒𝑡 𝐹3 ) 𝑒𝑡 (𝐹4 𝑜𝑢 𝐹5 𝑜𝑢 𝐹6 𝑜𝑢 𝐹7 𝑜𝑢 𝐹8 𝑜𝑢 𝐹9 𝑜𝑢 𝐹10 𝑜𝑢 𝐹11 𝑜𝑢 𝐹12 𝑜𝑢 𝐹13 )), alors 𝐹18 . 𝑅2 : Si ((𝐹1 𝑒𝑡 𝐹2 𝑒𝑡 𝐹3 ) 𝑒𝑡 (𝐹4 𝑜𝑢 𝐹5 𝑜𝑢 𝐹6 𝑜𝑢 𝐹7 𝑜𝑢 𝐹8 𝑜𝑢 𝐹9 𝑜𝑢 𝐹10 𝑜𝑢 𝐹11 𝑜𝑢 𝐹12 𝑜𝑢 𝐹13 )) , 𝑒𝑡 (𝐹14 𝑒𝑡 𝐹15 𝑒𝑡 𝐹16 𝑒𝑡 𝐹17 ), alors 𝐹19 . avec 𝐹18 : « Le patient a la forme bénigne de la COVID-19 » ; 𝐹19 : « Le patient a la forme grave de la COVID-19 ». Pour constituer une base de connaissances, la démarche est la suivante : L’acquisition (ou l’extraction) de connaissances, c’est-à-dire la manière de recueillir du savoir auprès d’un expert ; La représentation des connaissances extraites à l’expert, c’est-à-dire sa mémorisation sous une forme utilisable dans la base de faits ; Le traitement des connaissances représentées dans la base de faits, c’est-à-dire son utilisation dans la résolution de problèmes selon les règles de la base de règles. 2.3.1. Base de faits Les faits décrivent des situations considérées comme établies (c’est-à-dire faits avérés : ce sont les entrées) ou à établir (c’est-à-dire faits poursuivis : ce sont des connaissances issues de l’application de règles). Dans cette sous-section, nous verront comment recueillir et représenter les faits. 2.3.1.1. Acquisition des connaissances C’est dans l’étape d’acquisition des connaissances qu’on aboutit à la détermination des faits (et éventuellement les règles). C’est en effet l’un des problèmes délicats de la construction de systèmes experts. Comment décrire le comportement d’un expert face à un problème particulier, et comment le résoudre, telle est la question. Car ce que l’on souhaite Cours d’Intelligence Artificielle P a g e | 21 obtenir n’est ni plus ni moins que l’expérience, la connaissance pratique de l’expert, et non la théorie que l’on peut trouver dans les livres. Ainsi, pour procéder à cette acquisition de connaissances, nous procédons de trois manières : (1) La transmission des connaissances, qui est la phase au cours de laquelle le cogniticien prépare manuellement une représentation des connaissances que l’expert utilise pour résoudre un problème spécifique. (2) Le transfert des connaissances, qui est le mode d’acquisition dans lequel on se passe du cogniticien lors de la réalisation du système expert. (3) L’acquisition automatique des connaissances, appelée également apprentissage automatique, qui est le mode d’acquisition qui s’appuie sur des approches mathématiques et statistiques pour donner aux machines la capacité « d’apprendre » d’eux-mêmes à partir de données, c’est-à-dire d’améliorer leurs performances dans la résolution de tâches sans être explicitement programmées pour chacune. 2.3.1.2. Représentation des connaissances La représentation des connaissances constitue un enjeu majeur en IA. Pour représenter ces faits on a recours à un formalisme ou mode de représentation. En effet, la manière de représenter les connaissances associées à un problème considéré peut rendre sa résolution plus ou moins aisée. De manière générale, l’utilisation de plusieurs modes de représentation des connaissances permet une mise en œuvre plus efficace des outils de traitement des connaissances dans le cadre de la résolution de problèmes spécifiques. Ainsi, nous distinguons trois types de mode de représentations des connaissances : (1) La représentation déclarative, qui crée des fragments de connaissances indépendants les uns des autres, donc facilement modifiables. Ces modes de représentations sont lisibles, économiques, souples et faciles à lire. On a parmi ces modes de représentation : - La logique des prédicats ; - Les réseaux sémantiques ; - Les graphes conceptuels ; - Les réseaux de Bayes. (2) La représentation procédurale, qui rend explicites les interrelations entre les fragments de connaissances, mais qui est difficilement modifiable. Cours d’Intelligence Artificielle P a g e | 22 On a parmi ces modes de représentation : - Les automates à états finis ; - Les programmes. (3) La représentation mixte, qui combinent les deux modes de représentation précédents. Nous pouvons citer parmi ces modes de représentation les objets structurés : les cadres, les schémas, les scripts, les objets, etc. A. Logique des prédicats (du premier ordre) La logique des prédicats est un langage formel pour la représentation des connaissances. En mathématiques et en informatique, différents langages sont utilisés, selon le domaine (algèbre, analyse, géométrie, IA, base de données, ou autre), qui se distinguent par les symboles utilisés. Puisque la logique des propositions est insuffisante pour formaliser le raisonnement mathématique et de l’IA, la logique des prédicats est la logique des phrases usuelles ou des faits usuels. Cette formalisation des raisonnements mathématiques a été proposée par Friedrich L.G. Frege, entre la fin du 19ème siècle et le début du 20ème siècle, à partir duquel est né le calcul des prédicats. En effet, cette logique est complète [Kurt Gödel, 1929], en ce sens que nous pouvons donner un nombre fini de principes (axiomes logiques, schémas d’axiomes logiques et règles de déduction) suffisants pour déduire mécaniquement toutes les lois logiques. A.1. Syntaxe de la logique des prédicats Lorsque nous parlons de syntaxe, nous faisons référence à la façon dont les symboles se combinent pour former des énoncés ou ce que nous appelons des « faits » pour un système expert. Il s’agit de définir le langage de la logique des prédicats par les règles d’écriture des énoncés, ce qui permettra leur lecture. Exemple 2.2. Soit les expressions suivantes : (E1) : Tout planète est un astre non lumineux; (E2) : Il y a des chefs d’état qui sont des femmes. (E3) : Tout nombre pair 𝑥 est égal à 2𝑘 + 1, avec 𝑘 ∈ ℤ. On peut remarquer que ces expressions ont des éléments que le langage de la logique des propositions n’a pas : Dans les deux premières expressions, il y a les éléments tels que « Tout » et « Il y a » qui expriment la quantité des « planète » ou des « chefs d’état » respectivement. De même Cours d’Intelligence Artificielle P a g e | 23 pour la troisième expression qui possède l’élément « Tout » qui exprime la quantité des « 𝑥 ». Il s’agit des quantificateurs. Dans les trois expressions, « planète », « chefs d’état », « 𝑥 » sont des grandeurs dont les valeurs sont provisoirement indéterminées (ou inconnues) : ce sont donc des variables, ainsi que 𝑘, tandis que 2 et 1 sont des constantes. Les expressions « … est un astre », « … sont des femmes » et « 𝑥 = 2𝑘 + 1 » sont des propriétés que doivent respecter les objets : il s’agit des relations ou encore prédicats. Hormis les éléments cités ci-haut, il y a encore d’autres. Pour les mettre en évidence, nous pouvons reformuler la première et la troisième de la manière suivante : (E1) : Tout planète est un astre et est non lumineux; (E3) : Tout nombre pair 𝑥 est égal à 2𝑘 + 1 et 𝑘 ∈ ℤ. Les composantes en gras (« et » et « non ») sont des connecteurs. 1. Constituants du langage de logique des prédicats Les constituants syntaxiques de base de la logique des prédicats du premier ordre sont des symboles subdivisés en deux parties: (1) La première partie, commune à tous les langages (donc même pour le langage de la logique des propositions), comprend les composantes suivantes : Les symboles de variables qu’on notera souvent par 𝑥, 𝑦, 𝑧, ⋯. Les symbole de ponctuation : ) la parenthèse fermante et ( la parenthèse ouvrante ; Les symboles de connecteur : ∧ et ¬, appelés respectivement le symbole de négation et le symbole de conjonction. On dit que le symbole de négation est unaire (ou d’arité 1) et le symbole de négation est binaire (ou d’arité 2). Intuitivement, les connecteurs représentent les mots utilisés pour combiner des énoncés simples en énoncés composés. Le symbole de quantificateur : ∀. Ce quantificateur est dit universel (lire « pour tout… » ou « quelque soit … ») ; (2) La deuxième partie, qui, elle varie d’un langage à un autre, est composé de composantes suivantes : Les symboles de constantes qu’on notera 𝑎, 𝑏, 𝑐, ⋯ ou éventuellement indexé 𝑐0 , 𝑐1 , ⋯ , 𝑐𝑛 , ⋯. Les symboles de fonctions ayant une arité 𝒏. On les appelle aussi des symbole des fonction 𝒏-aires. Les symboles de relations (ou prédicats) ayant une arité 𝒏. Cours d’Intelligence Artificielle P a g e | 24 Le symbole d’égalité =, qui est un symbole de relation binaire. Les langages où ce symbole d’égalité apparaît s’appellent des langages égalitaires. Les symboles de constante, de fonction et de relation sont parfois appelés « symboles non logiques » du langage. Exemple 2.3 (Langage de l’arithmétique). Si on se donne - pour constantes les deux symboles 0 et 1 ; - pour symboles de fonctions binaires + et × ; et - pour symboles de prédicats binaires les symboles = et <. Alors le langage utilisé peut être interprété comme étant celui de l’arithmétique. couronne Exemple 2.4. Soit la figure ci-dessous : sur la tête personne du roi personne frère R $ J frère jambe gauche jambe gauche Figure 2.2. Un modèle que nous allons nommer « modèle Richard Cœur de Lion ». Le langage de ce modèle peut avoir des éléments suivants : - les deux symboles 𝑅𝑖𝑐ℎ𝑎𝑟𝑑 et 𝐽𝑒𝑎𝑛, comme constantes ; le symbole 𝐽𝑎𝑚𝑏𝑒𝐺𝑎𝑢𝑐ℎ𝑒, comme fonction ; les symboles 𝐹𝑟è𝑟𝑒, 𝑆𝑢𝑟𝐿𝑎𝑇ê𝑡𝑒, 𝑃𝑒𝑟𝑠𝑜𝑛𝑛𝑒, 𝑅𝑜𝑖 et 𝐶𝑜𝑢𝑟𝑜𝑛𝑛𝑒, comme prédicats. - Cours d’Intelligence Artificielle P a g e | 25 2. Formule Un terme est une expression logique qui renvoie à un objet. Formellement, Définition 2.2 (Terme). Les termes sont définis par induction : (i) Une variable est un terme ; (ii) Un symbole de constante est un terme ; (iii) Si 𝑓 est un symbole de fonction 𝑚-aire et 𝑡1 , 𝑡2 , ⋯ , 𝑡𝑚 sont des termes, alors 𝑓(𝑡1 , 𝑡2 , ⋯ , 𝑡𝑚 ) est un terme ; (iv) Une suite de symboles n’est un terme que si elle peut être déterminée comme telle au moyen des conditions de (i) – (iii). Exemple 2.5. Dans le langage des groupes, si 𝑥 et 𝑦 désignent des variables, (1) « 𝑥 » et « 𝑦 » sont des termes ; (2) « 𝑥 ∗ 𝑦 », « 𝑥 ∗ 𝑒 » et « e ∗ 𝑒 » sont des termes. Exemple 2.6. Dans le langage de la figure 2.2, les symboles de constante 𝐽𝑒𝑎𝑛 et 𝑅𝑖𝑐ℎ𝑎𝑟𝑑 sont des termes ; et 𝐽𝑎𝑚𝑏𝑒𝐺𝑎𝑢𝑐ℎ𝑒 (𝐽𝑒𝑎𝑛) est aussi un terme. Ayant maintenant des termes pour désigner des objets et des symboles de prédicat pour désigner des relations, nous pouvons les combiner pour écrire des formules atomiques qui énoncent des faits. Une formule atomique (ou simplement un atome) est formée à partir d’un symbole de prédicat. Formellement, Définition 2.3 (Formule atomique). les formules atomiques sont définies par induction : (i) 𝑡1 = 𝑡2 est une formule atomique, où 𝑡1 et 𝑡2 sont des termes ; (ii) Si 𝑃 est un symbole de prédicat (ou de relation) 𝑛-aire et 𝑡1 , ⋯ , 𝑡𝑛 sont des termes, alors 𝑃(𝑡1 , ⋯ , 𝑡𝑛 ) est une formule atomique. Exemple 2.7. L’expression 𝐹 ≡ «𝐹𝑟è𝑟𝑒(𝑅𝑖𝑐ℎ𝑎𝑟𝑑, 𝐽𝑒𝑎𝑛)» est une formule atomique. Cette expression énonce que « Richard Cœur de Lion et le frère du roi Jean ». Cours d’Intelligence Artificielle P a g e | 26 Les formules atomiques peuvent avoir des termes composés. Exemple 2.8. L’expression 𝐺 ≡ «𝑀𝑎𝑟𝑖é(𝑃è𝑟𝑒(𝑅𝑖𝑐ℎ𝑎𝑟𝑑 ), 𝑀è𝑟𝑒(𝐽𝑒𝑎𝑛))» est une formule atomique. Cette expression énonce que le père de « Richard Cœur de Lion est marié à la mère de Jean ». Nous pouvons combiner les formules atomiques avec les connecteurs logiques et les quantificateurs pour former les formules. Formellement, Définition 2.4 (Formule). les formules sont définies par induction : (i) Une formule atomique est une formule ; (ii) Si 𝐹 et 𝐺 sont des formules, alors (𝐹 ∧ 𝐺 ) et (¬𝐹 ) sont des formules ; (iii) Si 𝑥 est une variable et 𝐹 une formule, alors (∀𝑥)𝐹 est une formule ; (iv) Une suite de symboles n’est une formule que si elle peut être déterminée comme telle au moyen des conditions de (i) – (iii). Exemple 2.9. L’expression 𝐹 ≡ «¬𝐹𝑟è𝑟𝑒 (𝐽𝑎𝑚𝑏𝑒𝐺𝑎𝑢𝑐ℎ𝑒 (𝑅𝑖𝑐ℎ𝑎𝑟𝑑 ), 𝐽𝑒𝑎𝑛)» est une formule. Exemple 2.10. L’expression 𝐺 ≡ «𝐹𝑟è𝑟𝑒 (𝑅𝑖𝑐ℎ𝑎𝑟𝑑, 𝐽𝑒𝑎𝑛) ∧ 𝐹𝑟è𝑟𝑒(𝐽𝑒𝑎𝑛, 𝑅𝑖𝑐ℎ𝑎𝑟𝑑)» est une formule. 3. Simplification de l’écriture Les autres abréviations utilisées couramment dans notre langage sont: (1) (𝐹 ∨ 𝐺 ) pour (¬(¬𝐹 ∧ ¬𝐺 )) ; (2) (𝐹 ⟶ 𝐺 ) pour (¬𝐹 ∧ 𝐺 ) ; (3) (𝐹 ⟷ 𝐺 ) pour ((𝐹 ⟶ 𝐺 ) ∧ (𝐺 ⟶ 𝐹 )); (4) (𝐹 ⊻ 𝐺 ) pour (¬(𝐹 ⟷ 𝐺 )). Les quatre abréviations introduites ci-haut s’appellent respectivement le symbole de disjonction (inclusive), le symbole d’implication, le symbole de double implication (ou bi-implication) et le symbole de disjonction exclusive. Exemple 2.11. Si nous posons 𝐹 ≡ «𝑅𝑜𝑖(𝑅𝑖𝑐ℎ𝑎𝑟𝑑 )» et 𝐺 ≡ «𝑅𝑜𝑖(𝐽𝑒𝑎𝑛)» sont des formules, alors 𝐹 ∨ 𝐺 et ¬𝐹 ⟶ 𝐺 sont des formules. Cours d’Intelligence Artificielle P a g e | 27 Il est avantageux de s’accorder sur certaines conventions pour éviter l’utilisation de nombreuses parenthèses lors de l’écriture de propositions [Mendelson, 2015]. Cela facilitera la lecture d’expressions compliquées. Premièrement, nous pouvons omettre les parenthèses extérieures d’une proposition. Deuxièmement, nous définissons arbitrairement l’ordre de force décroissant en fonction des connecteurs : ¬,∧,∨, ⟶, ⟷. Ce qui signifie qu’en l’absence de parenthèses, ⟷ domine sur ⟶, et domine a fortiori ∨,∧ et ¬. 4. Quantificateurs Une fois que l’on dispose d’une logique qui autorise des objets, on souhaite pouvoir exprimer des propriétés qui s’appliquent à des collections entières d’objets, au lieu d’énumérer les objets par leur nom. Il existe un quantificateur de base, le quantificateur universel ∀ (lire « pour tout… » ou « quelque soit … »). Outre les abréviations introduites ci-haut, nous introduisons d’autres : (1) (∃𝑥)𝐹 pour ¬((∀𝑥)¬𝐹) : il s’agit du quantificateur existentielle (lire « il existe (au moins) un… ») ; (2) (∀𝑥1 , 𝑥2 , ⋯ , 𝑥𝑛 )𝐹 ou souvent sans parenthèses ∀𝑥1 , 𝑥2 , ⋯ , 𝑥𝑛 𝐹 pour (∀𝑥1 ), (∀𝑥2 ) ⋯ (∀𝑥𝑛 )𝐹 ; (3) (∃𝑥1 , 𝑥2 , ⋯ , 𝑥𝑛 )𝐹 ou souvent sans parenthèses ∃𝑥1 , 𝑥2 , ⋯ , 𝑥𝑛 𝐹 pour (∃𝑥1 ), (∃𝑥2 ) ⋯ (∃𝑥𝑛 )𝐹. Nous définissons arbitrairement l’ordre de force décroissant en fonction des symboles utilisés : ¬, ∀, ∃, ∧, ∨, ⟶, ⟷. Ce qui signifie qu’en l’absence de parenthèses, ⟷ domine sur ⟶, et domine a fortiori ∨, ∧, ∃, ∀ et ¬. Exemple 2.12. 𝐹 ≡ « ((∀𝒙)𝐺𝑒𝑛𝑡𝑖𝑙 (𝑥)) ∧ ((∃𝑥)(∀𝑦)𝐴𝑚𝑖𝑠(𝑥, 𝑦)) » est une formule. Cette expression énonce que « Tout 𝑥 est gentil et il existe un 𝑥 tel que pour tout 𝑦, 𝑥 est ami avec 𝑦 ». Exemple 2.13. 𝐺 ≡ « (∀𝒙)𝑅𝑜𝑖(𝑥) ⟶ 𝑃𝑒𝑟𝑠𝑜𝑛𝑛𝑒(𝒙) » est une formule. Cette expression énonce que « Tous les rois sont des personnes ». Cours d’Intelligence Artificielle P a g e | 28 A.2. Sémantique de la logique des prédicats Une fois que nous savons comment combiner les symboles de manière appropriée, nous devons maintenant donner un sens à ses propositions. C’est l’objectif de la sémantique. Il s’agit donc de déterminer les règles d’interprétation des prédicats. 1. Modèle Définition 2.5 (Modèle). Soit ℒ un langage. On appelle modèle du langage 𝓛 ou 𝓛structure, toute structure ℳ constituée : d’un ensemble non vide ℳ, appelé ensemble de base (ou ensemble sous-jacent au) du modèle ℳ ; pour chaque symbole de constante 𝑐 de ℒ, d’un élément 𝑐ℳ de 𝑀, appelé interprétation du symbole 𝒄 dans le modèle ℳ ; pour chaque symbole de fonction 𝑛-aire 𝑓 de ℒ, d’une fonction 𝑓ℳ , de 𝑀𝑛 dans ℳ, appelée interprétation du symbole 𝒇 dans le modèle ℳ ; pour chaque symbole de prédicat (ou de relation) 𝑛-aire 𝑃 (autre que =) de ℒ, d’un sousensemble 𝑃ℳ de 𝑀. 2. Conditions de vérité Un modèle ℳ donne une valeur de vérité (vrai ou faux) à toute formule close du langage. Cela donne un sens à ces formules. Sachant que (∃𝑥)𝑃 ≡ ¬((∀𝑥)¬𝑃), définissons les règles relatives au quantificateur universel et existentiel. 𝐹 = ∀𝑥𝑃 : Si l’une des formules obtenues en substituant un élément de 𝑀 à toutes les occurrences libres de 𝑥 dans l’interprétation de 𝑃 est fausse alors 𝐹 est fausse, sinon, si 𝑃 n’a pas d’autres variables libres que 𝑥, 𝐹 est vraie. (ii) 𝐹 = ∃𝑥𝑃 : Si l’une des formules obtenues en substituant un élément de 𝑀 à toutes les occurrences libres de 𝑥 dans l’interprétation de 𝑃 est vraie alors 𝐹 est vraie, sinon, si 𝑃 n’a pas d’autres variables libres que 𝑥, 𝐹 est fausse. (iii) (i) et (ii) permettent de définir la véracité et la fausseté de toutes les formules closes, c’est-à-dire sans variables libres. (i) Lorsqu’il s’agit d’un modèle égalitaire, on peut définir, à partir des deux quantificateurs précédents (et de l’égalité), le quantificateur suivant, appelé quantificateur existentiel d’unicité : Cours d’Intelligence Artificielle P a g e | 29 ∃! 𝑥𝑃 ≡ ∃𝑥(𝑃(𝑥) ∧ ∀𝑦(𝑃(𝑦) ⟶ 𝑦 = 𝑥)). B. Réseaux sémantiques B.1. Limites de la représentation logique par rapport à l’expression humaine L’utilisation de la logique pour formaliser le raisonnement humain qui s’exprime en utilisant un langage donné pose certains problèmes. Exemple 3.15. Considérons la base des règles contenant les règles suivantes : La phrase suivant « si 𝑋 est un oiseau alors 𝑋 est capable de voler ». En calcul de prédicat, cette phrase est traduite par : (𝑜𝑖𝑠𝑒𝑎𝑢(𝑋) ⟶ 𝑝𝑒𝑢𝑡𝑣𝑜𝑙𝑒𝑟(𝑋)) où de manière logiquement équivalent (en utilisant la contraposition) à (¬𝑝𝑒𝑢𝑡𝑣𝑜𝑙𝑒𝑟(𝑋)) ⟶ ¬𝑜𝑖𝑠𝑒𝑎𝑢(𝑋)). À partir de là, supposons que 𝑋 est le chat Tom, Tom ne peut pas voler et Tom n’est pas un oiseau ; donc la valeur de vérité de la deuxième formule est vraie. On en déduit donc que le fait que Tom soit un chat qui ne peut pas voler constitue est un modèle pour l’hypothèse : « Tous les oiseaux volent! ». De plus, le calcul des prédicats permet de formaliser des expressions qui n’ont pas de sens mais qui sont vraies quand même. Exemple 2.17. L’expression (2 + 3 = 8) ⟶ 𝑐𝑜𝑢𝑙𝑒𝑢𝑟(𝑐𝑖𝑒𝑙, 𝑣𝑒𝑟𝑡) n’a pas de sens, mais a pour valeur de vérité 1. En effet, 𝜏(0 ⟶ 0) = 1. B.2. Utilisation de la théorie des graphes Compte tenu des limites de la représentation par logique des prédicats, l’utilisation de la théorie des graphes peut s’avérer salvatrice. En effet, deux psychologues, Collins et Quillian ont proposé en 1969 un modèle hiérarchique de mémoire sémantique, préalablement conçu par Quillian à des fins de programme, permettant un stockage efficace d’informations et d'inférences diverses. Un exemple utilisé par les deux psychologues est le suivant : Cours d’Intelligence Artificielle P a g e | 30 Exemple 2.18. Soit le réseau sémantique suivant : Figure 2.3. Réseau de Quillian (hiérarchisé par 𝑒𝑠𝑡_1). Nous remarquons donc qu’ Définition 2.6 (Réseau sémantique). un réseau sémantique est un multigraphe étiqueté 𝐺 = (𝑋, 𝑈) possédant où 𝑋 est l’ensemble des sommets décrivant des concepts ou des objets, et 𝑈 un ensemble d’arcs étiqueté tel que (𝑥, 𝑦) ∈ 𝑈 étiqueté 𝑅 si et seulement si la relation 𝑅 est vraie entre les concepts/objets 𝑥 et 𝑦, ce qu’on notera par la suite (𝑥𝑅𝑦). De l’exemple précédent, deux types de sommets sont employés : - les nœuds étiquetés par des constantes de concepts (représentant des catégories). Exemple 2.19. Dans l’exemple 2.17, Animal est un concept. - les nœuds étiquetés par des constantes d’objets (représentant des instanciations des concepts ou des propriétés des concepts). Exemple 2.20. Dans l’exemple 2.19, des instanciations comme Poisson et Oiseau sont des objets. Exemple 2.21. Dans l’exemple 2.19, des instanciations comme Rouge gorge, Autriche et Requin sont des objets. Exemple 2.22. Dans l’exemple 2.19, des propriétés comme nager, mordre, voler, courir, respirer et manger sont des objets. Cours d’Intelligence Artificielle P a g e | 31 Exemple 2.23. Dans l’exemple 2.19, des propriétés comme plumes, pattes longues et plastron rouge sont des objets. Exemple 2.24. Dans l’exemple 2.19, des propriétés comme dangereux et blanchies sont des objets. De plus, il y a au moins trois types d’arcs connectant les sommets : - les arcs décrivant les caractéristiques ou les propriétés de l’objet ou du concept. Ces associations sont libellées avec : « est », « a » ; les arcs décrivant les actions que peut entamer l’objet. Ces associations sont libellées avec : « peut », … ; les arcs décrivant l’héritage (ou agrégation). Ces associations sont libellées avec « est_1 », … ; les arcs décrivant l’instanciation. Ces associations sont libellées avec « sorte_de », … les arcs décrivant les exceptions. Ces associations sont libellées par « n’est pas », « n’a pas », « ne peut pas ». Il peut y avoir d’autres liens spécifiques, tels que des liens hiérarchiques des liens transversaux synonymes et associé_à, qui éviteront des silences (réponses potentielles non trouvées). Soit une question relative à un domaine précis, telle que « Est-ce qu’un rouge-gorge peut voler ? ». Collins et Quillian ont postulé que le temps de réponse serait proportionnel à la différence de niveau entre les éléments de réponse dans cette hiérarchie de stockage supposée, et ont trouvé que les temps de réponse étaient de l’ordre de 75 ms par niveau - plus un retard initial plus grand pour les propriétés spécifiques que pour les appartenances catégorielles. Si ce modèle a longtemps été invalidé dans d’autres aspects de la mémorisation humaine, les modèles dérivés se sont avérés utiles en IA, comme pour l’application PROSPECTOR qui travaille dans le domaine de la géologie minérale. Ce système expert a donné de très bons résultats. C. Graphes conceptuels Un graphe conceptuel est un formalisme de représentation des connaissances introduit par John F. Sowa en 1984. Ces types de réseaux sémantiques sont beaucoup plus ambitieux. Fondamentalement, ce sont des graphes bipartis concepts/relateurs : - Les concepts sont typés ce qui supprime beaucoup de liens « est_l » en se référant à une hiérarchie de types. Cours d’Intelligence Artificielle P a g e | 32 - Chaque relateur est typé par sa relation ; il possède des arcs entrants et sortants numérotés, ce qui permet de traiter des relateurs 𝑛-aires en distinguant les rôles des concepts liés. En utilisant les graphes conceptuels, nous pouvons facilement représenter la conjonction entre concepts. D. Réseaux de Bayes D.1. Intérêt pour l’utilisation des réseaux Bayes Il existe de bons arguments normatifs en faveur de l’utilisation de la logique pour la représentation des connaissances. Ces arguments sont généralement basés sur un raisonnement avec des symboles avec une dénotation explicite, permettant des relations entre les individus et permettant une quantification sur les individus. Cela se traduit souvent par la nécessité (au moins) de la logique des prédicats. Malheureusement, la logique des prédicats a des mécanismes très primitifs pour gérer l’incertitude, à savoir l’utilisation de la disjonction et de la quantification existentielle. Un réseau de Bayes, également appelé réseau bayésien ou réseau de croyances ou encore réseau de décision, est un moyen de représenter des connaissances incertaines. L’idée est de représenter un domaine en termes de variables aléatoires et de modéliser explicitement l’interdépendance des variables aléatoires en termes de graphe. Ceci est utile lorsqu’une variable aléatoire ne dépend que de quelques autres variables aléatoires, comme cela se produit dans de nombreux domaines. Les réseaux de Bayes constituent la base à partir de laquelle une grande partie des travaux sur l’incertitude en IA sont construits. Les réseaux de Bayes sont idéaux pour prendre un événement qui s’est produit et prédire la probabilité que l’une des nombreuses causes connues possibles soit le facteur contributif. Exemple 2.25. Un réseau de Bayes pourrait représenter les relations probabilistes entre les maladies et les symptômes. Compte tenu des symptômes, le réseau peut être utilisé pour calculer les probabilités de présence de diverses maladies. D.2. Construction d’un réseau de Bayes Les réseaux bayésiens construisent une distribution de probabilité de grande dimension basée sur des règles probabilistes locales. Définition 2.7 (Réseau de Bayes). Un réseau de Bayes est un graphe orienté acyclique 𝐺 = (𝑋, 𝑈) avec 𝑋 l’ensemble des sommets qui représentent des variables aléatoires et 𝑈 l’ensemble des arcs décrivent les dépendances conditionnelles entre ces variables, tel qu’à Cours d’Intelligence Artificielle P a g e | 33 chaque sommet 𝑋𝑖 appartenant à 𝑋 du graphe est associé la distribution de probabilité conditionnelle suivante : ℙ(𝑋𝑖 |𝜋(𝑋𝑖 )) où 𝜋(𝑋𝑖 ) représente les sommets parents immédiats de 𝑋𝑖 dans 𝑋. Les arcs représentent donc l’influence causale d’un sommet (sommet parent) sur un autre sommet. L’influence du sommet parent sur la variable aléatoire locale correspondante est attribuée à chaque sommet du réseau par une table de probabilités conditionnelles. L’algorithme suivant génère un réseau qui remplit ces conditions. Algorithme 2.1 [Construction d’un réseau de Bayes]. Les sommets et les arcs d’un réseau de Bayes peuvent être déterminés comme suit. 1. Déterminer l’ensemble des variables aléatoires 𝑋𝑖 pertinentes pour le domaine. Afin d’obtenir une structure de réseau compacte, la trier de sorte que les causes apparaissent avant les effets. Le résultat est {𝑋1 , … , 𝑋𝑛 }. 2. Pour 𝒊 ⟵ 𝟏 à 𝒏 2.1. Sélectionner dans l'ensemble {𝑋1 , … , 𝑋𝑖−1 } un sous-ensemble minimum de parents 𝜋(𝑋𝑖 ) qui satisfait l’équation de densité jointe. 2.2. Pour chaque élément de 𝜋(𝑋𝑖 ), Insérer un arc du sommet parent au nœud 𝑋𝑖 . Fin Pour 2.3. Définir la distribution de probabilité conditionnelle ℙ(𝑋𝑖 |𝜋(𝑋𝑖 )). Fin Pour 3. Fin. En d’autres termes, 𝜋(𝑋𝑖 ) doit contenir tous les sommets de {𝑋1 , … , 𝑋𝑖−1 } qui affectent directement 𝑋𝑖 . L’algorithme décrit ici garantit l’acyclicité, puisque chaque sommet n’est connecté qu’aux sommets qui le précèdent dans l’ensemble des sommets triés par causalité. B. Objets structurés Les différents formalismes de représentation que nous venons d’étudier privilégient l’aspect déclaratif de la connaissance ainsi que son caractère inférentiel (logique, règles d’inférence). Cependant, les connaissances qui ne sont pas inférentielles (telles que les variations autour d’un prototype) étaient difficiles à représenter. Cours d’Intelligence Artificielle P a g e | 34 La représentation en objets structurés est une tentative de représenter plus commodément que par des inférences, certaines formes de connaissances. Le terme objet structuré recouvre des appellations diverses telles que : - Les cadres (frames), notion lancée par Minsly ; Les schémas, dans les travaux sur la mémoire ; Les scripts, qui décrivent l’enchainement de stéréotypes d’événement ; Les prototypes, ou unités dans KRL ; Les objets, dans le sens de la programmation orientée-objet ; Les formes et les classes ; Les acteurs dans Plasma ; Les types abstraits. Cette représentation peut être considérée comme une extension des réseaux sémantiques. Extension intégrant des connaissances procédurales et introduisant une rigueur conceptuelle absente de cette représentation. En effet, dans les réseaux sémantiques, ou graphes conceptuels, le niveau de granularité de la connaissance est limité au sommet de concept. Les objets structurés nous permettent, en effet, de représenter plus finement la connaissance. À noter qu’il n’existe actuellement aucun système expert utilisant uniquement des objets structurés. En général, le langage orienté objet est utilisé pour représenter des connaissances statiques, des descriptions et des règles sont utilisées pour faire des inférences. Néanmoins, les langages orientés objet sont de plus en plus populaires en informatique grâce à leur modularité et leur facilité de lecture. En IA, des recherches sont en cours pour intégrer ce mode de représentation des connaissances avec logique des prédicats ainsi que pour implémenter des moteurs d’inférence utilisant des langages orientés objet. 2.3.2. Base de règles 2.3.2.1. Notion Les règles représentent les connaissances de l’expert sur le domaine. Elles peuvent traduire des relations, des informations sémantiques ou des actions conditionnelles: elles indiquent quelles conséquences tirer ou quelles actions accomplir lorsque telle situation est établie ou à établir. Ces règles sont souvent de la forme : Cours d’Intelligence Artificielle P a g e | 35 Si (fait), alors (nouveau fait). Les conditions d’application d’une règle sont appelées les prémisses. Il peut y avoir plusieurs prémisses, elles sont alors reliées par une coordination ET, signifiant qu’elles doivent toutes être vraies pour que la règle s’applique. Les nouveaux faits sont appelées conclusions. Exemple 2.26. Considérons la base des règles contenant les règles suivantes : 𝑅1 : Si le prix de l’action baisse en dessous de 250$, alors faire l’achat de 100 actions. 𝑅2 : Si la température dépasse 30°𝐶, alors faire partir le ventilateur. 𝑅3 : Si la température dépasse 30°𝐶 ou la commande manuelle est actionnée, alors faire partir le ventilateur. 2.3.2.2. Règle d’inférence logique La plupart des systèmes experts existants reposent sur des règles d’inférence pour dériver des nouveaux faits. La règle d’inférence de base est le modus (ponendo) ponens : « si 𝐹 alors 𝐺 « or 𝐹 » « donc 𝐺 ». Formellement, ((𝐹 ⟶ 𝐺) ∧ 𝐹) ⟶ 𝐺. D’autres règles d’inférence qui peuvent être utilisées sont : (1) (𝑃 ∧ 𝑄) ⟶ 𝑃, (2) (𝑃 ∧ 𝑄) ⟶ ¬𝑄, (3) ((𝑃 ⟶ 𝑄) ∧ (¬𝑃 ⟶ 𝑄)) ⟶ 𝑄, (4) ((¬𝑃 ⟶ 𝑄) ∧ (¬𝑃 ⟶ ¬𝑄)) ⟶ 𝑃, (Elimination de la conjonction) (5) ((𝑃 ⟶ 𝑄) ⟶ 𝑃) ⟶ 𝑃, (Loi de Pierce) (6) ((𝑃 ⟶ 𝑄) ∧ ¬𝑄) ⟶ ¬𝑃, (Modus (tollendo) tollens) (7) ((𝑃 ∨ 𝑄) ∧ ¬𝑃) ⟶ 𝑄, (Modus tollendo ponens ou Syllogisme disjonctif) (8) ((¬𝑃 ∨ ¬𝑄) ∧ 𝑃) ⟶ ¬𝑄, (9) 𝐹 ⟶ (∀𝑥)𝐹 (𝑥). (Modus ponendo tollens) Cours d’Intelligence Artificielle (Règle de généralisation) P a g e | 36 Toutes les équivalences logiques peuvent servir de règles d’inférence. 2.3.2.3. Cohérence dans une base de connaissances Le problème de cohérence est un problème fondamental dans la conception et la maintenance des systèmes experts. En effet, plusieurs problèmes classiques peuvent survenir lors de l’utilisation d’une base de connaissances par le moteur d’inférence. Il s’agit des problèmes ci-après : - Des règles incompatibles (ou conflictuelles) ; Des règles redondantes ; Des règles récursives ; Des conditions non nécessaires dans les prémisses ; Des faits redondants. A. Règles incompatibles (ou conflictuelles) Deux règles sont incompatibles lorsqu’elles ont les mêmes prémisses, mais leurs conclusions sont incompatibles. Exemple 2.27. Soit la base de règles 𝐵𝑅 = {𝑅1 , 𝑅2 }, avec 𝑅1 : Si 𝑥 = 𝑎 et 𝑦 = 𝑏, alors 𝑤 = 𝑧 ; 𝑅2 : Si 𝑥 = 𝑎 et 𝑦 = 𝑏, alors 𝑤 = 𝑡, 𝑧 ≠ 𝑡. Ces deux règles sont incompatibles si l’on accepte une seule valeur pour une variable donnée. En revanche, si une variable peut prendre plusieurs valeurs, ce conflit est résolu. Ainsi, il est recommandé d’identifier toutes les prémisses identiques dans la base de connaissances et de comparer leurs conclusions afin d’identifier de telles incohérences. B. Règles redondantes Deux règles sont redondantes lorsqu’elles ont les mêmes prémisses, mais la conclusion de l’une est un sous-ensemble de l’autre. Dans ce cas, cette dernière peut être supprimée sans affecter au déroulement du système. Exemple 2.28. Soit la base de règles 𝐵𝑅 = {𝑅1 , 𝑅2 }, avec 𝑅1 : Si 𝑥 = 𝑎 et 𝑦 = 𝑏, alors 𝑤 = 𝑧 ; 𝑅2 : Si 𝑥 = 𝑎 et 𝑦 = 𝑏, alors 𝑤 = 𝑧, 𝑣 = 𝑑. On peut donc se passer de 𝑅1 . Cours d’Intelligence Artificielle P a g e | 37 Dans ces deux règles, la conclusion de 𝑅1 est sous-ensemble de 𝑅2 . Dans ce cas, on peut supprimer 𝑅1 qui est considérée comme une règle redondante. Donc pour résoudre ce type de problème, il est nécessaire de regrouper toutes les règles ayant les mêmes prémisses en les fusionnant et en éliminant les doublons. Mais cette fusion ne peut être envisagée qu’après avoir éliminé toutes les règles conflictuelles. C. Règles récursives On parle de règles récursives quand on les enchaîne, on trouve une boucle. Cette boucle peut entraîner des désagréments dans le fonctionnement du système. C’est le phénomène bien connu en informatique de boucle infinie. Exemple 2.29. Soit la base de règles 𝐵𝑅 = {𝑅1 , 𝑅2 , 𝑅3 }, avec 𝑅1 : Si 𝑥 = 𝑎, alors 𝑦 = 𝑏 ; 𝑅2 : Si 𝑦 = 𝑏, alors 𝑧 = 𝑐 ; 𝑅3 : Si 𝑧 = 𝑐, alors 𝑤 = 𝑑. D. Conditions non nécessaires dans les prémisses Il peut y avoir certaines conditions dans les prémisses qui sont implicites. Exemple 2.30. Soit la base de règles 𝐵𝑅 = {𝑅1 , 𝑅2 }, avec 𝑅1 : Si 𝑥 = 𝑎 et 𝑦 = 𝑏 alors 𝑤 = 𝑐 ; 𝑅2 : Si 𝑥 = 𝑎, alors 𝑤 = 𝑐. On se retrouve en présence de deux 𝑅1 et 𝑅2 qui ont la même conclusion, mais les prémisses de 𝑅1 sont un sous-ensemble de 𝑅2 . Cela signifie qu’il existe des conclusions implicites (superflues) dans 𝑅2 (Si 𝑥 = 𝑎 et (𝑦 = 𝑏 ou 𝑦 ≠ 𝑏)). Cela conduit également à des redondances de règles. Ainsi la règle 𝑅2 englobe tous les cas couverts par 𝑅1 et doit donc être supprimée. E. Faits redondants Il est anormal de trouver dans les prémisses d’une règle deux conditions qui elles-mêmes constituent une autre règle où l’une joue le rôle de la prémisse et l’autre la conclusion ; nous sommes alors dans le cas de la mauvaise structuration de la connaissance qui manifeste une redondance des faits qui constitue les règles. Cours d’Intelligence Artificielle P a g e | 38 2.3.3. Moteur d’inférence Une fois les connaissances représentées, la chose suivante concernant son exploitation. C’est là qu’intervient le moteur d’inférence. Le moteur d’inférence permet aux systèmes experts de conduire des raisonnements logiques et de dériver des conclusions à partir d’une base de faits et d’une base de règles exploitant le formalisme de représentation des connaissances retenu. Les moteurs d’inférence peuvent enchaîner les règles de différentes manières : c’est ce qu’on appelle le chaînage. Il existe deux modes de raisonnement de base pour le chaînage, à savoir : - le chaînage avant ; et le chaînage arrière. Cependant, il existe deux autres modes de raisonnement, dérivés des deux premiers : - le chaînage mixte ; et le chaînage bidirectionnel. Cependant, quel que soit le mode de raisonnement utilisé, le cycle de base d’un moteur d’inférence (cycles de travail enchaînés pour atteindre le résultat) comprend quatre phases : (1) Phase de sélection d’un sous-ensemble de la base de faits (et de la base de règles) qui mérite le plus d’attention que les autres. Cette phase de restriction permet de gagner du temps pour la phase suivante. Ce choix est l’expression d’une stratégie qui fait que le moteur d’inférence privilégie un groupe de règles et pas un autre. Dans la suite, on ignorera souvent cette phase, car elle ne change pas le cours de la phase suivante. (2) Phase de filtrage, dans laquelle le moteur d’inférence compare la partie prémisses des règles sélectionnées avec les faits de la base de faits pour déterminer l’ensemble des règles applicables. Le déroulement de cette phase est raccourci par la précédente qui a permis de restreindre considérablement l’ensemble des règles qui seront filtrées avec la base de faits. (3) Phase de résolution de conflits, qui est la phase dans laquelle le choix de la règle à appliquer est fait. Pour faire ce choix, plusieurs stratégies sont utilisées : Première règle trouvée dans la base : cette stratégie sommaire, simple à programmer dans le moteur d’inférence. Cours d’Intelligence Artificielle P a g e | 39 Règle la plus économique : contre la lourdeur combinatoire des règles trop générales, le moteur d’inférence essaie de conclure le plus rapidement possible en privilégiant les règles les moins chères (les moins générales). On privilégie donc: - soit les règles utilisant les prémisses de moindre coût (utilisant le moins de variables) ; - soit les règles locales à une classe avant les règles interclasses ; - soit les règles relatives à un monde avant les règles à visibilité étendue ; - soit les règles déductives avant les règles d’introduction d’hypothèses ; - etc. Règle prioritaire : lorsqu’à chaque règle est associée une priorité, explicite ou non, rendant compte de l’urgence de la règle, - en réaction à un évènement, - distinguant a priori règles logiques/heuristiques fortes/heuristiques faibles, - distinction pouvant évoluer dans certains systèmes à apprentissage, utilisant des règles à priorité révisable en fonction des résultats obtenus. Règle tirée au sort : ce sera le plus souvent une fiction utile si l’on veut développer des bases robustes et maintenables, avec une granularité efficace. Règle la plus spécifique : on dit que la règle 𝑅1 est plus spécifique que la règle 𝑅2 si 𝑅1 contient toutes les prémisses de 𝑅2 . Règle qui se rapproche plus du but. Règle la moins utilisée. (4) Phase d’exécution, qui consiste à appliquer la règle choisie précédemment. Cette action consiste généralement à ajouter un ou plusieurs faits à la base de faits. Il est également possible que l’application de cette règle fasse appel à des procédures externes modifie la base de faits, questionne l’utilisateur, etc. L’arrêt de ce cycle dépend du mode de raisonnement utilisé. 2.3.3.1. Chaînage avant A. Fonctionnement du chaînage arrière Un moteur à chaînage avant est également appelé moteur d’inférence guidé par les données. Ce mode de raisonnement est donc une méthode de déduction. Il reproduit le détachement ou déduction modus (ponendo) ponens. Cours d’Intelligence Artificielle P a g e | 40 Dans ce mode de raisonnement, on part des données disponibles dans la base de faits, et on teste pour chaque règle si elle peut être appliquée ou non. Si c’est le cas, on l’applique et on rajoute la conclusion à la base de faits. Le moteur d’inférence explore donc toutes les possibilités, jusqu’à ce qu’il trouve le fait recherché ou jusqu’à ce qu’il ne soit plus en mesure d’appliquer de nouvelles règles. Ce mode de chaînage est celui proposé par défaut dans les langages des systèmes experts comme CLIPS (C Language Integrated Production System) et ses extensions telles que PyCLIPS, FuzzyCLIPS, etc. L’exemple suivant permet de mieux comprendre le fonctionnement du chaînage avant : Exemple 2.32. Supposons que le but soit de signifier si une étudiante nommée Light est présente ou absente en classe, étant donné qu’elle sourit et mange bien, sachant que la base contient les quatre règles suivantes: 𝑅1 : « Si 𝑥 sourit et mange bien, alors 𝑥 est en bonne santé » ; 𝑅2 : « Si 𝑥 a de la fièvre et vomit, alors 𝑥 est en malade » ; 𝑅3 : « Si 𝑥 est en bonne santé, alors 𝑥 présent » ; 𝑅4 : « Si 𝑥 est malade, alors 𝑥 est absent ». Avec le chaînage avant, la règle 𝑅1 sera choisie, parce que sa prémisse (« Si 𝑥 sourit et mange bien ») correspond à nos données, et la règle 𝑅1 est désactivée : elle ne peut plus être choisie. Ainsi, sa conclusion (« 𝑥 est en bonne santé » ) est ajoutée aux données (prémisses). Les règles de base sont de nouveau examinées et cette fois, la troisième règle est sélectionnée, car sa prémisse (« Si 𝑥 est en bonne santé ») correspond aux données qui viennent d’être confirmées. Maintenant, la nouvelle conclusion (« alors 𝑥 présent ») est ajoutée à nos données. Rien de plus ne peut être déduit de cette information, mais le but de signifier la présence ou l’absence de la Light est désormais atteint. Cours d’Intelligence Artificielle P a g e | 41 De cet exemple, nous pouvons donc dériver l’algorithme suivant : B. Algorithme de chaînage avant Ci-après un algorithme simple pour le chaînage avant : Algorithme 2.2 [Algorithme de chaînage avant]. 0. Début 1. Soient 1.1. 𝐵𝐹la base de faits, 𝐵𝑅 la base de règles et 𝐹𝐴𝐷 le fait à déduire (ou le but) ; 1.2. 𝐶𝑜𝑛𝑑(𝑅𝑖 ) les conditions de déclenchement de la règle 𝑅𝑖 de 𝐵𝑅 ; 1.3. 𝐶𝑜𝑛𝑐(𝑅𝑖 ) les conclusions de la règle 𝑅𝑖 de 𝐵𝑅 ; 2. Tant que 𝐹𝐴𝐷 ∉ 𝐵𝐹 et il existe une règle applicable dans 𝐵𝑅 2.1. Pour toutes les règles 𝑅𝑖 de 𝐵𝑅 Si 𝐶𝑜𝑛𝑑 (𝑅𝑖 ) ∈ 𝐵𝑅, Alors //Phase de filtrage Choisir une règle applicable 𝑅 ; // Phase de résolution de conflits. 𝐵𝑅 ⟵ 𝐵𝑅 − 𝑅𝑖 ; // Désactivation de la règle 𝑅𝑖 . 𝐵𝐹 ⟵ 𝐵𝐹 ∪ 𝑐𝑜𝑛𝑐(𝑅𝑖 ) ; // Déclenchement de la règle 𝑅𝑖 , sa conclusion est ajoutée à la base de faits. Fin Si Fin Pour Fin Tant que 3. Si 𝐹𝐴𝐷 ∈ 𝐵𝐹 Alors 3.1. 𝐹𝐴𝐷 est déduit ; Sinon 3.2. 𝐹𝐴𝐷 n’est pas déduit ; Fin Si 4. Fin. L’algorithme ci-dessus vous permet d’utiliser facilement le chaînage avant. En effet, lorsqu’il s’agit d’un problème plus complexe que celui de l’exemple 2.32, il sera difficile de procéder de manière non méthodique (comme nous l’avons fait plus haut). Exemple 2.33. Reprenons l’exemple 2.32. Pour simplifier la tâche, nous pouvons utiliser es symboles. On a les faits connus sont des éléments de l’ensemble Cours d’Intelligence Artificielle P a g e | 42 𝐵𝐹 = {𝐹1 , 𝐹2 }, où : 𝐹1 : « 𝑥 sourit » ; 𝐹2 : « 𝑥 mange bien ». On a aussi 𝐹3 : « 𝑥 est en bonne santé » ; 𝐹4 : « 𝑥 a de la fièvre » ; 𝐹5 : « 𝑥 vomit » ; 𝐹6 : « 𝑥 est malade ». Les faits à déduire (ou les buts à atteindre) sont : 𝐹𝐴𝐷1 = 𝑃 et 𝐹𝐴𝐷2 = 𝐴, où : 𝑃: « 𝑥 est présent » ; 𝐴: « 𝑥 est absent ». La base de règles est alors 𝐵𝑅 = {𝑅1 , 𝑅2 , 𝑅3 , 𝑅4 }, avec : 𝑅1 : 𝐹1 ∧ 𝐹2 ⟶ 𝐹3 ; 𝑅2 : 𝐹4 ∧ 𝐹5 ⟶ 𝐹6 ; 𝑅3 : 𝐹3 ⟶ 𝑃 ; 𝑅4 : 𝐹4 ⟶ 𝐴. En appliquant l’algorithme 2.2, nous avons : Cycle 1 Filtrage (règles applicables) : 𝑅1 . Résolution de conflits : 𝑅1 (⟶ 𝐹3 ). 𝐵𝑅 ⟵ {𝑅1 , 𝑅2 , 𝑅3 , 𝑅4 } − 𝑅1 = {𝑅2 , 𝑅3 , 𝑅4 }, la règle 𝑅1 est donc désactivée. 𝐵𝐹 ⟵ {𝐹1 , 𝐹2 } ∪ 𝐹3 = {𝐹1 , 𝐹2 , 𝐹3 }, c’est-à-dire 𝐹3 est le nouveau fait. 𝑃 ∉ 𝐵𝐹 ou 𝐴 ∉ 𝐵𝐹. Cycle 2 Filtrage (règles applicables) : 𝑅3 . Résolution de conflits : 𝑅3 (⟶ 𝑃). 𝐵𝑅 ⟵ {𝑅2 , 𝑅3 , 𝑅4 } − 𝑅1 = {𝑅2 , 𝑅4 }, la règle 𝑅3 est donc désactivée. 𝐵𝐹 ⟵ {𝐹1 , 𝐹2 , 𝐹3 } ∪ 𝑃 = {𝐹1 , 𝐹2 , 𝐹3 , 𝑃}, c’est-à-dire 𝑃 est le nouveau fait. Comme 𝑃 ∈ 𝐵𝐹, cela signifie que le but est atteint. Nous concluons donc que Light est présente. Cours d’Intelligence Artificielle P a g e | 43 L’exemple que nous venons de prendre est très simple. D’ailleurs, nous n’avons pas eu de cas où les règles sont en conflit. L’exemple suivant illustre la situation où il y a des règles en conflit. Exemple 2.34. Considérons la base de règles suivante qui permet de sélectionner des candidats retenus pour un emploi donné. 𝑅1 : « Si le candidat a actuellement un poste de responsabilité et le candidat a des facilités pour apprendre les langues et le candidat parle Français, alors le candidat est dynamique » ; 𝑅2 : « Si le candidat a des facilités pour apprendre les langues et le candidat parle l’Anglais, alors le candidat a une bonne adaptabilité » ; 𝑅3 : « Si le candidat est congolais et le candidat est dynamique, alors le candidat a une bonne adaptabilité » ; 𝑅4 : « Si le candidat a actuellement un poste de responsabilité, alors le candidat a une capacité de leadership » ; 𝑅5 : « Si le candidat a des facilités pour apprendre les langues, alors le candidat parle Français » ; 𝑅6 : « Si le candidat a une bonne adaptabilité et le candidat a une capacité de leadership, alors le candidat est accepté » ; 𝑅7 : « Si le candidat est congolais, alors le candidat a des facilités pour apprendre les langues » ; 𝑅8 : « Si le candidat une capacité de leadership et si le candidat est congolais, alors le candidat a une bonne adaptabilité ». Supposons qu’avant la consultation du système expert, nous avons eu l’information que le candidat occupe actuellement un poste de responsabilité. De plus, ce candidat est un congolais. Commentons d’abord à utiliser les symboles pour aborder facilement le problème. On a : 𝐵𝐹 = {𝐹1 , 𝐹2 }, avec 𝐹1 : « Le candidat a actuellement un poste de responsabilité » ; 𝐹2 : « Le candidat est congolais ». Posons aussi que : 𝐹3 : « Le candidat a actuellement un poste de responsabilité » ; 𝐹4 : « Le candidat parle Français » ; Cours d’Intelligence Artificielle P a g e | 44 𝐹5 : « Le candidat est dynamique » ; 𝐹6 : ¬𝐹3 ; 𝐹7 : « Le candidat parle Anglais » ; 𝐹8 : « Le candidat a une bonne adaptabilité » ; 𝐹9 : « Le candidat a la capacité du leadership ». Ainsi, les règles peuvent être traduites sous forme de symboles de la manière suivante : 𝑅1 : 𝐹1 ∧ 𝐹3 ∧ 𝐹4 ⟶ 𝐹5 ; 𝑅2 : 𝐹6 ∧ 𝐹7 ⟶ 𝐹8 ; 𝑅3 : 𝐹2 ∧ 𝐹5 ⟶ 𝐹8 ; 𝑅4 : 𝐹1 ⟶ 𝐹9 ; 𝑅5 : 𝐹3 ⟶ 𝐹4 ; 𝑅6 : 𝐹8 ∧ 𝐹9 ⟶ 𝐴 ; 𝑅7 : 𝐹2 ⟶ 𝐹3 ; 𝑅8 : 𝐹9 ∧ 𝐹2 ⟶ 𝐹8 ; Rappelons qu’il existe plusieurs stratégies pour résoudre le conflit de règles. Nous allons illustre deux de ces stratégies pour le présent exemple. Utilisation de la stratégie « Première règle trouvée dans la base » A faire comme TD. Utilisation de la stratégie « Règle la plus économique » A faire comme TD. C. Applications du chaînage avant Le système expert DENDRAL est un bon exemple d’application du chaînage avant. Ce système expert, créé en 1965 par les informaticiens Edward Feigenbaum1, Bruce Buchanan, le médecin Joshua Lederberg (prix Nobel de médecine 1958) et le chimiste Carl Cours d’Intelligence Artificielle P a g e | 45 Djerassi, vise à identifier les constituants chimiques de la substance à partir de son spectre de masse et en utilisant les connaissances de la chimie. Déduire la structure chimique commence par trouver le nombre d’atomes dans chaque molécule. Le spectre de masse de l’échantillon est ensuite utilisé pour établir l’arrangement des atomes. Nous pouvons résumer ces étapes comme suit. La formule chimique est déterminée (le nombre d’atomes dans chaque molécule). La machine à spectre est utilisée pour former des spectres de masse de l’échantillon. L’isomère et la structure du produit chimique sont identifiés. Dans cet exemple, l’identification de la structure chimique est le point final. Dans le système expert DENDRAL, une technique de génération et de test est utilisée. Il y a deux éléments dans le générateur : un synthétiseur et un énumérateur structurel. Le synthétiseur joue le rôle de produire le spectre de masse. L’énumérateur structurel identifie la structure des substances et empêche la redondance dans le générateur. Les applications les mieux adaptées pour le chaînage avant sont entre (pas seulement limités à) la planification, le suivi, le contrôle, le diagnostic des maladies et l’interprétation des applications. D. Avantages Le chaînage avant peut être utilisé pour tirer des conclusions multiples. Le chaînage avant fournit une bonne base pour tirer des conclusions. Le chaînage avant est plus flexible que le chaînage en amont car il n’a pas de limitation sur les données qui en découlent. E. Inconvénients Le chaînage avant peut prendre du temps. L’élimination et la synchronisation des données disponibles peuvent prendre beaucoup de temps. Contrairement au chaînage arrière que nous verrons plus bas, l’explication des faits pour ce type de chaînage n’est pas très claire. Le premier utilise une méthode axée sur les objectifs qui parvient à des conclusions de manière efficace. Cours d’Intelligence Artificielle P a g e | 46 2.3.3.2. Chaînage arrière A. Fonctionnement du chaînage arrière Un moteurs d’inférence à chaînage arrière est également dit guidé par le but. Ce mode de raisonnement est donc une méthode d’induction. Il se raccorde à la déduction modus (tonnendo) tollens et à la preuve par l’absurde, et peut être vu comme un processus d’enquête. Avec le chaînage arrière, on part des faits que l’on voudrait obtenir et on cherche une règle qui pourrait permettre d’obtenir ce fait. On ajoute ensuite toutes les prémisses de cette règle dans les nouveaux objectifs à atteindre. On réitère, jusqu’à ce que les nouveaux buts à atteindre soient présents dans la base de faits. Si un fait est absent de la base de faits ou s’il s’avère être faux, alors on sait que la règle ne peut pas s’appliquer. Ces moteurs d’inférence disposent donc d’un mécanisme leur permettant de passer à une nouvelle règle, ce qui serait un nouveau moyen de prouver le fait. Ce mode de chaînage est celui présent par défaut dans les langages des systèmes experts Prolog (PROgrammation en LOGique), Knowledge Machine et ECLiPSe. Exemple 2.34. Revenons à notre exemple nous permettant de signifier l’absence ou la présence de Light. Contrairement au chaînage avant, nous choisissons règles 𝑅3 et 𝑅4 , parce que leurs conclusions (alors 𝑥 est présent/alors 𝑥 est absent) correspondent au but (signifier l’absence ou la présence de l’étudiante Light). On ne sait pas encore que Light est en bonne santé, c’est pourquoi les prémisses « Si 𝑥 est en bonne santé »/ « Si 𝑥 est malade » sont ajoutés à la liste buts. Les règles de base sont de nouveau examinées, et cette fois-ci nous choisissons les règles 𝑅1 et 𝑅2 , car leurs conclusions « alors 𝑥 est présent »/ « alors 𝑥 est absent) correspondent aux nouveaux buts qui viennent d’être ajoutés à la liste. Le prémisse « Si 𝑥 sourit et mange bien » est connue pour être vraie et, par conséquent, on peut conclure que Light est présente, et non absente. Le but de signifier la présence ou l’absence de Light est maintenant atteint (Light est présente si elle est en bonne santé, et absente si elle est malade, mais elle est en bonne santé car elle sourit et mange bien et, par conséquent Light est présente). Cours d’Intelligence Artificielle P a g e | 47 B. Algorithme de chaînage arrière Ci-après un algorithme simple pour le chaînage avant : Algorithme 2.3 [Algorithme de chaînage arrière]. Fonction 𝐶ℎ𝑎î𝑛𝑎𝑔𝑒_𝐴𝑟𝑟𝑖è𝑟𝑒(𝐵𝐹, 𝐵𝑅, 𝐹𝐴𝐷) : 0. Début Traitement 1. Soient 1.1. 𝐵𝐹la base de faits, 𝐵𝑅 la base de règles et 𝐹𝐴𝐷 le fait à déduire (ou le but) ; 1.2. 𝐶𝑜𝑛𝑑(𝑅𝑖 ) les conditions de déclenchement de la règle 𝑅𝑖 de 𝐵𝑅 ; 1.3. 𝐶𝑜𝑛𝑐(𝑅𝑖 ) les conclusions de la règle 𝑅𝑖 de 𝐵𝑅 ; 2. Soit 𝑅 les règles 𝑅𝑖 de 𝐵𝑅 telles que 𝐹 ∈ 𝐶𝑜𝑛𝑑(𝑅𝑖 ) 3. Si 𝑅 = ∅, Alors 3.1. Retourner ∅ ; Sinon 3.2. Pour toutes les règles 𝑅𝑖 telles que 𝐹𝐴𝐷 ∈ 𝐶𝑜𝑛𝑐(𝑅𝑖 ) Si 𝐶𝑜𝑛𝑑 (𝑅𝑖 ) ∈ 𝐵𝐹, Alors 𝐵𝑅 ⟵ 𝐵𝑅 − 𝑅𝑖 ; Pour toutes les règles 𝑅𝑗 telles que 𝐶𝑜𝑛𝑑(𝑅𝑗 ) ∈ 𝐵𝐹 𝐵𝑅 ⟵ 𝐵𝑅 − 𝑅𝑗 ; Fin Pour Retourner 𝐶𝑜𝑛𝑐(𝑅𝑖 ) ; Sinon Pour tout 𝐹𝐴𝐷 de 𝐶𝑜𝑛𝑑(𝑅𝑖 ) 𝐵𝐹 ⟵ 𝐵𝐹 ∪ 𝐶ℎ𝑎î𝑛𝑎𝑔𝑒_𝐴𝑟𝑟𝑖è𝑟𝑒(𝐵𝐹, 𝐵𝑅, 𝐹𝐴𝐷) ; Fin Pour Fin Si Fin Pour Fin Si Fin Traitement Cours d’Intelligence Artificielle P a g e | 48 C. Applications du chaînage avant Un bon exemple d’application du chaînage arrière est le système expert MYCIN, développé sur cinq ou six ans au début des années 1970 par le médecin et informaticien Edward Shortliffe à la suite de sa thèse de doctorat, sous la direction de Bruce G. Buchanan, Stanley N. Cohen, et d’autres, pour identifier les bactéries causant des infections graves, telles que la bactériémie et la méningite. Ce système expert pourrait demander des informations supplémentaires sur le patient, ainsi que proposer des tests de laboratoire supplémentaires, pour arriver à un diagnostic probable, après quoi il recommanderait des antibiotiques, le dosage approprié au poids corporel du patient. Le nom MYCIN est dérivé de l’antibiotique lui-même (de nombreux antibiotiques ont le suffixe « mycine »). MYCIN comprenait d’une base de connaissances d’environ 600 règles, qui permettent au système de reconnaître diverses causes d’infections (bactériennes). Ce système convient aux patients qui ont une infection bactérienne, mais ne connaissent pas l’infection spécifique. Le système recueillerait des informations relatives aux symptômes et aux antécédents du patient. Il analysera ensuite ces informations pour établir l’infection bactérienne. MYCIN fonctionnait à l’aide d’un moteur d’inférence assez simple et d’une base de connaissances d’environ 600 règles. Il interrogerait le médecin exécutant le programme via une longue série de questions simples oui/non ou textuelles. À la fin, il a fourni une liste de bactéries coupables possibles classées de haut en bas en fonction de la probabilité de chaque diagnostic, de sa confiance dans la probabilité de chaque diagnostic, du raisonnement derrière chaque diagnostic (c’est-à-dire que MYCIN répertorierait également les questions et les règles ce qui l’a conduit à classer un diagnostic d’une manière particulière). et son traitement médicamenteux recommandé. Le système expert MYCIN utilisait alors les informations recueillies auprès du patient pour recommander un traitement (un antibiotique) adapté. Le traitement recommandé correspondait à l’infection bactérienne identifiée. Les applications les mieux adaptées pour le chaînage avant sont entre (pas seulement limités à) le débogage, le diagnostic des maladies et la prescription. Cours d’Intelligence Artificielle P a g e | 49 Comparaison entre le chaînage avant et le chaînage arrière Le tableau suivant établit la comparaison entre les systèmes experts à chaînage avant et les systèmes experts à chaînage arrière : Critère de comparaison Mode de raisonnement. Direction du moteur d’inférence. Langages de programmation qui l’utilisent. Système expert. Applications. Chaînage avant Chaînage arrière Déduction (souvent par modus ponens). Moteur d’inférence dirigé par les données. CLIPS, PyCLIPS, Fuzzy CLIPS, etc. Induction (souvent par modus tollens). Moteur d’inférence dirigé par le but. PROLOG, Knowledge Machine, ECLiPSe, etc. DENRAL. Planification, contrôle, diagnostic, interprétation des applications, etc. MYCIN. Débogage, diagnostic, prescription, etc. Tableau 2.1. Parallélisme entre le chaînage avant et le chaînage arrière. 2.3.3.3. Chaînage mixte Le chaînage mixte est une méthode d’inférence qui combine le chaînage avant et le chaînage arrière. Les règles font appel simultanément, en partie prémisse, à des faits établis (avant) et à d’autres à établir (arrière). 2.3.3.4. Chaînage bidirectionnel Le chaînage bidirectionnel est une méthode d’inférence où le moteur d’inférence utilise, non pas simultanément, mais alternativement un chaînage avant et arrière. Généralement, le moteur d’inférence procède par chaînage avant pour déterminer des conclusions partielles, puis ces hypothèses sont vérifiées dans un chaînage arrière. Le moteur d’inférence peut également utiliser alternativement le chaînage avant et arrière et examiner à chaque cycle si les deux raisonnements se rencontrent. Cela permet d’aller à mi-chemin et de s’arrêter au milieu, ou au point de jonction. Cours d’Intelligence Artificielle P a g e | 50 2.4. OUTILS D’IMPLEMENTATION DES SYSTEMES EXPERTS Le développement d’une application fondée sur un système expert comprend généralement trois tâches, à savoir : (1) La construction de la base de connaissances en utilisant l’une des formalismes de représentation listés au point 2.3.1.2 ; (2) Le choix d’un langage (outil) de programmation pour représenter les connaissances qui vont intervenir dans la résolution du problème. Notons que, le plus souvent, les langages (outils) de programmation font recourt à la logique (mathématique) ; (3) Le développement de procédures à différents niveaux qui permettent l’exploitation des connaissances. On parle ici des mécanismes de raisonnement du moteur d’inférence. Cependant, rappelons que les langages de programmation peuvent être classés en deux groupes qui sont [Kamingu, 2019] : les langages de bas niveau et les langages de haut niveau. (1) Langages de bas niveau Définition 2.8 (Langage de bas niveau). Un langage de bas niveau est un langage de programmation qui permet d’écrire des programmes en tenant compte des caractéristiques particulières de l’ordinateur censé exécuter le programme. Ce sont des langages permettant de manipuler explicitement des registres, des adresses mémoire, des instructions machine. Ainsi, il existe deux types de langages de bas niveau : le langage machine et le langage d’assemblage. Le langage machine, qui est la suite des bits (des « 0 » et des « 1 ») interprétable directement par le processeur d’un ordinateur. C’est le langage natif du processeur. Ce langage est composée d’instructions et des données à traiter sous forme binaire. Le langage d’assemblage ou langage assembleur est un langage de bas niveau qui représente les combinaisons des bits du langage machine par des codes mnémoniques, facile à retenir ou lisible à l’homme. Ce langage est composée d’instructions et des données à traiter sous forme binaire. (2) Langages de haut niveau Cours d’Intelligence Artificielle P a g e | 51 Définition 2.9 (Langage de haut niveau). Un langage de haut niveau ou langage évolué est un langage de programmation qui permet d’écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l’anglais) et des symboles mathématiques usuels. Ce sont des langages proches des langues naturelles. Le premier langage de haut niveau est le Fortran (en 1954), suivi ensuite du Lisp (en 1958), de l’Algol (en 1958) et du COBOL (en 1959). En tenant compte du paradigme ou approche de programmation, on distingue plusieurs types de langages de programmation de haut niveau, regroupé en deux familles principales, à savoir les langages de programmation impérative et les langages de programmation déclaratives. Les langages de programmation impératifs, qui sont des langages de programmation de haut niveau qui décrivent les opérations en séquences d’instructions exécutées par l’ordinateur pour modifier l’état du programme. Ces types de langages de programmation sont subdivisés en trois grands sous-groupes : Les langages de programmation procéduraux, qui sont des langages de programmation impératifs qui se fondent sur le concept de procédure (c’est-àdire un sous-programme ne retournant aucune valeur) et de fonction (c’est-àdire un sous-programme retournant une et une seule valeur). Exemple 2.35. C, Fortran, BASIC, Ada, Cobol, PL/SQL. Les langages de programmation structurés, qui sont des langages de programmation impératifs qui visent à améliorer la clarté, la qualité et le temps de développement d'un programme informatique en utilisant largement les structures de contrôle et les sous-programmes tout en éliminant les instructions « aller à » (goto) ou du moins en limitant son usage à des cas inhabituels et graves. La programmation structurée est possible dans n’importe quel langage de programmation procédural, mais certains comme FORTRAN IV ne s’y prêtaient pas très bien. Parmi les langages de programmation les plus structurants, on retrouve PL/I, Pascal et, plus tard pour les très gros projets, Ada. Les langages de programmation orientés objet ou les langages de programmation par objet, qui sont des langages consistant en la définition et l’assemblage de composantes logicielles appelées objets. Une fédération d’objets forme une classe. Cours d’Intelligence Artificielle P a g e | 52 Exemples 2.X. C#, C++, Objectif C, Java, VB.net, Effeil. Les langages de programmation déclaratifs, qui sont des langages de programmation de haut niveau qui consistent à déclarer les données du problème et demander au programme de le résoudre. Ces types de langages de programmation sont subdivisés en quatre grands sous-groupes : Les langages de programmation fonctionnels, qui sont des langages de programmation déclaratifs où les actions reposent sur les fonctions mathématiques. Exemples 2.X. Lisp, Scheme, Scala, Erlang, Anubis, PureScript. Les langages de programmation logiques, qui sont des langages de programmation déclaratifs consistant à exprimer les problèmes et les actions sous forme de prédicats (en utilisant la logique du premier ordre). Exemple 2.36. Prolog, CLIPS, Gödel, Fril. Les langages de programmation logiques fonctionnels, qui sont des langages de programmation déclaratifs qui combinent des paradigmes de la programmation fonctionnelle et de la programmation logique. Exemple 2.37. Curry, Mercury, ALF. Les langages de programmation descriptifs, qui sont des langages de programmation déclaratifs qui permettent de décrire des structures des données. Ces types de langage sont spécialisés dans l’enrichissement d’information textuelle. Ils utilisent des balises, qui sont des unités syntaxiques servant à délimiter une séquence de caractères ou marquant une position précise à l’intérieur d’un flux de caractères. Exemple 2.38. LATEX, HTML, XML. Actuellement, il existe des langages de programmation qui combinent plusieurs paradigmes de programmation. Ces langages sont appelés langages multi-paradigmes. Exemple 2.39. Python (programmation structurée, fonctionnelle et orientée objet), R (programmation structurée, procédurale, fonctionnelle, fonctionnelle et orientée objet), Ciao (programmation logique, fonctionnelle, procédurale et orientée objet), Oz (programmation orientée objet, structurée, procédurale, concurrent, fonctionnelle et logique) Cours d’Intelligence Artificielle P a g e | 53 Puisque nous avons posé les bases, nous pouvons maintenant parler des langages (outils) de programmation utilisés pour l’implémentation des systèmes experts. En effet, ces outils sont de neuf types : les langages de programmation procéduraux ; les langages de programmation structurés ; les langages de programmation orientés objet ; les infrastructures de systèmes experts existants ; les langages de représentation de connaissances ; les langages de programmation logiques ; les langages de programmation fonctionnels ; les langages de programmation logiques fonctionnels ; les langages de programmation multi-paradigmes. 2.4.1. Langages de programmation procéduraux et structurés Les langages de programmation de type procédural et de type structurée, tels que C, BASIC, Pascal, etc. peuvent être utilisés pour développer des systèmes experts. Cependant, ces langages de programmation sont dangereux car : ils ne facilitent pas une représentation explicite des connaissances ; ils n’offrent aucun outil spécifique au développement d’un système expert (ou de traçage, calcul de facteurs de confiance, explication du raisonnement, etc.) ; tous les algorithmes du moteur d’inférence sont à développer. Par conséquent, le temps de développement et de débogage est très long. Les structures de données les plus utilisées pour représenter les connaissances sont : les tableaux ; les enregistrements ; les ensembles ; les listes chaînées ; etc. Dans le cadre de ce cours, nous présentons deux structures de données, à savoir les tableaux et les listes chaînées. Cours d’Intelligence Artificielle P a g e | 54 2.4.2. Langages de programmation orientés objet Les langages de programmation orientés objet tels que C++, C#, Java, Small Talk sont également utilisés pour développer des systèmes experts car ils visent à améliorer la conception et la maintenance des applications grâce au concept d’encapsulation. Cependant, certains inconvénients subsistent comme la dépendance vis-à-vis d’un programmeur professionnel, la difficulté de mettre en place un hypertexte et la nécessité d’écrire soi-même le moteur d’inférence. 2.4.3. Infrastructures de systèmes experts existants Les systèmes experts existants peuvent fournir des infrastructures pouvant permettre l’implémentation des nouveaux systèmes experts. L’origine de ces environnements se trouve dans une classe de produits d’IA caractéristique de la seconde moitié des années 1970, les « shells » (coquilles). En effets, les shells dérivent de systèmes experts bien précis, pour une application particulière ; pour obtenir la « coquille », on a retiré du système expert la base de connaissances bâtie en fonction du problème d’origine, tout en conservant le moteur d'inférence et le système de gestion de base de données. Les shells de systèmes experts sont donc des logiciels contenant une interface, un moteur d’inférence et le squelette formaté d’une base de connaissances. Dans la littérature spécialisée, le terme shell est encore parfois utilisé pour désigner des systèmes assez récents : il s’agit d’outils de premier niveau particulièrement simples, où l’utilisateur se limite à encastrer des connaissances dans un cadre totalement figé. Voici quelques shells historiques : EMYCIN, dérivé du célèbre système expert MYCIN développé vers 1972-73 par Edward Shortliffe à l’Université de Stanford, et spécialisé dans le diagnostic de certaines maladies bactériennes du sang [Shortliffe, 1976]. Dans EMYCIN, la représentation des connaissances repose sur l’utilisation de règles de production de la forme « si condition alors conclusion ». Les règles sont accompagnées de coefficients d’incertitude compris entre -1 et +1 qui mesurent, en quelque sorte, la validité des opérations d’inférence qu’elles proposent; ces coefficients caractérisent également les faits, qui sont représentés par des triplets « attribut - objet - valeur ». Le moteur d’inférence fonctionne selon une stratégie de contrôle de type chaînage arrière. KAS, dérivé du système expert PROSPECTOR, système expert pour l’interprétation de données géologiques. Cours d’Intelligence Artificielle P a g e | 55 Dans KAS, les connaissances sont représentées à l’aide de réseaux sémantiques aux côtés de règles de production. HEARSAY III, dérivé du système expert HEARSAY II, un système expert pour la compréhension du langage parlé. Le système de contrôle HEARSAY III diffère des moteurs d’inférence classiques, « à la MYCIN », car il est de type « tableau noir » : le démarrage est testé à la fois plusieurs hypothèses concurrentes qui peuvent conduire à des solutions très différentes d’un même problème initial. Les shells ci-dessus sont pour la plupart d’intérêt historique, mais leurs conceptions de base peuvent être trouvées dans une quantité considérable de logiciels actuellement sur le marché. 2.4.4. Langages de représentation de connaissances Les langages spécialisés dans la représentation de connaissances peuvent aussi être utilisés pour l’implémentation des systèmes experts. Des langages spécialisés dans la représentation des connaissances (tels que KLR, 0PS51, etc.) peuvent également être utilisés pour la mise en œuvre de systèmes experts. 2.4.5. Langages de programmation logiques, fonctionnels et logiques fonctionnels Les langages de programmation procéduraux, structurés et orientés objet manipulent des informations de type numérique, et l’essence même de ces langages réside dans la notion d’algorithmes. Cependant, l’information est souvent de nature symbolique dans la plupart des domaines d’expertise ; par conséquent, ces langages se sont avérés inefficaces pour le travail de l’intelligence artificielle, qui nécessite des mécanismes pour manipuler des informations de nature symbolique. Aussi, des chercheurs en intelligence artificielle travaillent au développement de nouvelles familles de langages offrant de nouvelles perspectives dans ce domaine. C’est la raison d’être de la programmation logique, de la programmation fonctionnelle et de la programmation logique fonctionnelle. Ces paradigmes de programmation spécifiques à l’intelligence artificielle sont les mieux adaptés à la mise en œuvre de systèmes d’intelligence artificielle. Leur structure permet une écriture aisée du moteur d’inférence. Malheureusement, ils présentent quelques désavantages, notamment la dépendance envers le programmeur professionnel pour toute modification et l’utilisation peu possible pour d’autres applications. Raison pour laquelle les langages multi-paradigmes sont utilisés. Cours d’Intelligence Artificielle P a g e | 56 2.4.6. Langages de programmation multi-paradigmes Les langages utilisant des paradigmes multiples, tels que Python, R, Ciao, Oz, etc. sont également utilisés dans le développement de systèmes experts en particulier et d’intelligence artificielle en général pour pallier aux insuffisances des langages de programmation logique, fonctionnelle et logique fonctionnelle. Ces langages sont donc adaptés principalement en raison de la pluralité des paradigmes de programmation utilisés et de leur richesse en termes de bibliothèques, modules et extensions. Cours d’Intelligence Artificielle P a g e | 57 CHAPITRE 3 : APPRENTISSAGE ARTIFICIEL 3.1. GENERALITES SUR L’APPRENTISSAGE ARTIFICIEL 3.1.1. Notion L’apprentissage est l’un des mécanismes permettant à un individu d’acquérir le savoir-faire (compétences), de savoirs (connaissances). L’acteur de l’apprentissage est appelé apprenant. Lorsque l’apprenant est la machine, on parle d’apprentissage artificiel, également appelé apprentissage automatique ou apprentissage machine et en anglais machine learning (ML), un terme inventé en 1959 par Arthur Samuel (un pionnier dans le domaine des jeux informatiques et de l’IA). Cela implique que les machines apprennent à partir des données fournies (à partir d’une base de données ou de capteurs) afin qu’ils effectuent certaines tâches. Pour les tâches simples assignées aux ordinateurs, il est possible de programmer des algorithmes indiquant à la machine comment exécuter toutes les étapes nécessaires pour résoudre le problème en question; du côté de l’ordinateur, aucun apprentissage n’est nécessaire. Pour des tâches plus avancées, il peut être difficile pour un humain de créer manuellement les algorithmes nécessaires. En pratique, il peut s’avérer plus efficace d’aider la machine à développer son propre algorithme, plutôt que de laisser des programmeurs humains spécifier chaque étape nécessaire. Ces programmes « intelligents », selon leur degré de perfectionnement, intègrent éventuellement des capacités de traitement probabiliste de données, l’analyse des données issues de capteurs, la reconnaissance de forme (reconnaissance vocale, forme géométrique, écriture, etc.), l’informatique théorique, la théorie de l’information, … 3.1.2. Approches d’apprentissages automatiques Les algorithmes d’apprentissage peuvent se catégoriser selon le mode d’apprentissage qu’ils emploient. Cours d’Intelligence Artificielle P a g e | 58 (1) L’apprentissage supervisé (supervised learning), où l’ordinateur est présenté avec des exemples d’entrées et leurs sorties souhaitées, donnés par un « enseignant » ou un « superviseur », et le but est d’apprendre une règle générale qui correspondent les entrées aux sorties. Il s’agit donc de prédire une valeur de sortie connaissant des entrées. Quelques applications de cette approche sont : L’analyse du churn, où l’on peut prédire si un abonné (à une entreprise de télécoms, une banque, une compagnie d’assurance, etc.) quittera l’entreprise ou non, connaissant ses caractéristiques (âge, nombre d’enfants, opérations effectuées, etc.); Le filtrage des e-mails, où l’on peut déterminer si un e-mail est un spam ou non, connaissant certains éléments (généralement des mots, des images ou parfois d’autres choses) se trouvant dans le mail. La reconnaissance de caractères manuscrits, où le système arrive à reconnaitre des caractères en observant des « exemples » ou des caractères connus. (2) L’apprentissage non supervisé (unsupervised learning), dans lequel aucune étiquette n’est attribuée à l’algorithme d’apprentissage, le laissant seul à trouver une structure dans son entrée. L’apprentissage non supervisé peut être un objectif en soi (découvrir des modèles cachés dans les données) ou un moyen d’atteindre une fin (apprentissage des fonctionnalités). Quelques applications de cette approche sont : La détection de communautés dans les réseaux sociaux, où le système fait le cherche à reconnaître les regroupements au sein de grands groupes de personnes. La segmentation de la clientèle, dans laquelle le système répartit la population générale de consommateurs en catégories qu’un expert pourrait interpréter comme les clients d’un groupe socioprofessionnel, ou les clients « early adopters », catégories qui peuvent ensuite être ciblées par différentes campagnes marketing. (3) L’apprentissage semi-supervisé (semi-supevised learning), qui combine les deux approches précédentes. Cette approche met donc en pratique un ensemble de données étiquetées et non étiquetées. Une application intéressante de cette approche est la prédiction de l’âge d’une personne à partir d’une photo. En effet, on pourrait constituer une collection Cours d’Intelligence Artificielle P a g e | 59 d’exemples étiquetés en prenant quelques personnes en photo et en leur demandant leur âge, mais en réalité certaines personnes mentent sur leur âge. Il n’y a donc pas de bruit aléatoire dans les données, au contraire, les imprécisions sont systématiques, et leur détection est un problème d’apprentissage non supervisé qui concerne des images, des âges réels inconnus. Ainsi, la combinaison du bruit et de l’absence d’étiquettes crée un continuum entre apprentissage supervisé et non supervisé. (4) L’apprentissage par transfert (transfer learning) est une approche d’apprentissage qui vise à donner à un système la capacité de reconnaître et d’appliquer les connaissances et les compétences, acquises lors de tâches précédentes, à de nouvelles tâches ou domaines qui partagent des similitudes. Ci-après quelques applications : Nous pouvons découvrir qu’apprendre à reconnaître les pommes peut aider à reconnaître les poires, et vice-versa. De même, apprendre à jouer de l’orgue électronique peut aider à faciliter l’apprentissage du piano, et vice-versa. En 2020, il a été découvert qu’en raison de leurs natures physiques similaires, on peut apprendre à un système à effectuer l’examen d’électromyographie (EMG) (qui est l’examen diagnostique utilisant le courant électrique pour étudier la fonction des nerfs et des muscles) sur la base des connaissances acquises à partir de l’examen électroencéphalographique (EEG) (qui est l’examen diagnostique utilisant le courant électrique pour étudier l’activité électrique spontanée du cerveau à travers le crâne). (5) L’apprentissage par renforcement, dans lequel un agent apprend dans un environnement interactif par essais et erreurs en utilisant le retour de ses propres actions et expériences. Pour que la machine fasse ce que veut le programmeur, l’agent obtient des récompenses ou des pénalités pour les actions qu’elle effectue. Son objectif est de maximiser la récompense totale. Les applications les plus adaptés sont les jeux vidéo. 3.2. APPRENTISSAGE NON SUPERVISE 3.2.1. Notions préliminaires sur l’apprentissage non supervisé Le développement des moyens informatiques (matériels, logiciels) a permis dans plusieurs domaines (médecine, économie, biologie) le stockage et la gestion de grandes Cours d’Intelligence Artificielle P a g e | 60 masse de données. Mais hélas, il est difficile, lorsque ce volume de données est considérable, de tirer des enseignements utiles sur les données, car celles-ci à cause de son volume élevé, vont masquer les connaissances utiles pour la prise de décision. 3.2.1.1. Jeu des données – Individu – Variable Nous représentons les données sous la forme d’une matrice 𝑚 × 𝑝, avec 𝑚 lignes et 𝑝 colonnes, les lignes correspondant aux entités de l’ensemble de données (entrepôt de données, base de données, tableur, etc.)) et des colonnes représentant des attributs ou propriétés appelées variables. Chaque ligne de la matrice enregistre les valeurs d’attribut observées pour une entité donnée qu’on appelle individu ou instance ou objet ou encore exemple. Cette matrice est donnée par : 𝑥11 𝑥12 ⋯ 𝑥 𝑥22 ⋯ ( 21 ⋮ ⋮ ⋮ ⋯ 𝑥𝑚1 𝑥𝑚2 𝑥1𝑝 𝑥2𝑝 ), ⋮ 𝑥𝑚𝑝 (3.1) où 𝑋𝑖 désigne la 𝑖-ème ligne, qui est un 𝑝-tuple donné par 𝑋𝑖 = (𝑥i1 , 𝑥i2 , ⋯ , 𝑥ip ) et 𝑌ℎ désgne la ℎ-ième colonne. Le nombre d’individus 𝑚 est appelé la taille des données, alors que le nombre de variables 𝑛 est appelé la dimension des données. La matrice (3.1) est appelée jeu (ou ensemble) de données, en anglais dataset ou data set. Par ailleurs, le jeu de données peut se présenter sous différentes formes. Certains utilisent même la représentation sous forme de graphe. 3.2.1.2. Types des méthodes d’apprentissage non supervisé Les méthodes d’apprentissage non supervisé sont subdivisées en deux grandes familles, à savoir : - Les méthodes factorielles : Les méthodes de classification (automatique). (1) Les méthodes factorielles consistent en la réduction de dimension afin de représenter le nuage de points (ou d’individus) à analyser dans un plan ou dans un espace à trois dimensions, sans trop de perte d’information, et sans hypothèse préalable. La technique utilisée dans ces méthodes consiste à consiste à transformer des variables liées (ou corrélées) en nouvelles variables décorrélées les unes des autres. Cours d’Intelligence Artificielle P a g e | 61 Parmi les méthodes de cette famille, nous pouvons citer : l’analyse en composantes principales (ACP), l’analyse factorielle des correspondances (AFC), l’analyse des correspondances multiples (ACM), l’analyse factorielle des données mixtes (AFDM), etc. (2) Les méthodes de classification, quant à elles, consistent au regroupement des individus en sous-groupes (classes ou clusters) homogènes de telle sorte que les individus d’une même classe se ressemblent de plus en plus et les individus appartenant à des classes différentes soient le plus différents possible. Mathématiquement, il s’agit donc minimiser l’inertie intra-classe, et maximiser l’inertie inter-classe. Dans la littérature, la classification est également appelée analyse typographique ou segmentation ou en anglais clustering. Plusieurs algorithmes ont été développés parmi lesquels on distingue les méthodes hiérarchiques et les méthodes de partitionnement direct. Les méthodes hiérarchiques ont pour objectif de créer des classes par construction d’une arborescence, et on trouve ici des classes emboitées. Pour trouver des classes disjointes il faut donc couper cette arborescence à un certain niveau selon le nombre des classes fixé par l’utilisateur. L’agrégation s’effectue à l’aide des indices de similarité ou dissimilarité. Pour les méthodes de partitionnement direct, on fixe le nombre de classes contenues dans les données, ensuite on définit la distance pour l’agrégation des individus. Dans cette famille, on distingue les méthodes de nuées dynamiques, les méthodes de centre mobile appelée aussi 𝑘-moyennes (ou 𝑘-means), le modèle de mélange gaussien, etc. Dans le cadre de ce cours, nous allons essentiellement nous intéresser qu’aux méthodes de classification. 3.2.1.3. Mesures de ressemblance La notion de ressemblance (ou proximité) a fait l’objet d’importantes recherches dans des domaines extrêmement divers. Pour qualifier cet opérateur, plusieurs notions comme la similarité, la dissimilarité ou la distance peuvent être utilisées. Nous appelons similarité ou dissimilarité toute application à valeurs numériques qui permet de mesurer le lien entre les individus d’un même ensemble. Pour une similarité le lien entre deux individus sera d’autant plus fort que sa valeur est grande. Pour une dissimilarité le lien sera d’autant plus fort que sa valeur dissimilarité est petite. Cours d’Intelligence Artificielle P a g e | 62 Définition 3.1 (Indice de dissimilarité). Un opérateur de ressemblance 𝑑: 𝑋 × 𝑋 ⟶ ℝ+ défini sur l’ensemble d’individus 𝑋 = {𝑋1 , 𝑋2 , … , 𝑋𝑚 } est dit indice de dissimilarité (ou dissimilarité), s’il vérifie les propriétés suivantes : (1) ∀𝑋𝑖 , 𝑋𝑗 , ∈ 𝑋; 𝑑(𝑋𝑖 , 𝑋𝑗 ) = 𝑑(𝑋𝑗 , 𝑋𝑖 ) ; (2) ∀𝑋𝑖 ∈ 𝑋; 𝑑(𝑋𝑖 , 𝑋𝑗 ) ≥ 𝑑 (𝑋𝑖 , 𝑋𝑖 ) = 0. (Propriété de symétrie) (Propriété de positivé) Définition 3.2 (Distance). Un opérateur de ressemblance 𝑑: 𝑋 × 𝑋 ⟶ ℝ+ défini sur l’ensemble d’individus 𝑋 = {𝑋1 , 𝑋2 , … , 𝑋𝑚 } est dit distance, s’il vérifie en plus des deux propriétés (1) et (2) les propriétés d’identité et d’inégalité triangulaire suivantes : (3) ∀𝑋𝑖 , 𝑋𝑗 ∈ 𝑋; 𝑑(𝑋𝑖 , 𝑋𝑗 ) = 0 ⇒ 𝑋𝑖 = 𝑋𝑗 ; (Propriété de d’identité) (4) ∀𝑋𝑖 , 𝑋𝑗 , 𝑋𝑘 ∈ 𝑋; 𝑑(𝑋𝑖 , 𝑋𝑗 ) ≤ 𝑑 (𝑋𝑖 , 𝑋𝑘 ) + 𝑑(𝑋𝑘 , 𝑋𝑗 ). (Inégalité triangulaire) Définition 3.3 (Indice de similarité). Un opérateur de ressemblance 𝑠: 𝑋 × 𝑋 ⟶ [0,1] défini sur l’ensemble d’individus 𝑋 = {𝑋1 , 𝑋2 , … , 𝑋𝑚 } est dit indice de similarité (ou similarité), s’il vérifie en plus de la propriété de symétrie (1) les deux propriétés suivantes : (5) ∀𝑋𝑖 ∈ 𝑋; 𝑠(𝑋𝑖 , 𝑋𝑗 ) ≥ 0 ; (Propriété de positivité) (6) ∀𝑋𝑖 , 𝑋𝑗 ∈ 𝑋 𝑒𝑡 𝑋𝑖 ≠ 𝑋𝑗 𝑠(𝑋𝑖 , 𝑋𝑖 ) = 𝑠(𝑋𝑗 , 𝑋𝑗 ) = 𝑠𝑚𝑎𝑥 > 𝑠(𝑋𝑖 , 𝑋𝑗 ) maximisation) (Propriété de Il convient de noter ici que le passage de l’indice de similarité 𝑠 à la notion duale d’indice de dissimilarité (que nous noterons 𝑑), est trivial. Etant donné 𝑠𝑚𝑎𝑥 la similarité d’un individu avec lui-même (𝑠𝑚𝑎𝑥 = 1 dans le cas d’une similarité normalisée), il suffit de poser : ∀𝑋𝑖 , 𝑋𝑗 ∈ 𝑋; 𝑑(𝑋𝑖 , 𝑋𝑗 ) = 𝑠𝑚𝑎𝑥 − 𝑠(𝑋𝑖 , 𝑋𝑗 ) (3.2) Le processus de classification vise à structurer les données contenues dans 𝑋 = {𝑋1 , 𝑋2 , … , 𝑋𝑚 } en fonction de leurs ressemblances, sous forme d’un ensemble de classes à la fois homogènes et compact. L’ensemble d’individu 𝑋 est caractérisé généralement sur un ensemble de 𝑝 variables 𝑌 = {𝑌1 , 𝑌2 , … , 𝑌𝑝 } définies chacune par : Cours d’Intelligence Artificielle P a g e | 63 𝑌ℎ : 𝑋 → ∆ℎ 𝑋𝑖 ∈ 𝑋 → 𝑌ℎ (𝑋𝑖 ). Les données de classification sont décrites dans un tableau Individus-variables tel que ∀𝑥𝑖 ∈ 𝑋, 𝑌ℎ (𝑋𝑖 ) (ℎ = 1, … , 𝑝) est soit quantitatif (où toutes les variables sont quantitatives) ou qualitatif (où toutes les variables sont qualitatives). Tableau de données numériques (continues ou discrètes) La distance la plus utilisée pour les données de type quantitatives continues ou discrètes est la distance de Minkowski d’ordre 𝛼 définie dans ℝ𝑝 par : 1 𝛼 𝑝 𝛼 ∀𝑋𝑖 , 𝑋𝑗 ∈ 𝑋; 𝑑(𝑋𝑖 , 𝑋𝑗 ) = (∑|𝑌ℎ (𝑋𝑖 ) − 𝑌ℎ (𝑋𝑗 )| ) , (3.3) ℎ=1 où 𝛼 ≥ 1, 𝑎𝑣𝑒𝑐 si : 𝛼 = 1, 𝑑 est la distance de city-block ou Manhattan. 𝑝 𝑑(𝑋𝑖 , 𝑋𝑗 ) = ∑|𝑌ℎ (𝑋𝑖 ) − 𝑌ℎ (𝑋𝑗 )|. (3.4) ℎ=1 𝛼 = 2, 𝑑 est la distance Euclidienne classique. 𝑝 2 𝑑(𝑋𝑖 , 𝑋𝑗 ) = √∑(𝑌ℎ (𝑋𝑖 ) − 𝑌ℎ (𝑋𝑗 )) . (3.5) ℎ=1 𝛼 → +∞, 𝑑 est la distance de Tchebychev définie comme suit : 𝑑(𝑋𝑖 , 𝑋𝑗 ) = max |𝑌ℎ (𝑋𝑖 ) − 𝑌ℎ (𝑋𝑗 )|. 1≤ℎ≤𝑚 (3.6) 3.2.1.4. Problème de classification automatique Signalons que dans toute la suite de cette section, nous noterons les 𝑋𝑖 par les minuscule 𝑥𝑖 . Cours d’Intelligence Artificielle P a g e | 64 Cependant, qu’il s’agisse de méthodes de partitionnement direct ou de méthodes hiérarchiques, le problème de classification peut se poser ainsi : Problème 3.1 (Problème de classification). Etant donné un ensemble 𝑋 = {𝑥1 , 𝑥2 , … , 𝑥𝑚 }, une distance 𝑑(𝑥1 , 𝑥2 ) définie pour tout couple (𝑥1 , 𝑥2 ), deux entiers positifs 𝑏 et 𝑘. Existet-il une partition 𝐶1 , 𝐶2 , … , 𝐶𝑘 de 𝑋 en 𝑘 classes telle que ∀ 𝑖 ∈ {1, … , 𝑘 } 𝑒𝑡 ∀(𝑥, 𝑦) ∈ 𝐶𝑘 , 𝑑(𝑥, 𝑦) < 𝑏 ? Pour rappel, Définition 3.4 (Partition). une partition d’un ensemble 𝑋 est un ensemble {𝐶𝑖 } de parties de 𝑋 tel que : (i) ∀𝑖 ∈ {1, … , 𝑘 }: 𝐶𝑖 ≠ ∅ ; (ii) ∀𝑖, 𝑗 ∈ {1, … , 𝑘 }: 𝐶𝑖 ∩ 𝐶𝑗 (𝑖 ≠ 𝑗); (iii) ⋃𝑘𝑖=1 𝐶𝑖 = 𝐴. On peut essayer de résoudre ce problème en engendrant l’ensemble des partitions possibles puis en testant la validité de partition. Cependant la taille de l’espace des partitions possibles est de l’ordre 𝑂 ( 𝑚𝑘 𝑘! ). L’algorithme proposé est donc exponentiel. Le nombre de partition possible est très grand même lorsque le cardinal de 𝑋 est petit. Si on considère le partitionnement de 𝑋 en 𝑘 classes, le nombre total de partition possible est donné par (nombre de Stirling 2ème type): 𝑘 1 𝑘 ∑(−1)𝑘−𝑖 ( ) 𝑖 𝑚 = 𝑠(𝑚, 𝑘 ), 𝑘! 𝑖 (3.7) 𝑖=1 avec 𝑠(𝑚, 𝑘) le nombre possible de partition de 𝑚 individus en 𝑘 classes. En effet, il existe 1701 partitions possibles de 8 objets repartis en 4 classes. Donc plutôt que de chercher la meilleure partition, on se contente d’en proposer une qualifiée de profitable qui optimise un critère de donné (inertie intra-classe). Pour grouper les objets, nous allons utiliser un critère de classification qui mesure la qualité de toutes les partitions en 𝑘 classes. 𝑊 ∶ 𝑘 ⟶ ℝ: Cours d’Intelligence Artificielle P a g e | 65 𝑃 ⟼ 𝑊 (𝑃, 𝑘 ). La partition optimale sera 𝑃∗ = {𝐶1 ∗ , … , 𝐶𝑘 ∗ } avec 𝑤(𝑝∗ , 𝑘 ) = min 𝑊 (𝑃, 𝑘 ). 𝑃∈℘𝑘 Le nombre des combinaisons de partitions à créer peut conduire le problème 3.1. à une explosion combinatoire. Par conséquent, le résoudre par une méthode exacte n’est pas pratique, car, déjà, le problème de la classification utilise plusieurs données, généralement des millions, voir des milliards de données. Ainsi, il est donc nécessaire d’utiliser des méthodes permettant de trouver ne serait-ce que la solution approchée. Ces méthodes sont généralement des heuristiques. Les heuristiques proposées pour le problème de classification diffèrent par les mesures de proximité qu’elles utilisent, la nature des données qu’elles traitent et l’objectif final de la classification. Cependant, les méthodes de partitionnement permettent de subdiviser l’ensemble d’individus en un certain nombre de classes en employant une stratégie d’optimisation itérative dont le principe général est de générer une partition initiale, puis de chercher à l’améliorer en réaffectant les données d’une classe à l’autre. Il n’est bien entendu pas souhaitable de lister toutes les partitions possibles. Ces algorithmes cherchent donc des maximums locaux en optimisant une fonction-objectif reflétant le fait que les individus doivent être similaires au sein d’une même classe, et dissemblables d’une classe à l’autre. Les classes de la partition finale, prises par paires, sont disjointes et chacune est représentée par un noyau (un ou plusieurs individus dans le jeu de données, ou un point dans l’espace) [Elghazel, 2008]. Dans le cadre de ce cours, nous utiliserons la méthode des centres mobiles et la méthode des nuées dynamiques. 3.2.2. Méthodes des centres mobiles 3.2.2.1. Historique de l’algorithme des centres mobiles On peut dénombrer plusieurs heuristiques pour résoudre le problème de classification, mais la méthode la plus appropriée actuellement pour les grands jeux de données ainsi que la plus utilisée pour est l’algorithme des centres mobiles. L’idée de l’algorithme des centres mobiles n’est pas nouvelle. D’ailleurs, l’idée originale est bien antérieure (proposée à l’origine par le mathématicien polonais Hugo Steinhaus en 1957), bien que l’algorithme ait été introduit par le mathématicien américain Edward W. Forgy en 1965. Cependant, déjà en 1957 mathématicien américain Stuart Lloyd proposa l’algorithme classique résolvant le problème de classification par partitionnement à des fins de modulation d’impulsion codée, Cours d’Intelligence Artificielle P a g e | 66 mais cet algorithme n’a pas été publié en dehors des laboratoires Bell avant 1982 ; c’est pour cette raison que l’algorithme est parfois appelé algorithme de Lloyd-Forgy. 3.2.2.2. Description de l’algorithme Supposons un jeu de données 𝑋 à 𝑚 individus caractérisés par 𝑝 variables. Supposons aussi que l’espace 𝑋 est une espace métrique muni d’une distance 𝑑 d’une distance appropriée. On désire partitionner les individus à au maximum 𝑘 classes. A. Initialisation L’initialisation de l’algorithme des centres mobiles à la détermination des 𝑘 centres (de gravité) initiaux, notés 𝑔10 , 𝑔20 , … , 𝑔𝑘0 induisant une première partition 𝑃0 de l’ensemble 𝑋 des individus en 𝑘 classes {𝐶10 , 𝐶20 , … , 𝐶𝑘0 }. Ainsi, plusieurs travaux traitent sur l’initialisation de l’algorithme des centres mobiles. Cette étape est donc un facteur déterminant dans la qualité des résultats. L’initialisation peut se faire par : la méthode aléatoire, qui consiste à attribuer aléatoirement une classe à chaque individu et puis procède au (premier) calcul des centres initiales ; la méthode de Forgy, qui est la méthode proposée dans le papier original de Forgy. Cette méthode attribue les 𝑘 centres initiaux à 𝑘 individus d’entrée choisis aléatoirement ; la méthode pseudo-aléatoire de McQueen, qui procède par tirage pseudo-aléatoire sans remise de 𝑘 individus dans la population à classifier. B. (Ré)allocation La (ré)allocation consiste à affecter chaque individu 𝑥𝑖 à la classe 𝐶𝑗𝑡 dont le centre est le plus proche par rapport à tous les autres centres. Cette proximité entre individu et centre se calcule par la distance. Ainsi, on calcule 𝑑(𝑥𝑖 , 𝑔𝑗 ), pour tout 𝑥𝑖 ∈ 𝑋, 𝑗 ∈ {1, 2, … , 𝑘}. C. Représentation A partir des individus rattachés, les centres de classes sont recalculés. Ces nouveaux centres induisent une nouvelle partition 𝑃𝑡+1 de 𝑋 construite selon la même règle que pour 𝑃𝑡 . La partition 𝑃𝑡+1 est constituée des classes notées 𝐶1𝑡+1 , 𝐶2𝑡+1 , … , 𝐶𝑘𝑡+1 . L’étape de (ré)allocation et de la représentation sont répétée jusqu’à ce que le critère d’arrêt soit rempli. Cours d’Intelligence Artificielle P a g e | 67 D. Critère d’arrêt L’algorithme des centres mobiles s’arrête lorsqu’un ou deux de ces critères ou même tous les critères suivants sont remplis. Lorsque le processus se stabilise, c’est-à-dire lorsque deux itérations successives conduisent à la même partition. Dans ce cas, aucun individu ne change de classe. Lorsqu’un nombre maximum d’itérations fixé a priori est atteint. Lorsque l’inertie intra-classe 𝑊 cesse de diminuer significativement. Figure 3.1. Déroulement de l’algorithme des centres mobiles. Cours d’Intelligence Artificielle P a g e | 68 Cet algorithme se déroule de la façon suivante: Algorithme 3.1 [Algorithme de 𝒌-means]. 0. Début 1. Initialisation 𝑘 points tirés au hasard pour les centres de gravité de chaque classe ; 2. Affectation (ou (ré-)allocation) On affecte les points à la classe la plus proche ; 3. Représentation On recalcule les nouveaux centres de gravité ; On répète les étapes d’affectation et de représentation jusqu’à le(s) critère(s) satisfasse(nt). 4. Fin. 4.2.2.3. Convergence de l’algorithme Il y a un nombre fini de partitions possibles à 𝑘 classes. De plus, chaque étape de l’algorithme fait strictement diminuer la fonction-objectif (qui est l’inertie intra-classe), positive, et fait découvrir une meilleure partition. Cela permet d’affirmer que l'algorithme converge toujours au bout d’un nombre fini d’itérations. 3.2.3. Méthodes des nuées dynamiques 3.2.3.1. Introduction La méthode dite des nuées dynamiques est l’une des méthodes de classification par partitionnement dite de « réallocation » pouvant avantageusement s’appliquer sur une grande population (grand ficher numérique ou grand tableau) avec un critère de qualité de la partition obtenue. Les algorithmes des nuées dynamiques sont itératifs et optimisent un critère mathématique. Cette méthode a été développé par Diday et se distingue principalement des approches précédentes par le mode de représentation des classes appelé aussi noyau. Ce dernier peut être son centre de gravité (dans ce cas nous retrouvons l’approche des centres mobiles), un Cours d’Intelligence Artificielle P a g e | 69 ensemble d’individus, une distance (l’approche des distances adaptatives), une loi de probabilité (la décomposition de mélanges), l’axe factoriel, etc. 3.2.3.2. Bases théoriques de l’algorithme Soit, un ensemble de 𝑚 individus. Chaque individu 𝑥𝑖 (𝑥𝑖 ∈ 𝐼), muni de sa masse 𝜇𝑖 est caractérisé par 𝑝 variables. Le problème posé est de trouver sur l’ensemble 𝐼 une partition en 𝑘 (𝑘 fixé à priori) classes au maximum satisfaisant un critère global de qualité. Principe général de la méthode Soient : 𝐼 : l’ensemble de n individus à partitionner en 𝑘 classes au maximum ; 𝑃(𝐼) = {𝑃0 , 𝑃1 , … , 𝑃𝑛 , … , 𝑃𝑘 } : ensemble des parties de 𝐼 ; 𝐴 : un ensemble de 𝑘 noyaux 𝐴𝑖 ; On suppose que l’espace ℝ𝑝 supportant les 𝑚 points individus est muni d’une distance appropriée ; notée 𝑑 ; Chaque classe est représentée par son centre 𝐴𝑖 , également appelé noyau, constitué du petit sous-ensemble de la classe qui minimise le critère de dissemblance. Les éléments constitutifs d’un noyau sont appelés étalons. Ce genre de noyau a pour certaines applications, un meilleur pouvoir descriptif que des centres ponctuels. Chaque individu 𝑥𝑖 (𝑥𝑖 ∈ 𝐼), est par conséquent, caractérisé par sa masse 𝜇𝑖 et par la distance 𝑑 (𝑥𝑖 , 𝐴𝑖 ) qui le sépare du noyau de sa classe. La méthode des nuées dynamiques consiste à trouver deux applications 𝜋 et 𝑣 sur lesquelles repose l’algorithme. Ces deux fonctions de base sont telles que : 𝑃 = 𝜋(𝐴). La fonction de réallocation 𝜋 a pour rôle de former une partition, c’est à dire d’affecter chaque individu 𝑥𝑖 du nuage 𝑁(𝐼) aux centres d’attractions que forment les noyaux. 𝐴 = 𝑣 (𝑃 ). La fonction de recentrage 𝑣 a pour rôle de recalculer les nouveaux noyaux à partir des classes déjà formées. Cours d’Intelligence Artificielle P a g e | 70 3.2.3.3. Présentation de l’algorithme des nuées dynamiques L’algorithme est une succession d’appels à ces deux fonctions, il se présente de la manière suivante : Algorithme 3.2. [Algorithme des nuées dynamiques] Début Initialisation Le choix (au hasard ou non) des k premiers noyaux, 𝐴10 , … , 𝐴0𝑛 , … , 𝐴0𝑘 , induisant la première partition 𝑃0 de l’ensemble 𝐼 et 𝑘 classes 𝐶10 , … , 𝐶𝑛0 , … , 𝐶𝑘0 . 2. Recherche de la meilleure partition Par l’exécution de 𝜋 sur ces noyaux et on poursuit les autres étapes jusqu’à l’arrêt de l’algorithme. 3. Fin. 0. 1. On remarque que l’algorithme se termine soit lorsque deux itération successives conduisent à la même partition, soit lorsqu’un critère judicieusement choisi (par exemple, la mesure de la variance intra classes) cesse de décroître de façon sensible (convergence), soit encore lorsqu’un nombre maximal d’itération fixé à priori est atteint. A. Choix des fonctions 𝒗 et 𝝅 Le choix de deux fonctions de base 𝑣 et 𝜋, de l’algorithme, est guidé par des considérations suivantes : 1°) 𝑃 = 𝜋(𝐴) avec 𝑃𝑖 = {𝑥𝑖 |𝑥𝑖 ∈ 𝐼 𝑒𝑡 𝑑 (𝑥𝑖 , 𝐴𝑖 ) ≤ 𝑑(𝑥𝑖 , 𝐴𝑗 )∀𝑗 ≠ 𝑖}. Chaque individu est associé au noyau le plus proche. 2°) 𝐴 = 𝑣(𝑃), 𝐴 = {𝐴1 , … , 𝐴𝑘 }. avec 𝐴𝑖 , un ensemble de 𝑛𝑖 éléments qui minimisent une fonction 𝐿(𝑥𝑖 , 𝐼, 𝑃). 3°) La fonction 𝐿(𝑥𝑖 , 𝐼, 𝑃) induit une notion de « distance » de l’individu 𝑥𝑖 à la classe 𝐶𝑚 de la partition 𝑃 ; Cours d’Intelligence Artificielle P a g e | 71 On peut alors définir un critère de qualité de la partition 𝑃 autour d’un ensemble de noyaux 𝐴 par : 𝑘 𝑊 (𝑉 ) = ∑ ( ∑ 𝐿(𝑥𝑖 , 𝐼, 𝑃)). 𝑖=1 (3.8) 𝑥𝑖 ∈𝐶𝑚 B. Convergence de l’algorithme Il s’agit de montrer que la variance intra-classes ne peut que décroître (ou rester stationnaire) entre l’étape t et l’étape 𝑡 + 1 de l’algorithme. Supposons que les 𝑛 individus 𝑥𝑖 à classifier de l’ensemble 𝐼 soient munis chacun de sa masse relative 𝜇𝑖 . Nous nous intéressons bien entendu, à la quantité « critère » qui vaut : A l’étape 𝑡 : 𝑘 𝑛 𝑣 (𝑡 ) = ∑ { ∑ 𝜇𝑖 𝑑 2 (𝑥𝑖 , 𝐺𝑞𝑡+1 )}, 𝑖=1 𝑥𝑖 ∈𝐶𝑞𝑡 où 𝑑2 (𝑥𝑖 , 𝐺𝑞𝑡+1 ) est le carré de la distance entre l’individu 𝑥𝑖 et le centre de gravité 𝐺𝑖𝑡 de la classe 𝑞 à l’étape 𝑡. A l’étape 𝑡 + 1 : 𝑘 𝑛 𝑣 (𝑡 + 1) = ∑ { ∑ 𝑖=1 𝜇𝑖 𝑑 2 (𝑥𝑖 , 𝐺𝑞𝑡+1 )}, 𝑥𝑖 ∈𝐶𝑞𝑡+1 où 𝑑 2 (𝑥𝑖 , 𝐺𝑞𝑡+1 ) est le carré de la distance entre l’individu 𝑥𝑖 et le centre de gravité 𝐺𝑞𝑡+1 de la classe 𝑞 à l’étape 𝑡 + 1. A l’étape t, la variance intra classes est la quantité 𝑘 𝑛 𝑣 (𝑡 ) = ∑ { ∑ 𝜇𝑖 𝑑 2 (𝑥𝑖 , 𝐺𝑞𝑡+1 )}. 𝑖=1 𝑥𝑖 ∈𝐶𝑞𝑡 Nous allons donc montrer que : 𝑣 (𝑡 ) > 𝑣 (𝑡 ) > 𝑣 (𝑡 + 1). Notons 𝜇𝑞 la somme des masses 𝜇𝑖 pour 𝑥𝑖 ∈ 𝐶𝑞𝑡 . Selon le théorème de Huygens, Cours d’Intelligence Artificielle P a g e | 72 𝑛 𝑣 (𝑡 ) = 𝑣 (𝑡 ) + ∑ 𝜇𝑖 𝑑 2 (𝐺𝑞𝑡+1 , 𝐺𝑞𝑡 ). 𝑥𝑖 ∈𝐶𝑞𝑡 Ce qui établit la première partie de l’inégalité. Cours d’Intelligence Artificielle P a g e | 73 C. Ordinogramme de nuées dynamiques Début Lecture du tableau des données, du seuil d’arrêt 𝜀 du nombre 𝑘 de classes. Calcul de 𝐿 = (𝐴𝑖 , … , 𝐴𝑘 ) où 𝐴𝑖 est le noyau de la classe 𝑃𝑖 . Calcul du critère 𝑊𝑖 = 𝑊(𝐿, 𝑃) 𝑘 𝑊(𝐿, 𝑃) = ∑ 𝐼(𝑃𝑖 ). 𝑖=1 Migration On construit 𝑃 en affectant chaque individu au noyau le plus proche. Appel de la fonction 𝜋. F |𝒘𝒊 − 𝒘𝒊+𝟏 | < 𝜀 V Imprimer : 𝑃(𝑃1 , … , 𝑃𝑘 ) ; 𝐼 (𝑃𝑖 ); 𝑘 𝑊(𝐿, 𝑃) = ∑ 𝐼(𝑃𝑖 ) 𝑖=1 Fin Figure 3.2. Ordinogramme de nuées dynamiques. Cours d’Intelligence Artificielle P a g e | 74 3.3. APPRENTISSAGE SUPERVISE 3.3.1. Notions préliminaires sur l’apprentissage supervisé 3.3.1.1. Problème d’apprentissage supervisé Les méthodes d’apprentissage supervisé consistent, à partir d’une collection des données, à anticiper de probables résultats en fonction des données historiques. Le type de la méthode d’apprentissage supervisé dépend du type de résultat (c’est-à-dire s’il est quantitatif ou qualitatif). Dans cette section, nous les variables de notre jeu de données sont regroupées en deux types : les variables d’entrées de l’espace 𝑋 et la variable de sortie de l’espace 𝑌. Définition 3.5 (Base d’apprentissage). Une base (ou un ensemble d’apprentissage) est un ensemble de couples (𝑥𝑖 , 𝑦𝑖 )1≤𝑖≤𝑚 avec 𝑥𝑖 ∈ 𝑋 et 𝑦𝑖 ∈ 𝑋 (où 𝑋 est appelé l’espace d’entrée et 𝑌 l’espace de sortie), que nous considérons comme dessiné selon une loi sur 𝑋 × 𝑌 fixe et inconnue, en particulier 𝑥𝑛 suit une loi uniforme et 𝑦𝑖 = 𝑓(𝑥𝑖 ) + 𝜀𝑖 où𝑓(𝑥𝑖 ) est la partie systématique du modèle et 𝜀𝑖 sa partie stochastique ou aléatoire. 𝜀𝑖 est un terme d’erreur ou un bruit. De manière simple, une base d’apprentissage qui consiste à l’ensemble des candidats ou objets (contenus dans les images, dans des fichiers plats, dans des bases de données, dans des entrepôts de données, dans le texte, etc.) utilisés pour générer ou afin de construire le modèle d’apprentissage. La méthode d’apprentissage supervisé utilise la base d’apprentissage pour déterminer une estimation de 𝑓 notée ℎ appelée prédicteur qui associe une sortie ℎ(𝑥) à une nouvelle entrée 𝑥. Définition 3.6 (Prédicteur). Un prédicteur, appelée aussi une fonction de prédiction ou une hypothèse est une fonction ℎ: 𝑋 ⟶ 𝑌 qui prédit pour un individu d’entrée 𝑥𝑖 ∈ 𝑋, une valeur 𝑦̂𝑖 = ℎ(𝑥𝑖 ) ∈ 𝑌. En d’autres termes, un prédicateur est une procédure, une fonction mathématique ou un algorithme qui, à partir d’un ensemble d’individus, produit une prédiction d’une valeur quelconque. Cours d’Intelligence Artificielle P a g e | 75 Si 𝑌 ⊂ ℤ et fini, c’est-à-dire si 𝑓 est une fonction discontinue, on parle alors de classement. Dans ce cas, le prédicteur est appelé classifieur ou classificateur. Un classifieur est donc une fonction mathématique ou un algorithme qui réalise les tâches d’affectation. Ce qui veut dire, le problème de prédiction est dit de classement si la valeur de sortie est catégorielle ou une étiquette. Exemple 3.1. Lors de l’analyse des données fiscales, la valeur, la valeur « frauduleux » ou « non frauduleux ». Plusieurs modèles sont utilisés pour résoudre le problème de classement, à savoir : la régression logistique, l’arbre de décision, le réseau de Bayes, le réseau de neurones, le séparateur à vaste marge (SVM), etc. Si 𝑌 ⊂ ℝ, c’est-à-dire si 𝑓 est une fonction continue, on parle alors de régression. Dans ce cas, la fonction de prédiction (ou le prédicteur) est alors appelée un régresseur. Ainsi, un régresseur est donc une fonction mathématique ou un algorithme qui réalise les tâches de régression. En clair, le problème de prédiction est dit de régression si la valeur à sortie est numérique. Exemple 3.2. La température qu’il fera le mois prochain, le PIB que la république aura dans 30 ans, etc. Il existe plusieurs modèles de régression actuellement, à savoir : la régression linéaire, la régression non-linéaire, qui peuvent être simple ou multiple, et tous les algorithmes cités pour le classement, etc. En résumé, en apprentissage supervisé (cas du classement), le superviseur prédit déjà avec ses hypothèses la classe réelle de l’individu et le classifieur aura pour tâche de prédire la même classe que superviseur, qui peut être un être humain ou un programme, en commençant par l’auto-création d’un modèle qui simule au mieux cette connaissance du superviseur. Cours d’Intelligence Artificielle P a g e | 76 Superviseur Les entrées ℰԦ Classifieur Vraie classe de ℰԦ Classe estimée de ℰԦ Mesure de l’erreur Algorithmes d’apprentissage Figure 3.3. Résumé du fonctionnement de l’apprentissage supervisé. Hormis l’ensemble d’apprentissage, il existe aussi deux catégories d’ensembles des données qui sont utilisées en évidence en apprentissage automatique : L’ensemble de test qui est constitué des individus sur lesquels sera appliqué le modèle d’apprentissage construit dans le but de tester et de corriger la méthode ou l’algorithme utilisé. L’ensemble de validation peut être utilisé pendant de l’apprentissage (en tant que souspopulation de l’ensemble d’apprentissage) afin de valider ou intégrer le modèle et d’éviter le sur-apprentissage. 3.3.1.2. Notions de sur-apprentissage et sous-apprentissage Le sur-apprentissage (overfitting), et le sous-apprentissage (underfitting) sont les causes principales des mauvaises performances des modèles prédictifs générés par les algorithmes d’apprentissage automatique. Cours d’Intelligence Artificielle P a g e | 77 A. Sur-apprentissage Définition 3.7. Le sur-apprentissage ou sur-ajustement ou encore surinterprétation est le fait de construire un modèle qui contient plus de paramètres que ne peuvent le justifier les données. Dans ce sens, il capturera toutes les fluctuations et variations aléatoires des données de l’ensemble d’apprentissage. En d’autres termes, le modèle prédictif capturera les corrélations généralisables et le bruit produit par les données. C’est donc un modèle trop spécialisé sur les données de l’ensemble d’apprentissage et qui se généralisera mal. Quand un tel événement se produit, le modèle prédictif pourra donner de très bonnes prédictions sur les données de l’ensemble d’apprentissage (les données qu’il a déjà « vues » et auxquelles il s’y est adapté), mais il prédira mal sur des données qu’il n’a pas encore vues lors de sa phase d’apprentissage. On dit que la fonction de prédiction se généralise mal. Et que le modèle souffre de sur-apprentissage. B. Sous-apprentissage Définition 3.8. Le sous-apprentissage ou sous-ajustement ou encore sous-interprétation le fait de construire un modèle qui contient moins de paramètres que ne peuvent le justifier les données. Autrement dit, le modèle prédictif n’arrive même pas à capturer les corrélations de l’ensemble d’apprentissage. Par conséquent, le coût d’erreur en phase d’apprentissage reste grand. Bien évidemment, le modèle prédictif ne se généralisera pas bien non plus sur les données qu’il n’a pas encore vu. Finalement, le modèle ne sera viable car les erreurs de prédictions seront grandes. Dans ce cas de figure, on dit que le modèle souffre de sous-apprentissage. On dit également qu’il souffre d’un grand biais. C’est un modèle généraliste incapable de fournir des prédictions précises. 3.3.2. Méthode de 𝒌-plus proches voisins 3.3.2.1. Présentation La méthode de 𝑘 plus proches (𝑘-NN, de l’anglais 𝑘 nearest neighbors) est une méthode d’apprentissage supervisé très intuitive en termes de principe de fonctionnement. Cette méthode a été proposée par Thomas Cover. Cependant, l’entrée est les 𝑘 individus Cours d’Intelligence Artificielle P a g e | 78 d’apprentissage les plus proches dans l’espace des fonctions. L’algorithme 𝑘-NN est parmi les plus simples des algorithmes d’apprentissage automatique. Les voisins sont pris depuis un ensemble d’individus pour lesquels la classe est connue. Ceci peut être considéré comme l’ensemble d’apprentissage pour l’algorithme, bien qu’un apprentissage explicite ne soit pas particulièrement requis. Une particularité des algorithmes 𝑘-NN est d’être particulièrement sensible à la structure locale des données. 3.3.2.2. Principe général de la méthode La première étape de cette méthode est la définition du nombre de voisins 𝑘. En effet, 𝑘 est une constante définie par l’utilisateur, et un nouvel individu 𝑥 non étiqueté. Le choix de la valeur 𝑘 à utiliser pour faire une prédiction avec 𝑘-NN varie en fonction du jeu de données. En règle générale, moins des voisins sont utilisés (un nombre 𝑘 plus petit), plus il y a de sous-apprentissage. Par ailleurs, plus des voisins sont utilisés (un grand nombre 𝑘), plus la prédiction sera fiable. Cependant, si on utilise 𝑘 nombre de voisins avec 𝑘 = 𝑝 et 𝑝 étant le nombre d’individus que l’on appelle aussi la taille du jeu de données, on risque d’avoir un sur-apprentissage et par conséquent un modèle qui généralise mal sur des exemples qu’il n’a pas encore vu. L’étape suivante consiste à calculer la distance entre le nouvel exemple 𝑥 et tous les individus de l’ensemble d’apprentissage à l’aide de la métrique 𝑑. Les individus d’apprentissage sont des vecteurs dans un espace de fonctions multidimensionnel, chacun avec une étiquette de classe. La métrique la plus utilisés pour le 𝑘-NN est la distance euclidienne. Pour des variables discrètes, telles que dans de la prédiction de texte, la métrique utilisée est la distance de Hamming. Dans le contexte de micro-tableau de données génétiques, par exemple, 𝑘-NN a aussi été employé avec des coefficients de corrélation de Pearson et Spearman. On selectione 𝑘 individus d’apprentissage qui ont les plus petites distances de 𝑥. Ces individus selectionnés sont les 𝑘 plus proches voisins de 𝑥. Après avoir déterminé les 𝑘 voisins les plus proches de 𝑥, il reste à prédire sa classe. La classe de 𝑥 sera la classe de la plupart de nos voisins. Le déroulement de la méthode peut être représenté graphiquement comme suit: Cours d’Intelligence Artificielle P a g e | 79 Figure 3.4. Déroulement de l’algorithme de 𝑘 plus proche voisins. Pour un nouvel individu 𝑥 dont on veut prédire sa variable de sortie 𝑋, l’algorithme se déroule de la manière suivante: Algorithme 3.1 [Algorithme de 𝒌 plus proches voisins]. 0. Début 1. Initialisation On définit 𝑘 qui est le nombre de voisins ; 2. Calcul des distances On calcule toutes les distances de cet individu 𝑥 avec les autres individus du jeu de données 𝑋, c’est-à-dire pour chaque 𝑥𝑖 ∈ 𝑋, calculer 𝑑 (𝑥, 𝑥𝑖 ) ; 3. Sélection des plus proches voisins On retient les 𝑘 individus du jeu de données 𝑋 les proches de 𝑥 en utilisation le fonction de calcul de distance 𝑑. On prend les valeurs de 𝑦 des 𝑘 individus retenue, et on calcule le mode de 𝑦 retenues (Application de la majorité simple); On retourne la classe trouvée comme étant la classe qui a été prédite par 𝑘-NN pour l’individu. 4. Fin. 3.3.2.3. Limitations de 𝒌-NN 𝑘-NN est un algorithme assez simple à appréhender. Principalement, grâce au fait qu’il n’a pas besoin de modèle pour pouvoir effectuer une prédiction. Le contre coût est qu’il Cours d’Intelligence Artificielle P a g e | 80 doit garder en mémoire le jeu des données pour pouvoir effectuer sa prédiction. Ainsi il faut faire attention à la taille de l’ensemble d’apprentissage. Egalement, le choix de la méthode de calcul de la distance ainsi que le nombre de voisins 𝑘 peut ne pas être évident. Il faut essayer plusieurs combinaisons et faire du réglage de l’algorithme pour avoir un résultat satisfaisant. En outre, fréquemment, le classement 𝑘-NN peut être améliorée de manière significative si la métrique est apprise avec des algorithmes spécialisés tels que la méthode de 𝑘 plus proches voisins à grande tolérance ou l’analyse des composantes de voisinage. Une technique efficace peut être utilisée pour pondérer l’influence contributive des voisinages, ainsi les plus proches voisins contribuent-ils plus à la moyenne que les voisins plus éloignés. Par exemple, un schéma courant de pondération consiste à donner à chaque 2 voisin une pondération de 1/𝑑 ou 𝑒 −𝑑 , ou 𝑑 est la distance de l’élément, à classer ou à pondérer, de ce voisin. 3.3.3. Arbres de décision 3.3.3.1. Présentation Pour rappel, un arbre est un graphe connexe sans cycle. Il est appelé arborescente (ou arbre enraciné) s’il possède un nœud spécial appelé racine. Ainsi, les arbres de décision sont une catégorie d’arbres utilisée dans en Informatique décisionnelle. En effet, ils sont l’une des approches les plus largement utilisées dans l’apprentissage supervisé. Un arbre de décision (en tant que modèle prédictif) est un outil d’aide à la décision représentant un ensemble de choix sous la forme graphique d’une arborescente : Les feuilles représentent les (décisions possibles sur) les valeurs de la variables cibles (donc les étiquettes de classe) ; Les arcs correspondent à des combinaisons de variables d’entrée qui mènent à ces valeurs. Les nœuds internes décrivent un test sur des variables d’apprentissage. Ces nœuds sont appelés nœuds de test. Pour parcourir un arbre de décision et trouver une solution il faut partir de la racine. Chaque réponse possible est prise en compte et permet de se diriger vers un des fils du nœud. De proche en proche, on descend dans l’arbre en passant par les nœuds de test jusqu’à tomber Cours d’Intelligence Artificielle P a g e | 81 sur une feuille pour classer l’individu testé. Ainsi, on peut dire qu’un arbre de décision est une structure qui permet de déduire un résultat (étiquette de classe) à partir de décisions successives. Très souvent on considère qu’un nœud pose une question sur une variable, la valeur de cette variable permet de savoir sur quels fils descendre. Pour les variables énumérées, il est parfois possible d’avoir un fils par valeur, on peut aussi décider que plusieurs variables différentes mènent au même sous-arbre. Pour les variables continues il n’est pas envisageable de créer un nœud qui aurait potentiellement un nombre de fils infini, il faut discrétiser le domaine continu (arrondis, approximation), donc décider de segmenter le domaine en sous-ensembles. Plus l’arbre est simple, plus son utilisation semble techniquement rapide. En fait, il est plus intéressant d’obtenir un arbre qui est adapté aux probabilités des variables à tester. La plupart du temps un arbre équilibré sera un bon résultat. Si un sous-arbre ne peut mener qu’à une solution unique, alors tout ce sous-arbre peut être réduit à sa simple conclusion, cela simplifie le traitement et ne change rien au résultat final. L’objectif est de rendre l’arbre aussi petit que possible (facilitant la recherche) tout en faisant un compromis entre les taux d’erreur sur l’ensemble d’apprentissage et sur l’ensemble de test afin de pouvoir généraliser. Revenue >10000 Revenue <10000 Sexe = H Sexe = F Age <50 𝑻𝒋 𝑻𝒍 𝑻𝒌 Figure 3.5. Illustration d’arbre de décision. Cours d’Intelligence Artificielle Age >50 P a g e | 82 A. Apprentissage d’un arbre de décision A.1. Principe général de l’apprentissage d’un arbre de décision Tous les algorithmes d’apprentissage d’un arbre de décision se fait en deux phases : la phase d’expansion où l’on construit l’arbre et la phase d’élagage où l’on supprime certains sous-arbres. (1) Dans la phase d’expansion, l’arbre est généralement construit en séparant le jeu de données en sous-ensembles en fonction de la valeur d’une variable d’entrée. Ce processus est répété sur chaque sous-ensemble obtenu de manière récursive, il s’agit donc d’un partitionnement récursif. Cette récursivité est terminée lorsqu’un critère d’arrêt est rempli. Ce processus est appelé induction descendante d’arbres de décision. Cette phase possède trois opérateurs suivant : Décider si un nœud est une feuille, c’est-à-dire si un nœud doit être étiqueté. En général, on décide qu’un nœud est une feuille lorsque tous les individus associés à ce nœud, ou du moins la plupart d’entre eux sont dans la même classe, ou encore, s’il n’y a plus de variables inutilisées dans la branche correspondante. Signalons qu’en général, le nœud se voit affecté dans la classe majoritaire (éventuellement calculée à l’aide d’une fonction de coût lorsque les erreurs de prédiction ne sont pas équivalentes). Lorsque plusieurs classes sont en compétition, on peut choisir la classe la plus représentée dans l’ensemble de l’échantillon, ou en choisir une au hasard. Sélectionner un test à associer à un nœud, donc éventuellement choisir un critère de partitionnement. La sélection d’un test à associer à un nœud est plus difficile. Puisque nous essayons de construire le plus petit arbre de décision possible qui tient le mieux compte des données, une idée naturelle est de rechercher un test qui fait le plus de progrès dans la tâche de classement des données d’apprentissage. Comment mesurer cette expansion ? C’est le choix des critères de partitionnement qui permettra de le faire. Affecter une classe à une feuille. On attribue la classe majoritaire sauf dans le cas où l’on utilise des fonctions coût ou risque. La phase d’expansion peut s’arrêter dans l’un de ces cas: Cours d’Intelligence Artificielle P a g e | 83 chaque élément du sous-ensemble appartient à la même classe; auquel cas le nœud est transformé en feuille et étiqueté avec la classe des individus. il n’y a plus de variables à sélectionner, mais les individus n’appartiennent toujours pas à la même classe. Dans ce cas, le nœud est transformé en feuille et étiqueté avec la classe majoritaire des individus du sous-ensemble. il n’y a pas d’individus dans le sous-ensemble, ce qui se produit lorsqu’aucun individu dans l’ensemble parent n’a été trouvé pour correspondre à une valeur spécifique de la variable sélectionné. Ensuite, une feuille est créée et étiquetée avec la classe majoritaire des individus dans l’ensemble du nœud parent. La phase d’expansion est donc un problème fondamental. Il s’agira de rechercher le partitionnement optimal à chaque nœud de l’arbre, dans le but d’obtenir le meilleur partitionnement possible sur l’ensemble de l’arbre de décision. Il s’agit de la stratégie la plus courante pour apprendre les arbres de décision à partir de données. Ce problème est donc un problème NP-complet dans de nombreux aspects de l’optimalité et même pour des concepts simples. Par conséquent, les algorithmes pratiques d’apprentissage d’arbre de décision sont basés sur des heuristiques telles que ID3, C4.5, CART, CHAID, MARS, etc. Cependant, pour les besoins de ce cours, nous nous limiterons à ID3 et CART. Les algorithmes précités différeront dans les choix effectués pour ces différents opérateurs. Par exemple, pour le choix du critère de partitionnement, l’utilisation du gain, l’entropie de Shannon, l’indice de Gini ou la métrique du chi carré. L’algorithme comme ID3 utilise l’entropie de Shannon, et l’algorithme comme CART utilise l’indice de Gini dans le critère. (2) L’idéal serait de trouver un critère pour éviter une expansion excessive de l’arbre en arrêtant sa construction au bon moment. Malheureusement, ce problème reste ouvert à ce jour. De plus, le risque d’arrêter trop tôt l’expansion de l’arbre est plus grand que d’arrêter trop tard. C’est ainsi que la phase d’élagage est importante pour minimiser l’erreur réelle. En pratique, nous construisons l’arbre en sélectionnant les variables qui minimisent la taille de l’arbre en classant correctement les individus d’apprentissage puis nous élaguons certains sous-arbres pour garder un pouvoir de généralisation (même si cela signifie augmenter l’erreur sur l’ensemble d’apprentissage). Cours d’Intelligence Artificielle P a g e | 84 A.2. Schéma générique de l’apprentissage de l’arbre de décision Tous ces algorithmes précédents visent à créer un modèle qui prédit la valeur d’une variable cible à partir de la valeur de plusieurs variables d’entrée. Le schéma générique des algorithmes est le suivant : Algorithme 3.2 [Schéma générique de l’apprentissage de l’arbre de décision]. 0. Début 1. Phase d’expansion de l’arbre : 1.1. Initialiser l’arbre courant au vide ; 1.2. Créer un nœud racine ; 1.3. Répéter 1.3.1. Décider si le nœud est une feuille : Si le nœud est une feuille Alors Affecter une classe à une feuille ; Sinon Aller à 1.3.2 FinSi 1.3.2. Sélectionner un test à associer à un nœud; Jusqu’à ce que la condition d’arrêt soit remplie. 2. Phase d’élagage : Supprimer certains sous-abres dans le but de minimiser l’erreur réelle. 2. Fin. B. Algorithme ID3 L’algorithme ID3 (de l’anglais Iterative Dichotomiser 3, pour « Dichotomiseur itératif 3 ») fut proposé par Ross Quinlan en 1979 afin de générer des arbres de décisions à partir de données. L’algorithme ID3 choisit dont la variable qui minimise la quantité de l’information apportée par le nœud. Cette quantité de l’information est mesurée par l’entropie de Shannon. La notion d’entropie de Shannon a été introduite par Claude Shannon lors de ses recherches concernant la théorie de l’information qui sert de base à énormément de méthodes d’apprentissage automatique. C’est donc cette métrique qui sera utilisée dans le critère de partitionnement. Cours d’Intelligence Artificielle P a g e | 85 L’entropie utilisée est l’entropie conditionnelle. En effet, si on a deux variables 𝑌1 et 𝑌2 , l’entropie conditionnelle de 𝑌2 relativement à 𝑌1 est donné par : 𝑚 𝑚 𝐻 (𝑌2 |𝑌1 ) = ∑ ℙ(𝑋1 = 𝑥1𝑖 ) (− ∑ ℙ(𝑋2 = 𝑥2𝑘 |𝑋1 = 𝑥1𝑖 )) log 2 (ℙ(𝑋2 = 𝑥2𝑘 |𝑋1 = 𝑥1𝑖 )). 𝑖=1 𝑘=1 Par simplification d’écriture, on écrit : 𝑚 𝑚 (3.9) 𝐻 (𝑌2 |𝑌1 ) = ∑ ℙ(𝑥1𝑖 ) (− ∑ ℙ(𝑥2𝑘 |𝑥1𝑖 )) log (ℙ(𝑥2𝑘 |𝑥1𝑖 )). 𝑖=1 𝑘=1 Exemple 3.3. Considérons le jeu de donnés suivant : Client Montant Age Résidence Etudes Consultation internet 1 Moyenne moyen village Oui oui 2 Elevé moyen bourg Non non 3 Faible Agé bourg Non non 4 Faible moyen bourg Oui oui 5 Moyen Jeune ville Oui oui 6 Elevé Agé ville Non non 7 Moyen Agé ville Non non 8 Faible moyen village Non non Tableau 3.1. Exemple sur la méthode ID3. Ici, on voit bien que la procédure de classification à trouver qui à partir de la description d’un client, nous indique si le client effectue la consultation de ses comptes par Internet, c’est-à-dire la classe associée au client. Pour le cas de notre exemple : Pour déterminer la première variable test (racine de l’arbre), on recherche la variable d’entropie la plus faible. On doit donc calculer 𝐻(𝐶|𝑆𝑜𝑙𝑑𝑒), 𝐻(𝐶|𝐴𝑔𝑒), 𝐻(𝐶|𝐿𝑖𝑒𝑢), 𝐻(𝐶|𝐸𝑡𝑢𝑑𝑒𝑠), où la classe 𝐶 correspond aux personnes qui consultent leurs comptes sur Internet. Cours d’Intelligence Artificielle P a g e | 86 𝐻(𝐶|𝑆𝑜𝑙𝑑𝑒) = −ℙ(𝑓𝑎𝑖𝑏𝑙𝑒). (ℙ(𝐶|𝑓𝑎𝑖𝑏𝑙𝑒)𝑙𝑜𝑔(ℙ(𝐶|𝑓𝑎𝑖𝑏𝑙𝑒)) + ℙ(𝐶̅ |𝑓𝑎𝑖𝑏𝑙𝑒)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑓𝑎𝑖𝑏𝑙𝑒))) −ℙ(𝑚𝑜𝑦𝑒𝑛). (ℙ(𝐶|𝑚𝑜𝑦𝑒𝑛)𝑙𝑜𝑔(ℙ(𝐶|𝑚𝑜𝑦𝑒𝑛)) + ℙ(𝐶̅ |𝑚𝑜𝑦𝑒𝑛)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑚𝑜𝑦𝑒𝑛))) −ℙ(𝑒𝑙𝑒𝑣𝑒). (ℙ(𝐶|𝑒𝑙𝑒𝑣𝑒)𝑙𝑜𝑔(ℙ(𝐶|𝑒𝑙𝑒𝑣𝑒)) + ℙ(𝐶̅ |𝑒𝑙𝑒𝑣𝑒)𝑙𝑜𝑔(ℙ (𝐶̅ |𝑒𝑙𝑒𝑣𝑒))) 𝐻(𝐶|𝑆𝑜𝑙𝑑𝑒) 3 1 1 2 2 3 2 2 1 1 2 = − ( . 𝑙𝑜𝑔 ( ) + . 𝑙𝑜𝑔 ( )) − ( . 𝑙𝑜𝑔 ( ) + . 𝑙𝑜𝑔 ( )) − (0. 𝑙𝑜𝑔(0) + 1. 𝑙𝑜𝑔(1)) 8 3 3 3 3 8 3 3 3 3 8 = 0,20725. −ℙ(𝑗𝑒𝑢𝑛𝑒). (ℙ(𝐶|𝑗𝑒𝑢𝑛𝑒)𝑙𝑜𝑔(ℙ(𝐶|𝑗𝑒𝑢𝑛𝑒)) + ℙ(𝐶̅ |𝑗𝑒𝑢𝑛𝑒)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑗𝑒𝑢𝑛𝑒))) 𝐻(𝐶|𝐴𝑔𝑒) = −ℙ(𝑚𝑜𝑦𝑒𝑛). (ℙ(𝐶|𝑚𝑜𝑦𝑒𝑛)𝑙𝑜𝑔(ℙ(𝐶|𝑚𝑜𝑦𝑒𝑛)) + ℙ(𝐶̅ |𝑚𝑜𝑦𝑒𝑛)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑚𝑜𝑦𝑒𝑛))) −ℙ(𝑎𝑔𝑒). (ℙ(𝐶|𝑎𝑔𝑒)𝑙𝑜𝑔(ℙ(𝐶|𝑎𝑔𝑒)) + ℙ(𝐶̅ |𝑎𝑔𝑒)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑎𝑔𝑒))) = 0,15051. −ℙ(𝑏𝑜𝑢𝑟𝑔). (ℙ(𝐶|𝑏𝑜𝑢𝑟𝑔)𝑙𝑜𝑔(ℙ(𝐶|𝑏𝑜𝑢𝑟𝑔)) + ℙ(𝐶̅ |𝑏𝑜𝑢𝑟𝑔)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑏𝑜𝑢𝑟𝑔))) −ℙ(𝑣𝑖𝑙𝑙𝑎𝑔𝑒). (ℙ(𝐶|𝑣𝑖𝑙𝑙𝑎𝑔𝑒) log(ℙ(𝐶|𝑣𝑖𝑙𝑙𝑎𝑔𝑒)) + ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑎𝑔𝑒) log(ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑎𝑔𝑒))) 𝐻(𝐶|𝐿𝑖𝑒𝑢) = −ℙ(𝑣𝑖𝑙𝑙𝑒). (ℙ(𝐶|𝑣𝑖𝑙𝑙𝑒)𝑙𝑜𝑔(ℙ(𝐶|𝑣𝑖𝑙𝑙𝑒)) + ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑒)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑒))) = 0,2825. 𝐻(𝐶|𝐸𝑡𝑢𝑑𝑒𝑠) = −ℙ(𝑜𝑢𝑖). (ℙ(𝐶|𝑜𝑢𝑖)𝑙𝑜𝑔(ℙ(𝐶|𝑜𝑢𝑖)) + ℙ(𝐶̅ |𝑜𝑢𝑖)𝑙𝑜𝑔(𝑃(𝐶̅ |𝑜𝑢𝑖))) −ℙ(𝑛𝑜𝑛). (ℙ(𝐶|𝑛𝑜𝑛)𝑙𝑜𝑔(ℙ(𝐶|𝑛𝑜𝑛)) + ℙ(𝐶̅ |𝑛𝑜𝑛)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑛𝑜𝑛))) = 0,18275. La première variable est donc l’âge (variable dont l’entropie est minimale). On obtient l’arbre suivant : Age Agé jeune moyen Consultation ? Non consultation Figure 3.6. Traçage de l’arbre de l’exemple 3.3 (a). Cours d’Intelligence Artificielle P a g e | 87 Pour la branche correspondant à un âge moyen, on ne peut pas conclure, on doit donc recalculer l'entropie sur la partition correspondante. 𝐻(𝐶|𝑆𝑜𝑙𝑑𝑒) = −ℙ(𝑏𝑜𝑢𝑟𝑔). (ℙ(𝐶|𝑏𝑜𝑢𝑟𝑔)𝑙𝑜𝑔(ℙ(𝐶|𝑏𝑜𝑢𝑟𝑔)) + ℙ(𝐶̅ |𝑏𝑜𝑢𝑟𝑔)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑏𝑜𝑢𝑟𝑔))) −ℙ(𝑣𝑖𝑙𝑙𝑎𝑔𝑒). (ℙ(𝐶|𝑣𝑖𝑙𝑙𝑎𝑔𝑒) log(ℙ(𝐶|𝑣𝑖𝑙𝑙𝑎𝑔𝑒)) + ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑎𝑔𝑒) log(ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑎𝑔𝑒))) −ℙ(𝑣𝑖𝑙𝑙𝑒). (ℙ(𝐶|𝑣𝑖𝑙𝑙𝑒)𝑙𝑜𝑔(ℙ(𝐶|𝑣𝑖𝑙𝑙𝑒)) + ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑒)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑣𝑖𝑙𝑙𝑒))) = 0,30103. 𝐻(𝐶|𝐸𝑡𝑢𝑑𝑒𝑠) = −ℙ(𝑜𝑢𝑖). (ℙ(𝐶|𝑜𝑢𝑖)𝑙𝑜𝑔(ℙ(𝐶|𝑜𝑢𝑖)) + ℙ(𝐶̅ |𝑜𝑢𝑖)𝑙𝑜𝑔(𝑃(𝐶̅ |𝑜𝑢𝑖))) −ℙ(𝑛𝑜𝑛). (ℙ(𝐶|𝑛𝑜𝑛)𝑙𝑜𝑔(ℙ(𝐶|𝑛𝑜𝑛)) + ℙ(𝐶̅ |𝑛𝑜𝑛)𝑙𝑜𝑔(ℙ(𝐶̅ |𝑛𝑜𝑛))) = 0. La variable qui a l’entropie la plus faible est « Etudes ». L'arbre devient alors: Age jeune âgé moyen Non consultation Consultation Etudes Oui Consultation Non Non consultation Figure 3.7. Traçage de l’arbre de l’exemple 3.3 (b). L’ensemble des individus est classé et on constate que sur cet ensemble d’apprentissage, seuls deux attributs sur les quatre sont discriminants. Cours d’Intelligence Artificielle P a g e | 88 Problèmes de l’algorithme ID3 La solution globale n’est pas garantie (la solution trouvée est un optimum local ; une amélioration possible : backtracking pour tenter d’obtenir une meilleure solution). L’algorithme n’est pas adapté pour des données numériques continues. Pour essayer de pallier à ces insuffisances deux extensions on été proposées, l’algorithme C4.5 et l’algorithme C5.0. Ci-après les ajouts dans ces différents algorithmes: C4.5 (Iterative Dichotomiser 4.5) Le critère de division est le gain d’information normalisé maximal (différence entre les entropies avant et après la division). Chaque attribut peut avoir un poids (coût). L’algorithme permet le traitement de variables continues en cherchant des seuils qui maximisent le gain d’information. L’algorithme permet le traitement des valeurs manquantes. L’étape d’élagage après la création pour remplacer des branches inutiles par des feuilles. C5.0 (Iterative Dichotomiser 5.0) La vitesse et utilisation mémoire. L’algorithme est optimisé pour des jeux de données de très grande taille. Les arbres de décision issus de ces algorithmes sont plus petits. L’algorithme permet la pondération des cas et erreurs de classement. B. Algorithme CART L’algorithme CART (de l’anglais Classification And Regression Trees, en français « Arbres de Classement et de Régression ») fut proposé par Leo Breiman en 1984. L’arbre de décision généré par CART est binaire (un nœud ne peut avoir que 2 fils). L’algorithme CART choisit donc la variable et le seuil qui maximisent la décroissance de l’impureté du nœud par rapport à la cible. Cette impureté est mesurée par l’indice de Gini. Cette métrique est la vraisemblance qu’un élément du nœud soit incorrectement étiqueté par Cours d’Intelligence Artificielle P a g e | 89 un tirage aléatoire qui respecte la loi statistique de la cible estimée dans le nœud. C’est donc l’indice de Gini dans le critère de partitionnement. L’indice de Gini, due à Corrado Gini, est une métrique qui mesure avec quelle fréquence un élément aléatoire de l’ensemble serait mal classé si son étiquette était choisie aléatoirement selon la distribution des étiquettes dans le sous-ensemble. L’indice de diversité de Gini peut être calculé en sommant la probabilité pour chaque élément d’être choisi, multipliée par la probabilité qu’il soit mal classé. Il atteint sa valeur minimum (zéro) lorsque tous les éléments de l’ensemble sont dans une même classe de la variable cible. Pratiquement, si l’on suppose que la classe prend une valeur dans l’ensemble 1, 2, … , 𝑛, et si 𝑓𝑖 désigne la fraction des éléments de l’ensemble avec l’étiquette 𝑖 dans l’ensemble, on aura : 𝑛 𝑛 𝐺 = ∑ 𝑓𝑖 (1 − 𝑓𝑖 ) = 1 − ∑ 𝑓𝑖 2 . 𝑖=1 (3.10) 𝑖=1 Les principales idées sur lesquels repose CART sont les suivantes : L’hétérogénéité d’un nœud se mesure par une fonction non négative qui doit être : Nulle si, et seulement si, le nœud est homogène : tous les individus appartiennent à la même modalité ou prennent la même valeur de 𝑌. Maximale lorsque les valeurs de 𝑌 sont équiprobables ou très dispersées. Plus l’indice de Gini est proche de 0 plus le nœud est pur ; La variable de partitionnement retenue est celle qui maximise le gain de pureté défini par : 𝐺𝑎𝑖𝑛 = 𝐺 (𝑆) − [𝐺 (𝐹𝑖𝑙𝑠1 ) + 𝐺 (𝐹𝑖𝑙𝑠2 )]𝑎𝑣𝑒𝑐 𝐺𝑎𝑖𝑛 ≥ 0. (3.11) Pour déterminer la taille de l’arbre, on utilise la procédure de post élagage. Arbre complètement développé sur un premier échantillon (growing set) ; Arbre réduit de manière à optimiser le taux de mauvais classement sur un deuxième échantillon (pruning). Cours d’Intelligence Artificielle P a g e | 90 L’algorithme CART commence par le jeu des données initial 𝑋 comme nœud racine. La première étape de CART consiste à découper au mieux cette racine en deux nœuds fils. A chaque itération de l’algorithme, on recherche alors, suivant le même procédé, la meilleure façon de les découper en deux nouveaux nœuds, et ainsi de suite. Les arbres sont ainsi développés, jusqu’à atteindre une condition d’arrêt. Une règle d’arrêt classique consiste à ne pas découper des nœuds qui contiennent moins d’un certain nombre d’observations. Les nœuds terminaux, qui ne sont plus découpés, sont appelés les feuilles de l’arbre. A noter, que l’on ne découpe pas un nœud pur, c’est-à-dire un nœud ne contenant que des observations dont les sorties sont les mêmes (typiquement pour le classement). Avantages de l’algorithme CART C’est un algorithme non paramétrique. L’algorithme n’utilise pas de sélection de variables nécessaire. Il est invariable aux transformation monotones des attributs. L’algorithme fait une bonne gestion des données aberrantes. 3.3.4. Réseaux de neurones 3.3.4.1. Présentation des réseaux de neurones Lorsqu’un phénomène physique, biologique ou autre, est très complexe ou encore bruité pour accéder à une description analytique débouchant sur une modélisation déterministe, on utilise les techniques d’apprentissage supervisé afin de décrire au mieux le comportement à partir d’une série d’observation. Les réseaux de neurones sont utilisés comme outils de modélisation par apprentissage, qui permettent d’ajuster des fonctions non linéaires très générales à des ensembles de points ; comme toute méthode qui s’appuie sur des techniques statistiques, l’utilisation de réseaux de neurones nécessite que l’on dispose de données suffisamment nombreuses et représentatives. Le neurone artificiel est calqué sur le modèle biologique. Cours d’Intelligence Artificielle P a g e | 91 A. Neurone biologique et neurone formel A.1. Neurone biologique Un neurone, ou cellule nerveuse, est une cellule excitable constituant l’unité fonctionnelle de base du système nerveux. Les neurones ont pour rôle transmettent un signal bioélectrique appelé influx nerveux. Ils ont ainsi deux propriétés physiologiques : l’excitabilité, c’est-à-dire la capacité de répondre aux stimuli et de les convertir en impulsions nerveuses, et la conductivité, c’està-dire la capacité de transmettre des impulsions. Le cerveau se compose d’environ 1012 (mille milliards) neurones, avec 1000 à 10000 synapses (connexions) par neurone. Le neurone est composée d’un corps cellulaire et d’un noyau. Le corps cellulaire se ramifie pour former ce que l’on nomme les dendrites. Cellesci sont parfois si nombreuses que l’on parle alors de chevelure dendritique ou d’arborisation dendritique. C’est par les dendrites que l’information est acheminée de l’extérieur vers le soma, corps du neurone. L’information traitée par le neurone chemine ensuite le long de l’axone (unique) pour être transmise aux neurones. La transmission entre deux neurones n’est pas directe. En fait, il existe un espace intercellulaire de quelques dizaines d’Angstrom (10-9m) entre l’axone du neurone afférent et les dendrites (on dit une dendrite) du neurone efférent. La jonction entre deux neurones est appelée la synapse (Figure 3.8). Figure 3.8. Neurone biologique. A.2. Neurone formel Un neurone formel est un automate très simple imitant grossièrement la structure et le fonctionnement d’un neurone biologique. Il s’agit donc d’une représentation mathématique et informatique d’un neurone biologique. La première version de ce dernier Cours d’Intelligence Artificielle P a g e | 92 est celle de Mc Culloch et W. Pitts et date de 1943. S’inspirant de leurs travaux sur les neurones biologiques, ils ont proposé le modèle du neurone formel qui se voit comme un opérateur effectuant une somme pondérée de ses entrées suivie d’une fonction d’activation (ou fonction de transfert) comme indiqué par la figure 3.9. 𝒙𝒍 𝑤𝑖𝑙 ⋮ ⋮ 𝑤𝑖𝑗 𝒙𝒋 ⋮ ⋮ 𝑤𝑖𝑛 Sortie 𝑢𝑖 𝑦𝑖 𝒙𝒏 𝑏𝑖 Figure 3.9. Neurone formel ou artificiel. 𝑢𝑖 représente la somme pondérée des entrées du neurone : 𝑢𝑖 = ∑ 𝜔𝑖𝑗 𝑥𝑗 + 𝑏𝑖 , 𝑗 où 𝑥𝑗 représente l’entrée 𝑗 connectée au neurone 𝑖 représente ; 𝑏𝑖 le seuil interne du neurone ; 𝜔𝑖𝑗 désigne le poids de la connexion reliant l’entrée 𝑗 au neurone 𝑖. 𝑦𝑖 = 𝜑(𝑢𝑖 ) est la sortie du neurone et 𝜑 sa fonction d’activation. Cours d’Intelligence Artificielle P a g e | 93 𝑥1 𝑤11 𝑥2 𝑤12 𝑥3 𝑤13 ∑ 𝑤14 𝑥4 ⋮ ⋮ 𝑛 𝜑 𝑎 𝑏 𝑤1𝑅 −1 𝑥𝑅 Figure 3.10. Neurone artificiel avec 𝑅 entrées. 3.3.4.2. Réseaux de neurones artificiel (RNA) A. Définitions Définition 3.9. Un RNA est un ensemble des processeurs (ou neurones, ou unité de calcul) interconnectés fonctionnant en parallèle, chaque processeur calcul le potentiel (ou somme pondérée) sur base des données qu’il reçoit, et applique ensuite la fonction d’activation sur le potentiel, le résultat obtenu est transmis aux processeurs se trouvant en aval. Définition 3.10 [Kafunda, 2013]. Un RNA est un graphe pondéré 𝐺 = (𝑋, 𝐴, 𝑊), où : 𝑋 est un ensemble non vide et au plus dénombrable dont les éléments sont appelés « neurone, ou processeur, ou unité de calcul » du réseau. 𝐴 est une famille d’éléments du produit cartésien 𝑋 × 𝑋 = {(𝑥, 𝑦)|𝑥, 𝑦 ∈ 𝑋} les éléments de 𝐴 sont appelés : synapse et sur chaque synapse et associé un poids 𝑤. La matrice 𝑊 = (𝑤𝑖𝑗 )(𝑖,𝑗)∈A est appelée la matrice de pondération, ou la matrices des poids synaptiques, 𝑤𝑖𝑗 ∈ ℝ. Définition 3.11. Un RNA est une fonction paramétrée qui est la composition d’opérateurs mathématiques simples appelés neurones formels (ou plus simplement neurones). Cours d’Intelligence Artificielle P a g e | 94 Un neurone est une fonction algébrique non linéaire, paramétrée, à valeurs bornées, de variables réelles appelées entrées. 𝑦 𝜑 𝑥1 𝑥2 … 𝑥𝑛 Figure 3.11. Un neurone réalise une fonction non linéaire bornée 𝑦 = 𝜑(𝑥1 , . . . 𝑥𝑛 ; 𝑤1 , . . . 𝑤𝑝 ) où les {𝑥𝑗 } sont les entrées et les {𝑤𝑗 } sont des paramètres. L’argument de la fonction 𝜑 est une combinaison linéaire des entrées du neurone (à laquelle on ajoute un terme constant, le « biais »). La combinaison linéaire est appelée potentiel; les coefficients de pondération {𝑤𝑗 } sont fréquemment appelés « poids synaptiques » (ou plus simplement poids) en référence à l’origine « biologique » des réseaux de neurones. Le potentiel d’un neurone est donc calculé de la façon suivante : 𝑛 𝑢 = 𝑤0 + ∑ 𝑤𝑖 𝑥𝑖 : potentiel du neurone. 𝑖=1 Le biais 𝑤0 peut être envisagé comme le coefficient de pondération de l’entrée n°0, qui prend toujours la valeur 1 : 𝑛 𝑢 = ∑ 𝑤𝑖 𝑥𝑖 , 𝑖=0 avec 𝑥0 = 1. La valeur de la sortie du neurone est donc : Cours d’Intelligence Artificielle P a g e | 95 𝑛 𝑦 = 𝜑(𝑢) = 𝜑 (𝑤0 + ∑ 𝑤𝑖 𝑥𝑖 ) : sortie du neurone. 𝑖=1 La fonction 𝜑 est appelée « fonction d’activation ». Couche d’entrée. Sorties Entrées B. Fonctionnement d’un réseau de neurones artificiels 1ère couche cachée. 2ème couche cachée. Couche de sortie. Figure 3.12. RNA à 3 couches. Pour rappel, ces modèles ont été fortement inspirés par le système nerveux biologique. On peut entraîner un réseau de neurone pour une tâche spécifique (reconnaissance de caractères par exemple) en ajustant les valeurs des connections (ou poids) entre les éléments (neurone). En général, l’apprentissage des réseaux de neurones est effectué de sorte que pour une entrée particulière présentée au réseau corresponde une cible spécifique. L’ajustement des poids se fait par comparaison entre la réponse du réseau (ou sortie) et la cible, jusqu’à ce que la sortie corresponde au mieux à la cible. On utilise pour ce type d’apprentissage dit supervisé, un nombre conséquent de pair entrée/sortie. En ce qui concerne le fonctionnement de RNA, nous distinguons deux phases : (i) La première est habituellement le calcul de la somme pondérée des entrées selon l’expression suivante : Cours d’Intelligence Artificielle P a g e | 96 𝑛 𝑢 = ∑ 𝑤𝑖 𝑥𝑖 , 𝑖=0 avec 𝑥0 = 1. (ii) La deuxième phase consiste à appliquer la fonction d’activation sur la valeur 𝑣 obtenue lors de la deuxième phase, et la valeur 𝜑(𝑢) est transmise aux neurones avals. En effet, la fonction d’activation sert à introduire une non-linéarité dans le fonctionnement du neurone. Il existe de nombreuses formes possibles pour la fonction de transfert. Nom de la fonction Graphe de la fonction Equation 0 𝑠𝑖 𝑢 ≤ 0 1 𝑠𝑖 𝑢 ≥ 0 Fonction à seuil 𝜑 (𝑢 ) = { Fonction sigmoïde ou logistique 𝜑 (𝑢 ) = Fonction tangente hyperbolique 𝜑(𝑢) = th(𝑢) = Fonction ReLU 𝜑 (𝑢 ) = { Cours d’Intelligence Artificielle 1 1 + 𝑒 −𝛽𝑢 1 1 + 𝑒 −2𝑢 0 𝑠𝑖 𝑢 < 0 𝑥 𝑠𝑖 𝑢 ≥ 0 P a g e | 97 1 Fonction gaussienne 𝜑 (𝑢 ) = Fonction identité 𝜑 (𝑢 ) = 𝑢 √2𝜋𝜎 𝑒 − (𝑢−𝜇)2 2𝜎2 Tableau 3.2. Liste des fonctions d’activations usuelles. Figure 3.13. Sortie d’un neurone à 3 entrées {𝑥0 = 1, 𝑥1 , 𝑥2 } munies des poids {𝑤0 = 0, 𝑤1 = +1, 𝑤2 = −1}, dont la fonction d’activation est une tangente hyperbolique : 𝑦 = 𝑡ℎ(𝑥1 − 𝑥2 ). En résumé, le fonctionnement du réseau de neurones peut être schématisé de la manière suivante : 3.3.4.3. Topologie d’un réseau de neurones Les connexions entre les neurones qui composent le réseau décrivent la topologie du modèle. Un réseau de neurones est un système informatique, constitué de plusieurs unités (neurones) organisées sous forme de niveaux différents appelés couches du réseau. Les neurones appartenant à la même couche possèdent les mêmes caractéristiques et utilisent le même type de fonction d’activation. Entre deux couches voisines les connexions se font par l’intermédiaire de poids qui jouent le rôle des synapses. L’information est portée par la valeur de ses poids, tandis que la structure du réseau de neurones ne sert qu’à traiter l’information Cours d’Intelligence Artificielle P a g e | 98 et l’acheminer vers la sortie. La structure ou la topologie d’un réseau de neurones est la manière dont les neurones sont connectés. Les structures résultantes peuvent être très variées mais elles sont souvent réparties en deux grandes familles à savoir : les réseaux de neurones non bouclés et les réseaux de neurones bouclés. Un réseau de neurone est non bouclé lorsque sont graphe d’interconnexion ne contient pas des circuits (Figure 3.15). Un réseau de neurone est bouclé lorsque sont graphe d’interconnexion contient des circuits (Figure 3.16). A. Réseaux non bouclés Dans les réseaux de neurones non bouclés, qu’on appelle aussi réseaux de neurones acycliques, ou réseaux de structure dite feedforward, la propagation de l’information se fait uniquement de l’entrée vers la sortie. Les neurones de la même couche peuvent se connecter uniquement avec les neurones de la couche suivante. L’architecture la plus utilisée est le Perceptron multicouches. Les neurones composant ce réseau s’organisent en 𝑁 couches successives (𝑁 ≥ 3). Dans l’exemple suivant (figure 3.14), nous présentons un perceptron à trois couches. Les neurones de la première couche, nommée couche d’entrée, voient leur activation forcée à la valeur d’entrée. La dernière couche est appelée couche de sortie. Elle regroupe les neurones dont les fonctions d’activation sont généralement de type linéaire. Les couches intermédiaires sont appelées couches cachées. Elles constituent le cœur du réseau. Les fonctions d’activation utilisées sont de type sigmoïde. Cours d’Intelligence Artificielle P a g e | 99 2 𝑤11 1 𝑤11 𝑥1 1 𝑤12 1 𝑤13 1 𝑤21 𝑥2 2 𝑤12 𝑏12 1 𝑤22 2 𝑤22 1 𝑤23 𝑥3 1 𝑤32 𝑎12 2 𝑤21 𝑏11 1 𝑤31 𝑏21 𝑎22 2 𝑤13 + 1 𝑤33 2 𝑤23 𝑏22 𝑏31 Couche d’entrée (Couche 0). Couche cachée (Couche 1) Couche de sortie (Couche 2) Figure 3.14. Réseau de neurones non bouclé à 3 couches. Les réseaux de neurones disposés suivant cette architecture sont aussi appelés « perceptrons multicouche » (ou MLP pour Multi-Layer Perceptrons). 𝑙 𝑏𝑖𝑙 𝑒𝑡 𝜔𝑖𝑗 désignent respectivement le biais du neurone 𝑖 de la couche 𝑙 et le poids de connexion entre le neurone 𝑗 de la couche 𝑙 − 1 et le neurone 𝑖 de la couche 𝑙. 𝑁𝑙−1 𝑙 𝑦𝑖𝑙 = ∑ 𝜔𝑖𝑗 𝑢𝑗𝑙−1 + 𝑏𝑖𝑙 . 𝑗 On a : 𝑦𝑖𝑙 = 𝜑𝑙 (𝑢𝑖𝑙 ), 𝑙 = 1,2. Cours d’Intelligence Artificielle P a g e | 100 où 𝜑𝑙 (.) est la fonction d’activation des neurones de la couche 𝑙. On peut réécrire les équations ci-dessus sous forme matricielle comme suit : (𝑢𝑙 )𝑇 = 𝑊 𝑙 . (𝑦 𝑙−1 )𝑇 + ( 𝑏𝑙 )𝑇 et (𝑦 𝑙 )𝑇 = (𝜑𝑙 (𝑢𝑙 ))𝑇 . 𝑙 𝜔11 𝑙 𝑊 𝑙 = 𝜔21 ⋮ 𝑙 (𝜔𝑁𝑙1 𝑙 𝜔12 … 𝑙 𝜔22 … ⋮ 𝑙 𝜔𝑁𝑙2 ⋯ 𝑙 𝜔1𝑁𝑙−1 𝑙 𝜔2𝑁𝑙−1 . ⋮ 𝑙 𝜔𝑁𝑙𝑁𝑙−1 ) Le perceptron multicouche présente une alternative prometteuse pour la modélisation des systèmes complexes. Avec une seule couche cachée, il constitue une approximation universelle. Les études menées par Hornik et al. [1989] et Cybenko [1989] montrent qu’il peut être entrainé de manière à approximer n’importe quelle fonction sous réserve de mettre suffisamment de neurones dans la couche cachée et d’utiliser des sigmoïdes comme fonctions d’activation. B. Réseaux bouclés Un réseau bouclé ou dynamique ou récurrent (en anglais recurrent neural network (RNN)) possède la même structure qu’un réseau multicouche munie de rétroactions. Les connexions rétroactives peuvent exister entre tous les neurones du réseau sans distinction, ou seulement entre certains neurones (les neurones de la couche de sortie et les neurones de la couche d’entrée ou les neurones de la même couche par exemple). La figure 4.15 montre deux exemples de réseaux récurrents. Le premier est un simple multicouche qui utilise un vecteur d’entrée qui contient les copies des activations de la couche de sortie du réseau et le deuxième est un réseau à mémoire se distingue du premier par la présence des unités mémoires. Cours d’Intelligence Artificielle P a g e | 101 Figure 3.15. Réseau de neurones bouclé à 3 couches. C. Réseau de deux réseaux directement connectés Figure 3.16. Réseaux de neurones interconnectés. Dans le cadre de ce cours, nous ne présentons que le réseau de neurones non bouclé, à une seule couche cachée. Ce réseau se structure en trois couches successives. La couche d’entrée permet de saisir le vecteur de caractéristiques 𝑥, et la couche de sortie fournit la prédiction. Les entrées sont redistribuées sur des unités cachées intermédiaires à la sortie. Cours d’Intelligence Artificielle P a g e | 102 Ces unités cachées forment la seconde couche. Un réseau de neurones est paramétré par un 𝑗 ensemble de poids 𝑤𝑖 et de biais 𝛼𝑖 . Chaque unité effectue une somme pondérée de ses entrées, ajoute une constante et évalue le résultat selon une fonction 𝜙ℎ . Les unités de sortie ont la même forme, mais l’évaluation se fait selon une fonction 𝜙0 qui peut être différente de 𝜙ℎ . Ainsi, le modèle calcule la fonction 𝑗 𝜑𝑘 (𝑥, 𝜃) = 𝜙0 (𝛼 𝑘 + ∑ 𝑤ℎ𝑘 𝜙ℎ (𝛼𝑛 + ∑ 𝑤ℎ 𝑥 𝑗 )) , 1 ≤ 𝑘 ≤ 𝐾 ℎ (3.12) 𝑗 où 𝑥 𝑗 est la jième coordonnée de 𝑥, et 𝐾 la dimension de l’espace de sortie. La fonction d’activation 𝜙ℎ de la couche cachée est la fonction logistique 𝜙 ℎ (𝑧 ) = 𝑙 (𝑧 ) = 1 . 1 + 𝑒 −1 En revanche, (𝜙ℎ (𝑧) = 𝑧) selon que l’on souhaite faire de le classement ou estimer une régression. En résumé, un réseau de neurones est une structure de traitement de l’information parallèle et distribuée, constitué d’unités de calcul interconnectées par des canaux unidirectionnels appelés connexions. Chaque unité de traitement n’a qu’une seule connexion de sortie qui peut être dupliquée en autant d’exemplaire que désiré, les duplicatas transportant tous le même signal. Le traitement effectué par chaque unité peut être défini de manière arbitraire pourvu qu’il soit complètement local, c’est-à-dire qu’il ne dépende que des valeurs courantes des signaux arrivant à l’unité par ses connexions entrantes et du contenu de la mémoire locale attachée à cette unité. Le neurone formel de McCullovch et Pitts est un automate à seuil qui recevant n signaux 𝑥𝑖 sur les connexions entrantes, calcule sa sortie (ou état) 𝑦 en appliquant une fonction seuil à la combinaison linéaire des xi définie par le poids des connexions 𝑤𝑖 : 𝑛 𝑜= { Cours d’Intelligence Artificielle 1, 𝑠𝑖 ∑ 𝑤𝑖 𝑥𝑖 ≥ 0; 0, 𝑠𝑖𝑛𝑜𝑛. 𝑖=1 P a g e | 103 On pourra définir un neurone artificiel à mémoire locale (ML) comme étant un élément de calcul dont la sortie 𝑜 est le résultat d’une fonction d’activation 𝑔 appliquée au vecteur d’entrée 𝑥 et au contenu d’une mémoire locale au neurone ML. 𝑦 = 𝜑(𝑋, 𝑀𝐿) (Figure 3.17). 𝑥1 𝑥2 Y Fonction de transfert . . . 𝑥𝑛 Mémoire Locale ML Figure 3.17. Neurone artificiel à mémoire locale. D. Autres topologies de réseaux de neurones Il existe encore plus d’autres topologies de réseaux de neurones, dont certaines sont des extensions ou des variantes de celles que nous avons mentionnées ci-dessus. Nous avons entre autres : D.1. Réseaux de neurones à convolution Les réseaux de neurones à convolution ou réseaux de neurones convolutifs (en anglais convolutional neural networks (CNN)). Il s’agit de types de réseaux non bouclés dans lesquels le schéma de connexion entre les neurones est inspiré par le cortex visuel des animaux. Les neurones de cette région du cerveau sont agencés pour correspondre à des régions qui se chevauchent lors du pavage du champ visuel. Leur fonctionnement est inspiré des processus biologiques, ils sont constitués d’un empilement multicouche de perceptrons dont le but est de prétraiter de petites quantités d’informations. Le nom de réseau neuronal à « convolutif » indique que le réseau utilise une opération mathématique appelée convolution. Les réseaux convolutifs sont un type spécialisé de réseaux de neurones qui utilisent la convolution à la place de la multiplication matricielle générale dans au moins une de leurs couches. En effet, les couches cachées d’un CNN consistent généralement en une série de couches convolutives qui convoluent avec une multiplication ou un autre produit scalaire. La fonction d’activation est généralement la fonction ReLU, et est ensuite suivie par des Cours d’Intelligence Artificielle P a g e | 104 convolutions supplémentaires telles que des couches de regroupement, des couches entièrement connectées et des couches de normalisation, appelées couches cachées car leurs entrées et sorties sont masquées par la fonction d’activation et la convolution finale. Les applications les plus courantes des CNN sont la reconnaissance d’images et de vidéos, les systèmes de recommandation et le traitement du langage naturel. D.2. Réseaux à croyances profondes Les réseaux à croyances profondes (en anglais deep belief networks (DBN)) sont une classe de réseau neuronal profond, composés de plusieurs couches de variables latentes (« unités cachées »), avec des connexions entre les couches mais pas entre les unités au sein de chaque couche. Plusieurs applications peuvent être mentionnées pour les réseaux à croyances profondes, notamment électroencéphalographie et découverte de médicaments. Les DBN peuvent être considérés comme une composition de réseaux simples et non supervisés tels que les machines Boltzmann restreintes (RBM) ou les auto-encodeurs, où la couche cachée de chaque sous-réseau sert de couche visible pour le suivant. Un RBM est un modèle basé sur l’énergie générative non dirigée avec une couche d’entrée « visible » et une couche cachée et des connexions entre les couches mais pas à l’intérieur. Cette composition conduit à une procédure d’apprentissage rapide, couche par couche, non supervisée, où la divergence contrastive est appliquée à chaque sous-réseau à tour de rôle, à partir de la paire de couches « la plus basse » (la couche visible la plus basse est un ensemble d’apprentissage). D.3. Réseaux adverses génératifs Les réseaux adverses génératifs ou réseaux antagonistes génératifs (en anglais generative adversarial networks (GAN)) sont une classe de cadres d’apprentissage automatique non supervisés conçus par Ian Goodfellow et ses collègues en 2014. Ces modèles permettent de générer des images avec un haut degré de réalisme. Les GAN fonctionnent de la manière suivante: deux réseaux de neurones s’affrontent dans un jeu (au sens de la théorie des jeux). Le premier réseau de neurones, appelé générateur (ou réseau génératif), génère un échantillon d’individus (par exemple, une image), tandis que son adversaire, appelé discriminateur (ou réseau discriminatif), les évalue en essayant de détecter si cet échantillon est réel ou bien s’il est le résultat du générateur. L’objectif de formation du générateur est d’augmenter le taux d’erreur du Cours d’Intelligence Artificielle P a g e | 105 discriminateur (c’est-à-dire, « tromper » le discriminateur en produisant de nouveaux individus que le discriminateur pense ne pas être synthétisés (font partie de la vraie distribution de données)). Dans ce processus, l’apprentissage peut être modélisé comme un jeu à somme nulle (c’est-à-dire un jeu où le gain d’un agent est perte d’un autre agent. L'apprentissage de ces réseaux est difficile en pratique, avec des problèmes importants de non convergence. Le GAN bidirectionnel (BiGAN) vise à introduire un modèle de générateur pour agir en tant que discriminateur, par lequel le discriminateur considère naturellement tout l’espace de traduction afin que le problème d’apprentissage inadéquat puisse être atténué. Pour satisfaire cette propriété, le générateur et le discriminateur sont tous deux conçus pour modéliser la probabilité conjointe des paires de phrases, à la différence que, le générateur décompose la probabilité conjointe avec un modèle de langue source et un modèle de traduction source-cible, tandis que le discriminateur est formulé comme un modèle de langue cible et un modèle de traduction cible-source. Pour exploiter davantage leur symétrie, un GAN auxiliaire est introduit et adopte des modèles de générateur et de discriminateur de celui d’origine comme son propre discriminateur et générateur respectivement. Deux GAN sont formés en alternance pour mettre à jour les paramètres. La représentation des caractéristiques apprises qui en résulte est utile pour les tâches de discrimination supervisées auxiliaires, en concurrence avec les approches contemporaines d’apprentissage des caractéristiques non supervisées et auto-supervisées. En résumé, les topologies telles que les réseaux de neurones récurrents (voir D.1.), les réseaux à croyances profondes (voir D.2.) et les réseaux de neurones à convolution (D.3.) font partie de l’apprentissage profond. Cependant, la topologie la plus utilisée est le réseau neuronal récurrent. En effet, Définition 3.12 (Apprentissage profond). L’apprentissage profond ou apprentissage en profondeur (en anglais « deep learning ») est un ensemble d’apprentissage automatique, basé sur des réseaux de neurones, qui utilise plusieurs couches pour extraire progressivement des fonctionnalités de plus haut niveau à partir de l’entrée de ligne. Ces méthodes sont le plus souvent appliquées à des domaines tels que la vision par ordinateur, la vision artificielle, la reconnaissance vocale, le traitement du langage naturel, la reconnaissance audio, le filtrage des réseaux sociaux, la traduction automatique, la bioinformatique, la conception de médicaments, l’analyse d’images médicales, l’inspection Cours d’Intelligence Artificielle P a g e | 106 des matériaux et les programmes de jeux de société, où ils ont produit des résultats comparables et, dans certains cas, supérieurs aux performances des experts humains. Exemple 3.4. Dans le traitement d’image, les couches peuvent identifier les sommets, tandis que les couches supérieures peuvent identifier les concepts pertinents pour un être humain tels que les chiffres, les lettres ou les visages. 3.3.5. Apprentissage des réseaux de neurones L’apprentissage est une phase du développement d’un réseau de neurones durant laquelle le comportement du réseau est modifié jusqu’à l’obtention du comportement désiré. L’apprentissage neuronal fait appel à des individus de comportement. Etant donnée un ensemble 𝑋 de 𝑛 paires {(𝑥𝑖 , 𝑦𝑖 )} , 1 ≤ 𝑖 ≤ 𝑁, 𝑥𝑖 ∈ ℝ𝑛 , 𝑦𝑖 ∈ 𝜀 𝑝 . Construire un réseaux 𝜑𝑤 capable de mettre ces formes en correspondance, c’est-à-dire tel que : 𝜑𝑤 (𝑥𝑖 ) = 𝑦𝑖 . Ceci passe tout d’abord par le choix de l’architecture du réseau, ensuite déterminé au cours d’une phase dite d’apprentissage, un ensemble de poids 𝑊 permettant à cette architecture de réaliser la tache associative demandée. L’apprentissage présenté ainsi est qualifié de supervisé. Définition 3.13 [Man et Halang, 1997]. L’apprentissage, dans le contexte des réseaux de neurones, est le processus de modification des poids synaptiques (y compris les biais) ou plus rarement du nombre de couches et de neurones, afin d’adapter le traitement effectué par le réseau à une tache particulière. En effet, si l’apprentissage est effectué correctement, le réseau est capable de fournir des classes en sortie très proches des valeurs réelles. Géométriquement, ces poids synaptiques déterminent un hyperplan sur ℝ𝑛 (où 𝑛 le nombre d’entrées du réseau) sépare les individus positifs des individus négatifs : idéalement, ils sont de chaque côté de l’hyperplan l’hyperplan. Cependant, il arrive, et c’est le cas en général, que cet hyperplan n’existe pas : dans ce cas, on dit que les individus ne sont pas « linéairement séparables ». Ainsi, les techniques d’apprentissage des réseaux de neurones sont des algorithmes d’optimisation: elles cherchent à minimiser l’écart entre les classes réelles et les classes prédites par le réseau, en modifiant les paramètres (les poids) par étapes successives. L’apprentissage avec des réseaux de neurones se fait principalement suivant deux approches, à savoir : Cours d’Intelligence Artificielle P a g e | 107 (1) Approche constructive Cette approche est utilisée lorsque les individus sont linéairement séparables. Avec cette approche, on apprend en même temps le nombre d’unités et les poids, commençant généralement avec une seule unité. (2) Approche par (retro-)propagation de gradient Cette approche est utilisée lorsque les individus sont non linéairement séparables. La (retro-)propagation de gradient détermine les poids de minimisation d’un cout. Cet algorithme nécessite l’introduction de l’architecture de réseau. 3.3.5.1. Apprentissage des poids d’un perceptron A. Cas des individus linéairement séparables A.1. Algorithme de Hebb Cet algorithme est basé sur la loi de Hebb [1949]. Cette loi stipule que « si 2 neurones sont activés en même temps, la force de la connexion augmente ». Le changement de poids dépend de la co-activation des neurones pré et post-synaptiques. Cours d’Intelligence Artificielle P a g e | 108 L’algorithme se présente de la manière suivante : Algorithme 4.3 [Algorithme de Hebb]. 0. Début L’ensemble des 𝑛 individus d’apprentissage est 𝑋. Chaque exemple xi possède 𝑝 variables dont les valeurs sont notées 𝑥𝑖𝑗 . Pour chaque donnée, 𝑥𝑖0 est une variable virtuelle, toujours égal à 1. La classe de l’individu 𝑥𝑖 est 𝑦𝑖 . 𝑑𝑖 la classe (sortie) désirée de l’individu 𝑥𝑖 . 1. Initialisations : Initialiser les poids 𝑤𝑖 et le seuil 𝜃 à des valeurs petites aléatoirement. 2. Répéter Présenter une entrée de l’ensemble d’apprentissage. Calculer la sortie 𝑦𝑖 de l’individu 𝑥𝑖 en connaissant ses entrées telle que 𝑝 𝑎 = ∑(𝑤𝑗 ⋅ 𝑥𝑖𝑗 ) − 𝜃. 𝑗=0 𝑦𝑖 = 𝑠𝑖𝑔𝑛(𝑎). Si 𝑦𝑖 ≠ 𝑑𝑖 (c’est-à-dire que la classe prédite est différente de la classe désirée) Alors Il y a modification de poids 𝑤𝑘 : Pour tous les poids 𝑤𝑘 ∈ {0, 1, … , 𝑝} faire 𝑤𝑘 ⟵ 𝑤𝑘 + 𝛼(𝑑𝑖 𝑥𝑖𝑘 ) (𝛼 est une constante positive, qui spécifie le pas de modification des poids (0 < 𝛼 < 1).) Fin Pour Fin Si Jusqu’à ce que tous les individus de l’ensemble d’apprentissage ne sont pas traités correctement (c’est-à-dire, qu’il y a modification des poids). 3. Fin. Cours d’Intelligence Artificielle P a g e | 109 Exemple 3.5 (Application de l’algorithme de Hebb). Soient les entrées 𝑒1 et 𝑒2 , la sortie 𝑑, du tableau ci- après : 𝒆𝟏 𝒆𝟐 𝒅 𝑿 1 1 1 𝑥1 1 -1 1 𝑥2 -1 1 -1 𝑥3 -1 -1 -1 𝑥4 Tableau 3.3. Exemple d’application de l’algorithme de Hebb. Résolution Il s’agit d’un réseau de 3 neurones : 2 neurones d’entrée et 1 de sortie. Etape 1. Initialisation des poids 𝑤1 = 0, 𝑤2 = 0, 𝜃 = 0, 𝛼 = +1. Etape 2. Présentation de 𝑥1 = (𝑥11 , 𝑥12 ) = (1,1). 2 𝑎 = ∑(𝑤𝑗 × 𝑥𝑖𝑗 ) − 𝜃 ⟹ 𝑎 = (0 × 1 + 0 × 1) − 0 = 0. 𝑖=1 𝑦1 = 𝑠𝑖𝑔𝑛(𝑎) = −1 ≠ 𝑑1 = 1. Alors, il y a modification des poids : 𝑤𝑘 ⟵ 𝑤𝑘 + 𝛼𝑑𝑖 𝑥𝑖𝑘 . 𝑤1 = 0 + 1 × 1 × 1 = 0 + 1 = 1 ; 𝑤2 = 0 + 1 × 1 × 1 = 0 + 1 = 1. Présentation de 𝑥2 = (𝑥21 , 𝑥22 ) = (1, −1). 2 𝑎 = ∑(𝑤𝑗 × 𝑥𝑖𝑗 ) − 𝜃 ⟹ 𝑎 = (1 × 1 + 0 × (−1)) − 0 = 0. 𝑖=1 𝑦2 = 𝑠𝑖𝑔𝑛(𝑎) = −1 ≠ 𝑑2 = 1. Cours d’Intelligence Artificielle P a g e | 110 Alors, il y a modification des poids : 𝑤𝑘 ⟵ 𝑤𝑘 + 𝛼𝑑𝑖 𝑥𝑖𝑘 . 𝑤1 = 1 + 1 × 1(1 × 1) = 1 + 1 = 2 ; 𝑤2 = 1 + 1 × 1(1 × (−1)) = 1 − 1 = 0. Présentons 𝑥3 = (𝑥31 , 𝑥32 ) = (−1, 1). 2 𝑎 = ∑(𝑤𝑗 × 𝑥𝑖𝑗 ) − 𝜃 ⟹ 𝑎 = (2 × (−1) + 0 × 1) − 0 = −2. 𝑖=1 𝑦3 = 𝑠𝑖𝑔𝑛(𝑎) = −1 = 𝑑3 . Alors, il n’y a pas de modification de poids. Présentons 𝑥4 = (𝑥41 , 𝑥42 ) = (−1, −1). 2 𝑎 = ∑(𝑤𝑗 × 𝑥𝑖𝑗 ) − 𝜃 ⟹ 𝑎 = (2 × (−1) + 0 × (−1)) − 0 = −2. 𝑖=1 𝑦4 = 𝑠𝑖𝑔𝑛(𝑎) = −1 = 𝑑4 . Alors, il n’y a pas de modification de poids. Présentons 𝑥1 = (𝑥11 , 𝑥12 ) = (1, 1). 2 𝑎 = ∑(𝑤𝑗 × 𝑥𝑖𝑗 ) − 𝜃 ⟹ 𝑎 = (2 × 1 + 0 × 2) − 0 = 2. 𝑖=1 𝑦1 = 𝑠𝑖𝑔𝑛(𝑎) = 1 = 𝑑1 . Alors, il n’y a pas de modification de poids. Cours d’Intelligence Artificielle P a g e | 111 Présentons 𝑥2 = (𝑥21 , 𝑥22 ) = (1, −1). 2 𝑎 = ∑(𝑤𝑗 × 𝑥𝑖𝑗 ) − 𝜃 ⟹ 𝑎 = (2 × 1 + 0 × (−1)) − 0 = 2. 𝑖=1 𝑦2 = 𝑠𝑖𝑔𝑛(𝑎) = 1 = 𝑑2 . Alors, il n’y a pas de modification de poids. D’où, les poids de l’ensemble d’apprentissage sont 𝑤1 = 2 et 𝑤2 = 0. Cours d’Intelligence Artificielle P a g e | 112 A.2. Algorithme d’apprentissage du perceptron L’algorithme de Hebb ne s’applique pas dans certain cas, bien qu’une solution existe. Un autre algorithme d’apprentissage a donc été proposé par Franck Rosenblatt en 1959. Cet algorithme se présente de la manière suivante : Algorithme 4.3 [Algorithme d’apprentissage du perceptron]. 0. Début L’ensemble des individus d’apprentissage est 𝑋. Chaque individu xi possède 𝑝 variables dont les valeurs sont notées 𝑥𝑖𝑗 . Pour chaque donnée, 𝑥𝑖0 est une variable virtuelle, toujours égal à 1. La classe de l’individu 𝑥𝑖 est 𝑦𝑖 . 𝑑𝑖 la classe (sortie) désirée de l’individu 𝑥𝑖 . Soit un taux d’apprentissage 𝛼 ∈ ]0,1]. 1. Initialiser les poids 𝑤𝑖 et le seuil 𝑆 à des valeurs petites aléatoirement. 2. Répéter // 𝐸 mesure l’erreur courante 𝐸 ⟵ 0. Mélanger les individus. Pour tous les individus du jeu d’apprentissage 𝑋 Faire 𝑝 𝐸𝑖 ⟵ 𝑦𝑖 − 𝜑 (∑ 𝑤𝑗 𝑥𝑖𝑗 ). 𝑗=0 𝐸 ⟵ 𝐸 + |𝐸𝑖 |. Pour tous les poids 𝑤𝑘 , 𝑘 ∈ {0, 1, … , 𝑝} Faire 𝑤𝑘 ⟵ 𝑤𝑘 + 𝛼𝐸𝑖 𝑥𝑖𝑘 . Fin Pour Fin Pour Jusqu’à ce que 𝐸 < 𝜃. 3. Fin. Cours d’Intelligence Artificielle P a g e | 113 B. Cas des individus non linéairement séparables B.1. Algorithme de propagation de gradient pour un perceptron Soit 𝑋 l’ensemble d’apprentissage. On considère un réseau dont la couche de sortie comporte 𝑝 neurones. Soit 𝑤𝑘 (𝑡 ) les poids de la 𝑘 𝑖è𝑚𝑒 neurone à un instant donné. L’erreur commise par cette cellule sur l’ensemble 𝑋, 𝐶 (𝑤𝑘 (𝑡)) est définie comme étant la moyenne des erreurs quadratique commise sur chaque forme. 𝑛 𝑛 1 1 𝑥𝑖 , 𝐶𝑖 (𝑤𝑘 (𝑡)) ∶ 𝐶 (𝑤𝑘 (𝑡)) = ∑ 𝐶𝑖 (𝑤𝑘 (𝑡)) = ∑(𝑦𝑘 (𝑥𝑖 , 𝑡 ) − 𝑦𝑖𝑘 )2 , 𝑛 𝑛 𝑖=1 (3.13) 𝑖=1 où 𝑦𝑘 (𝑥𝑖 , 𝑡 ) est la sortie de la 𝑘 𝑖è𝑚𝑒 neurones au temps 𝑡 en fonction de l’entrée 𝑋𝑖 . L’apprentissage consiste donc simplement à rechercher un vecteur 𝑤𝑘∗ qui minimise 𝐶. La méthode proposée par Widrow et Hoff pour résoudre ce problème consiste à adapter une méthode d’optimisation bien connue : la minimisation par descente en gradient. Le (𝑡) (𝑡) principe en est simple l’opposé du gradient 𝐶 par rapport au poids en 𝑤𝑘 , −∇𝑤 𝐶(𝑤𝑘 ) pointe dans la direction dans laquelle la diminution de 𝐶(𝑤𝑘 ) est maximale ; en modifiant le vecteur poids, par itération successives, dans la direction opposée au gradient, on peut espérer aboutir à un minimum de 𝐶(𝑤𝑘 ). Figure 3.18. Minimisation de la fonction coût par descente en gradient. Le gradient de la fonction coût par rapport à 𝑤𝑘 se calcul aisément par : Cours d’Intelligence Artificielle P a g e | 114 𝑛 𝑛 𝑖=1 𝑖=1 1 2 𝐶 (𝑤𝑘 (𝑡)) = ∑ ∇𝑤 𝐶𝑖 (𝑤𝑘 (𝑡)) = ∑(𝑦𝑘 (𝑥𝑖 , 𝑡 ) − 𝑦𝑖𝑘 ). 𝑥𝑖 𝑛 𝑛 Et l’algorithme d’apprentissage par descente en gradient est donc le suivant : Etape 0 : 𝑡 = 0 Initialiser aléatoirement les poids 𝑤𝑘 (𝑡) Etape 1 : Pour chaque neurone sur l’ensemble d’apprentissage 𝐸 : 𝐶(𝑤𝑘 (𝑡 )) Etape 2 : Pour chaque neurone 𝑘, modifier les poids par : 𝑤𝑘 (𝑡 + 1) = 𝑤𝑘 (𝑡 ) − 𝛼. ∇𝐶(𝑤𝑘 (𝑡 )). Etape 3 : 𝑡 = 𝑡 + 1 Si la condition d’arrêt non remplie, aller à l’étape 2. Avec 𝛼 le taux d’apprentissage 2 1 En résumé soit 𝐸 (𝑤 ⃗⃗Ԧ) = ∑𝑁 ⃗⃗Ԧ. Si 𝑖=1(𝑦𝑖 − 𝜑(𝑥𝑖 )) l’erreur d’apprentissage due aux poids 𝑤 2 la fonction d’activation est linéaire, cette erreur 𝐸 s’écrit : 𝐸 (𝑤 ⃗⃗Ԧ ) = 𝑛 𝑝 𝑖=1 𝑗=0 2 1 ∑ (𝑦𝑖 − ∑ 𝑤𝑗 𝑥𝑖.𝑗 ) . 2 On voit donc que l’erreur 𝐸 est un paraboloïde dans l’espace des poids. Donc, 𝐸 possède un seul minimum et il s’agit de trouver la valeur des poids correspondant à ce minimum. Pour cela, la technique classique consiste à utiliser un algorithme de descente de gradient. Pour cela, on part d’un point (dans l’espace des poids, espace de dimension 𝑃 + 1) 𝑤 ⃗⃗Ԧ0 : ensuite, itérativement, on corrige ce point pour se rapprocher du minimum de 𝐸. Pour cela, on corrige chaque poids d’une quantité proportionnelle au gradient de 𝐸 en ce point, cela dans chaque direction, donc par rapport à chacun des poids. Ce gradient est donc la dérivée (partielle) de 𝐸 par rapport à chacun des points. Reste à déterminer le coefficient à appliquer à cette correction. Cours d’Intelligence Artificielle P a g e | 115 𝑤 ⃗⃗Ԧ ⟵ 𝑤 ⃗⃗Ԧ − 𝛼∇𝐸 (𝑤 ⃗⃗Ԧ). ∆(𝑤 ⃗⃗Ԧ) Il nous reste à calculer ce terme général 𝜕𝐸 𝜕𝑤𝑗 : 𝑛 𝜕𝐸 𝜕 1 2 [ ∑(𝑦𝑖 − 𝜑(𝑥𝑖 )) ] = 𝜕𝑤𝑗 𝜕𝑤𝑗 2 𝑖=1 𝑛 𝜕𝐸 1 𝜕 2 [∑(𝑦𝑖 − 𝜑(𝑥𝑖 )) ] = 𝜕𝑤𝑗 2 𝜕𝑤𝑗 𝑖=1 𝑛 𝜕𝐸 1 𝜕 2 [(𝑦𝑖 − 𝜑(𝑥𝑖 )) ] = ∑ 𝜕𝑤𝑗 2 𝜕𝑤𝑗 𝑖=1 𝑛 𝜕𝐸 1 𝜕 (𝑦 − 𝜑(𝑥𝑖 )) = ∑ 2(𝑦𝑖 − 𝜑(𝑥𝑖 )) 𝜕𝑤𝑗 2 𝜕𝑤𝑗 𝑖 𝑖=1 𝑛 𝑝 𝑖=1 𝑘=0 𝜕𝐸 𝜕 [(𝑦𝑖 − ∑ 𝑤𝑘 𝑥𝑖𝑘 )] = ∑(𝑦𝑖 − 𝜑(𝑥𝑖 )) 𝜕𝑤𝑗 𝜕𝑤𝑗 𝑛 𝜕𝐸 = ∑(𝑦𝑖 − 𝜑(𝑥𝑖 ))(−𝑥𝑖𝑗 ). 𝜕𝑤𝑗 𝑖=1 D’où : 𝑛 ∆𝑤𝑗 = 𝛼 ∑(𝑦𝑖 − 𝜑(𝑥𝑖 ))𝑥𝑖𝑗 . (3.14) 𝑖=1 Maintenant que nous savons corriger les poids, nous dérivons l’algorithme d’apprentissage des poids d’un perceptron dans le cas d’individus non séparables. Nous en présentons deux. Pour ce faire, nous utilisons l’algorithme suivant : Cours d’Intelligence Artificielle P a g e | 116 Algorithme 3.4 [Algorithme de propagation de gradient pour un perceptron]. 0. Début L’ensemble des 𝑛 individus d’apprentissage est 𝑋. Soit le taux d’apprentissage 𝛼𝜖 ]0,1]. 1. Initialisations : Initialiser les poids 𝑤𝑗 , 𝑗 ∈ {0, … , 𝑝} et le seuil 𝜃 à des valeurs petites aléatoirement. 2. Répéter // 𝐸 mesure l’erreur courante. 𝐸 ⟵ 0. Pour tous les poids 𝑤𝑗 , 𝑗 ∈ {0, … , 𝑝} faire 𝛥(𝑤𝑗 ) ← 0. Fin Pour Mélanger les individus. Pour tous de l’ensemble d’apprentissage 𝑥𝑖 , 𝑖 ∈ {1, … , 𝑛} faire 2 𝐸 ⟵ 𝐸 + (𝑦𝑖 − 𝜑(𝑥𝑖 )) . Pour tous les 𝑤𝑗 , 𝑗 ∈ {0, … , 𝑛} faire 𝛥(𝑤𝑗 ) ⟵ 𝛥(𝑤𝑗 ) + 𝛼(𝑦𝑖 − 𝜑(𝑥𝑖 )𝑥𝑖𝑗 . Fin Pour Pour tous les poids 𝑤𝑗,𝑗∈{0,…𝑃} faire 𝑤𝑗 ⟵ 𝑤𝑗 + 𝛥(𝑤𝑗 ) ; avec :∆(𝑤) = −𝛼∇𝐸(𝑤). Fin Pour Jusqu’à ce que 𝐸 < 𝜃. 3. Fin. Notons également que l’algorithme ci-dessus peut ne pas converger vers un séparateur qui sépare correctement les individus positifs des négatifs (même si les individus sont linéairement séparés). Cours d’Intelligence Artificielle P a g e | 117 3.3.5.2. Apprentissage des poids d’un PMC Dans notre cas, nous allons nous limiter dans las de réseau de neurones à 3 couches. Un réseau de neurones multicouche est appelé PMC qui signifie, perceptron multicouche. 𝐸 (𝑡 ) = 1 𝑙 (𝑦 (𝑡 ) − 𝑑𝑖 (𝑡))2 , 2 𝑖 avec : 𝐸(𝑡) la valeur du critère à l’instant 𝑡 𝑑𝑖 (𝑡) est la valeur de la 𝑖 è𝑚𝑒 sortie désirée à l’instant 𝑡. Les paramètres du réseau sont modifiés suivant la règle du gradient comme suit : 𝑙 ( 𝑙 ( ) 𝜔𝑖𝑗 𝑡 + 1) = 𝜔𝑖𝑗 𝑡 −𝛼 𝑏𝑖𝑙 (𝑡 + 1) = 𝑏𝑖𝑙 (𝑡 ) − 𝛼 𝜕𝐸(𝑡) 𝑙 𝜕𝜔𝑖𝑗 (𝑡) 𝜕𝐸(𝑡) 𝜕𝑏𝑖𝑙 (𝑡) 𝜕𝐸(𝑡) 𝜕𝐸(𝑡) 𝜕𝑢𝑖𝑙 (𝑡) = × 𝑙 𝜕𝜔𝑖𝑙 (𝑡) 𝜕𝑢𝑖𝑙 (𝑡) 𝜕𝜔𝑖𝑗 (𝑡) 𝜕𝐸(𝑡) 𝜕𝐸(𝑡) 𝜕𝑢𝑖𝑙 (𝑡) = × 𝑙 . 𝜕𝑏𝑖𝑙 (𝑡) 𝜕𝑢𝑖𝑙 (𝑡) 𝜕𝑏𝑖𝑗 (𝑡) On déduit ensuite que : 𝜕𝑢𝑖𝑙 (𝑡) = 𝑦𝑖𝑗𝑙−1 𝑙 𝜕𝜔𝑖 (𝑡) 𝜕𝑢𝑖𝑙 (𝑡) =1 𝑙 𝜕𝑏𝑖𝑗 (𝑡) En posant 𝛿𝑖𝑙 (𝑡 ) = 𝜕𝐸(𝑡) 𝜕𝑢𝑖𝑙 (𝑡) on obtient : Cours d’Intelligence Artificielle P a g e | 118 𝜕𝐸(𝑡) = 𝛿𝑖𝑙 (𝑡 ). 𝑦𝑗𝑙−1 𝑙 𝜕𝜔𝑖 (𝑡) 𝜕𝐸(𝑡) = 𝛿𝑖𝑙 (𝑡 ). 𝑙 𝜕𝑏𝑖 (𝑡) (3.15) La quantité 𝛿𝑖𝑙 (𝑡 ) exprime la sensibilité du critère de performance aux changements du potentiel 𝑢𝑖𝑙 du neurone 𝑖 de la couche 𝑙. Dans le cas où 𝑖 est l’indice d’un neurone de sortie (𝑙 = 𝐿) on obtient : 𝛿𝑖𝐿 (𝑡 ) 𝜕𝐸(𝑡) 𝜕𝐸(𝑡) 𝜕𝑦𝑖𝐿 (𝑡) = 𝐿 = × = (𝑦𝑖𝑙 (𝑡 ) − 𝑑𝑖 (𝑡)). 𝜑(̇(𝑢𝑖𝐿 (𝑡)) 𝜕𝑢𝑖 (𝑡) 𝜕𝑦𝑖𝐿 (𝑡) 𝜕𝑢𝑖𝐿 (𝑡) avec 𝜑̇ (𝑢𝑖𝑙 (𝑡)) = 𝑑𝜑𝑙 (𝑢𝑖𝑙 (𝑡 )) 𝑑𝑢𝑖𝑙 (𝑡) Dans le cas où 𝑖 est l’indice d’un neurone caché (1 < 𝑙 < 𝐿 − 1) on peut vérifier aisément que les fonctions de sensibilité satisfont la relation récurrente ci-dessous : 𝛿 𝑙 = 𝜑̇ 𝑙 (𝑢𝑙 ). (𝑊 𝑙+1 )𝑇 . 𝛿 𝑙+1 . 𝜑̇ 𝑙 (𝑢1𝐿 (𝑡)) 0 𝐺̇ 𝑙 (𝑈 𝑙 ) = ⋮ 0 ( 0 … 𝜑̇ (𝑢2𝐿 (𝑡)) ⋯ ⋮ 0 𝑙 0 0 . ⋮ 𝜑̇ 𝑙 (𝑢𝑝𝐿 (𝑡))) Rappelons que la fonction sigmoïde de paramètre 𝑘0, la fonction : 𝑒 𝑘𝑢 1 𝜎𝑘 (𝑢) = = . 𝑘𝑢 1+𝑒 1 + 𝑒 −𝑘𝑢 (3.16) Cette fonction est une approximation indéfiniment dérivable de la fonction d’activation de Heaviside, d’autant meilleure que 𝑘 est grand, nous prendrons 𝑘 = 1 dans la suite, on a (de 3.16) : 𝑒𝑢 1 𝜎1 = 𝜑(𝑢) = 𝑢 = . 𝑒 + 1 1 + 𝑒 −𝑢 (3.17) La dérivé de cette fonction sera utilisée dans la règle de mise à jour des poids par Cours d’Intelligence Artificielle P a g e | 119 l’algorithme de rétroprogration du gradient : 𝑒𝑢 ′ 𝑒𝑢 ] = 𝜑 𝑢) = [ 𝑢 = 𝜑(𝑢). (1 − 𝑔(𝑢)). (1 + 𝑒 𝑢 ) 2 𝑒 +1 ′( (3.18) A. Algorithme de retro-propagation de gradient pour un PMC Algorithme 4.5 [Algorithme de retro-propagation de gradient]. 0. Début L’ensemble des individus d’apprentissage est 𝑋. Chaque individu xi possède 𝑝 variables dont les valeurs sont notées 𝑥𝑖𝑗 . Pour chaque donnée, 𝑥𝑖0 est une variable virtuelle, toujours égal à 1. La classe de l’individu 𝑥𝑖 est 𝑦𝑖 . 𝑑𝑖 la classe (sortie) désirée de l’individu 𝑥𝑖 . Soit un taux d’apprentissage 𝛼 ∈ ]0,1] et 𝑆 un seuil. 1. Initialisations : Initialiser les poids 𝑤𝑖 et le seuil 𝑆 à des valeurs petites aléatoirement. 2. Tant que le critère d’arrêt n’est pas rempli faire Mettre à jour 𝛼. Mélanger les individus. Pour tout individu 𝑥𝑖 faire 𝑦𝑖𝐿 (𝑡 ) ⟵ sortie du réseau pour l’individu 𝑥𝑖 à l’instant 𝑡. 𝛿𝑖𝐿 (𝑡 ) ⟵ 𝑦𝑖𝐿 (𝑡 )(1 − 𝑦𝑖𝐿 (𝑡 ))(𝑦𝑖𝐿 (𝑡 ) − 𝑑𝑖 (𝑡)). Pour toutes les couches cachées 𝑙 décroissant de 𝑞 − 1 à 1 faire Pour tous les neurones 𝑗 de la couche 𝑐𝑖 faire 𝑙 𝑙+1 𝛿𝑖𝑙 (𝑡 ) ⟵ 𝑦𝑖𝑙 (𝑡 )(1 − 𝑦𝑖𝑙 (𝑡 )) ∑ 𝜔𝑖𝑗 𝛿𝑗 , 𝑗∈Γ+ (𝑖) + avec Γ (𝑖) l’ensemble des successeurs du sommet (neurone) 𝑖. Fin Pour Fin Pour Fin Pour //Mise à jour (correction) des poids synaptiques. Pour tout individu 𝑥𝑖 faire Pour toutes les couches 𝑙 croissant de 0 à 𝐿 − 1 faire Pour toutes les neurones 𝑘 de la couche 𝑙, 𝑘 variant de 1 à |𝑐𝑙 | faire Pour tous les neurones 𝑚 connectés sur la sortie du neurone k Cours d’Intelligence Artificielle P a g e | 120 de la couche 𝑙, m variant de 1 à |𝑐𝑙+1 | faire 𝑙 𝑙 𝑙+1 𝑙 𝑤𝑘𝑚 ⟵ 𝑤𝑘𝑚 + 𝛼𝛿𝑚 . 𝑦𝑘 . Fin Pour Fin Pour Fin Pour Fin Tant que 3. Fin. Cependant, l’algorithme peut aussi se réécrire sept étapes qui se présentent de la manière suivante : Etape 1 : Initialisation de poids Les poids dans le réseau de neurones sont initialisés avec des valeurs aléatoires. Etape 2 : Propagation avant On présente les premiers exemples aux neurones d’entrées, chacun de neurones de la couche ℎ calcule son potentiel de la somme : 𝑃ℎ𝑖 = ∑ 𝑤𝑖𝑗 × 𝑆𝑗 . 𝑗 Pour chaque neurone de la couche ℎ on calcule son signal de la manière suivante : 𝑆ℎ𝑗 = 𝜑(𝑃ℎ𝑖 ). On propage en suite le résultat de la couche ℎ vers la couche de sortie. Puis on calcule d’abord le potentiel des neurones de sortie et enfin le signal de chacun des neurones de sortie. Etape 3 : Calcul d’erreur 𝑜 1 𝐸 = ∑(𝑑𝜃 − 𝑆𝜃 )2 . 2 𝜃=1 Si 𝐸 ≤ 1%, Apprentissage terminé, Sinon l’apprentissage continue. Etape 4 : Calcul du signal d’erreur de la couche de sortie 𝜌𝜃 = (𝑑𝜃 − 𝑆𝜃 ) × 𝑆𝜃 × (1 − 𝑆𝜃 ). Cours d’Intelligence Artificielle P a g e | 121 Etape 5 : Calcul du signal d’erreur sur les couches cachées 𝑂 𝜌ℎ = 𝑆ℎ × ∑ 𝜌 × 𝑊ℎ𝜃 . 𝜃=1 Etape 6 : Correction des poids synaptiques de la couche de sortie 𝑤ℎ𝜃 (𝑡 + 1) = 𝑤ℎ𝜃 (𝑡 ) + 𝜌𝜃 × 𝑆ℎ . Etape 7 : Correction des poids synaptiques de la couche cachée 𝑤𝑖ℎ (𝑡 + 1) = 𝑤𝑖ℎ (𝑡 ) + 𝜌ℎ × 𝑆ℎ . EXERCICE RESOLU Exercice 3.1 Soit le jeu de données suivant : Individu Age Poids Nombre d’enfants 17 62 1 𝒙𝟏 15 64 0 𝒙𝟐 33 70 4 𝒙𝟑 18 60 0 𝒙𝟒 42 74 3 𝒙𝟓 Tableau 3.4. Exercice 3.1. Les individus de ce jeu de données ont donc comme coordonnées respectivement : 𝑥1 = (17; 62; 1), 𝑥2 = (15; 64; 0), 𝑥3 = (33; 70; 4), 𝑥4 = (18; 60; 0) et 𝑥5 = (42; 74; 3). 1. Initialisation Comme 𝑘 = 2, nous choisissons aléatoirement deux centres de gravité initiaux, en occurrence 𝐺10 = 𝑥1 = (14; 62; 1) et 𝐺20 = 𝑥2 = (15; 64; 0). De plus, on a les classes suivant 𝐶10 = ∅ et 𝐶20 = ∅. Cours d’Intelligence Artificielle P a g e | 122 2. Affectation (ou (ré-)allocation) Affectons chaque point à la classe la plus proche. On a : 𝑑 (𝑥1 , 𝐺10 ) = 0 ; 𝑑 (𝑥1 , 𝐺20 ) = √(15 − 17)2 + (64 − 62)2 + (0 − 1)2 = 3. Donc, 𝑥1 est affecté dans la classe 𝐶11 . 𝑑 (𝑥2 , 𝐺10 ) = 𝑑 (𝐺10 , 𝑥2 ) = 3 ; 𝑑 (𝑥2 , 𝐺20 ) = 0. Donc, 𝑥2 est affecté dans la classe 𝐶21 . 𝑑 (𝑥3 , 𝐺10 ) = √(17 − 33)2 + (62 − 70)2 + (1 − 4)2 = 18,14 ; 𝑑 (𝑥3 , 𝐺20 ) = √(15 − 33)2 + (64 − 70)2 + (0 − 4)2 = 19,40. Donc, 𝑥3 est affecter dans la classe 𝐶11 . 𝑑 (𝑥4 , 𝐺10 ) = √(17 − 18)2 + (62 − 60)2 + (1 − 0)2 = 2,45 ; 𝑑 (𝑥4 , 𝐺20 ) = √(15 − 18)2 + (64 − 60)2 + (0 − 0)2 = 5. Donc, 𝑥4 est affecter dans la classe 𝐶11 . 𝑑 (𝑥5 , 𝐺10 ) = √(17 − 42)2 + (62 − 74)2 + (1 − 3)2 = 27,80 ; 𝑑 (𝑥5 , 𝐺20 ) = √(15 − 42)2 + (64 − 74)2 + (0 − 3)2 = 28,95. Donc, 𝑥5 est affecter dans la classe 𝐶11 . Ainsi, 𝐶11 = {𝑥1 , 𝑥3 , 𝑥4 , 𝑥5 } et 𝐶21 = {𝑥2 }. 3. Représentation Recalculons les nouveaux centres de gravité, on a : 𝐺11 = (36,6667; 88,6667; 2,6667) et 𝐺21 = (15; 64; 0). Répétons l’affectation et la représentation. 2. Affectation (ou (ré-)allocation) Affectons chaque point à la classe la plus proche. On a : Cours d’Intelligence Artificielle P a g e | 123 𝑑 (𝑥1 , 𝐺11 ) = √(36,67 − 17)2 + (88,67 − 62)2 + (2,67 − 1)2 == 33,18 ; 𝑑 (𝑥1 , 𝐺20 ) = √(15 − 17)2 + (64 − 62)2 + (0 − 1)2 = 3. Donc, 𝑥1 est affecté dans la classe 𝐶22 . 𝑑 (𝑥2 , 𝐺11 ) = √(36,67 − 33)2 + (88,67 − 70)2 + (2,67 − 4)2 = 32,94 ; 𝑑 (𝑥2 , 𝐺21 ) = √(15 − 33)2 + (64 − 70)2 + (0 − 4)2 = 0. Donc, 𝑥2 est affecté dans la classe 𝐶22 . 𝑑 (𝑥3 , 𝐺11 ) = √(36,67 − 33)2 + (88,67 − 70)2 + (2,67 − 4)2 = 19,07 ; 𝑑 (𝑥3 , 𝐺21 ) = √(15 − 33)2 + (64 − 70)2 + (0 − 4)2 = 19,39. Donc, 𝑥3 est affecté dans la classe 𝐶21 . 𝑑 (𝑥4 , 𝐺11 ) = √(36,67 − 18)2 + (88,67 − 60)2 + (2,67 − 0)2 = 34,31 ; 𝑑 (𝑥4 , 𝐺21 ) = √(15 − 18)2 + (64 − 60)2 + (0 − 0)2 = 5. Donc, 𝑥4 est affecté dans la classe 𝐶11 . 𝑑 (𝑥5 , 𝐺11 ) = √(36,67 − 42)2 + (88,67 − 74)2 + (2,67 − 3)2 = 15,61 ; 𝑑 (𝑥5 , 𝐺21 ) = √(15 − 42)2 + (64 − 74)2 + (0 − 2)2 = 28,95. Donc, 𝑥5 est affecté dans la classe 𝐶11 . Ainsi, 𝐶11 = {𝑥1 , 𝑥2 , 𝑥4 } et 𝐶21 = {𝑥3 , 𝑥5 }. En répétant l’affectation et la représentation comme fait précédemment, on remarque que les partitions (classes) ne changent pas. D’où, nous concluons que 𝐶1 = {𝑥1 , 𝑥2 , 𝑥4 } et 𝐶2 = {𝑥3 , 𝑥5 }. Exercice 3.2 Considérons qu’on utilise le jeu de données Iris. L’objectif est de classer chaque individu en une des trois catégories: Iris setosa, Iris virginica ou Iris versicolor. (1) En utilisant la bibliothèque scikit-learn de Python, charger le jeu de données Iris de Fisher. Cours d’Intelligence Artificielle P a g e | 124 (2) Toujour en utilisant le langage Python, calculer les paramètres statistiques (moyenne et écart-type) des quatre variables explicatives : longueur de sépale (sepal length), largueur de sépale (sepal width), longueur de pétale (petal length) et largeur de pétale (petal width). (3) Construire le modèle prédictif en utilisant l’arbre de décision. Résolution (1) Le chargement du jeu de données se fait de la manière suivante : from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target (2) Les caractériques statistiques de ces variables sont être calculées de la manière suivante : import scipy scipy.stats.describe(iris.data[:,:5]) Le résultat obtenu est ainsi : DescribeResult(nobs=150, minmax=(array([4.3, 2. , 1. , 0.1]) , array([7.9, 4.4, 6.9, 2.5])), mean=array([5.84333333, 3.05 733333, 3.758 , 1.19933333]), variance=array([0.68569351 , 0.18997942, 3.11627785, 0.58100626]), skewness=array([ 0.3 1175306, 0.31576711, -0.27212767, -0.10193421]), kurtosis=a rray([-0.57356795, 0.18097632, -1.39553589, -1.33606741])) De ce résultat, on peut conclure : La longueur de sépale moyenne est 5.84333333 ; La largueur de sépale moyenne est 3.05733333 ; La longueur de pétale moyenne est 3.758 et La largeur de pétale moyenne est 1.19933333. Les écart-types sont des racines carrées positives de la variance : L’écart-type de la longueur de sépale est √0.68569351 = 0.8280661265865185; L’écart-type de la largueur de sépale est √0.18997942 = 0.435866286835768; L’écart-type de la longueur de pétale est √3.11627785 = 1.7652982325941415; Cours d’Intelligence Artificielle P a g e | 125 L’écart-type de la largeur de pétale est √0.58100626 = 0.7622376663482329. (3) Avant de construire le modèle, divisons le jeu de données en deux : 70% pour l’apprentissage, 30% pour le test. from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, random_state=0) Maintenant, contruisons le modèle prédictif basé sur l’arbre de décision. from sklearn import tree clf = tree.DecisionTreeClassifier() clf.fit(X_train, y_train) Après l’apprentissage, nous pouvons visualiser l’arbre, soit avec matplotlib en utilisant la méthode plot_tree, soit avec l’outil graphviz (commande dot). Par exemple, avec matplotlib : tree.plot_tree(clf, filled=True) Ce qui donne le résultat suivant : [Text(133.92000000000002, 195.696, 'X[2] <= 2.35\ngini = 0.6 64\nsamples = 105\nvalue = [34, 32, 39]'), Text(100.44000000000001, 152.208, 'gini = 0.0\nsamples = 34 \nvalue = [34, 0, 0]'), Text(167.40000000000003, 152.208, 'X[2] <= 4.95\ngini = 0.4 95\nsamples = 71\nvalue = [0, 32, 39]'), Text(66.96000000000001, 108.72, 'X[3] <= 1.65\ngini = 0.161 \nsamples = 34\nvalue = [0, 31, 3]'), Text(33.480000000000004, 65.232, 'gini = 0.0\nsamples = 30\ nvalue = [0, 30, 0]'), Text(100.44000000000001, 65.232, 'X[1] <= 3.1\ngini = 0.375 \nsamples = 4\nvalue = [0, 1, 3]'), Text(66.96000000000001, 21.744, 'gini = 0.0\nsamples = 3\nv alue = [0, 0, 3]'), Text(133.92000000000002, 21.744, 'gini = 0.0\nsamples = 1\n value = [0, 1, 0]'), Text(267.84000000000003, 108.72, 'X[3] <= 1.75\ngini = 0.05 3\nsamples = 37\nvalue = [0, 1, 36]'), Text(234.36, 65.232, 'X[3] <= 1.65\ngini = 0.375\nsamples = 4\nvalue = [0, 1, 3]'), Cours d’Intelligence Artificielle P a g e | 126 Text(200.88000000000002, 21.744, 'gini = 0.0\nsamples = 3\n value = [0, 0, 3]'), Text(267.84000000000003, 21.744, 'gini = 0.0\nsamples = 1\n value = [0, 1, 0]'), Text(301.32000000000005, 65.232, 'gini = 0.0\nsamples = 33\ nvalue = [0, 0, 33]')] Figure 3.19. Résolution de l’exercice 4.2. On remarque que l’arbre est généré par la méthode CART. Une fois le modèle prédictif construit, il peut être utilisé pour la prédiction sur de nouvelles données : clf.predict(X_test) Ce qui donne le résultat suivant : array([2, 1, 0, 2, 0, 2, 0, 1, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 0, 0, 2, 1, 0, 0, 2, 0, 0, 1, 1, 0, 2, 1, 0, 2, 2, 1, 0, 2, 1, 1, 2, 0, 2, 0, 0]) On peut de cette façon calculer le score en test : clf.score(X_test, y_test) avec comme résultat : Cours d’Intelligence Artificielle P a g e | 127 0.9777777777777777 Ce qui signifie que le modèle prédit correctement à approximativement 98%. EXERCICES NON RESOLUS Exercice 3.2 Considérons le jeu de données suivant : Individu Taille (en mètres) 𝒙𝟏 𝒙𝟐 𝒙𝟑 𝒙𝟒 𝒙𝟓 𝒙𝟔 𝒙𝟕 Poids (en kg) Age 1,52 83 70 1,80 65 19 1,90 67 17 1,72 69 20 1,50 90 75 1,60 67 18 1,70 85 82 Tableau 3.5. Exercice 3.2. Nombre d’enfants 5 0 1 0 11 0 8 Supposons que le nombre de classes est 2, segmenter le jeu de données en utilisant l’algorithme de 𝑘-means. Utiliser la classification hiérarchique pour confronter le résultat. Exercice 3.4 Le conseil d’administration d’une BCorp SARL a du mal à mettre d’accord ses membres sur chaque nouveau projet d’investissement. Chaque projet possède plusieurs points de discorde (𝑝1 : emplacement, 𝑝2 : durée, 𝑝3 : budget, 𝑝4 : nombre d’intervenants, etc.). Le Président Directeur Général soumet une proposition contenant un choix par point. Chaque membre peut être d’accord (OK) sur chaque point ou pas d’accord (KO). L’objectif de BCorp SARL est de minimiser les interactions entre les membres (deux à deux ou entre groupes) et d’accélérer la prise de décision. Elle met à leur disposition une fiche sur laquelle ils peuvent mentionner leur avis sur chaque point. Sur la base de cette fiche, on veut accélérer le processus de réunions selon le principe : plus on est d’accord sur beaucoup de points, plus on va vite dans la réunion. Cours d’Intelligence Artificielle P a g e | 128 (1) Reformuler le problème en un problème de classification automatique en identifiant les individus, les variables, l’objectif de la classification et la mesure de similarité. (2) Quelle est la technique de classification adéquate dans ce cas ? Justifier la réponse. (3) Expliquer comment utiliser le résultat de la classification pour programmer les réunions. (4) Illustrer par un exemple pour 5 points du projet (𝑝1 , … , 𝑝5 ) et 5 membres du conseil d’administration (𝑚1 , … , 𝑚5 ) les itérations du clustering et l’ordre des réunions. Exercice 3.5 Soit la liste suivante des employés avec leur ancienneté en années, salaire par unité monétaire et leur nombre d’enfants : Employé Ancienneté Salaire Nombre d’enfants 𝒙𝟏 𝒙𝟐 𝒙𝟑 2 3 5 2000 2100 3500 3 5 0 Tableau 3.6. Exercice 3.5. 𝒙𝟒 𝒙𝟓 6 4100 4 10 10000 5 (1) Regrouper les individus en utilisant la classification hiérarchique ascendante et en prenant comme mesure de similarité la distance euclidienne et comme linkage le linkage single. (2) Utiliser 𝑘-means pour confronter le résultat avec la classification hiérarchique en choisissant les centres initiaux de manière aléatoire (utiliser la distance de Manhattan). Exercice 3.6 La quantification des couleurs trouve un petit nombre de couleurs représentatives dans une image donnée. Chaque pixel produit un motif tridimensionnel dans l’espace colorimétrique RVB. En utilisant 𝑘-means, nous pouvons regrouper tous les pixels d’une image en 𝑘 groupes et attribuer à chaque pixel la couleur représentée par son centre de groupe le plus proche. Ainsi, une image contenant des millions de couleurs peut être compressée en une image contenant seulement 𝑘 couleurs différentes. Implémentez l’algorithme de 𝑘-means pour résoudre ce problème : Cours d’Intelligence Artificielle P a g e | 129 (1) Chargez une image de votre choix, traitez chaque pixel comme un point de données tridimensionnel individuel et regroupez en 𝑘 classes (utilisez des images basse résolution pour éviter de longs temps de calcul). (2) Attribuez à chaque pixel la valeur de couleur de son centre de classe le plus proche. (3) Visualisez le résultat. Exercice 3.7 Le jeu de données Iris est un jeu de données multivariées introduit par le statisticien et biologiste britannique Ronald Fisher dans son 1936. Le jeu de données contient un ensemble de 150 instances sous cinq variables (caractéristiques) : longueur des sépales (sepal length), largeur des sépales (sepal width), longueur des pétales (petal length), largeur des pétales (petal width) et espèces (species). Ce jeu de données est inclus dans R et Python (dans le package de machine learning Scikit-learn), afin que les utilisateurs puissent y accéder sans avoir à en trouver une source, mais peut aussi être téléchargé via le site de UCI Machine Learning Repository (http://archive.ics.uci.edu/ml/datasets/Iris/). En utilisant, R ou Python, segmenter le jeu de données Iris en deux classes en utilisant 𝑘-means. Exercice 3.8 Supposons que l’on a un problème de classement qui consiste à déterminer la classe d’appartenance de nouvelles instances 𝑥𝑖 . Le domaine de valeurs des classes possibles est {1, 2, 3}. Selon la base de connaissance suivante, déterminer à la main (ou à l’aide d’un tableur) la classe de l’individu 𝑥6 , dont les valeurs pour les variables numériques 𝑉1 à 𝑉5 sont représentées par le vecteur (3, 12, 4, 7, 8), à l’aide de l’algorithme des 𝑘 plus proches voisins avec 𝑘 = 3 puis 𝑘 = 5. Cours d’Intelligence Artificielle P a g e | 130 Individu 𝒙𝟏 𝒙𝟐 𝒙𝟑 𝒙𝟒 𝒙𝟓 𝒙𝟔 𝒙𝟕 𝑽𝟏 𝑽𝟐 𝑽𝟑 𝑽𝟒 𝑽𝟓 3 5 4 6 1 4 6 10 3 2 8 3 4 2 6 2 1 4 3 6 2 5 1 4 8 4 6 8 3 2 2 1 3 3 6 Tableau 3.7. Exercice 3.8. 𝑽𝟔 1 2 3 3 2 2 3 Exercice 3.9 Arrivé dans la cantina de la planète Tatooine, Han Solo décide de donner des indications à Luke Sywalker pour qu’il ne provoque pas les extraterrestres belliqueux. Il repère quelques caractéristiques et vous demande de l’aider à fournir des éléments à Luke pour ne pas créer de problèmes et donc pouvoir définir un extraterrestre belliqueux. Couleur Jaune Jaune Vert Jaune Rouge Vert Vert Jaune Taille Poids Yeux par pair ? moyenne léger non grande moyen oui petite moyen oui petite moyen non moyenne lourd non grande lourd non moyenne lourd non petite léger oui Tableau 3.8. Exercice 3.9. Belliqueux non oui oui non non oui oui oui En utilisant une distance adaptée aux données qualitatives, utilisez le 𝒌 plus proches voisins pour dire si l’individu représenter par le vecteur (𝒃𝒍𝒆𝒖, 𝒎𝒐𝒚𝒆𝒏𝒏𝒆, 𝒍𝒐𝒖𝒓𝒅, 𝒐𝒖𝒊) est un extraterrestre belliqueux ou non. Cours d’Intelligence Artificielle P a g e | 131 Exercice 3.10 Le département des Mathématiques, Statistique et Informatique de l’Université de Kinshasa désire utiliser le Data science afin d’améliorer le processus de sélection des étudiants pour l’accès à la deuxième année de Licence en Informatique pour la prochaine année académique 2021-2022. Pour atteindre cet objectif, le Chef du Département a décidé d’utiliser les résultats des étudiants de première Licence en Informatique pour l’année académique en cours en se basant sur leurs résultats dans les matières : Recherche Opérationnelle Approfondie, Base de données et Statistique Inférentielle obtenus en Graduat. La table suivante résume les données rassemblées pour l’apprentissage est : N° 1 2 3 4 5 6 7 8 Recherche Base de Statistique Opérationnelle données Inférentielle (G3) (G3) (G2) Excellent Moyen Excellent Faible Moyen Excellent Moyen Faible Moyen Moyen Moyen Faible Faible Faible Faible Excellent Faible Faible Excellent Faible Moyen Moyen Moyen Moyen Tableau 3.9. Exercice 3.10. Admis en L2 (2021-2022) Oui Oui Non Non Non Non Oui Oui (1) Trouver la décision pré pour l’étudiant ayant les mentions (Recherche Opérationnelle : Faible ; Base de données : Excellent ; Statistique Inférentielle : Moyen) par la méthode de 𝑘 plus proches voisins avec 𝑘 = 5 en utilisant la distance de Hamming. (2) Construire un arbre de décision à partir de données d’apprentissage en utilisant le gain d’information. (3) Utiliser le langage Python et le langage R pour confirmer les résultats de (1) et (2). Exercice 3.11 En considérant le jeu de données Iris de Fisher. (1) Utiliser Python et/ou R pour prédire l’espèce des individus (5,8; 2,9; 4,0; 1,3) et (5,4; 3,0; 4,4; 1,4) en utilisant le 𝑘 plus roches voisins, avec 𝑘 = 52. Cours d’Intelligence Artificielle P a g e | 132 (2) Utiliser les mêmes langages de programmation pour prédire leurs espèces à l’aide de réseau de neurones. (3) Utiliser les mêmes langages de programmation pour prédire leurs espèces à l’aide de SVM. Exercice 3.12 On étudie un ensemble de 20 individus (𝑥𝑖 , 𝑦𝑖 )1≤𝑖≤20 , avec 𝑦𝑖 ∈ {1, 2, 3}. On construit sur cet ensemble deux modèles de classement, 𝑔1 et 𝑔2 dont les prédictions sur cet ensemble sont données par le tableau suivant : 1 3 𝒚𝒊 𝒈𝟏 (𝒙𝒊 ) 1 𝒈𝟐 (𝒙𝒊 ) 3 2 1 3 3 3 2 2 2 4 2 2 1 5 3 3 3 6 1 1 1 7 8 9 10 11 12 13 14 3 3 2 2 1 1 1 3 3 3 2 3 1 1 1 3 2 3 2 1 1 1 3 3 Tableau 3.10. Exercice 3.12. 15 2 2 2 16 3 1 3 17 2 2 2 18 3 1 3 19 3 3 3 20 2 3 2 Dans ce tableau, chaque colonne correspond à une observation (𝑥𝑖 , 𝑦𝑖 ) et précise la valeur de 𝑦𝑖 et les prédictions des deux modèles. (1) Calculer les matrices de confusion des deux modèles. (2) Déterminer le meilleur modèle (entre 𝑔1 et 𝑔2 ) au sens du risque empirique pour la fonction de perte 𝑙1 (𝑢, 𝑣) = |𝑢 − 𝑣|. (3) Calculer la sensibilité, la spécificité, la validité prédictive positive, la validité prédictive négative, le taux d’erreur et le taux de précision de chacun de deux modèles. Interpréter. Exercice 3.13 Soit le jeu de données Churn_Modelling.csv (à télécharger sur https://www.kaggle.com/aakash50897/churn-modellingcsv sous condition d’enregistrement dans le site) modélisant le churn dans le secteur bancaire (ce jeu de données comprend 10000 individus et 13 variables). En utilisant Python, R et SSAS de Microsoft, créer des modèles prédictifs pour chacun de ces outils (sauf indication contraire) en utilisant les classifieurs suivant : (1) 𝑘 plus proches voisins (non disponible pour SSAS de Microsoft); (2) Arbre de décision ; (3) Regression logistique ; Cours d’Intelligence Artificielle P a g e | 133 (4) Réseau de neurones ; (5) Machine à Vecteur de Support (non disponible pour SSAS de Microsoft). Cours d’Intelligence Artificielle P a g e | 134 CHAPITRE IV : PERCEPTION ARTIFICIELLE 4.1. INTRODUCTION A LA PERCEPTION ARTIFICIELLE La perception désigne l’activité par laquelle le sujet expérimente des objets ou des propriétés présentes dans son environnement. Pour pouvoir percevoir, les sujets utilisent généralement les sens, à savoir : la vue, l’ouïe, le toucher, l’odorat et le goût. De manière similaire, la perception fournit aux machines des informations sur le monde dans lequel elles vivent en interprétant ce qu’elles reçoivent de leur environnement. Les ordinateurs ont désormais cette capacité supplémentaire de voir, d’entendre, de toucher et, dans certains cas, même de sentir. Le but de cette fonctionnalité est d’apprendre et de réagir comme un humain le ferait, afin que l’ordinateur puisse alerter les opérateurs humains de tout problème imminent et aider à résoudre les problèmes. De cette manière, les informations seront recueillies avec plus de précision et seront présentées d’une manière plus pratique pour l’utilisateur, Définition 4.1 (Perception artificielle). La perception artificielle ou la perception par ordinateur est la capacité d’une machine à interpréter des données d’une manière similaire ou proche à la façon dont les humains utilisent leurs sens pour établir une relation avec le monde qui les entoure. 4.1.1. Vue La vision par ordinateur est un domaine qui comprend des méthodes d’acquisition, de traitement, d’analyse et de compréhension d’images ou de vidéos numériques afin de produire de l’information numérique ou symbolique. La reconnaissance de visage, la reconnaissance d’empreintes digitales, la modélisation géographique, etc. sont des applications courantes de la vision par ordinateur. Cours d’Intelligence Artificielle P a g e | 135 4.1.2. Ouïe L’audition par la machine, ou écoute par la machine, est la capacité d’un ordinateur ou d’une machine à accepter des données sonores telles que la musique ou la parole. La reconnaissance de la parole, la reconnaissance du locuteur, l’enregistrement de musique, la compression et la synthèse vocale sont des applications courantes de l’audition par la machine. 4.2.3. Toucher La machine de contact, ou toucher, est la perception de la machine par laquelle les informations tactiles sont traitées par une machine ou un ordinateur. Les applications incluent la perception tactile des propriétés de surface et/ou de la dextérité, afin que les informations tactiles puissent permettre des réflexes intelligents comme dans le cas des prothèses intelligentes, et l’interaction avec l’environnement. 4.2.4. Odorat Les machines olfactives sont des machines que les scientifiques développent également des ordinateurs connus qui peuvent également reconnaître et mesurer les odeurs. Ces machines peuvent être importantes pour des applications telles que la détection de produits chimiques en suspension dans l’air qui peuvent être détectés et classés à l'’aide d’un appareil parfois appelé nez électronique. Alors que les prototypes actuels de cette technologie sont encore élémentaires, les utilisations futures possibles de telles machines sont incroyablement impressionnantes. 4.2. RECONNAISSANCE DE FORMES 4.2.1. Notion de reconnaissance de formes Pour pouvoir effectué les tâches de la perception artificielle, nous faisons souvent recourt aux systèmes de reconnaissance de formes. Définition 4.2 (Reconnaissance de formes). La reconnaissance de formes (ou parfois reconnaissance de motifs) est une discipline consistant à reproduire dans des systèmes intelligents les capacités perceptuelles de l’homme. Cours d’Intelligence Artificielle P a g e | 136 C’est donc une discipline qui consiste en une automatisation de la perception artificielle généralement réalisée par le cerveau et le système sensoriel humain. C’est un fait que l’homme est et reste le plus parfait des systèmes de reconnaissance de formes. Les progrès de la science et de la technologie nous permettent simplement d’imiter certaines de ces capacités à l’aide d’ordinateurs. La reconnaissance de formes trouve ses origines dans les statistiques et l’ingénierie ; certaines approches modernes de la reconnaissance de formes incluent l’utilisation de l’apprentissage artificielle, en raison de la disponibilité accrue des Big Data et d’une nouvelle abondance de puissance de traitement. 4.2.2. Domaines d’application de la reconnaissance de formes Les applications typiques des techniques de reconnaissance de formes concernent plusieurs domaines, qui peuvent être classés en termes de formes géométriques, de signaux temporels et d’images numériques. (1) Reconnaissance de formes géométriques Dans cette catégorie, il s’agit de reconnaître des formes géométriques, qui peuvent être décrites par des formules mathématiques. On peut reconnaître un cercle, une ellipse, une courbe de Bézier, une droite, etc. (2) Reconnaissance de formes sur signaux temporels Dans cette catégorie figurent la reconnaissance de la parole, la reconnaissance du locuteur, la reconnaissance de signaux biomédicaux, la reconnaissance d’anomalies des machines automatiques. Dans la reconnaissance de la parole, la question principale est « Qu’a-t-on dit ? » et dans la reconnaissance du locuteur, la question est « Qui parle ? ». Il s’agit du signal de la parole. Le son |a| parlé par différents locuteurs conduit à des signaux différents, mais ces différences ne sont pas significatives en termes d’indentification du son, ces signaux sont des réalisations de classe |a|. La traduction automatique de la parole ou la dictée vocale sont des applications potentielles, ainsi que la commande vocale, qui peuvent également permettre aux personnes handicapées de contrôler les machines en leur parlant. Dans la reconnaissance de signaux biomédicaux, il est possible d’analyser les signaux électriques du cœur par électrocardiogramme (pour le diagnostic de maladies cardiaques) ou d’analyser les signaux électriques du cerveau par Cours d’Intelligence Artificielle P a g e | 137 électroencéphalogramme (pour le diagnostic de maladies nerveuses comme l’épilepsie). Dans la reconnaissance d’anomalies des machines automatiques, l’accent est généralement mis sur la surveillance des instruments et le diagnostic des pannes. (3) Reconnaissance de formes dans les images numériques Dans cette troisième catégorie, on retrouve la reconnaissance de caractères avec lecture automatique, la reconnaissance d’images (fixes et animées) et la reconnaissance biométrique. Dans la reconnaissance des caractères avec la lecture automatique, l’écriture manuscrite du caractère A varie d’un scripteur à l’autre, mais le lecteur identifiera le caractère A pour chacune de ces réalisations (telles que dans le traitement automatique de chèques, de courrier, etc.). Dans les applications actuelles les plus sophistiquées, le système s’enrichit d’informations supplémentaires sur le texte à reconnaître en utilisant des grammaires contextuelles et d’autres règles linguistiques. Dans la reconnaissance d’images (fixes et animées), il s’agit d’interpréter des images telles que des images médicales (rayon X, IRM, etc.) et les classer selon les pathologies dont elles témoignent ; d’interpréter automatiquement des images multispectrales (images satellitaires) et de reconnaitre différents types de sols, les réseaux routiers et fluviaux, différents types de bâtiments, etc. ; d’interpréter les vidéos prises par une caméra embarquée sur un objet en mouvement, comme une voiture pour la reconnaissance des limites de la route, la reconnaissance d’autres véhicules, la reconnaissance de piétons, la reconnaissance de panneaux de signalisation, la reconnaissance d’éventuels obstacles, etc.). Dans la reconnaissance biométrique, on utilise des caractères biométriques, qui permettent d’interpréter des images avec la détection des visages ou la reconnaissance d’expressions faciales et de reconnaitre des empreintes digitales, l’œil, l’iris, l’oreille, la géométrie de la main, la dynamique des frappes au clavier, la démarche, etc. De ce qui précède, le mot « forme » est à comprendre dans un sens très général, il peut s’agir d’: une forme géométrique : - reconnaissance du cercle ou de l’ellipse ; - reconnaissance de la courbe de Bézier ; - reconnaissance de la droite ; Cours d’Intelligence Artificielle P a g e | 138 - etc. un signal sonore : - reconnaissance de la parole ; - reconnaissance du locuteur. un signal biomédical : - reconnaissance par électrocardiogramme ; - reconnaissance par électroencéphalogramme. une image fixe ou animée : - reconnaissance de codes-barres ; - reconnaissance d’images médicales (IRM, rayon X, etc.) ; - reconnaissances d’images multi-spectrales (images satellitaires) ; - etc. un caractère biométrique : - reconnaissance d’empreintes digitales ; - reconnaissance de l’iris ; - reconnaissance de la rétine ; - reconnaissance de visage ; - reconnaissance de la démarche ; - reconnaissance de veines des doigts ; - reconnaissance de veines de la paume ; - reconnaissance de l’oreille ; - reconnaissance biométrique manuscrite ; - dynamique de la signature ; - dynamique de frappes au clavier; - appariement d’ADN ; - géométrie de la main. 4.2.3. Système de reconnaissance de formes Un système de reconnaissance de formes typique possède les modules principaux suivants : (1) L’acquisition Cette étape consiste à capturer le motif à l’aide d’un capteur (cela peut être une caméra, un lecteur d’empreintes digitales, une caméra de sécurité, un microphone, un instrument de mesure, etc.) afin de lui donner une représentation manipulable par le système de reconnaissance. Cours d’Intelligence Artificielle P a g e | 139 Des capteurs convertissent les signaux reçus du monde réel en une représentation numérique discrète. L’espace résultant, appelé espace de représentation a une dimension 𝑟 très grande lui permettant de disposer du maximum d’informations sur les formes numérisées. Il s’agit donc de numérisation. (2) Le prétraitement Il s’agit essentiellement de réduire le bruit superposé au motif et de ne conserver, autant que possible, que les informations significatives du motif présenté. Le bruit peut être dû au dispositif d’acquisition, aux conditions d’acquisition (éclairage, mauvais positionnement du document, etc.), voire à la qualité du document original. Il est à noter que la qualité du capteur peut grandement influencer les performances du système. Plus la qualité du système d’acquisition est bonne, moins il y aura de prétraitements à effectuer pour extraire les paramètres du motif. Mathématiquement, cette étape consiste à sélectionner dans l’espace de représentation l’information nécessaire au domaine d’application. Cette sélection passe souvent par l’élimination du bruit, la normalisation des données, ainsi que par la suppression de la redondance. Le nouvel espace de représentation a une dimension 𝑟′ très inférieure à r mais demeure un espace de grande dimension et contient des informations encore assez primitives. Les opérations de prétraitement couramment utilisées comprennent: la binarisation ; la squelettisation ; le redressement d’écriture ; le lissage, le squelette ; le ré-échantillonnage ; la normalisation. (3) L’extraction de caractéristiques Cette étape prend en entrée le motif acquis par le dispositif d’acquisition et extrait uniquement les informations pertinentes pour former une nouvelle représentation du motif. Idéalement, il s’agit de la phase finale de préparation des données. Les attributs étant limités en nombre, l’espace des caractéristiques (ou paramètres) ainsi obtenu est de dimension 𝑝 très petite devant 𝑟′. Il s’agit donc de réduire la dimensionnalité des données. Cours d’Intelligence Artificielle P a g e | 140 Les méthodes de réduction de dimension sont nombreuses et visent à conserver un maximum d’informations dans un espace plus restreint. Il faut noter la différence entre les méthodes d’extraction qui consistent à créer de nouvelles variables à partir d’anciennes et les méthodes de sélection qui ne trouvent qu’un sous-ensemble de variables optimales selon un critère donné. (4) La représentation des informations La représentation des informations dépend de l’outil d’apprentissage à utiliser et de la décision à adopter selon l’une des approches suivantes : L’approche vectorielle, où une forme (ou un motif) est alors vue comme un exemple (ou un individu) ayant des valeurs portées sur des variables (caractéristiques pertinentes extraites) auxquelles on peut aussi associer un nom (ou une étiquette), qui représente sa classe. Les outils mathématiques utilisés pour l’approche vectorielle sont les probabilités, les statistiques, l’analyse des données et la géométrie. L’approche structurelle, où la structure de la forme est décrite par un graphe. Cette représentation note explicitement les relations entre les éléments du formulaire. Les composantes élémentaires sont appelés primitives, les informations granulaires les plus fines qui ne peuvent plus être décomposées (le niveau d’information de ces primitives est fixé par le concepteur du système de reconnaissance). Pour les relations spatiales dans l’espace 2D ou 3D, on utilise des représentations sous forme d’arbres ou plus généralement de graphes 𝐺 = (𝑋, 𝑈), où 𝑋 est l’ensemble des sommets (représentant les primitives) et 𝑈 est l’ensemble des arêtes (représentant les relations entre primitives). L’outil mathématique utilisé pour l’approche structurelle est la théorie des graphes. L’approche syntaxique, où la structure de la forme est décrite par une chaîne de caractères ; ce qui donne lieu aux règles d’assemblage des primitives. L’outil mathématique utilisé à cet effet est la théorie des langages. (1) L’apprentissage (ou reconnaissance proprement dite) Il s’agit de la phase de construction d’un modèle d’apprentissage artificiel pour permettre au système d’apprendre à partir des données. L’apprentissage peut se faire par l’approche supervisée ou non supervisée. Si un utilisateur est identifié par la reconnaissance, les caractéristiques extraites du motif seront alors utilisées pour ré-estimer son modèle. Bien entendu, une adaptation non supervisée peut Cours d’Intelligence Artificielle P a g e | 141 poser problème en cas d’erreurs dans la reconnaissance. L’adaptation est presque essentielle pour les caractéristiques non permanentes telles que la voix. (2) Le post-traitement C’est la phase de validation du modèle. En pratique, un système de reconnaissance de formes s’écarte souvent du schéma ci-haut. Un traitement en amont est souvent nécessaire pour isoler la forme à reconnaître de son contexte, ce qui est en soi un problème de reconnaissance (segmentation forme/fond, délimitation d’une forme dans un ensemble). Un traitement ultérieur est également utile pour valider les décisions et éventuellement les remettre en cause. La nature séquentielle du processus de reconnaissance, comme le montre ce schéma, n’est pas toujours la meilleure option. Ainsi, une erreur dans la segmentation du motif à reconnaître augmente nécessairement le risque de mauvaise reconnaissance. Il est possible d’introduire une boucle dans le processus, remettant en cause la segmentation après analyse des résultats de la reconnaissance. Il est également possible de fusionner segmentation et reconnaissance. C’est le cas de l’écriture où la segmentation en lettres d’un mot cursif peut être couplée à la reconnaissance de séquences de lettres formant un mot lexicalement valide (même principe pour la segmentation d’un signal de parole en phonèmes). Ce schéma illustre en fait l’immersion du noyau dur de la reconnaissance de formes (les méthodes d’apprentissage automatique) dans un système qui, à partir d’un motif brut, résoudra un problème de reconnaissance. 4.3. RECONNAISSANCE BIOMETRIQUE 4.3.1. Notion de biométrie 4.3.1.1. Etymologie et définition du mot « biométrie » La biométrie peut être définie de plusieurs manières. La première définition que nous devons retenir est : Définition 4.3 (Biométrie). La biométrie est la reconnaissance automatique d’une personne en utilisant des traits distinctifs. Une autre définition de la biométrie est : Cours d’Intelligence Artificielle P a g e | 142 Définition 4.4 (Biométrie) [Woodward et al., 2003]. La biométrie est l’ensemble de toutes caractéristiques physiques ou traits personnels automatiquement mesurables, robustes et distinctives qui peuvent être utilisées pour identifier ou pour vérifier l’identité prétendue d’un individu. Une autre définition (celui de le CLUSIF4) est : Définition 4.5 (Biométrie). La biométrie est l’étude mathématique des variations biologiques à l’intérieur d’un groupe déterminé. Larousse le définit comme : Définition 4.6 (Biométrie). La biométrie est une technique qui permet d’associer à une identité une personne voulant procéder à une action, grâce à la reconnaissance automatique d’une ou plusieurs caractéristiques physiques et comportementales de cette personne préalablement enregistrée. Eu égard à toute ces définitions, on peut retenir que la biométrie est une science dont l’objectif vise à reconnaître l’identité d’une personne. Le mot signifiant littéralement « mesure du vivant », il désigne dans un sens très large l’étude quantitative des êtres vivants. Elle est également une « application des méthodes statistiques à la biologie » La biométrie consiste en l’analyse mathématique des caractéristiques biologiques d’une personne et vise à déterminer son identité de manière incontestable. La biométrie est basée sur ce que l’on est (facteur corporel) ou ce que l’on sait faire (facteur réactionnel) et permet ainsi d’éviter la duplication, le vol, l’oubli ou la perte. Ces facteurs sont alors dits facteurs biométriques. Pour que des caractéristiques collectées puissent être qualifiées de modalités biométriques, elles doivent être : universelles, c’est-à-dire doivent exister chez tous les individus ; uniques, c’est-à-dire doivent permettre de différencier un individu par rapport à un autre ; permanentes, c’est-à-dire doivent présentes pendant toute la vie d’un individu ; Le CLUSIF, signifiant Club de la sécurité de l’information français, est une association indépendante (loi de 1901) de professionnels de la sécurité de l’information réunissant des Utilisateurs et des Offreurs de tous les secteurs d'activité de l’économie. 4 Cours d’Intelligence Artificielle P a g e | 143 enregistrables, c’est-à-dire doivent permettre de collecter les caractéristiques d’un individu avec son accord ; mesurables, afin d’être utilisées pour les comparaisons. La biométrie offre beaucoup plus d’avantages que les méthodes existantes d’authentification tels que les mots de passe et les cartes magnétiques. En effet, elle fournit encore plus de sûreté et de convenance ce qui engendre d’énormes avantages économiques et elle comble les grandes failles de sécurité des mots de passe. 4.3.1.2. Techniques utilisée en biométrie Il existe plusieurs techniques biométriques utilisées dans plusieurs applications et secteurs, on peut en distinguer trois catégories : (1) Analyse biologique : Il s’agit d’analyse de caractéristiques biologiques. Cette catégorie regroupe l’ADN, l’urine, l’odeur, le sang, etc. (2) Analyse comportementale : Il s’agit de l’analyse de certains comportements d’une personne. Cette catégorie regroupe la voix, la gestuelle, la dynamique de frappe au clavier, la dynamique de la signature, l’analyse de la démarche, etc. (3) Analyse morphologique (ou physiologique) : Il s’agit de la reconnaissance de traits physiques particuliers qui, pour toute personne, sont uniques et permanents. Cette catégorie regroupe l’iris de l’œil, le réseau veineux de la rétine, la forme de la main, les empreintes digitales, les traits du visage, les veines de la main, etc. Nota. Dans la reconnaissance de formes, il s’agit généralement de l’analyse comportementale et de l’analyse morphologique. 4.3.2. Système biométrique 4.3.2.1. Définition du système biométrique Définition 4.7 (Système biométrique). Un système biométrique est essentiellement un système de reconnaissance de formes qui fonctionne en acquérant des données biométriques à partir d’un individu, extrayant un ensemble de caractéristiques à partir des données acquises, et comparant ces caractéristiques à la signature dans la base de données. Un système biométrique est essentiellement un système de reconnaissance de formes qui fonctionne en acquérant des données biométriques d’une personne, puis en extrayant ensuite un ensemble de caractéristiques à partir des données acquises, et comparant ces caractéristiques contre la signature dans le jeu de données. Cours d’Intelligence Artificielle P a g e | 144 4.3.2.2. Modèles biométriques Définition 4.8 (Modèle biométrique). Un modèle biométrique (également appelé gabarit ou template) est l’ensemble de données utilisées pour représenter un utilisateur. Les caractéristiques biométriques acquises ne sont pas enregistrées et utilisées comme telles. Une phase de prétraitement est effectuée pour réduire les données biométriques brutes et ainsi produire le modèle biométrique. 4.3.3. Quelques techniques biométriques 4.3.3.1. Reconnaissance d’empreintes digitales Définition 4.9 (Empreinte digitale). Une empreinte digitale est le dessin formé par les lignes de la peau des doigts, des paumes des mains, des orteils ou de la plante des pieds. Figure 4.1. Empreinte digitale. Ce motif se forme pendant la période fœtale. Il existe deux types d’empreintes digitales : l’empreinte directe (qui laisse une marque visible) et l’empreinte latente (saleté, sueur ou autre résidu déposé sur un objet). Les empreintes digitales forment le facteur biométrique le plus utilisé. Elles sont uniques et immuables, elles ne se modifient donc pas au cours du temps (sauf par accident comme une brûlure). La probabilité de trouver deux empreintes digitales similaires est de 1 sur 10 puissance 24. Les jumeaux homozygotes auront des empreintes très proches mais pas identiques. Définition 4.10 (Reconnaissance d’empreintes digitales). La reconnaissance d’empreintes digitales est une technique biométrique permettant de reconnaître (identifier ou authentifier) une personne en observant ses empreintes digitales. La reconnaissance d’empreintes digitales est la technique biométrique la plus ancienne et l’une des plus matures. Cours d’Intelligence Artificielle P a g e | 145 Les empreintes digitales sont composées de lignes localement parallèles avec des points singuliers (minuties) et constituent un motif unique, universel et permanent. Il existe de nombreuses méthodes d’acquisition d’empreintes digitales. Le plus ancien consiste à recouvrir le bout du doigt d’une fine couche d’encre et à l’imprimer sur une feuille de papier. Actuellement, les progrès technologiques ont permis d’automatiser la tâche au moyen de dispositifs d’acquisition d’empreintes digitales (basés sur la capture optique, thermique, électromagnétique ou ultrasonore), remplaçant l’utilisation traditionnelle de l’encre et du papier. Ces capteurs fonctionnant selon différents mécanismes de mesure (pression, champ électrique, température) permettent de mesurer l’empreinte d’un doigt fixe positionné sur ce dernier (capteur matriciel) ou en mouvement (capteurs à balayage). 4.3.3.2. Reconnaissance de visage Définition 4.11 (Reconnaissance de visage). La reconnaissance de visage (ou reconnaissance faciale) est une technique biométrique permettant de reconnaître (identifier ou authentifier) une personne grâce à son visage automatiquement. On peut identifier un individu en fonction de ses caractéristiques faciales en prenant des mesures : écartement des yeux, arêtes nasales, commissures des lèvres, oreilles, menton. Ces différentes caractéristiques sont analysées par les systèmes de reconnaissance de visage et comparées à une base de données existante. Figure 4.2. Reconnaissance faciale. Cette technique a l’avantage d’être peu coûteuse, peu encombrant et non intrusive. De plus, il n’y a aucun risque pour la santé et ne nécessite pas de contact avec le capteur (la caméra). C’est la technique que nous allons développer dans ce cours. Ce facteur d’authentification peut être attaqué de trois manières : Cours d’Intelligence Artificielle P a g e | 146 L’attaque par photo, qui consiste à montrer une photo au système, semble être une bonne méthode pour tromper le capteur (caméra, etc.). L’efficacité de ce type d’attaque a été favorisée par l’avènement des imprimantes à haute résolution, également appelées haute définition. Ces imprimantes permettent d’imprimer une image très qualitative, trompant facilement la vigilance des systèmes. L’attaque par vidéo, qui consiste à présenter une vidéo à l’objectif de la caméra afin de tromper le système. Des logiciels disponibles sur Internet, appelés caméras virtuelles, comme VirtualCamera ou Manycam, permettent en effet de tromper le système en lui présentant une vidéo comme si elle provenait de sa propre caméra. Ce type d’attaque est généralement utilisé pour la reconnaissance 3D, car il est très difficile de tromper une reconnaissance d’un modèle 3D avec une simple photo, cette dernière montrant toujours la même posture d’un individu. En revanche, la vidéo présente du mouvement et permet d’obtenir plusieurs postures d’un même individu, le système 3D peut donc modéliser un modèle réel et se tromper. L’attaque de masque, qui consiste à créer un masque (3D) correspondant au visage de l’utilisateur. Il est alors facile d’imaginer l’utilisation d’un masque présentant un individu pour tromper un système de reconnaissance de visage. Ainsi, pour les contrer, il est conseillé d’utiliser les événements totalement ou partiellement extérieurs à l’image, notamment : Création d’un modèle à partir des postures fixes de l’utilisateur dans un ordre précis (par exemple : profil gauche, profil droit, face) ; Sur les smartphones, il est possible de synchroniser les micro-mouvements ou mouvements du smartphone avec ceux de l’image/vidéo afin de vérifier l’authenticité de cette dernière ; Sur les appareils équipés d’un microphone, il est possible de demander à l’utilisateur de parler et de vérifier les mouvements de la bouche sur l’image/vidéo afin de vérifier la synchronisation des deux. De même, il permet de faire une authentification à partir de deux facteurs biométriques (voix et visage). Il est envisageable de lier d’autres facteurs biométriques à la reconnaissance de visage, comme les empreintes digitales. Vérification de la texture du visage en addition d’autres réponses pour rendre l’attaque plus compliquée. De plus, une texture trop floue ou irréelle montrera le manque de fiabilité de l’image. Donner des instructions (comme Tournez la tête vers la droite, Faites tourner la caméra autour de votre visage, Bougez la caméra vers le haut, ...) à l’utilisateur. Il est alors possible de vérifier que l’utilisateur suit bien les instructions, ce qui est fiable du fait du caractère aléatoire des instructions et de leur précision. Cours d’Intelligence Artificielle P a g e | 147 4.3.3.3. Reconnaissance de l’iris Définition 4.12 (Iris). L’iris est la membrane, sous forme circulaire, située entre la pupille et le blanc de l’œil, il est unique. Il constitue la partie colorée visible de l’œil. Figure 4.3. Photo d’iris. L’utilisation de l’iris comme caractéristique biométrique unique des humains a abouti à une technologie d’authentification fiable et très précise. L’iris a une structure extraordinaire et offre de nombreuses caractéristiques texturales uniques à chaque individu. Définition 4.13 (Reconnaissance de l’iris). La reconnaissance de l’iris est une technique biométrique qui permet de reconnaître (identifier ou authentifier) une personne à travers des images vidéo d’un ou des deux iris des yeux, dont les motifs complexes sont uniques, stables et peuvent être vus à une certaine distance. Comme avec la plupart des autres facteurs d’authentification biométrique, la fiabilité de ce facteur dépend de la garantie que le signal acquis et comparé a bien été enregistré à partir d’une partie du corps vivant de la personne à identifier ou authentifier et n’est pas un modèle fabriqué. Ainsi, il existe plusieurs manières d’attaquer ce système, notamment l’attaque par image (en présentant une photographie de haute qualité d’un visage au lieu d’un visage réel), ce qui rend ces appareils inadaptés aux applications non supervisées, telles que les systèmes de contrôle d’accès de porte. Pour contrer cette attaque, plusieurs méthodes ont été suggérées pour fournir une certaine défense contre l’utilisation de faux yeux et d’iris, notamment : Le changement de l’éclairage ambiant pendant l’authentification (allumer une lampe brillante), de sorte que le réflexe pupillaire peut être vérifié et l’image de l’iris enregistrée à plusieurs diamètres de pupille différents ; Cours d’Intelligence Artificielle P a g e | 148 L’analyse du spectre de fréquences spatiales 2D de l’image d’iris pour les pics causés par les motifs de tramage d’imprimante trouvés sur des lentilles de contact à faux iris disponibles dans le commerce ; L’analyse du spectre de fréquences temporelles de l’image pour les pics causés par les écrans d’ordinateur ; L’observation du mouvement naturel caractéristique d’un globe oculaire (mesure du nystagmus, surveillance de l’œil lors la lecture du texte, etc.) ; Le test pour la rétroréflexion rétinienne (effet yeux rouges) ou pour les réflexions des quatre surfaces optiques de l’œil (avant et arrière de la cornée et du cristallin) pour vérifier leur présence, leur position et leur forme. 4.3.3.4. Reconnaissance de la rétine Définition 4.14 (Rétine). La rétine est la pellicule photosensible située au fond de l’œil. C’est est l’organe sensible de la vision. Figure 4.4. Photo de la rétine. Définition 4.15 (Reconnaissance de la rétine). La reconnaissance de la rétine (ou reconnaissance rétinienne) est une technique biométrique utilisée pour reconnaître (identifier ou authentifier) une personne par des motifs uniques formés par les vaisseaux sanguins de la rétine. La reconnaissance rétinienne est effectuée en projetant un faisceau non perçu de lumière infrarouge à faible énergie dans l’œil d’une personne alors qu’elle regarde à travers l’oculaire du scanner. Ce faisceau de lumière trace un chemin normalisé sur la rétine. Etant donné que les vaisseaux sanguins rétiniens absorbent la lumière plus facilement que les tissus environnants, la quantité de réflexion varie pendant le balayage. Le modèle de variation est numérisé et stocké dans une base de données. Cours d’Intelligence Artificielle P a g e | 149 4.3.3.5. Dynamique de la signature L’authentification de la signature analyse la façon dont un utilisateur signe son nom. Les caractéristiques dynamiques de la signature comme la vitesse, l’ordre de frappes, la pression, les accélérations, le temps total, … sont aussi importantes que la forme géométrique de la signature. Dans l’authentification de signature statique, seules les formes géométriques de la signature sont utilisées pour authentifier une personne. Dans cette approche, en règle générale, la signature est normalisée à une taille connue ensuite décomposée en éléments simples. Figure 4.5. Signature de Barack Obama. La forme et les relations de ses éléments sont utilisées comme caractéristiques d’identification. Quant à la deuxième approche d’authentification de signature elle utilise, en plus de la forme géométrique, les caractéristiques dynamiques telles que l’accélération, la vitesse et les profils de trajectoire de la signature. Il est à noter que la signature est une biométrie comportementale, elle évolue dans le temps et est influencée par les conditions physiques et émotionnelles de la personne. 4.4. RECONNAISSANCE DE VISAGE 4.4.1. Introduction à la reconnaissance de visage Le visage est l’un des moyens les plus simples de distinguer les gens. En fait, la reconnaissance de visage est une tâche que les humains effectuent naturellement et sans effort dans leurs vies quotidiennes. La grande disponibilité d’ordinateurs puissants et peu coûteux ainsi que de systèmes informatiques embarqués a suscité un énorme intérêt pour le traitement automatique d’images et de vidéos numériques dans de nombreuses applications, notamment l’identification biométrique, la surveillance, la vidéoconférence, l’indexation d’images (fixes et animées), la domotique, l’interaction homme-machine, la gestion des données multimédia et bien d’autres domaines. La reconnaissance Cours d’Intelligence Artificielle P a g e | 150 faciale, en tant que l’une des technologies biométriques de base, a pris une part de plus en plus importante dans le domaine de la recherche, en raison des progrès rapides de technologies telles que les appareils photo numériques, Internet et les appareils électroniques, tous associés à des besoins de sécurité sans cesse croissants. 4.4.2. Historique de la reconnaissance de visage La reconnaissance automatique de visage est un concept relativement nouveau le premier système semi-automatisé de la reconnaissance de visage a été développé dans les années 1960, il oblige à l’administrateur de localiser les yeux, les oreilles, le nez et la bouche sur la photo et de saisir les distances calculées et les ratios à un point de référence commun, qui ont ensuite été comparés aux données de référence. Cependant, l’une des premières tentatives de la reconnaissance de visage est faite par l’informaticien japonais Takeo Kanade en 1973 dans le cadre de sa thèse de doctorat à l’Université de Kyoto. Reconnaissons aussi qu’en 1988, Francis Galton, avait proposé la collecte de profils faciaux sous forme de courbes, trouver leurs normes, puis classer les nouveaux profils selon leurs dérivations à partir de cette norme, puisqu’une multitude d’approches ont été développées et plusieurs méthodes ont été adoptées pour résoudre ce problème. En 1991, Turk et Pentland ont découvert que lors de l’utilisation de la technique Eigenfaces (ACP), l’erreur résiduelle peut être utilisée pour détecter un visage dans une image. Cette technologie a été mise à l’épreuve en janvier 2001 lors de la finale du championnat de football américain SUPER BOWL en capturant des images de surveillance puis en les comparant à une base de données numérique. Aujourd’hui, la reconnaissance faciale est utilisée dans plusieurs domaines [BOUCHRA, 2013]. Le 7 juin 2011, Facebook a lancé un service de reconnaissance de visage accessible à tous. Cela a été vivement critiqué par de nombreuses associations de protection de la vie privée et du droit à l’oubli. Sous cette pression, Facebook a dû abandonner ce service le 22 septembre 2012 en Europe. Un autre projet de reconnaissance faciale, baptisé DeepFace, développé par le groupe de recherche Facebook a également commencé à voir le jour début 2015. Cet outil vise à reconnaître un visage, quelle que soit son orientation, ainsi qu’à associer une personne. DeepFace permet donc de faire correspondre un très grand nombre de photos différentes d’une même personne, même si cette dernière n’est pas explicitement identifiée. Pour y Cours d’Intelligence Artificielle P a g e | 151 parvenir, le système est composé d’un réseau de neurones artificiels entraînés par apprentissage profond sur des millions d’images. Cependant, cette technologie évolue rapidement et cherche à se démocratiser à travers le développement de nombreux cas d’usage. Depuis fin 2018, le nombre d’annonces s’est multiplié, introduisant progressivement la reconnaissance de visage dans la vie de tous les jours, tous les systèmes affichant des progrès spectaculaires, tant en termes d'efficacité des algorithmes utilisés qu’en termes de masse de données qui peuvent être traités par les programmes. En 2019, Cydral Technology distribue un système utilisable depuis un simple téléphone et propose donc le tout premier moteur de recherche grand public fonctionnant comme la recherche inversée proposée par Google mais pour l’identification de profils exclusivement. En janvier 2020, le New York Times révélait l’existence de la société Clearview AI, qui commercialise auprès des agences de sécurité une application de reconnaissance de visage permettant d’identifier une personne à partir d’une photographie. L’auteur de l’enquête souligne que cette application remet en cause notre conception de la vie privée. En juin 2020, la société espagnole Herta Security remporte un label d’excellence pour une technologie capable d’analyser les visages et de surveiller les foules. Cette technologie pourrait être utilisée en cas de nouvelle vague de Covid-19. Ce logiciel, nommé Aware, est capable de vérifier la distanciation sociale et d’identifier les personnes à différents points de contrôle. 4.4.3. Architecture d’un système de reconnaissance de visage Comme tous les systèmes de reconnaissance de formes, un système de reconnaissance faciale obéit à l’architecture présentée dans la section 4.2.3, avec quelques modifications qui lui sont propres. Cours d’Intelligence Artificielle P a g e | 152 Acquisition de l’image Detection de visage Prétraitement Extraction de caractéristiques Apprentissage (ou reconnaissance proprement dire) Figure 4.6. Architecture d’un système de reconnaissance faciale. 4.4.3.1. Acquisition de l’image Cette étape consiste à extraire l’image fixe de l’utilisateur du monde extérieur à l’aide d’un appareil photographique ou l’image animée (c’est-à-dire la vidéo) à l’aide d’une caméra. Par la suite, l’image extraite sera numérisée ce qui donnera lieu à une représentation bidimensionnelle du visage, caractérisée par une matrice de niveaux de gris. L'image à ce stade est à l'état brut ce qui crée un risque de bruit pouvant dégrader les performances du système. 4.4.3.2. Détection de visage L’étape de détection est précédée de l’acquisition du motif, en l’occurrence l’image. La détection des visages dans l’image est un traitement essentiel et crucial. En effet, la reconnaissance (propre) de visage ne peut jamais devenir totalement automatique si elle n’a pas été précédée d'une étape de détection efficace. L’efficacité des systèmes de reconnaissance de visage dépend principalement de la méthode utilisée pour localiser le visage dans l’image ; tels que les yeux, le nez, la bouche, etc. Cependant, les solutions doivent gérer la variabilité des conditions d’acquisition de la vie quotidienne, notamment : la pose, la présence ou l’absence de composants structurels (la Cours d’Intelligence Artificielle P a g e | 153 barbe), les occultations (les visages peuvent masquer d’autres visages), l’éclairage, les caractéristiques de l’appareil photo, etc. Il existe plusieurs méthodes pour détecter les visages dans une image. Nous ne les détaillerons pas dans ce cours. Cependant, nous les utiliserons implicitement dans des applications pratiques. 4.4.3.2. Prétraitement Dans le prétraitement, il s’agit essentiellement de réduire le bruit superposé au motif et de ne conserver, autant que possible, que les informations significatives du motif présenté. Le bruit peut être dû au dispositif d’acquisition, aux conditions d’acquisition (éclairage, mauvais positionnement du document, etc.), ou encore à la qualité du document original. Il est à noter que la qualité du capteur peut grandement influencer les performances du système. Plus la qualité du système d’acquisition est bonne, moins il y aura de prétraitement à effectuer pour extraire les paramètres du motif. Cette étape va nous permettre de préparer l'image du visage pour qu’elle soit utilisable. L’opération de prétraitement utilisée pour la reconnaissance de visage est la normalisation. Cette opération retourne toutes les images extraites de l’image brute dans un format prédéfini. Cela implique généralement de centrer le visage dans l’image et d’éliminer les zones non informatives. Pour assurer le bon fonctionnement du système de reconnaissance de visage, il est important que toutes les images soient de la même taille, échelle et format en ce qui concerne les couleurs (parfois les images en couleur sont parfois converties en niveaux de gris). Ceci améliore sans aucun doute le fonctionnement de l’étape d’extraction de caractéristiques et donc la qualité de cette dernière. La normalisation consiste en deux processus : l’un géométrique et l’autre photométrique. La normalisation géométrique est nécessaire car la taille du visage au sein de l’image acquise peut varier en fonction de la distance entre le module d’acquisition et la personne. La normalisation photométrique tente d’éliminer ou de réduire les effets de l’éclairage de l’image. Cours d’Intelligence Artificielle P a g e | 154 A. Normalisation géométrique A l’aide d’un algorithme de reconnaissance basé sur la réduction d’espace, on ne peut négliger un point très important qui est la normalisation géométrique des images de visage. Cette normalisation géométrique consiste à extraire la zone du visage de l’image d’origine, puis à faire pivoter le visage pour aligner l’axe des yeux sur l’axe horizontal. Enfin, une réduction proportionnelle à la distance entre les centres des deux yeux est appliquée. On obtient alors une image d’un visage avec une distance fixe entre les centres des yeux. Les dimensions de l’image faciale sont calculées à partir de la distance à obtenir entre les centres des deux yeux. B. Normalisation photométrique Dans le domaine de la reconnaissance de visage, plusieurs méthodes de normalisation de l’éclairage ont été présentées. Nous avons opté pour la méthode d’égalisation des histogrammes qui a amélioré le taux d’identification de notre système de reconnaissance. 4.4.3.3. Extraction de caractéristiques Une fois l’image du visage normalisée, l’étape suivante consiste à extraire les traits du visage. Dans l’extraction de caractéristiques, une représentation mathématique appelée modèle biométrique ou référence biométrique est générée, qui est stockée dans la base de données et constituera la base de toute tâche de reconnaissance. Les algorithmes de reconnaissance de visage diffèrent dans la manière dont ils traduisent ou transforment une image de visage (représentée à ce stade par des pixels en niveaux de gris) en une représentation mathématique simplifiée (« caractéristiques ») dans l’espace des caractéristiques, afin d’effectuer la tâche de reconnaissance (les algorithmes seront discutés au-dessous de). Il est important pour une reconnaissance réussie qu’autant d’informations soient conservées dans ce processus de transformation afin que le modèle biométrique soit suffisamment distinctif. Si cela ne peut pas être réalisé, l’algorithme n’aura pas la capacité de discrimination requise pour une reconnaissance réussie. 4.4.3.4. Apprentissage (ou reconnaissance proprement dite) Les méthodes de reconnaissance de visage peuvent être séparées en deux grandes familles, les méthodes globales (ou holistiques) et les méthodes locales, basées sur des modèles. Cours d’Intelligence Artificielle P a g e | 155 A. Méthodes globales Les méthodes globales ou holistiques, qui consistent à extraire les caractéristiques sur l’ensemble du visage qui permettent de les discriminer entre eux, de sorte à ultérieurement produire un modèle de visage particulier avec lequel un classifieur pourrait être entrainer à les différencier. Il s’agit le plus souvent de méthodes d’apprentissage non supervisées, notamment les méthodes factorielles. Le principe de ces méthodes est de représenter une image de visage par un seul vecteur de grande dimension en concaténant les niveaux de gris de tous les pixels du visage. Cette représentation, appelée description basée sur l’apparence globale, a deux avantages. Premièrement, elle préserve implicitement toutes les informations de texture et de forme utiles pour différencier les visages. Deuxièmement, elle peut prendre en compte les aspects organisationnels structurels globaux du visage. Cependant, son inconvénient majeur réside dans la très grande taille de l’espace image qu’il nécessite, ce qui rend la classification très difficile. Le principal avantage des méthodes globales est qu’elles sont relativement rapides à mettre en œuvre et que les calculs de base sont de complexité moyenne, et qu’elles retiennent implicitement toutes les informations de texture et de forme utiles à la différenciation des visages. De plus, il peut prendre en compte les aspects organisationnels structurels globaux du visage. Les plus utilisées pour la tâche de la reconnaissance de visage sont : l’analyse en composantes principales (ACP) ; l’analyse factorielle discriminante (AFD) ; l’analyse en composantes indépendantes (ACI). A.1. Analyse en composantes principales (ACP) Une méthode très populaire, basée sur la technique ACP, est la méthode Eigenface [Huang, Jain, Learned-Miller, 2007]. Son principe est le suivant : « Étant donné un ensemble d’images de visages exemples, il s’agit tout d’abord de trouver les composantes principales de ces visages ». Ceci revient à déterminer les vecteurs propres de la matrice de covariance formée par l’ensemble des images exemples. Chaque visage exemple peut alors être décrit par une combinaison linéaire de ces vecteurs propres. Pour construire la matrice de covariance, chaque image de visage est transformée en vecteur. Chaque élément du vecteur Cours d’Intelligence Artificielle P a g e | 156 correspond à l’intensité lumineuse d’un pixel. Cette méthode sera présentée plus en détail dans le chapitre suivant. L’ACP est une technique rapide, simple et populaire dans l’identification de motifs, et c’est l’une des meilleures techniques. Les projections de l’ACP sont optimales pour la reconstruction d’une base de dimension réduite. Cependant, l’ACP n’est pas optimisé pour la séparabilité (discrimination) de classe). Une alternative qui est l’analyse factorielle discriminante (AFD)5 en tient compte. A.1. Analyse factorielle discriminante (AFD) L’objectif de la plupart des algorithmes basés sur l’AFD est de trouver les directions de projection les plus discriminantes dans l’espace propre, en maximisant le rapport entre les variations interpersonnelles et intra-personnelles. Les variations intra-personnelles pouvant être faibles (notamment lorsqu’il n’y a pas beaucoup d’images par individu), ce ratio est difficile à maximiser car il est déjà important. Ce problème est encore appelé Small Sample Size. Pour l’éviter, on peut utiliser tout d’abord l’ACP et ensuite l’AFD, et cette méthode est appelée Fisherfaces. Voilà pourquoi les méthodes basées sur l’AFD ne fonctionnent bien que lorsque beaucoup d’images par personne sont disponibles dans la base d’apprentissage. En revanche, quand il n’y a pas beaucoup d’images par personne, les méthodes basées sur l’AFD marchent moins bien que celles basées sur l’ACP. Bien que les méthodes holistiques aient été très efficaces, leur principal inconvénient est qu’elles n’utilisent que des photos de visage 2D. Or, on sait qu’une telle représentation est sensible aux variations d’éclairage, de pose et d’expression du visage. Cela se comprend aisément puisque la moindre variation des conditions environnementales ambiantes entraîne des changements inévitables des valeurs des pixels qui sont traités directement. Une façon d’éviter ce problème est d’utiliser des représentations faciales locales. En effet, les caractéristiques locales ne sont généralement pas aussi sensibles aux changements d’apparence que les caractéristiques globales. B. Méthodes locales Les méthodes locales, basées sur des modèles, utilisent des connaissances a priori que l’on possède sur la morphologie de visages. Elles abordent donc le problème de la représentation des visages afin de déterminer leurs particularités faciales (telles que le centre Pour les détails concernant la méthode d’analyse factorielle discriminante, le lecteur peut consulter le papier de Kamingu [2016]. 5 Cours d’Intelligence Artificielle P a g e | 157 des yeux, les narines, le centre de la bouche, etc.) qu’il convient d’exploiter plus spécifiquement pour les distinguer. Il s’agit le plus souvent de méthodes d’apprentissage supervisé. Ces méthodes sont une autre approche pour tenir compte de la non-linéarité en construisant un espace de caractéristiques local et en utilisant des filtres d’image appropriés, de sorte que les distributions de visages soient moins affectées par divers changements. Parmi les méthodes locales utilisées, nous avons les approches bayésiennes, les machines à vecteurs de support (SVM), les réseaux de neurones, le modèle de Markov caché, etc. et d’autres méthodes telles que la méthode des modèles actifs d’apparence (MAA) ou le « modèle binaire local » ont été utilisées à cette fin. Toutes ces méthodes ont l’avantage de pouvoir modéliser plus facilement les variations de pose, d’éclairage et d’expression par rapport aux méthodes globales. Cependant, elles sont plus lourdes à utiliser puisqu’il est souvent nécessaire de placer manuellement un assez grand nombre de points sur le visage alors que les méthodes globales ne nécessitent que de connaître la position des yeux pour normaliser les images, ce qui peut se faire automatiquement et de manière assez fiable par un algorithme de détection. C. Méthodes hybrides Les méthodes hybrides (ou méthodes de fusion) sont des approches utilisant à la fois des caractéristiques globales et des caractéristiques locales. Les facteurs clés qui influencent les performances des méthodes de fusion incluent le choix des caractéristiques de la combinaison et la manière de les combiner afin de préserver leurs avantages et d’éviter leurs inconvénients. Les caractéristiques locales et les caractéristiques globales ont des propriétés très différentes et peuvent fournir des informations supplémentaires utiles pour la tâche de classification. Notons aussi que d’un certain point de vue, les méthodes locales peuvent être considérées comme des méthodes hybrides car l’information globale est généralement prise en compte. Dans la méthode probabiliste locale, de nouveaux échantillons d’apprentissage sont d’abord produits pour chaque personne par une méthode globale, puis une méthode locale est utilisée pour la reconnaissance. 4.4.4. Modes de fonctionnement d’un système de reconnaissance de visage Un système de reconnaissance, comme tous les systèmes de reconnaissance biométrique fonctionne sous deux modes : identification ou authentification. Cours d’Intelligence Artificielle P a g e | 158 En mode enrôlement, le but est de collecter des informations biométriques sur les personnes à identifier. Plusieurs campagnes d’acquisition de données peuvent être réalisées afin d’assurer une certaine robustesse du système de reconnaissance aux variations temporelles des données. Lors de cette phase, les caractéristiques biométriques des individus sont captées par un capteur biométrique, puis représentées sous forme numérique (signatures), et enfin stockées dans la base de données. Le traitement des inscriptions n’est pas limité dans le temps, car il se déroule « hors ligne ». En mode identification, le système compare le motif mesuré avec les différents modèles contenus dans la base de données. En général, lorsqu’on parle d’identification, on suppose que le problème est fermé, c’est-à-dire que toute personne qui utilise le système a un modèle dans la base de données. En mode authentification, il suffit donc de comparer le motif avec un seul des modèles présents dans la base de données. En mode authentification, on parle de problème ouvert puisqu’on suppose qu’un individu qui n’a pas de modèle dans la base de données (imposteur) peut chercher à être reconnu. L’identification peut être une tâche ardue lorsque la base de données contient des milliers, voire des millions d’identités, en particulier lorsqu’il existe des contraintes de type « temps réel » sur le système. 4.4.4. Reconnaissance de visage avec Python Dans cette partie, nous apprenons à utiliser le langage de programmation Python pour construire un système de reconnaissance de visage. Cela peut aussi se faire avec d'autres langages de programmation (C++, Java, C#, VB.net, etc.), nous avons opté pour Python pour plusieurs raisons, dont sa richesse en bibliothèques dédiées à l’intelligence artificielle et à l’analyse des données. 4.4.4.1. Bibliothèques à installer La bibliothèque OpenCV (Open Computer Vision) est une bibliothèque de logiciels open source de vision par ordinateur. OpenCV a été conçu pour fournir une infrastructure commune pour les applications de vision par ordinateur et pour accélérer l’utilisation de la perception artificielle dans les produits commerciaux. Étant un produit sous licence BSD, OpenCV permet aux entreprises d’utiliser et de modifier facilement le code. Il possède plusieurs fonctionnalités, à savoir le traitement d’images (fixes et animées) en temps réel, l’apprentissage artificiel et autres. Cours d’Intelligence Artificielle P a g e | 159 Nous devons installer des bibliothèques pour que notre programme fonctionne. Voici une liste des bibliothèques que nous allons installer : dlib, cmake, face_recognition, numpy, opencv-python. (1) La bibliothèque dlib, contient notre implémentation de « l’apprentissage métrique profond » qui est utilisé pour construire nos intégrations de visage utilisées pour le processus de reconnaissance réel. La manière d’installer cette bibliothèque est la commande : conda install -c conda-forge dlib (2) La bibliothèque cmake est une bibliothèque prérequise pour que l’installation de la bibliothèque de reconnaissance de visage ne nous donne pas d’erreurs. (3) La bibliothèque face_recognition englobe la fonctionnalité de reconnaissance de visage de dlib, et cette bibliothèque est très facile à utiliser et nous l’utiliserons dans notre code. La bibliothèque dlib s’installe donc avant d’installer face_recognition. Nous pouvons les installer en une seule ligne en utilisant le gestionnaire de bibliothèque pip: pip install cmake face_recognition numpy opencv-python Ensuite, nous pouvons faire appel à ces bibliothèques: import face_recognition import cv2 import numpy as np import os import glob 4.4.4.2. Chargement des images Le chargement des images des personnes que nous voulons reconnaître ou détecter, chacune des images est nommée par le nom de la personne (tels que gradi.jpg). Ces images doivent être chargées dans un nouveau dossier appelé « Visages ». Aussi pour obtenir le répertoire courant, en d’autres termes, l’emplacement de votre programme, nous pouvons utiliser une méthode os appelée getcwd(). Cours d’Intelligence Artificielle P a g e | 160 faces_encodings = [] faces_names = [] cur_direc = os.getcwd() path = os.path.join(cur_direc, 'data/Visages/') #Le lien ci-dessus est à changer list_of_files = [f for f in glob.glob(path+'*.jpg')] number_files = len(list_of_files) names = list_of_files.copy() 4.4.4.3. Entrainement des données for i in range(number_files): globals()['image_{}'.format(i)] = face_recognition.load_image _file(list_of_files[i]) globals()['image_encoding_{}'.format(i)] = face_recognition.f ace_encodings(globals()['image_{}'.format(i)])[0] faces_encodings.append(globals()['image_encoding_{}'.format(i )]) # Créer un tableau de noms connus names[i] = names[i].replace(cur_direc, "") faces_names.append(names[i]) Nous pouvons ainsi afficher la liste des noms des images avec: names 4.4.4.4. Reconnaissance proprement dite D’abord, nous définissons les variables qui seront nécessaires : face_locations = [] face_encodings = [] face_names = [] process_this_frame = True Puis, il vient la reconnaissance proprement dite : Cours d’Intelligence Artificielle P a g e | 161 video_capture = cv2.VideoCapture(0) while True: ret, frame = video_capture.read() small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25) rgb_small_frame = small_frame[:, :, ::-1] if process_this_frame: face_locations = face_recognition.face_locations( rgb_small_fra me) face_encodings = face_recognition.face_encodings( rgb_small_fra me, face_locations) face_names = [] for face_encoding in face_encodings: matches = face_recognition.compare_faces (faces_encodings, face_encoding) name = "Inconnu" face_distances = face_recognition.face_distance( faces_encodings, face_ encoding) best_match_index = np.argmin(face_distances) if matches[best_match_index]: name = faces_names[best_match_index] face_names.append(name) process_this_frame = not process_this_frame # Affichage les résultats for (top, right, bottom, left), name in zip(face_locations, face_na mes): top *= 4 right *= 4 bottom *= 4 left *= 4 # Dessin d'un rectangle autour du visage cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) # Étiquette de texte d'entrée avec un nom sous le visage cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED) font = cv2.FONT_HERSHEY_DUPLEX Cours d’Intelligence Artificielle P a g e | 162 cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (25 5, 255, 255), 1) # Afficher l'image résultante cv2.imshow('Video', frame) # Appuyer sur 'q' sur le clavier pour quitter ! if cv2.waitKey(1) & 0xFF == ord('q'): break Cours d’Intelligence Artificielle P a g e | 163 BIBLIOGRAPHIE 1. ABRAHAM Nath B., Hybrid Intelligent Systems Design - a review of a decade of research, School of Computing and Information Technology, University of Monarch, Churchill, Australia, 2001. 2. BELLMAN Richar A., “Markovian Decision Process”, Journal of Mathematics and Mechanics, pages 679–684, 1957. 3. BOUCHRA Khefif, Mise au point d’une application de reconnaissance faciale, Mémoire de Master, Option Réseaux et systèmes distribués, Département d’Informatique, Faculté des Sciences, Université Abou Bakr Belkaid-Tlemcen, 20122013. 4. DIDAY E., J. LEMINAIRE, J. PAUGET, F. TESTW, Elément d’analyse de données, Ed. Dunod, Paris 1982. 5. DIDAY Edwin, « La méthode des nuées dynamiques », Revue de Statistique Appliquée, vol. 19, n. 2, pp. 19-34, 1971. 6. DIDAY Edwin, Nouvelles méthodes et nouveaux concepts en classification automatique et reconnaissance des formes, Thèse de doctorat d’Etat, Université de Paris VI, 1972. 7. FORGY W., Cluster Analysis of multivariate data : Efficiency versus interpretability of classifications, Biometrics, vol. 21, pp.768-780, 1965. 8. HUANG G. B., JAIN V., LEARNED-MILLER E, “Unsupervised joint alignment of complex images”, In ICCV, pp. 1-8, 2007. 9. LEDLEY R.S., LUSTED L.B., “Reasoning foundations diagnosis”, Science, vol. 130, num. 3366, pp. 9–21, 1959. 10. of medical MACQUEEN James B., 1967, “Some Methods for classification and Analysis of Multivariate Observations”, In Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability, Vol. 1, pp. 281--297. Cours d’Intelligence Artificielle P a g e | 164 11. MACQUEEN James B., 1965, “On convergence of k-means and partitions with minimum average variance”, Annals of Mathematical Statistics, Vol. 36, p. 1084. 12. MATHIVET Virginie, L’Intelligence Artificielle pour les développeurs. Concepts et implémentations en C#, éd. Eni, Paris, 2014. 13. MENDELSON, Elliott, Introduction to Mathematical Logic, 6th ed. CRC Press, New York, 2015. 14. MILLER R.A., POPLE JR H.E., MYERS J.D. “Internist-I, an experimental computer-based diagnostic consultant for general internal medicine”, New England Journal of Medicine, vol. 307, num. 8, pp. 468–476, 1982. 15. NKASHAMA D’Jeff K., Search and Learn Strategies for Game Play, Master Thesis in Mathematical Sciences, African Institute for Mathematical Sciences (AIMS)-South Africa, 2019. 16. KAMINGU Gradi L., Base des données orientées-graphe : Migration du Relationnel vers le NoSQL, Mémoire de Licence en Sciences Informatiques, Département des Mathématique et Informatique, Faculté des Sciences, Université de Kinshasa, 20142015. 17. KAMINGU Gradi L., « Analyse factorielle discriminante. Construction du modèle, résolution et évaluation de l’analyse », One Pager Lareq, Vol. 11, Num. 001, pp. 52-57. 18. KAMINGU Gradi L., Cours de Programmation en Python, Deuxièmes Licences en Génie Informatique et Génie Électrique, Académie des Sciences et Technologie, 2019. 19. KARIM Nour, René DAVID, Christoffe RAFFALLI, Introduction à la logique: théorie de la démonstration, éd. Dunod, Paris, 2004. 20. GÖDEL, Kurt, Über die Vollständigkeit des Logikkalküls, Doctoral dissertation, University of Vienna, 1929. 21. GÖDEL, Kurt, “Die Vollständigkeit der Axiome des logischen Funktionenkalküls”, Monatshefte für Mathematik, vol. 37, Nein 1, Seiten 349–360, 1930. Cours d’Intelligence Artificielle P a g e | 165 22. RAKOTOMAMONJY, Gilles GASSO, « Séparateurs à Vaste Marge », INSA Rouen-Département ASI, Laboratoire LITIS, 11 Novembre 2014. 23. RUSSEL Stuart, NORVIG Peter, Intelligence artificielle. Avec plus de 500 exercices, 3e éd. Pearson, Paris, 2010. 24. SHORTLIFFE E.H, BUCHANAN B.G, “A model of inexact reasoning in medicine”, Mathematical Biosciences, vol. 23, num. 3–4, pp. 351–379, 1975. 25. STEINHAUS Hugo « Sur la division des corps matériels en parties », Bull. Acad. Polon. Sci., vol. 4, num. 12, 1957, p. 801–804 26. WEISS S.M., KULIKOWSKI C.A., AMAREL S., SAFIR A., “A model-based method for computer-aided medical decision-making”, Artificial Intelligence, vol. 11, num. 1–2, pp. 145–172, 1978. 27. WOODWARD John D. Jr, Christopher HORN, Julius GATUNE, Aryn THOMAS, “Biometrics A look at Facial Recognition”, documented briefing by RAND Public Safety and Justice for the Virginia State Crime Commission, 2003. Cours d’Intelligence Artificielle P a g e | 166 Tables des matières CHAPITRE 1 : ................................................................................................................................................................ 1 GENERALITES SUR L’INTELLIGENCE ARTIFICIELLE .................................................................................. 1 1.1. NOTION D’INTELLIGENCE ARTIFICIELLE .................................................................... 1 1.1.1. Intelligence naturelle et intelligence artificielle ..................................................................... 1 1.1.2. Définitions de l’intelligence artificielle................................................................................... 3 1.2. HISTORIQUE DE L’INTELLIGENCE ARTIFICIELLE ......................................................... 4 1.2.1. Intelligence artificielle avant 2000 ........................................................................................... 4 1.2.2. Intelligence artificielle entre 2000 et 2010 .............................................................................. 6 1.2.3. Intelligence artificielle à partir de 2010 ................................................................................... 6 1.3. APPLICATIONS DE L’INTELLIGENCE ARTIFICIELLE .................................................... 7 EXERCICES NON RESOLUS ............................................................................................................. 13 CHAPITRE 2 : .............................................................................................................................................................. 15 SYSTÈMES EXPERTS ............................................................................................................................................... 15 2.1. INTRODUCTION AUX SYSTÈMES EXPERTS ..................................................................... 15 2.1.1. Notion de système expert ........................................................................................................ 15 2.1.2. Apports des systèmes experts.................................................................................................. 16 2.2. ARCHITECTURE ET ACTEURS D’UN SYSTÈME EXPERT ............................................. 17 2.2.1. Architecture d’un système expert ........................................................................................... 17 2.2.2. Acteurs de réalisation d’un système expert........................................................................... 18 2.3. BASE DE CONNAISSANCES ..................................................................................................... 19 2.3.1. Base de faits .............................................................................................................................. 20 2.3.2. Base de règles ............................................................................................................................ 34 2.3.3. Moteur d’inférence ................................................................................................................... 38 2.4. OUTILS D’IMPLEMENTATION DES SYSTEMES EXPERTS............................................ 50 2.4.1. Langages de programmation procéduraux et structurés ..................................................... 53 2.4.2. Langages de programmation orientés objet .......................................................................... 54 2.4.3. Infrastructures de systèmes experts existants ....................................................................... 54 2.4.4. Langages de représentation de connaissances ...................................................................... 55 2.4.5. Langages de programmation logiques, fonctionnels et logiques fonctionnels ................. 55 2.4.6. Langages de programmation multi-paradigmes ................................................................... 56 CHAPITRE 3 : .............................................................................................................................................................. 57 Cours d’Intelligence Artificielle P a g e | 167 APPRENTISSAGE ARTIFICIEL ............................................................................................................................. 57 3.1. GENERALITES SUR L’APPRENTISSAGE ARTIFICIEL .................................................... 57 3.1.1. Notion ........................................................................................................................................ 57 3.1.2. Approches d’apprentissages automatiques ........................................................................... 57 3.2. APPRENTISSAGE NON SUPERVISE ....................................................................................... 59 3.2.1. Notions préliminaires sur l’apprentissage non supervisé ................................................... 59 3.2.2. Méthodes des centres mobiles................................................................................................. 65 3.2.3. Méthodes des nuées dynamiques ............................................................................................ 68 3.3. APPRENTISSAGE SUPERVISE ................................................................................................. 74 3.3.1. Notions préliminaires sur l’apprentissage supervisé ........................................................... 74 3.3.2. Méthode de 𝒌-plus proches voisins ........................................................................................ 77 3.3.3. Arbres de décision .................................................................................................................... 80 3.3.4. Réseaux de neurones ................................................................................................................ 90 3.3.5. Apprentissage des réseaux de neurones ............................................................................... 106 EXERCICE RESOLU .......................................................................................................................... 121 Exercice 3.1 ........................................................................................................................................ 121 Exercice 3.2 ........................................................................................................................................ 123 EXERCICES NON RESOLUS ........................................................................................................... 127 Exercice 3.2 ........................................................................................................................................ 127 Exercice 3.4 ........................................................................................................................................ 127 Exercice 3.5 ........................................................................................................................................ 128 Exercice 3.6 ........................................................................................................................................ 128 Exercice 3.7 ........................................................................................................................................ 129 Exercice 3.8 ........................................................................................................................................ 129 Exercice 3.9 ........................................................................................................................................ 130 Exercice 3.10 ...................................................................................................................................... 131 Exercice 3.11 ...................................................................................................................................... 131 Exercice 3.12 ...................................................................................................................................... 132 Exercice 3.13 ...................................................................................................................................... 132 CHAPITRE IV :.......................................................................................................................................................... 134 PERCEPTION ARTIFICIELLE .............................................................................................................................. 134 4.1. INTRODUCTION A LA PERCEPTION ARTIFICIELLE................................................... 134 Cours d’Intelligence Artificielle P a g e | 168 4.1.1. Vue ........................................................................................................................................... 134 4.1.2. Ouïe .......................................................................................................................................... 135 4.2.3. Toucher .................................................................................................................................... 135 4.2.4. Odorat ...................................................................................................................................... 135 4.2. RECONNAISSANCE DE FORMES ......................................................................................... 135 4.2.1. Notion de reconnaissance de formes.................................................................................... 135 4.2.2. Domaines d’application de la reconnaissance de formes .................................................. 136 4.2.3. Système de reconnaissance de formes .................................................................................. 138 4.3. RECONNAISSANCE BIOMETRIQUE ................................................................................... 141 4.3.1. Notion de biométrie ............................................................................................................... 141 4.3.2. Système biométrique .............................................................................................................. 143 4.3.3. Quelques techniques biométriques ....................................................................................... 144 4.4. RECONNAISSANCE DE VISAGE........................................................................................... 149 4.4.1. Introduction à la reconnaissance de visage ......................................................................... 149 4.4.2. Historique de la reconnaissance de visage .......................................................................... 150 4.4.3. Architecture d’un système de reconnaissance de visage ................................................... 151 4.4.4. Modes de fonctionnement d’un système de reconnaissance de visage ............................ 157 4.4.4. Reconnaissance de visage avec Python ............................................................................... 158 BIBLIOGRAPHIE ....................................................................................................................................................... 163 Cours d’Intelligence Artificielle