Telechargé par g.kamingu

Cours d'Intélligence Artificiel - USCITECH

publicité
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
Téléchargement