Chapitre 1 : Généralités sur le ‘Soft Computing’ 1. 2. 3. 4. 5. 6. 7. 8. Intelligence Artificielle Soft Computing Logique floue Réseaux de Neurones Artificiels Raisonnement probabiliste Systèmes Experts Optimisation Applications de l’intelligence Artificielle 1 1. Intelligence Artificielle : L’intelligence artificielle est une branche de l’informatique ayant pour but d’avoir des machines ou des ordinateurs intelligents imitant l’intelligence de l’homme. Selon le père de l’intelligence artificielle, John McCarthy, l’intelligence artificielle est la science ayant pour objectif de créer des machines intelligentes et spécialement de programmes intelligents (pour les ordinateurs). Donc l’intelligence artificielle est la méthodologie, les techniques, la science de concevoir et créer des ordinateurs, des robots (commandés par calculateurs) ou des logiciels qui raisonnent (pensent, réfléchissent) ou se comportent intelligemment (d’une manière intelligente). L’intelligence artificielle est accomplie par l’étude du comportement du cerveau humain lors d’un raisonnement ou une pensée (comment pense le cerveau ?) ou lors d’un apprentissage de nouvelles connaissances ou lors d’une prise de décisions et à base de ces études voir et chercher comment les implémenter dans un calculateur (ordinateur par exemple). Les objectifs de l’intelligence artificielle sont : - créer des systèmes experts qui présentent un comportement intelligent, apprennent, démontrent, expliquent et conseillent les utilisateurs - implémenter l’intelligence humaine dans les machines en créant des systèmes qui comprennent, pensent et se comportent comme des humains. L’étude de l’intelligence artificielle se base sur différentes disciplines parmi lesquelles on trouve : l’informatique, la biologie, la psychologie, linguistique, les mathématiques et l’ingénierie. 2. Soft Computing: Le terme ‘Soft Computing’ a été proposé par Lotfi A. Zadeh en 1994 et il le définit comme suit : Le Soft Computing est une collection de méthodologies ayant pour objectif la robustesse et la solution à bas cout via l’exploitation de la tolérance envers l’imprécision et les incertitudes. Ses principaux constituants sont la logique floue, le neuro-computing et le raisonnement probabiliste. Le soft computing est destiné à jouer un rôle important dans différents domaines d’application. Le soft computing prend le raisonnement humain comme modèle. Comme on le voit, le soft computing n’est pas bien défini. Il comporte des concepts différents ainsi que des techniques qui permettent de surpasser les difficultés rencontrées dans le monde réel. Ces difficultés ou problèmes résultent du fait que la réalité parait imprécise, incertaine et difficile à catégoriser (classifier). Comme exemples, on trouve les incertitudes sur les mesures qui résultent des effets de plusieurs facteurs. Dans plusieurs cas, on peut améliorer la précision et la certitude de la mesure mais ceci nécessite de grands efforts et couts. Une autre définition possible du Soft Computing est de la considérer comme une tentative d’imiter le comportement des créatures naturelles (les plantes, les animaux, l’homme) qui sont flexible, adaptatif et intelligents. Dans ce sens, le, Soft Computing est le nom d’une famille de 2 méthodes, orientées à la résolution des problèmes, qui sont une analogie du raisonnement biologique pour la résolution des problèmes. Les méthodes de base rencontrées sont la logique floue, les réseaux de neurones et les algorithmes génétiques. La logique floue est principalement associée au traitement de l’imprécision, le raisonnement approché et le calcul avec les mots (computing with words). Les réseaux de neurones (neuro-computing) sont destinés à l’apprentissage (curve fitting ou approximation de fonction, classification, …). Le raisonnement probabiliste est orienté vers le traitement des incertitudes et la propagation des croyances (belief networks). Ces méthodes ont en commun les propriétés suivantes : - Non linéaires - Traitent les non linéarités - Suivent le raisonnement de l’homme - Utilisent l’auto-apprentissage - Sont robustes en cas de présence de bruit et d’erreurs En plus, les réseaux de neurones et la logique floue présentent les propriétés suivantes : - Peuvent approximer des fonctions à partir d’échantillons - Pas besoin de modèle mathématique - Sont dynamique - Peuvent être présentés sous forme de graphes avec des nœuds et des liens - Entrées numériques converties vers sorties numériques - Traitement approché des informations approchées - Engendre des signaux bornés - Sont des approximateurs universels La différence principale entre la logique floue et les réseaux de neurones est que la logique floue utilise les connaissances heuristiques sous une forme symbolique pour former les règles et les ajuster en utilisant des échantillons de données alors que les réseaux de neurones utilisent les données seulement. Les méthodes du Soft Computing sont utilisées dans plusieurs types de problèmes. On peut citer comme applications : - Traitement de signal - Reconnaissance de formes - Assurance qualité - Inspection industrielle - Traitement de la parole - Commande adaptative des processus - Commande des robots - Traitement et compréhension de langages naturels - Langages de programmation - Interfaces utilisateurs - Réseaux informatiques - Gestion de bases de données - Diagnostique - Sécurité de l’information 3 Dans plusieurs cas, les combinaisons de différentes méthodes du Soft Computing ont donné de bons résultats. Une combinaison intéressante est le neuro-floue qui présente les bonnes propriétés de la logique floue et des réseaux de neurones ensemble. La plupart des systèmes neuro-floues se base sur les règles floues en plus des techniques utilisées pour l’apprentissage des réseaux de neurones. Cet apprentissage permet de raffiner les règles floues et améliorer le système neuro-flou. Ainsi, le Soft Computing n’est pas seulement une combinaison de ses trois constituants (logique floue, réseaux de neurones, raisonnement probabiliste) mais c’est une discipline dans laquelle chaque constituant contribue avec une méthodologie distincte pour résoudre les problèmes rencontrés dans son domaine en une complémentarité avec les autres constituants. 3. Logique Floue : La théorie des sous-ensembles flous a été développée par Lotfi A. Zadeh en 1965 pour présenter un outil mathématique permettant de traiter les concepts utilisés en langages naturels (variables linguistiques). Au début, la théorie a reçu des critiques intenses du fait qu’elle est proche de la théorie des probabilités. Les réponses aux critiques ont montré l’utilité de la logique floue ainsi que les différences entre la logique floue et les probabilités. Le terme ‘logique floue’ a deux sens ou interprétations. La première interprétation est que la logique floue est vue comme une logique à multi-valeurs (imprécise) extension de la logique à multi-valeurs classique. L’autre interprétation est que la logique floue se base sur la théorie des sous-ensembles flous. Si les méthodes conventionnelles de l’analyse des systèmes ne peuvent pas être utilisées avec succès dans la modélisation et la commande des systèmes, l’approche heuristique sous formes de connaissances linguistiques (ou règles) peut être utilisée pour avoir une solution raisonnable du problème. Par exemple, pour un système qui n’a pas de modèle mathématique valable à cause de sa complexité ou la mal-connaissance de ses paramètres ainsi que sa structure ou sa structure change d’une manière complexe, …, l’utilisation de la logique floue peut être très efficace. L’application significative de la logique floue est dans la commande de processus (industriels) et de l’électroménager (machine à laver, caméra à autofocus automatique, …) en plus de l’application dans le domaine des transports (train : Sengai au Japon). Il a été constaté que les régulateurs à base de logique floue sont plus performants que les régulateurs classiques coté utilisation du Fuel (énergie consommée) et du coté confort. Parmi les grandes firmes utilisant la logique floue on trouve General Electric, Siemens, Nissan, Mitsubishi, Honda, Sharp, Hitachi, Canon, Samsung, Omron, Fuji, McDonnell Douglas, Rockwell, … 4 4. Réseaux de Neurones Artificiels : L’étude des réseaux de neurones a commencé en 1943 avec Mc Culloch and Pitts. Les réseaux de neurones à une seule couche avec fonction d’activation ‘seuil’ ont été introduits en 1962 par Rosenblatt. Ces deux types de réseaux sont appelés ‘perceptrons’ et dès 1960 il a été montré expérimentalement que les perceptrons peuvent résoudre beaucoup de problèmes mais d’autres qui ne semblent pas difficiles n’ont pas été résolus. Les limitations des perceptrons ont été montrées mathématiquement par Minsky et Papert et à cause de ça les perceptrons donc les réseaux de neurones artificiels ont été délaissés durant deux décades. L’étude des réseaux de neurones artificiels a été reprise dans les années 80 après les travaux de Rumelhart, Hinton et Williams en 1986 qui traitaient l’algorithme de rétropropagation. L’utilité de l’algorithme de rétro-propagation est qu’il peut être utilisé pour l’apprentissage des réseaux de neurones multicouches. Les réseaux de neurones artificiels essayent de simuler ou d’imiter le cerveau humain. Le fonctionnement du cerveau humain se base sur des éléments de base appelés neurones qui sont interconnectés entre eux via des lignes de transmission appelées ‘axons’ et des lignes réceptives appelées ‘dendrites’. L’apprentissage est basé sur la création de nouvelles connexions ou sur le changement des connexions existantes. Chaque neurone a une fonction dite fonction d’activation ayant un minimum et un maximum avec un passage monotone (graduel ou non) entre les deux. Les réseaux de neurones sont souvent utilisés pour améliorer et optimiser les systèmes basés sur la logique floue. L’apprentissage utilisé avec les réseaux de neurones raffine la base des règles floues utilisées dans le système à base de la logique floue. Les réseaux de neurones présentent des relations entrées/sorties non linéaires ainsi que l’adaptabilité et la tolérance envers les défauts. 5. Raisonnement probabiliste : La théorie des probabilités traite les incertitudes qui sont stochastiques concernant l’occurrence de certains évènements. Cette incertitude est donnée ou mesurée ou évaluée par un degré de probabilité. La probabilité conditionnelle conduit au théorème de Bayes. Les réseaux dits Bayésiens utilisent ce théorème pour trouver de nouvelles connaissances à partir de données préalables. Ces réseaux sont appelés aussi réseaux de croyance (belief network). De plus, on peut considérer les algorithmes génétiques comme un raisonnement probabiliste dont l’objectif est de trouver les meilleurs éléments d’une population en utilisant les probabilités. On peut rajouter les systèmes chaotiques et des parties de la théorie des systèmes à base d’apprentissage. 5 6. Systèmes Experts : Les systèmes experts sont parmi les domaines les plus actives de l’intelligence artificielle. L’étude des systèmes experts a commencé avec les chercheurs à l’université de Stanford au département Informatique (computer science). Un système expert est une application logicielle développée pour résoudre les problèmes complexes dans des domaines particuliers ayant un niveau qui dépasse l’intelligence de l’utilisateur, donc à un niveau de l’expert dans ce domaine. Un système expert se caractérise par sa performance, sa fiabilité et sa haute responsivité. 7. Optimisation : L’optimisation fait partie des solutions aux problèmes rencontrés dans les différents projets et travaux concernant le monde réel. L’approximation de fonction et la recherche d’une solution d’équations peuvent être considérées comme cas particuliers de l’optimisation. Il est très courant d’avoir besoin de maximiser un gain ou de minimiser les pertes ou le cout de réalisation. Cela nécessite des techniques sophistiquées qui varient selon le degré de complexité, la bonne connaissance du domaine et du problème en plus de la quantité et la qualité des informations (données, connaissances,…) présentes. L’intelligence artificielle a pour longtemps pris en charge les problèmes d’optimisation de fonction (cout, pertes,…), surtout quand les techniques conventionnelles ne fonctionnent pas. Parmi les techniques utilisées par l’intelligence artificielle pour résoudre les problèmes d’optimisation et présentées dans ce qui suit, on trouve : - Recherche Stochastique Algorithmes Génétiques PSO 8. Applications de l’intelligence artificielle : Comme applications de l’intelligence artificielle, on peut citer : - Les jeux - Le traitement du langage naturel - Les systèmes experts - Les systèmes de vision - Reconnaissance de la parole - Reconnaissance l’écriture manuelle - Les robots intelligents 6