Im Rahmen eines Projektes, musste ich mich in die Thematik der Kohonenkarten (Self Organizing Maps) einlesen. Ich möchte hier kurz einen Überblick über diesen Algorithmus geben und ein paar Links zusammentragen.
Die Kohonenkarte ist eine Art von neuronalem Netzwerk. Es wurde von Teuvo Kohonen erfunden und ist ein unüberwachtes Lernverfahren. Das bedeutet, dass man vorab nicht wissen muss, wie viele “Kategorien” es gibt. Sprich man trainiert das Netzwerk einfach mit den Daten die man hat und das Netzwerk sorgt für eine Gruppierung.
Die Kohonenkarte besteht aus zwei Schichten, die erste Schicht sind Inputneuronen und die zweite Schicht beschreibt das Netzwerk welches ebenfalls aus Neuronen besteht.
Die Inputneuronen sind dafür da um die Vektoren, mit denen das Netzwerk trainiert werden soll, dem Netzwerk zu präsentieren. Mit anderen Worten, für den Fall, dass man ein Netzwerk mit Farben trainieren möchte, existieren drei Inputneuronen. Je ein Neuron für den R-, G- und B-Wert des Vektors.
Das Netzwerk besteht aus ein vorher festgelegten Anzahl an Neuronen die typischerweise in einem Quadrat angeordnet sind. Es gibt zwar auch wabenartige Strukturen und Strukturen in höheren Dimensionen wie dem Würfel, aber wir nutzen hier ausschliesslich das Quadrat.
Nehmen wir an, dass das Netzwerk aus 16 Neuronen besteht. Ordnen wir diese zu einem Quadrat, erhält man ein Quadrat mit einer Kantenlänge von vier Neuronen.

Jedes dieser 16 Neuronen hat eine bestehende Verbindung zu jedem Inputneuron

Untereinander sind die Neuronen in der Netzwerkschicht nicht verbunden. Programmatisch gesehen muss aber eine Adressierung der einzelnen Neuronen möglich sein. Warum das so ist wird später erwähnt.
Weiterlesen →