Le contrôleur d'articulation à modèle cérébelleux (CMAC) est un type de réseau de neurones artificiels inspiré de la structure et de la fonction du cervelet, une région du cerveau impliquée dans le contrôle moteur et la coordination. Développé dans les années 1970, le CMAC est une forme de mémoire associative qui effectue une approximation de fonction, mappant des vecteurs d'entrée continus vers des valeurs de sortie grâce à une représentation distribuée et localement ajustée. Il est particulièrement adapté aux applications de contrôle en temps réel, comme la manipulation de bras robotiques, où un apprentissage et une adaptation rapides sont nécessaires.
Le CMAC fonctionne en quantifiant chaque dimension d'entrée en un ensemble de champs récepteurs qui se chevauchent. Chaque point d'entrée active un petit sous-ensemble de ces champs, et la sortie du réseau est calculée comme la somme des poids associés aux champs activés. Cette conception offre une généralisation locale : des entrées similaires activent des champs qui se chevauchent, produisant des sorties similaires, tandis que des entrées éloignées ne partagent aucun champ, empêchant toute interférence. La règle d'apprentissage est généralement une simple descente de gradient ou une mise à jour par moindres carrés moyens, ce qui rend l'entraînement rapide et peu coûteux en calcul par rapport aux perceptrons multicouches.
Développement historique
Le CMAC a été introduit par James Albus en 1975, alors qu'il travaillait au National Bureau of Standards (aujourd'hui le National Institute of Standards and Technology). Albus était motivé par le besoin d'un modèle informatiquement efficace de la fonction cérébelleuse, qu'il a détaillé dans une série d'articles dans la revue Mathematical Biosciences. Ses travaux s'appuyaient sur des théories antérieures de l'apprentissage cérébelleux de David Marr et James Brindley, mais la contribution clé d'Albus était la formulation algorithmique pratique qui pouvait être implémentée en matériel ou en logiciel. Le nom « contrôleur d'articulation » reflète son utilisation prévue à l'origine pour contrôler les articulations de manipulateurs robotiques, où un mouvement fluide et précis est essentiel.
Architecture et fonctionnement
Un CMAC se compose de plusieurs couches : une couche d'entrée, une couche de mappage conceptuel, une couche de mémoire physique et une couche de sortie. La couche d'entrée reçoit des signaux à valeurs continues, qui sont ensuite quantifiés en états discrets. La couche de mappage conceptuel attribue à chaque entrée quantifiée un ensemble d'adresses actives dans un espace mémoire virtuel, en utilisant une fonction de hachage pour réduire les besoins en mémoire. La couche de mémoire physique stocke les valeurs des poids, et la sortie est la somme des poids aux adresses actives.
Le nombre d'adresses actives par entrée, souvent noté C, détermine la largeur de généralisation. Un C plus grand offre une généralisation plus large mais une résolution plus grossière, tandis qu'un C plus petit fournit une discrimination plus fine. La résolution est également contrôlée par la taille du pas de quantification dans chaque dimension. En pratique, les CMAC utilisent souvent un schéma de hachage pour mapper le grand espace conceptuel dans une mémoire physique plus petite, ce qui peut entraîner des collisions mais est généralement acceptable pour les tâches de contrôle.
Apprentissage et adaptation
L'entraînement d'un CMAC implique de présenter des paires entrée-sortie et d'ajuster les poids des adresses actives. La règle de mise à jour standard est :
Δw = α * (cible - sortie) / C
où α est le taux d'apprentissage, cible est la sortie souhaitée et sortie est la prédiction actuelle. Cette règle est équivalente à un algorithme de moindres carrés moyens normalisé. Comme seule une petite fraction des poids est mise à jour par échantillon, l'apprentissage est rapide et stable, même avec des données bruitées. Les CMAC ne souffrent pas d'interférence catastrophique, car chaque poids n'est affecté que par les entrées qui activent son champ correspondant.
Une limitation est que le nombre de poids peut croître de manière exponentielle avec la dimensionnalité de l'entrée, bien que le hachage atténue ce problème. Pour les problèmes de haute dimension, d'autres architectures comme les réseaux de Deep learning peuvent être préférées, mais le CMAC reste compétitif pour les tâches de contrôle de dimension faible à modérée.
Applications
Le CMAC a été largement appliqué en robotique et dans les systèmes de contrôle. Les premières utilisations comprenaient le contrôle des articulations de bras robotiques industriels, où il fournissait un suivi de trajectoire fluide. Il a également été utilisé dans le contrôle adaptatif de systèmes non linéaires, comme le contrôle de vol d'avions et la gestion de moteurs. Dans les années 1990 et 2000, les chercheurs ont intégré le CMAC avec des techniques de Reinforcement learning pour des tâches comme l'équilibrage de pendules inversés et la navigation de robots mobiles.
Plus récemment, le CMAC a trouvé des applications de niche dans des domaines comme le traitement du signal et la reconnaissance de formes, bien qu'il ait été largement éclipsé par les méthodes de Deep learning. Cependant, son faible coût de calcul et son implémentation matérielle simple le rendent attrayant pour les systèmes embarqués et les applications en temps réel, comme dans les boucles de contrôle de type Tesla ou les systèmes de chirurgie robotique Intuitive Surgical, où la latence est critique.
Comparaison avec d'autres modèles
Contrairement aux modèles de Neural network tels que les perceptrons multicouches ou les architectures basées sur les Transformer (architecture), le CMAC est un modèle non paramétrique et localement pondéré. Il ne nécessite pas de rétropropagation ni de calcul de gradient à travers des couches cachées, ce qui le rend plus facile à implémenter en matériel analogique ou numérique. Son utilisation de la mémoire est prévisible, et l'entraînement est en ligne, ce qui signifie qu'il peut s'adapter en continu à des environnements changeants.
Cependant, le CMAC manque de la puissance de représentation des réseaux profonds pour les données structurées de haute dimension comme les images ou le texte. Il est mieux adapté aux problèmes où l'espace d'entrée est relativement de faible dimension et où la fonction à approximer est lisse. Dans le contexte plus large de l'Artificial intelligence et du Machine learning, le CMAC est considéré comme une méthode classique, mais il reste un outil utile dans l'ingénierie de contrôle et l'enseignement de la robotique.
Voir aussi
- réseau de neurones
- apprentissage automatique
- robotique
- théorie du contrôle
Références
- Albus, J. S. (1975). A new approach to manipulator control: The cerebellar model articulation controller (CMAC). Journal of Dynamic Systems, Measurement, and Control, 97(3), 220-227.
- Miller, W. T., Glanz, F. H., & Kraft, L. G. (1990). CMAC: An associative neural network alternative to backpropagation. Proceedings of the IEEE, 78(10), 1561-1567.
- Brown, M., & Harris, C. (1994). Neurofuzzy Adaptive Modelling and Control. Prentice Hall.