Neural Gas
Neural Gas bezeichnet ein an selbstorganisierende Karten angelehntes künstliches neuronales Netz, das 1991 von Thomas Martinetz und Klaus Schulten vorgestellt wurde. Das Neural Gas ist ein einfacher Algorithmus zur möglichst fehlerfreien Datenkodierung mit Hilfe von Merkmalsvektoren. Die Bezeichnung begründet sich auf der Dynamik der Merkmalsvektoren, deren Verteilung im Datenraum während des Lernprozesses an die Ausbreitung eines Gases erinnert. Anwendung findet es überall dort, wo Datenkompression oder Vektorquantisierung durchgeführt werden müssen, also zum Beispiel in der Spracherkennung, der Bildverarbeitung oder der Mustererkennung. Als robust konvergierende Alternative zum k-Means-Algorithmus wird es des Weiteren zur Clusteranalyse eingesetzt. Prominente Erweiterungen des Neural Gas sind das Growing Neural Gas und die Topology Representing Networks.
Arbeitsweise
Gegeben sei eine Häufigkeitsverteilung P(x) von Datenvektoren x sowie eine endliche Zahl von Merkmalsvektoren wi, i=1,...,N.
Mit jedem Zeitschritt t wird ein zufällig aus P gewählter Datenvektor präsentiert. Danach wird zunächst die Entfernungsrangfolge der Merkmalsvektoren zum gegebenen Datenvektor x bestimmt. i0 bezeichnet den Index des nächstliegenden Merkmalsvektors, i1 den Index des zweitnächsten usw. und iN-1 den Index des zu x entferntesten Merkmalsvektors. Dann wird jeder Merkmalsvektor adaptiert. Der Adaptionsschritt lautet für k=0,...,N-1
mit ε als Adaptionsschrittweite und λ als sogenannte Nachbarschaftsreichweite. ε und λ nehmen dabei mit der Zahl t der Adaptionsschritte ab. Nach ausreichend vielen Adaptionsschritten decken die Merkmalsvektoren den Datenraum gleichmäßig ab.
Kommentare
- Der Adaptionsschritt des Neural Gas kann als Gradientenabstieg auf einer Kostenfunktion interpretiert werden.
- Durch Adaption nicht nur des nächstliegenden Merkmalsvektors sondern in abnehmendem Maße auch der im Entfernungsrang folgenden Merkmalsvektoren wird im Vergleich zum K-Means-Algorithmus eine robuste und von der Initialisierung weitgehend unabhängige Konvergenz erzielt.
- Als Lernrate hat sich bewährt:
$ \epsilon (t)=\epsilon _{\text{start}}\cdot \left({\frac {\epsilon _{\text{end}}}{\epsilon _{\text{start}}}}\right)^{\frac {t}{t_{\text{max}}}} $ mit εstart=1 als Startlernrate und εend=0,001 als Lernrate zum Ende des Verfahrens, d.h. nach tmax Stimuluspräsentationen. - Als Nachbarschaftreichweite hat sich bewährt:
$ \lambda (t)=\lambda _{\text{start}}\cdot \left({\frac {\lambda _{\text{end}}}{\lambda _{\text{start}}}}\right)^{\frac {t}{t_{\text{max}}}} $ mit λstart=N/2 als Reichweite zu Beginn und λend=0,01 als Reichweite zum Ende des Verfahrens.
Quellen
- T. M. Martinetz and K. J. Schulten. A neural-gas network learns topologies. In T. Kohonen, K. Mäkisara, O. Simula, and J. Kangas, editors, Artificial Neural Networks, pages 397-402. North-Holland, Amsterdam, 1991.
- T. Martinetz, S. Berkovich, and K. Schulten. "Neural-gas" Network for Vector Quantization and its Application to Time-Series Prediction. IEEE-Transactions on Neural Networks, 4(4):558-569, 1993.
- T. Martinetz and K. Schulten. Topology representing networks. Neural Networks, 7(3):507-522, 1994.
Weblinks
- Growing Neural Gas videos.
- DemoGNG Java Applet (mit Source Code) Neural Gas, Growing Neural Gas und andere Verfahren des kompetitiven Lernens.
- Beschreibung des Neural Gas Algorithmus
- Java Competitive Learning Applications Unsupervised Neural Networks (including Self-organizing map) in Java mit Quelltexten.