Der cerebellar model articulation controller (CMAC) ist eine Art künstliches neuronales Netz, das von Struktur und Funktion des Kleinhirns inspiriert ist, einer Gehirnregion, die an der motorischen Steuerung und Koordination beteiligt ist. CMAC wurde in den 1970er Jahren entwickelt und ist eine Form assoziativen Speichers, der Funktionsapproximation durchführt, indem kontinuierliche Eingabevektoren über eine verteilte, lokal abgestimmte Repräsentation auf Ausgabewerte abgebildet werden. Es eignet sich besonders für Echtzeit-Steuerungsanwendungen wie die Manipulation von Roboterarmen, bei denen schnelles Lernen und Anpassung erforderlich sind.
CMAC funktioniert, indem jede Eingabedimension in eine Menge überlappender rezeptiver Felder quantisiert wird. Jeder Eingabepunkt aktiviert eine kleine Teilmenge dieser Felder, und die Ausgabe des Netzwerks wird als Summe der Gewichte berechnet, die den aktivierten Feldern zugeordnet sind. Dieses Design bietet lokale Generalisierung: Ähnliche Eingaben aktivieren überlappende Felder und erzeugen ähnliche Ausgaben, während entfernte Eingaben keine Felder gemeinsam haben, was Interferenzen verhindert. Die Lernregel ist typischerweise ein einfacher Gradientenabstieg oder eine Least-Mean-Squares-Aktualisierung, was das Training im Vergleich zu mehrschichtigen Perzeptronen schnell und rechnerisch kostengünstig macht.
Historische Entwicklung
Der CMAC wurde 1975 von James Albus eingeführt, während er am National Bureau of Standards (heute National Institute of Standards and Technology) arbeitete. Albus wurde von der Notwendigkeit eines rechnerisch effizienten Modells der Kleinhirnfunktion motiviert, das er in einer Reihe von Artikeln in der Zeitschrift Mathematical Biosciences ausführlich beschrieb. Seine Arbeit stützte sich auf frühere Theorien des Kleinhirnlernens von David Marr und James Brindley, aber Albus' wichtigster Beitrag war die praktische algorithmische Formulierung, die in Hardware oder Software implementiert werden konnte. Der Name "Articulation Controller" spiegelt seine ursprüngliche beabsichtigte Verwendung zur Steuerung der Gelenke von Roboter-Manipulatoren wider, bei denen sanfte und präzise Bewegungen unerlässlich sind.
Architektur und Funktionsweise
Ein CMAC besteht aus mehreren Schichten: einer Eingabeschicht, einer konzeptionellen Abbildungsschicht, einer physischen Speicherschicht und einer Ausgabeschicht. Die Eingabeschicht empfängt kontinuierliche Signale, die dann in diskrete Zustände quantisiert werden. Die konzeptionelle Abbildungsschicht weist jedem quantisierten Eingang eine Menge aktiver Adressen in einem virtuellen Speicherraum zu, wobei eine Hash-Funktion verwendet wird, um den Speicherbedarf zu reduzieren. Die physische Speicherschicht speichert die Gewichtswerte, und die Ausgabe ist die Summe der Gewichte an den aktiven Adressen.
Die Anzahl der aktiven Adressen pro Eingabe, oft als C bezeichnet, bestimmt die Generalisierungsbreite. Ein größeres C ergibt eine breitere Generalisierung, aber eine gröbere Auflösung, während ein kleineres C eine feinere Unterscheidung ermöglicht. Die Auflösung wird auch durch die Quantisierungsschrittgröße in jeder Dimension gesteuert. In der Praxis verwenden CMACs oft ein Hash-Schema, um den großen konzeptionellen Raum auf einen kleineren physischen Speicher abzubilden, was zu Kollisionen führen kann, aber für Steuerungsaufgaben im Allgemeinen akzeptabel ist.
Lernen und Anpassung
Das Training eines CMAC umfasst das Präsentieren von Eingabe-Ausgabe-Paaren und das Anpassen der Gewichte der aktiven Adressen. Die Standard-Aktualisierungsregel lautet:
Δw = α * (Sollwert - Ausgabe) / C
wobei α die Lernrate ist, Sollwert die gewünschte Ausgabe und Ausgabe die aktuelle Vorhersage. Diese Regel entspricht einem normalisierten Least-Mean-Squares-Algorithmus. Da nur ein kleiner Bruchteil der Gewichte pro Stichprobe aktualisiert wird, ist das Lernen schnell und stabil, selbst bei verrauschten Daten. CMACs leiden nicht unter katastrophaler Interferenz, da jedes Gewicht nur durch Eingaben beeinflusst wird, die sein entsprechendes Feld aktivieren.
Eine Einschränkung besteht darin, dass die Anzahl der Gewichte exponentiell mit der Eingabedimensionalität wachsen kann, obwohl Hasching dies abschwächt. Für hochdimensionale Probleme sind andere Architekturen wie Deep-Learning-Netzwerke möglicherweise vorzuziehen, aber CMAC bleibt für Steuerungsaufgaben mit niedriger bis mittlerer Dimensionalität wettbewerbsfähig.
Anwendungen
CMAC wurde in der Robotik und in Steuerungssystemen weit verbreitet eingesetzt. Frühe Verwendungen umfassten die Steuerung der Gelenke industrieller Roboterarme, wo es eine sanfte Bahnverfolgung ermöglichte. Es wurde auch in der adaptiven Steuerung nichtlinearer Systeme wie der Flugsteuerung von Flugzeugen und der Motorverwaltung verwendet. In den 1990er und 2000er Jahren integrierten Forscher CMAC mit Verstärkungslern-Techniken für Aufgaben wie das Balancieren invertierter Pendel und die Navigation mobiler Roboter.
In jüngerer Zeit hat CMAC Nischenanwendungen in Bereichen wie Signalverarbeitung und Mustererkennung gefunden, obwohl es weitgehend von Deep-Learning-Methoden überschattet wurde. Seine geringen Rechenkosten und die einfache Hardware-Implementierung machen es jedoch attraktiv für eingebettete Systeme und Echtzeitanwendungen, wie in Tesla-Autopilot-artigen Steuerungsschleifen oder Intuitive-Surgical-Roboterchirurgiesystemen, bei denen die Latenzzeit entscheidend ist.
Vergleich mit anderen Modellen
Im Gegensatz zu neuronalen Netz-Modellen wie mehrschichtigen Perzeptronen oder Transformer-basierten Architekturen ist CMAC ein nicht-parametrisches, lokal gewichtetes Modell. Es erfordert keine Backpropagation oder Gradientenberechnung durch versteckte Schichten, was die Implementierung in analoger oder digitaler Hardware erleichtert. Die Speichernutzung ist vorhersehbar, und das Training erfolgt online, was bedeutet, dass es sich kontinuierlich an wechselnde Umgebungen anpassen kann.
Jedoch fehlt CMAC die Repräsentationskraft tiefer Netze für hochdimensionale, strukturierte Daten wie Bilder oder Text. Es eignet sich am besten für Probleme, bei denen der Eingaberaum relativ niedrigdimensional ist und die zu approximierende Funktion glatt ist. Im weiteren Kontext von künstlicher Intelligenz und maschinellem Lernen gilt CMAC als klassische Methode, bleibt aber ein nützliches Werkzeug in der Regelungstechnik und Robotik-Ausbildung.
Siehe auch
- Neuronales Netz
- Maschinelles Lernen
- Robotik
- Regelungstechnik
Referenzen
- 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.