Introduction | ||||||||||||||||||||||||||||||||
|
Afin de comprendre ce que sont les algorithmes d'apprentissage multi-agents, quel est leur intérêt, dans quel cadre et dans quel but ils peuvent être mis en oeuvre; nous allons naturellement d'abord expliquer ce que sont l'apprentissage artificiel d'une part et les systèmes multi-agents d'autre part. Ensuite, fort de ces définitions nous pourrons expliciter plus clairement ce que sont les algorithmes d'apprentissage multi-agents.
- L'Apprentissage Artificiel -
Essentiellement, l'apprentissage artificiel est né de la nécessité de combler un manque dans les systèmes issus de l'intelligence artificielle historique, dont le paradigme est celui des systèmes experts.
L'apprentissage artificiel, c'est donc cette dimension nouvelle apportée aux programmes.
Cela suppose naturellement un retour de la qualité de la réponse qu'ils donnent, on parle alors d'apprentissage totalement supervisé, semi supervisé ou non supervisé, pour indiquer le degré de retour sur leurs actions dont disposent les programmes.
On distingue deux grands types d'apprentissage: l'appentissage supervisé et l'apprentissage non supervisé.
- Les Systèmes Multi-Agents -Les systèmes multi-agents sont un renouvellement du parallélisme par l'introduction de la notion d'agent.
Le parallélismeLes premiers programmes sont séquentiels, c'est à dire qu'ils sont de la forme: s1 - s2 - s3 - s4 - ... - sn, et chaque si ne peut être effectué, calculé que si l'opération si-1 l'a elle même été. L'idée du parallélisme c'est de dire que certaines opérations sont indépendantes, et qu'il est donc possible afin d'augmenter la rapidité du traitement de les calculer en parallèle, c'est à dire en même temps. Les programmes parallèles prennent alors la forme: s1 - (s2|s3|s4) - s5 - etc ... L'idée du parallélisme c'est donc de dire que l'on peut distribuer le calcul, les tâches à effectuer. On a alors des processus qui s'effectuent en parallèle, qui échangent éventuellement de l'information, et ce système dans son ensemble représente un calcul.Paralléliser un problème, le distribuer, c'est découper ce problème en plusieurs sous-problèmes solvables indépendamment. Souvent, pour des tâches complexes, il est intéressant de découper ainsi en sous-problèmes plus simples. Les tâches d'apprentissage, comme d'autres, peuvent être distribuées, décomposées. Les systèmes multi-agents sont de ce point de vue une façon de paralléliser, de distribuer la résolution de problèmes complexes.
Notion d'agentOn qualifie d'agent tout programme qui peut être décrit comme un système percevant un environnement à travers des senseurs et qui agit sur cet environnement à l'aide d'actuateurs.
On peut distinguer cinq types fondamentaux d'agents : (se repporter à [Russel et Norvig, 2003] pour la classification)
Notion d'EnvironnementL'environnement est l'espace avec lequel intéragissent les agents. C'est l'espace sur lsquel "travaillent" les agents. Il est possible de distinguer plusieurs caractéristiques essentielles de l'environnement: (voir la aussi [Russel et Norvig, 2003])
Système Multi-AgentsUn système multi-agents est la donnée d'un ensemble d'agents (au moins deux) et d'un environnement en interactions.Les agents peuvent avoir deux attitudes les uns par rapport aux autres :
Du point de vue du parallélisme enfin, un système multi-agents peut être vue comme un calcul distribué dans lequel les agents sont des processus calculatoires qui s'effectuent plus ou moins en parallèle, selon la fréquence des interactions entre agents. (Voir [Wolfram (2002)] pour en savoir plus sur la dimension computationelle des systèmes complexes dans une approche originale et féconde!)
- Les Algorithmes d'Apprentissage Multi-Agents -
Les algorithmes d'apprentissage multi-agents sont donc des algorithmes d'apprentissage tels que nous les avons défini ci-dessus, ayant par ailleurs une structure multi-agents, c'est-à-dire pouvant être décrit comme un système constitué d'entités autonomes, d'agents, en interaction avec un environnement et interagissant éventuellement les uns avec les autres. On se trouve ici face à une propriété fascinante des systèmes complexes, "l'émergence", selon laquelle un ensemble d'éléments donnés, par le jeu de leurs interactions, font émerger, au niveau global, c'est à dire au niveau du système que constitue l'ensemble de ces éléments, des propriétés qu'aucun des élements constitutifs du système ne possède par ailleurs. Pour en savoir plus voir sur ce sujet en particulier et les systèmes complexes en général voir ici. Cette caractéristique des systèmes complexes est utilisé par les algorithmes d'apprentissage multi-agents pour effectuer l'apprentissage de tâches complexes. Une classification intéressante des différents types d'algorithmes multi-agents peut être obtenu en considérant les capacités des agents. Au niveau le plus bas, on a des entités qui agissent en parallèles mais dont les propriétés ne permettent pas encore d'utiliser la notion d'agent à proprement parler, tel que nous l'avons défini ci avant. On se trouve alors encore dans le cas d'algorithmes d'apprentissage simplement parallèles, ou distribué, c'est le cas par exemple des réseaux de neurones, pour lequel chaque neurone peut être vu comme un "agent" primitif, un processus indépendant à tout le moins. Ensuite lorsque les entités considérées possèdent des propriétés d'agents, comme l'autonomie, la pro-activité (sous tendu par la présence de buts internes), on rentre dans la classe des algorithmes d'apprentissage multi-agents. Au sommet de cette classification, on trouve des agents ayant eux même des capacités d'apprentissage.
L'intérêt principal des systèmes multi-agents dans les algorithmes d'apprentissage tient essentiellement au fait que pour certains types de problèmes, le fait de distribuer entre plusieurs agents la résolution, rend celle-ci nettement plus accessible que si un seul agent devait le traiter d'un seul bloc. Pour certains problèmes, comme la recherche de modèles de coordination entre agents pour effectuer collectivement certaines tâches, un apprentissage centralisé paraît totalement exclu, l'apprentissage multi-agents est dans des cas comme celui-ci abolument nécessaire.
|