Académique Documents
Professionnel Documents
Culture Documents
Objectifs de l’enseignement
Les étudiants devront savoir expliquer, savoir décrire comment fonctionne une
inférence ontologique, comment fonctionne un raisonnement analogique,
devront savoir présenter les différentes facettes d’un problème d’ingénierie des
connaissances. Les étudiants doivent aussi à travers ce module savoir comment
faire une bonne gestion des connaissances au niveau d’une organisation.
1
Plusieurs pays, comme les Etats Unis, la Chine, l’Angleterre, l’Allemagne et la
France, ont déjà investi des sommes considérables pour la recherche et le
développement des systèmes intelligents dans différents domaines tel que la
médecine, l’économie, l’industrie et beaucoup d’autre...
Tout commence vers la fin des années 40, l’idée de faire le lien entre le
fonctionnement des machines et des êtres humains. L’objectif ultime de Norbert
Wiener, pionnier de la cybernétique, était d’allier différents domaines qui sont
les mathématiques, l’électronique et l’automatisation tout en conjuguant la
dimension animale. Ce projet avait déjà été entamé par les scientifiques Warren
McCulloch et Walter Pitts en créant le tout premier neurone biologique modélisé
mathématiquement par un neurone formel.
Donald Hebb, neuropsychologue, invente en 1949, la règle du neurone formel
doté de capacités d’apprentissages. Selon lui, quand un axone d’une cellule A
est assez près d’une cellule B, de manière répétitive, un processus de croissance
et de métabolisme de changement se mettent en place, ce qui augmente
l’efficacité de ces cellules.
En 1950, la logique décimale et la logique binaire se mettent en place dans des
machines automatisées, les premiers véritables ordinateurs, qui permettent
d’exécuter ce qu’on leur a programmé. Le scientifique qualifie cet effet de « jeu
de l’imitation ». Il entame le débat sur le questionnement de la limite entre
l’humain et la machine.
Entre 1980 et 1990 apparaissent les systèmes experts qui s’appuient sur un «
moteur d’inférence », c’est à dire un logiciel qui correspond à un algorithme de
simulation des raisonnements déductifs, qui était programmé pour être un miroir
logique d’un raisonnement humain. De ce fait, en entrant des données, le moteur
fournit des réponses d’un haut niveau d’expertise.
- Le système expert DENDRAL, a été conçu dans les années 60 pour aider les
chimistes à identifier la structure de molécules organiques.
- MYCIN, été un système expert qui permettait d’aider le médecin dans son
diagnostic médical.
Depuis quelques années, l’Intelligence Artificielle (IA) connaît un regain
d’intérêt sans précédent grâce à d’importantes avancées technologiques,
notamment dans le domaine de l’apprentissage machine (machine learning), qui
étendent les capacités des ordinateurs et accroissent leurs performances dans un
grand nombre de domaines (traitement du langage naturel, compréhension de la
parole, reconnaissance d’images, robotique, etc.). Ces avancées ouvrent de
vastes perspectives en termes d’innovation technologique et d’automatisation.
2
Depuis l’année 2010, un nouvel essor est apparu, il est dû à la collecte de
données massives et d’une nouvelle puissance de calcul, c’est le Big Data, ou
volumes massifs de données, qui se traduit par une explosion quantitative de
données numériques. Il s’agit de stocker un nombre infini d’informations, ou
métadonnées, sur une base numérique.
Dès l’an 2010, l’IA suscite une forte attention avec les performances obtenues
grâce à l’apprentissage machine (machine learning) et, plus particulièrement,
l’apprentissage profond (deep learning) qui repose sur des réseaux de neurones
artificiels (approche connexionniste). De façon générale, l’apprentissage
machine, parfois appelée apprentissage statistique, consiste à apprendre à une
machine à réaliser des tâches (par exemple : reconnaissance d’objets dans des
images) en l’entraînant sur des données du domaine concerné (par exemple, des
images qui comportent des voitures). Dans ce domaine, on distingue
habituellement les algorithmes des modèles d’apprentissage.
3
Un modèle résulte de l’apprentissage qui se construit à partir de l’application des
algorithmes aux données utilisées dans la phase d’apprentissage. Ce modèle peut
être vu comme un arrangement et une mise en relation mathématique complexe
de paramètres ou coefficients.
4
développements, apportant notamment une méthodologie générale de
formalisation et une approche rigoureuse des concepts.
C’est donc dans ce cadre que les liens entre la logique mathématique et
l'Intelligence Artificielle se sont établis, faisant apparaître de nombreuses
préoccupations communes aux deux disciplines. Très tôt, la logique s’est
trouvée étroitement liée à l’informatique, tant au niveau de la conception des
machines que de l’informatique théorique. Ce mariage de longue date entre les
deux disciplines s’est donc prolongé de façon naturelle avec les développements
de l'Intelligence Artificielle. De plus, ces rapports ne s’effectuent pas en sens
unique : si la logique a indiscutablement apporté, au départ, des outils et des
résultats fondamentaux, mis en place indépendamment de toute considération
liée à l’informatique, l'Intelligence Artificielle, à son tour, a mis en évidence un
certain nombre de problèmes, liés à la logique. Cela a conduit non seulement à
un renouveau de certaines théories logiques, mais parfois même à des
développements théoriques entièrement originaux au sein de la logique formelle.
C’est donc plutôt comme une suite d’échanges que l’on doit désormais
envisager les rapports entre la logique et l’Intelligence Artificielle, de la même
façon, par exemple, qu’entre les mathématiques et la physique. Comme nous
l’avons dit, de nombreux ponts ont été je tés entre la logique et l’informatique, et
ce depuis l’origine de cette dernière. Cependant, si l’IA a poursuivi cette
tendance, c’est, dans l’ensemble, pour des raisons très différentes de celles de
l’informatique traditionnelle. Les développements logiques en IA ont été
davantage motivés par des besoins de formalisations théoriques, rejoignant des
préoccupations philosophiques plus anciennes. Deux aspects fondamentaux de
la logique en ont fait un outil privilégié dans de nombreux domaines d’IA : son
aspect déductif et son aspect représentation des connaissances. Rappelons, sans
prétendre être exhaustif, quelques-uns des domaines où la logique intervient en
IA. • Aspect déductif : les notions de déduction, d’inférence, de preuve et de
raisonnement sont évidemment de première importance en IA. L’étude des
multiples types de raisonnements, et notamment les raisonnements de sens
commun, est, par exemple, typiquement une préoccupation commune avec la
philosophie, et constitue sans doute une étape essentielle vers la conception de
systèmes informatiques véritablement «Intelligents».
5
Sans rester dans un cadre aussi général, citons quelques domaines où les notions
de déduction logique interviennent :
6
3. Les systèmes d’élaboration de plans d’actions en robotique
un robot doit généralement réaliser des objectifs qui lui ont été fixés, et résoudre
des conflits, dans le cadre de contraintes imposées par un environnement. Il doit
pouvoir faire certaines inférences à partir des données qui lui sont fournies et il
doit pouvoir prévoir et évaluer les conséquences de ses actes. Enfin, il doit être
capable de raisonner sur sa propre base de connaissances, en établissant un plan
d’actions ou de tâches. L’achèvement de ces tâches nécessite donc des modules
de raisonnement, qui sont de type déductif.
7
4. Aspect représentation de connaissances : La logique, comme
langage symbolique formel, tient donc naturellement une place importante dans
de nombreux domaines de l’IA. En fait, le plus souvent, la plupart des
symbolismes que l’on peut développer, par exemple en langage naturel, peuvent
se traduire en un langage logique, notamment le langage des prédicats. Parmi les
domaines d’IA où le langage de la logique est utilisé pour la représentation des
connaissances, on peut reprendre la plupart des domaines évoqués
précédemment. En IA, résoudre un problème donné revient à trouver une bonne
représentation des connaissances de ce problème.
Exemples :
x entier(x)>0, ce prédicat désigne que tout entier x est positif. Dans ce
prédicat, une seule variable d’entrée x et une sortie booléenne (vrai ou faux),
donc la valeur de sortie du prédicat dépend de la valeur de la variable x, si par
exemple x= 0, la valeur retournée par le prédicat est false, car l’entier 0 n’est pas
8
supérieur à lui-même. Par contre si cette valeur vaut 3 alors sa valeur de vérité
est true.
Un autre type de logique est la logique floue qui permet de définir une
appartenance graduelle d’un élément à une classe, c’est à dire appartenir plus
ou moins fortement à cette classe. L’appartenance d’un objet à une classe est
ainsi définie par un degré d’appartenance entre 0 et 1.
Par exemple : l’âge d’une personne, pour lequel on définit 3 classes, « jeune :J »,
« âge moyen :M » et « âgé :A » dans l’intervalle allant de 0 à 100 ans (voir la
figure suivante).
9
5. Prolog : Un langage symbolique pour la représentation des connaissances.
Programmer en Prolog, c’est énoncer une suite de faits et de règles puis poser
des questions. Tout est relations en Prolog. Tout programme Prolog constitue un
petit système-expert à savoir un ensemble de faits et de règles de déduction, qui
va fonctionner en « chaînage-arrière », c’est-à-dire qui va tester les hypothèses
pour prouver une conclusion.
Ce qui est original, c'est qu'en Prolog, il suffit de décrire ce que l'on sait sur le
domaine étudié, (en Intelligence Artificielle, on appelle cela une base de
connaissances), puis on pose une question à propos de ce domaine et Prolog va
nous répondre, sans que l’on ait à lui dire comment construire sa réponse.
Remarques :
L’écriture : A(x) :- B(x), C(x). veut dire que A(x) est vérifié si B(x) et C(x)
sont vérifiés.
Exemple1
Corrigé
. abs (x, x) :- x>=0.
. abs (x, y) :- x<0, y is –x
10
Exemple2
Corrigé
(2). La requête PROLOG pour savoir qui est en bonne santé ??:
?- En_bonne_santé(x)
Pour vérifier cette requête, il faut verifier Aime(x, légumes) et Aime(x, fruits) ?
-> x=adam.
11
Exercice Exprimer en prolog, la fonction mathématique min(x, y) qui permet
d’afficher le minimum de deux entiers entrés au clavier.
Un problème est une collection d’informations que l’agent utilise pour décider
quelle(s) action(s) accomplir.
12
1) L’algorithme de recherche en profondeur
Principe
L'exploration d'un parcours en profondeur depuis un sommet S fonctionne
comme suit :
On poursuit un chemin dans le graphe jusqu'à un cul-de-sac ou alors jusqu'à
atteindre un sommet déjà visité. Il revient alors sur le dernier sommet où on
pouvait suivre un autre chemin puis explore un autre chemin.
L'exploration s'arrête quand tous les sommets depuis S ont été visités. Bref,
l'exploration progresse à partir d'un sommet S en s'appelant récursivement pour
chaque sommet voisin de S.
Recherche en profondeur
13
2) L’algorithme de recherche en largeur
Principe
Dans ce type de recherche, on part du point du départ (état initial) vers un point
d’arrivée (état final) en empruntant d’abord les niveaux, on part du niveau 1, si
le but n’est pas atteint, on poursuit la recherche en passant vers le niveau
adjacent, et ainsi de suite.
Lorsque on se trouve à la fin d’un niveau, alors que la solution n’est pas encore
atteinte, en descend d’une position (le niveau prochain) dans la première
branche, sinon, si le but est atteint, soit on arrête si la solution est unique, soit on
continue de la même manière que précédemment pour atteindre d’autres
solutions si elles existent. L’arrêt du processus de recherche se terminera ainsi :
1) Si la solution est unique, dès qu’une solution est trouvée par cet algorithme,
alors succès.
2) Si la solution n’est pas unique, l’algorithme se poursuivra jusqu’à ce qu’il
parcourt l’arbre en entier.
La figure ci-après schématise ces scénarios :
Recherche en largeur
14
3) L’algorithme de recherche A*
Principe
Lorsque l'espace des états est trop grand, certaines informations pour la
résolution d'un problème (dans un domaine particulier) peuvent être utilisées
pour aider à réduire l’espace de recherche. Des informations de ce type sont
appelées des informations heuristiques.
L'algorithme A* est un algorithme de recherche de chemin dans un graphe entre
un nœud initial et un nœud final.
Il utilise une évaluation heuristique sur chaque nœud pour estimer le meilleur
chemin y passant, et visite ensuite les nœuds par ordre de cette évaluation
heuristique. C'est un algorithme simple, ne nécessitant pas de prétraitement, et
ne consommant que peu de mémoire.
15
Structure d’un système expert
16
Exemple1
Soit la Base de faits initiale BF= {H, K} ET le but {C}
La base de règles est :
• R1 : A --> E
• R2 : B --> D
• R3 : H --> A
• R4 : EG --> C
• R5 : EK --> B
• R6 : DE et K --> C
• R7 : GK et F --> A
Essayez de montrer le fait C par chainage avant ?? Dans ce cas, le moteur
d’inférence raisonne en mode ‘Chainage avant’ pour montrer que le fait C est
vrai. Autrement dit : A partir des éléments de la base de faits initiale, le moteur
d’inférence essaye d’induire de nouveaux faits jusqu’à atteindre le but
recherché, c’est-à-dire le fait C.
Exemple2
Dans l’exemple suivant, le moteur d’inférence procède par chainage arrière :
17
Chapitre 3 Connaissance et représentation de la
connaissance
La représentation des connaissances constitue un enjeu majeur en intelligence
artificielle. En effet, la façon de représenter les connaissances associées à un
problème considéré peut faire en sorte que sa résolution soit plus ou moins
facile. De façon 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.
On définit la connaissance ou les connaissances comme ce qu’on a appris par
l’étude ou par la pratique et l’expérience.
18
Il s'agit d'un graphe dirigé (orienté) qui est constitué de nœuds représentant des
concepts et d’arêtes (arcs) représentant des relations sémantiques entre concepts.
Les réseaux sémantiques sont utilisés dans des applications de traitement du
langage naturel telles que l'analyse sémantique et la désambiguïsation du sens
des mots.
Exemple :
19
Les réseaux sémantiques se distinguent par :
- On lit d’abord tout le texte pour repérer les objets et les relations. En effet, leur
réutilisation d’une phrase à l’autre permet de mettre en évidence leur utilité.
Exercice
a. Convertir le réseau sémantique de l’exercice précédent en prolog.
b. Quelles requêtes poser à prolog pour savoir quels sont les lycéens ?
20
2. Les réseaux de neurones
Les réseaux de neurones artificiels (RNA) sont des outils de l’intelligence
artificielle utilisés aussi bien pour la modélisation de systèmes, que pour la
classification de données.
Le MLP est un modèle de réseau à propagation par couche (voire la figure ci-
après). Les neurones y sont organisés en couches successives : une couche
d’entrée, une couche de sortie et entre les deux une ou plusieurs couches
intermédiaires, appelées aussi couches cachées. Il n’existe pas de connexion
entre les neurones d’une même couche, en revanche tout neurone d’une couche
est connecté à tous les neurones de la couche suivante. La « couche » d’entrée
n’est pas une réelle couche de neurones car elle se contente de coder les
variables d’observation. La couche de sortie code la variable de discrimination.
Les valeurs d’activité des neurones sont propagées dans le réseau, de l’entrée
vers la sortie, sans retour arrière. La présence d’une couche cachée permet de
modéliser des relations non linéaires entre les entrées et la sortie.
En théorie une seule couche cachée suffit, mais le fait de disposer d’une seconde
couche cachée permet de modéliser plus facilement une fonction de
discrimination non continue. En pratique, la plupart des problèmes sont résolus
avec un ou deux niveaux, trois au maximum.
21
Perceptron Multi-couches (MLP)
Dans le cas du MLP, on utilise un apprentissage supervisé. Les valeurs des poids
de connexion sont créées tout d’abord au hasard et le système cherche par
itérations successives à obtenir une modélisation des données. A chaque étape,
une entrée est présentée au réseau, il propage ces valeurs vers les neurones de
sortie. Cette sortie calculée est comparée avec la réponse attendue et le système
modifie les poids en conséquence. Cette altération des connexions est obtenue
par l’algorithme de rétropropagation du gradient d’erreur. Ce calcul est chargé
de rétropropager dans le réseau les erreurs constatées sur les sorties. En théorie,
on ne peut jamais être sûr que cet algorithme finisse par déterminer un ensemble
de poids convenable pour tous les couples d’entrées-sorties.
22
En pratique, on ne construit pas un seul RNA, mais plusieurs modèles en jouant
sur les paramètres de cet algorithme, et en cherchant à obtenir un modèle qui
colle au mieux aux données.
L’élaboration d’un RNA, quelle que soit son architecture, requiert une certaine
expérience. C’est la raison pour laquelle la collaboration avec des spécialistes
est la démarche la plus souhaitable, que ce soit pour superviser l’utilisation de
logiciels simples, tels que SPSS©, MATLAB©, STATISTICA© qui proposent
des modules de RNA, ou pour l’élaboration de RNA à partir de logiciels plus
sophistiqués. L’application des réseaux de neurones artificiels étant en plein
essor dans tous les domaines de la recherche, cette interdisciplinarité est
facilement envisageable. Les réseaux de neurones artificiels constituent donc un
outil de traitement des données qui, au même titre que les statistiques
traditionnelles, peut s’appliquer dans le domaine de l’anthropologie biologique,
les relations complexes entre variables ne manquant pas dans ce domaine.
Ils ne constituent pas le remède miracle, mais ils sont une alternative possible
aux approches statistiques courantes qui ne sont pas toujours adaptées à nos
problématiques.
Comme nous l’avons souligné dans le chapitre II, un réseau de neurone de type
MLP comportant une seule couche cachée est en mesure de réaliser de bons
résultats en classification.
23
En ce qui nous concerne, nous avons effectué plusieurs expériences, afin de
dégager la meilleure configuration du réseau.
24
Génération de deux classes selon une distribution gaussienne
25
● Deuxième approche : Programmation classique, c'est-à-dire sans utiliser le
toolbox.
26
Séparation de deux classes par un MLP en utilisant le toolbox"Neural
Network" avec une tangente hyperbolique comme fonction d’activation du
neurone de sortie
27
Les résultats obtenus sont décrit sur la figure suivante :
28