Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE...
Transcript of Agents intelligents en Java - Freebigbozoid.free.fr/CoursIUT/SCO/PARTIE 2 - INTELLIGENCE...
1Patrice Bellot
Agents intelligents en Java
[email protected] Commerce Électronique / DESS TAII
2002/03
2Patrice Bellot
Intelligence artificielle
• Début dans les années 50• Langages de choix : Lisp, Prolog, Smalltalk
– Exemple en Prolog II :• Homme (Pierre) ; Homme (Pierrot)• Femme (Pierrette)• Fils (Pierre, Pierrot) ; Fils (Pierre, Pierrette)• Père (X,Y) : Homme(X), Fils (Y,X)
• ? Père (Pierrot, Pierre) : Oui• ? Père (X, Pierre) : {X = Pierrot}
Règles
Résolutions
3Patrice Bellot
Algorithmes de « recherche »
• Equations sur des arbres, programmation parcontraintes
– Prolog III et Prolog IV
• Recherche de plus court chemin– Problème du voyageur de commerce
• Examen de tous les chemins rapidement impossible
– Utilisation d’heuristiques(problèmes NP-complets)
• Algorithmes génétiques• Recuit simulé…
Fils
XPierre
Fils
PierrotPierre
départ
arrivée
unification
4Patrice Bellot
Recuit simulé et voyageur de commerce
Minimum local => Recuit simulé
Chaque exécution fournit une solution différente
Croisement ou échange de chemins
http://www.enib.fr/~buche/these/recuitSimule.ppt
5Patrice Bellot
Réseaux de neurones
• Cerveau humain– Centaines de milliards de cellules– Architecture massivement parallèle– Fonctions de bas-niveau, pondération des cellules
Entrées SortiesSorties
attendues
Apprentissage par rétro-propagation
6Patrice Bellot
Algorithmes génétiques
• Exploration de dizaines ou de centaines de solutionssimultanément
• Etat du problème = une chaîne = un chromosome• Fonction d’évaluation : score des chromosomes• Sélection des chromosomes
– Procréation (crossover)• Mutations possibles
• Paramètres– Taille de la population,– mode de sélection,– nombre de générations,– fréquence des mutations
110010101
7Patrice Bellot
Représentation de la connaissance
• Connaissance ?– Faits, relations, formules, règles, hiérarchies d’objets…– Relations ?
• Bases de données relationnelles, Structured Query Language (SQL)
• Généralement : connaissance = symbole(s)– Représentation interne de la connaissance
• Connaissance <==> langage• Programmation déclarative vs. Procédurale
– {Prolog} vs. {Java, C, C++, …}
8Patrice Bellot
Représentation de la connaissance (2)
• Logique des prédicats– Ex: Prolog (Programmation LOGique)
• Logique floue (fuzzy logic)– « vérité » définie entre 0.0 et 1.0 (et non pas soit 0 soit 1)– Variables floues = variables linguistiques
• Réseaux sémantiques– WordNet, Ontologies
• Représentation de l’incertitude– Réseaux bayesiens
(graphe dirigé représentant les dépendances entre variables)
– Th. de Bayes :
†
P Y X( ) = P X Y( ) P Y( )P X( )
9Patrice Bellot
Représentation de la connaissance (3)
• Knowledge Interchange Format (KIF)– Conçu pour l’échange de connaissances entre agents– Utilise la logique des prédicats
• Réminescence de LISP(mais KIF n’est pas un langage de programmation)
– 3 types d’objets• Variables (individuelles : ?price ; séquences : @cart)• Opérateurs (sur termes/objets, règles d’inférence,
phrases/faits et définitions de constantes)• Constantes (noms d’objets, relations, conditions booléennes,
fonctions sur les objets)« récupère le prix et place le dans une variable price puis tester s’il est supérieur à 150 »
(GetStockPrice ?price) (IntegerCompare ?price « > » 150)
10Patrice Bellot
Knowledge Query and Manipulation Language(KQML)
• Chaque message correspond à une action• Exemple :
(ask-one: sender joe: content (real price = sun.price( )): receiver stock-server: reply-with sun-stock: language java: ontology NYSE-TICKS
)
11Patrice Bellot
Raisonnement
• Système à base de règlessi-alors et de clauses
• Forward-chaining– Production de nouveaux faits
12Patrice Bellot
Raisonnement (2)
• Backward-chaining (vérifie si vrai ou non)
13Patrice Bellot
Implémentation en Java
• Règles si,alors
14Patrice Bellot
Implémentation en Java (2)• Clauses (parties « antécédent » et « conséquence » des règles)
15Patrice Bellot
Implémentation en Java (3)
• Forward-chaining– Chaque règle
est testée(antécédent)en fonctiondes données
– Cycled’inférences(ajout deconnaissances)
16Patrice Bellot
Implémentation en Java (4)
• Backward-chaining
17Patrice Bellot
Méthodes d’apprentissage
• Différentes formes d’apprentissage– Agent « élève » recopie l’agent « maître »– Ajustement de paramètres importants– Raisonnement par induction (à partir d’exemples)
• Apprentissage de caractéristiques importantes
– Classification automatique• Détection de patterns récurrents
• Utilisation en Data Mining :Transformation d’informations en connaissances
18Patrice Bellot
Data Mining
• « Le Data Mining est le procédé qui consiste à découvrir des corrélationsnouvelles et utiles, des irrégularités et des tendances en explorant de grandsvolumes de données stockées à l’aide de techniques statistiques, mathématiquesou issues de la reconnaissance des formes » (Gartner Group)
• « Ensemble de techniques permettant d’extraire des modèles d’une base dedonnées « historisées » par raisonnement statistique (déduction ou inductionapprochées) afin de décrire les comportements actuels et/ou de prédire lecomportement futur d’un procédé »(Georges Gardarin, PRISM)
• « Le Data Mining est l’extraction d’informations de grandes bases de données.Il s’agit du processus de présentation automatique de règles à des opérateursqualifiés, pour examen. Ici l’humain joue un rôle essentiel car lui seul peutdécider de l’intérêt d’une règle pour l’entreprise »(IBM)
19Patrice Bellot
Data Mining : quelques applications
• Analyse de trafic d’un site Web• Etude des clients d’un site
– Alexa.com• 25 sites les plus visités en amont (resp. en aval)
• Amélioration de la navigation dans un site– À partir de l’analyse des parcours des internautes
• Personnalisation d’un site Web– Modélisation de la clientèle d’un site commercial
20Patrice Bellot
Data Mining : quelques outils
• Analog– Analyse des fichiers log des
serveurs
• WebTrends– Reconstitution de sessions à
partir de hits(IP, mots de passe ou cookies)
– Nombre de pages vues, duréemoyenne d’une session,nombre de visiteurs, originegéographique des visiteurs,sites d’origine…
http://www.analog.cx/
21Patrice Bellot
Data Mining : parcours d’un site
Harvard
NIST
22Patrice Bellot
Data Mining : Personnalisation de sites Web
cookie
client serveur
Base dedonnées
Pagesstatiques
Programme serveur(CGI, PHP, JSP, ASP…)
Internet
Page dynamiquepersonnalisée
Base declients
23Patrice Bellot
Data Mining : personnalisation de sites Web (2)
• Banières contextuelles, sélection automatique dedonnées, création dynamique de catalogues
Exemple : http://www.bluemartini.com/software/
24Patrice Bellot
Data Mining : système de recommandations
http://aztec.cs.depaul.edu/scripts/ACR2/session.pl?/index.html
25Patrice Bellot
Apprentissage : catégorisation dansl’espace vectoriel
nouveau document ou requête
Thématiquesprédéfinies
Documentsplacésdans l’espace
mais… (Document = plusieurs thématiques) + modèle mal adapté
26Patrice Bellot
Modèle vectoriel
terme 2
terme 1
terme 3Exemple :
taille vocabulaire : 3
doc 1 : (1, 0, 2)doc 2 : (0, 3, 1)
requête : (0, 1, 0)
Contre-exemple : « Chat voisin chien chasser »– le chat a chassé le chien du voisin– le chien a chassé le chat du voisin– le chat voisin du chien chasse– …
pondérations
27Patrice Bellot
Pondérations de type TF.IDFPondération pour les documents Pondération pour les
requêtes
(a)
wi, D =
tf mi ,D( ). logN
n mi( )
tf mj ,D( ). logN
n mj( )Ê
Ë Á Á
ˆ
¯ ˜ ˜
2
j / m j ŒDÂ
wi, R = 0,5 + 0,5tf mi , R( )
maxj / m j ŒR
tf mi , R( )
Ê
Ë
Á Á Á
ˆ
¯
˜ ˜ ˜
⋅logN
n mi( )
(b)
wi, D = 0,5 +0,5tf mi , D( )
maxj / m j ŒD
tf mi ,D( )
wi, R = logN - n mi( )
n mi( )
(c)
wi, D = logN
n mi( )
wi, R = logN
n mi( )
(d) wi, D =1
wi,R = logN - n mi( )
n mi( )
(e)
wi, D =tf m i,D( )
tf m j, D( )2
j / m j ŒDÂ
wi, R = tf mi ,R( )
(f) wi, D =1 wi, R = 1
Tableau 1 - Pondérations citées et évaluéesdans [Salton & Buckley, 1988]
28Patrice Bellot
Modèles de langage
Thématiquesprédéfinies
Modèlepour chaquethématique
art histoire politique économie
Mart Mhist Mpol Méco
Max { P ( thématique | document ) } ?Règle de Bayes
Probabilité d’un mot sachant son historique
29Patrice Bellot
Arbres de décision (Crawford, 1991)
apprentissage sur des documents étiquetés
nouveaudocument
pT1
probabilité d’appartenanceà la thématique T1
oui non?
pT2 pT3 pT4 p’T1 p’T2 p’T3 p’T4… …
partition qui maximiseou minimise lesprobabilitésliées à chaquethématique
Question
30Patrice Bellot
Self Organized Maps (SOM)(Kohonen 1982)
• Réduction de ladimensionde l’espace
documents séquences de mots
modèlelié à son voisin
chaque zonereprésentée par 1, 2 ou 3 mots
Assignation
31Patrice Bellot
• Ensemble de beans réutilisables (AbleBeans)– Capacités
• Accès à des données• Filtrage• Transformation• Apprentissage• Raisonnement
– Fonctionnalités• Catégorisation (classification)• Classification (clustering)• Prédiction• Recherche génétique
The Agent Building and LearningEnvironment (ABLE)
http://www.research.ibm.com/able/index.html
32Patrice Bellot
Autres environnements basés sur Java
• AgentBuilder (Reticular Systems Inc.)– www.agentbuilder.com– Outils de développement graphiques
• Éditeur d’ontologies, de règles• Débogueur dédié
– Utilise KQML
• Aglets (IBM - SourceForge)• FIPA-OS (Nortel Networks - SourceForge)
33Patrice Bellot
Autres environnements (2)• JADE (CSELT S.p.A., Italie)
– À coupler avec FIPA– Outils destinés à l’intégration et au déploiement d’agents
distribués• Annuaire « pages jaunes » d’agents (service de noms)• Une seule JVM par hôte (containeur pour agents)• Chaque agent est un thread
– Compatible avec RMI et CORBA– http://sharon.cselt.it/projects/jade/home.htm
• JATLite (Stanford University)– Ensemble de packages orientés communication– Communications basées sur TCP/IP et KQML– Ciblé agents autonomes (peer-to-peer)– http://java.stanford.edu/java_agent.html
34Patrice Bellot
Autres environnements (3)
• Jess– Implémentation en Java du shell système-expert (CLIPS)– http://herzberg.ca.sandia.gov/jess
• Voyager (ObjectSpace, Inc.)– Object Request Broker (ORB) en Java + agents mobiles
• Création distante d’objets
– Intelligence à rajouter…– http://www.objectspace.com
• ZEUS (British Telecom)– Agents collaboratifs– http://www.labs.bt.com/projects/agents.htm
35Patrice Bellot
Bibliographie
Cette partie du cours est basée sur le livre :« Constructing Intelligent Agents Using Java »
J.P. Bigus & J. BigusWiley, 2001