Ein zelluläres neuronales Netz (CNN) ist eine Art von künstlichem neuronalen Netz, das für parallele, lokal verbundene Berechnungen entwickelt wurde. Im Gegensatz zu herkömmlichen neuronalen Netzen mit globalen Verbindungen besteht ein CNN aus einem regelmäßigen Gitter von Zellen (Neuronen), wobei jede Zelle nur mit ihren unmittelbaren Nachbarn interagiert. Diese Architektur ahmt die Struktur biologischer Netzhäute und zellulärer Automaten nach und ermöglicht eine effiziente Echtzeitverarbeitung zweidimensionaler Signale wie Bilder. Das Konzept wurde 1988 von Leon O. Chua und Lin Yang an der University of California, Berkeley, eingeführt und hat seitdem Anwendungen in der Bildverarbeitung, Mustererkennung und Simulation dynamischer Systeme gefunden.
Das charakteristische Merkmal eines CNN ist seine lokale Konnektivität: Jede Zelle empfängt Eingaben aus einer kleinen Nachbarschaft (typischerweise eine 3x3- oder 5x5-Region) und aktualisiert ihren Zustand basierend auf einer Reihe von Differentialgleichungen. Diese Lokalität reduziert die Anzahl der Verbindungen im Vergleich zu vollständig verbundenen Netzen und ermöglicht Hardware-Implementierungen mit hoher Parallelität. CNNs können sowohl im kontinuierlichen Zeitbereich (analog) als auch im diskreten Zeitbereich (digital) arbeiten und unterstützen eine Vielzahl von Vorlagen, die die Dynamik des Netzes definieren. Diese Vorlagen können programmiert werden, um Operationen wie Kantenerkennung, Rauschfilterung und Merkmalsextraktion durchzuführen.
Geschichte und Entwicklung
Das zelluläre neuronale Netz wurde von Chua und Yang in ihrem 1988 veröffentlichten Artikel "Cellular Neural Networks: Theory and Applications" in den IEEE Transactions on Circuits and Systems vorgeschlagen. Die ursprüngliche Motivation war die Schaffung eines Echtzeit-Prozessors mit geringem Stromverbrauch für die Bildverarbeitung, der die analoge Natur elektronischer Schaltungen nutzt. Frühe Implementierungen verwendeten Operationsverstärker und Widerstände, spätere Versionen integrierten jedoch digitale Logik und feldprogrammierbare Gate-Arrays (FPGAs).
In den 1990er Jahren erweiterten Forscher das ursprüngliche CNN-Modell um nichtlineare Vorlagen, mehrschichtige Konfigurationen und Lernalgorithmen. Die Einführung der CNN-Universalmaschine (CNN-UM) durch Tamás Roska und Chua im Jahr 1993 bot einen programmierbaren Rahmen, der Software-Emulation und Hardware-Prototyping ermöglichte. Dies führte zur Entwicklung des ACE16k-Chips durch die Ungarische Akademie der Wissenschaften, der 128x128-Bilder mit Tausenden von Bildern pro Sekunde verarbeiten konnte. Trotz dieser Fortschritte verlagerte der Aufstieg des Deep Learning in den 2010er Jahren den Forschungsschwerpunkt auf faltende neuronale Netze (CNNs), die denselben Namen tragen, sich aber grundlegend in Architektur und Trainingsmethoden unterscheiden.
Architektur und Betrieb
Ein zelluläres neuronales Netz wird durch ein Gitter von M x N Zellen definiert, wobei jede Zelle eine Zustandsvariable, eine Eingabe und eine Ausgabe hat. Die Dynamik einer Zelle wird durch eine Differentialgleichung erster Ordnung bestimmt, die ihren eigenen Zustand, die Eingaben und Ausgaben benachbarter Zellen sowie einen Bias-Term einbezieht. Die Interaktionsgewichte werden durch zwei Matrizen spezifiziert: die A-Vorlage (Feedback) und die B-Vorlage (Feedforward). Diese Vorlagen sind typischerweise klein, wie 3x3, und über alle Zellen identisch, was dem Netz eine translationsinvariante Eigenschaft verleiht.
Die Ausgabe jeder Zelle ist eine nichtlineare Funktion ihres Zustands, oft eine stückweise lineare Sigmoidfunktion. Dies ermöglicht es dem Netz, komplexe Verhaltensweisen zu zeigen, einschließlich stabiler Fixpunkte, Oszillationen und Chaos, abhängig von den Vorlagenwerten. In der Praxis werden CNNs oft als räumlicher Filter verwendet: Durch die Wahl geeigneter Vorlagen kann das Netz Operationen wie Sobel-Kantenerkennung, Gaußsche Glättung oder morphologische Transformationen durchführen. Die parallele Natur des Netzes bedeutet, dass alle Zellen gleichzeitig aktualisiert werden, was es für Hardware-Beschleunigung geeignet macht.
Anwendungen
Zelluläre neuronale Netze wurden hauptsächlich in der Bild- und Videoverarbeitung eingesetzt. Sie werden für Echtzeit-Kantenerkennung, Bildsegmentierung und Bewegungserkennung in Überwachungssystemen verwendet. In der medizinischen Bildgebung wurden CNNs eingesetzt, um Röntgen- und MRT-Bilder zu verbessern sowie Anomalien in Netzhautscans zu erkennen. Die analoge Implementierung von CNNs bietet einen geringen Stromverbrauch, was für tragbare Geräte und eingebettete Systeme vorteilhaft ist.
Über die Bildverarbeitung hinaus wurden CNNs zur Lösung partieller Differentialgleichungen, zur Modellierung von Reaktions-Diffusions-Systemen und zur Simulation biologischer neuronaler Netze verwendet. Sie wurden auch für assoziative Gedächtnis- und Musterklassifikationsaufgaben untersucht. Mit dem Aufkommen von maschinellem Lernen und generativer KI stützen sich die meisten praktischen Anwendungen jedoch nun auf faltende neuronale Netze (CNNs), die auf GPUs implementiert sind und eine größere Flexibilität und Skalierbarkeit bieten. Ab den 2020er Jahren bleiben zelluläre neuronale Netze ein Nischenthema, das hauptsächlich in akademischen Umgebungen und spezialisierter Hardware-Forschung untersucht wird.
Vergleich mit faltenden neuronalen Netzen
Trotz des ähnlichen Akronyms unterscheiden sich zelluläre neuronale Netze und faltende neuronale Netze deutlich. Ein faltendes neuronales Netz ist eine Feedforward-Architektur mit gelernten Filtern, die durch Backpropagation auf großen Datensätzen trainiert wird. Es verwendet gemeinsame Gewichte über räumliche Positionen und mehrere Schichten, um hierarchische Merkmale zu extrahieren. Im Gegensatz dazu ist ein zelluläres neuronales Netz ein rekurrentes, lokal verbundenes System mit festen oder manuell abgestimmten Vorlagen, das oft in analoger Hardware implementiert wird. Ersteres zeichnet sich bei Aufgaben wie Bilderkennung und natürlicher Sprachverarbeitung aus, während Letzteres für Echtzeit-Signalverarbeitung mit geringem Stromverbrauch geeignet ist.
Der Begriff "zellulär" in beiden Namen bezieht sich auf die gitterartige Anordnung von Verarbeitungseinheiten, aber die Funktionsprinzipien unterscheiden sich. Zelluläre neuronale Netze betonen kontinuierliche Zeitdynamik und lokale Interaktionen, während faltende neuronale Netze auf diskreten Faltungen und nichtlinearen Aktivierungen beruhen. Diese Unterscheidung ist wichtig für Forscher und Ingenieure, die das geeignete Modell für eine bestimmte Anwendung auswählen.
Hardware-Implementierungen
Einer der Hauptvorteile zellulärer neuronaler Netze ist ihre Eignung für die Hardware-Realisierung. Analoge VLSI-Implementierungen können extrem hohen Durchsatz und geringen Energieverbrauch erreichen, da jede Zelle eine einfache Schaltung ist. Der erste dedizierte CNN-Chip, die CNN-Universalmaschine, wurde in den 1990er Jahren entwickelt und demonstrierte Echtzeit-Videoverarbeitung. Spätere digitale Implementierungen mit FPGAs und anwendungsspezifischen integrierten Schaltungen (ASICs) boten mehr Flexibilität und Präzision.
Unternehmen und Forschungseinrichtungen, darunter Nokia Bell Labs und verschiedene Universitäten, haben CNN-Hardware für Edge Computing untersucht. Der kommerzielle Erfolg von CNN-Hardware war jedoch im Vergleich zu Graphcore- und Groq-Beschleunigern, die für Deep Learning entwickelt wurden, begrenzt. Die Nischennatur zellulärer neuronaler Netze bedeutet, dass sich die meiste moderne Hardware-Entwicklung auf Transformer (architecture)-basierte Modelle und große Sprachmodelle konzentriert, die die aktuelle KI-Landschaft dominieren.
Siehe auch
- Künstliches neuronales Netz
- Deep Learning
- Maschinelles Lernen
- Bildverarbeitung
Referenzen
- Chua, L. O., & Yang, L. (1988). Cellular Neural Networks: Theory and Applications. IEEE Transactions on Circuits and Systems.
- Roska, T., & Chua, L. O. (1993). The CNN Universal Machine: An Analogic Array Computer. IEEE Transactions on Circuits and Systems II.