Clusterspeicher mit Annäherung


Ein Speicher mit nichtlinearer Approximation innerhalb von Datenclustern wird entwickelt. Es wird vorgeschlagen, Cluster nach der k-means-Methode zuzuweisen. Die Approximation sollte unter Verwendung des Trainings eines Ensembles neuronaler Netze durchgeführt werden. Der Clusterspeicher wird mithilfe eines adaptiven Filters getestet, um Bildfarben zu konvertieren. Nach den Ergebnissen von Computerexperimenten zeigte diese Art von Gedächtnis eine gute selektive Lernfähigkeit. Am Beispiel eines adaptiven Filters ist es möglich, den Speicher so zu trainieren, dass die gesamte Farbpalette des Bildes geändert wird.

Einführung

Ein wesentlicher Nachteil von neuronalen Perceptron-Netzen ist ihre schlechte Fähigkeit, Multicluster-Daten zu verallgemeinern. Insbesondere kann das XOR-Problem zum Lernen einer logischen Funktion nicht mit einem einzigen Perzeptron gelöst werden, da zwei widersprüchliche Trends in einer Richtung der Datenpunkte verfolgt werden können, um die entscheidende Funktion eines neuronalen Netzwerks zu erhöhen und zu verringern. Solche widersprüchlichen Abhängigkeiten innerhalb desselben Trainingsdatenarrays können nicht durch ein einzelnes neuronales Netzwerk in Form eines mehrdimensionalen Perzeptrons verallgemeinert werden. Daher wird vorgeschlagen, das Array von Trainingsdaten in Cluster zu unterteilen, in denen einzelne neuronale Netze angenähert werden. In dem Artikel wird ein Computerexperiment durchgeführt, um diesen Speichertyp für die Aufgabe eines adaptiven Bildfilters zur selektiven Konvertierung einer Farbpalette zu testen.

Clusteranalyse: k-means-Methode

Die k-means-Methode ist eine der beliebtesten Clustering-Methoden. Ziel ist es, solche Rechenzentren zu erhalten, die der Hypothese der Kompaktheit von Datenklassen mit ihrer symmetrischen radialen Verteilung entsprechen. Eine Möglichkeit, die Positionen solcher Zentren für eine gegebene Anzahl von k zu bestimmen, ist der EM-Ansatz.

Bei diesem Verfahren werden zwei Verfahren nacheinander ausgeführt.

  1. Definition für jedes Datenobjekt Xidas nächste Zentrum Cjund Zuweisen einer Klassenbezeichnung zu diesem Objekt Xij. Ferner wird für alle Objekte ihre Zugehörigkeit zu verschiedenen Klassen bestimmt.
  2. Berechnung der neuen Position der Zentren aller Klassen.

Wenn man diese beiden Prozeduren iterativ von der anfänglichen zufälligen Position der Zentren von k Klassen aus wiederholt, kann man die Trennung von Objekten in Klassen erreichen, die so weit wie möglich der Hypothese der radialen Kompaktheit von Klassen entsprechen würden.

Der Klassifizierungsalgorithmus eines neuen Autors wird mit der k-means-Methode verglichen.

Primäre Bildfarben

Mit der k-means-Methode, die auf den Farbraum von Pixeln in einem Bild angewendet wird, können Sie die Grundtöne hervorheben. Zu diesem Zweck wird vorgeschlagen, die Farben von RGB- Pixeln mithilfe der Java Color.RGBtoHSB- Plattformmethode in HSB zu konvertieren und den Farbton H und die Helligkeit B zu erhalten. Es wird vorgeschlagen, den Abstand zwischen den Pixeln im Farbraum durch die Formel zu bestimmen:

dist left(Xi,Xj right)= sqrtHi cdotBiHj cdotBj

Es wird vorgeschlagen, die anfängliche Anordnung der Clusterzentren wie folgt zu berechnen.

  1. Finden Sie Min- und Max- Werte Hi cdotBifür alle Pixel.
  2. Teilen Sie das Intervall [ min , max ] in k Teile.
  3. Berechnen Sie die Pixelfrequenzen in jedem Unterintervall nach Wert Hi cdotBi.
  4. Sortieren Sie die Unterbereiche nach der Anzahl der Pixel in absteigender Reihenfolge.
  5. Berechnen Sie Pixelzentren in Teilintervallen.

Clusteranalyse: Verlaufskarte

Der Ansatz zur Durchführung einer Clusteranalyse auf der Basis der k-means-Methode hat den Nachteil, dass die Ausgabebildindizes keinen Einfluss haben. Um die Änderung der Indikatoren des Ausgabebildes in Abhängigkeit von der Änderung der Indikatoren des Eingabebildes zu berücksichtigen, wird der folgende Algorithmus vorgeschlagen.

  1. Sortieren Sie alle Eingabevektoren nach Größe Hi cdotBi
  2. Wenn Sie in einem sortierten Array von einem Eingabevektor zu einem anderen wechseln, sehen Sie sich die Änderung der Monotonie der Größe an Hi cdotBientsprechende Ausgabevektoren.
  3. Monotone Eingangsvektoren Hi cdotBiOrdnen Sie die entsprechenden Ausgangsvektoren, die nicht größer als der gewählte Schwellenwert p sind , einer Klasse zu.
  4. Der Schwellenwert p kann variiert werden, um die Vektoren in die gewünschte Anzahl von Clustern zu unterteilen.

Adaptiver Filter

Für die Implementierung der Bildkonvertierung können neuronale Netze verwendet werden. Der Hauptvorteil neuronaler Netze ist ihre automatische Lernfähigkeit. In diesem Fall wird vorgeschlagen, ein adaptives Filter [Shovin 2018] basierend auf einem neuronalen Netzwerk zu trainieren, um ein Bildpaar zu verwenden, in dem das Originalbild eine Probe ist, und das zweite wird durch ein vorhandenes Filter oder eine Transformation von einer Probe geändert. Der adaptive Filter muss diese Konvertierung wiederherstellen. Hierzu wird ein Fenster der Größe dx von dy und 3 Farbkanälen verwendet. Infolgedessen werden die dxdy • 3-Eingangssignale für die Eingangsneuronen im neuronalen Netzwerk verwendet. Das Netzwerk kann durch verborgene Schichten der Anzahl von Neuronen ergänzt werden, die den Farbfaktoren der Filterumwandlung zugeordnet sind. Es wird vorgeschlagen, 3 Neuronen am Ausgang eines Neurons zu verwenden, deren Ausgangssignale auf drei Farben ( rgb - rot, grün, blau) im zentralen Pixel des Fensters aus dem Ausgabebild abgebildet werden. Das Signal des Farbkanals des Pixels wird linear in einen Wertebereich umgewandelt [- 0,5 ; 0,5 ]. Eine antisymmetrische Sigmoidfunktion mit einem Werteintervall [- 1 ; 1 ]. Wenn für die Grenzpixel der Bilder das Fenster die Grenzen der Bilder überschreitet, werden die Eingabewerte der Netzwerkneuronen, die solchen Pixeln entsprechen, auf 0 gesetzt . Ein neuronales Netzwerk wird an Fenstern für alle Pixel des Ausgabebildes durch das Verfahren der Rückausbreitung von Fehlern trainiert.

Cluster-Speicher

Nachdem die Grundtöne des Bildes gefunden wurden, wird ein adaptiver Filter für die Pixel jedes Tons mit einer Fensterbreite und -höhe von 1 Pixel konstruiert. Filter werden für jeden Cluster separat trainiert. Somit wird unter Verwendung der neuronalen Netze des adaptiven Filters die Approximation von Pixelfarben innerhalb des Clusters (Tons) durchgeführt.

Numerisches Experiment

Der Clusterspeicher wurde anhand adaptiver Filter als Beispiel für die Transformation einer Farbpalette trainiert.


Abb. 1. Original und modifizierte Palette.

Ein adaptiver Filter erfordert das Lernen, Hautfarben selektiv aufzuhellen, ohne andere Farben zu ändern.

Als Ergebnis der Anwendung eines adaptiven Filters mit Clusterspeicher (9 Clustertöne und Cluster gemäß der Verlaufskarte) auf die ursprüngliche Palette wurden die folgenden Bilder erhalten:


Abb. 2. Die geänderte Palette für die Grundtöne und die Verlaufskarte.

Fazit

Es wird ein Ansatz vorgeschlagen, um komplexe Funktionen basierend auf dem Clusterspeicher mit Annäherung unter Verwendung einer Familie neuronaler Netze zu lernen und eine Clusteranalyse der Quelldaten durchzuführen. Am Beispiel des adaptiven Filters wird die Möglichkeit der selektiven Konvertierung von Palettenfarben gezeigt. Die Verwendung von Cluster-Speicher mit Annäherung ist relevant, wenn widersprüchliche Trends in die gleichen Richtungen der Änderungen der Indikatoren der Quelldaten im Trainingsdatensatz verfolgt werden. Insbesondere ist es möglich, das XOR-Problem zum Erlernen einer logischen Funktion zu lösen.

Referenzliste
  1. Shovin V.A. Adaptiver Bildfilter basierend auf einem neuronalen Netzwerk. // Mathematische und Computermodellierung: eine Sammlung von Materialien der VI International Scientific Conference. 2018 .-- 198 p.

Source: https://habr.com/ru/post/de462303/


All Articles