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ührungEin 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-MethodeDie 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.
- Definition für jedes Datenobjekt das nächste Zentrum und Zuweisen einer Klassenbezeichnung zu diesem Objekt . Ferner wird für alle Objekte ihre Zugehörigkeit zu verschiedenen Klassen bestimmt.
- 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 BildfarbenMit 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:
Es wird vorgeschlagen, die anfängliche Anordnung der Clusterzentren wie folgt zu berechnen.
- Finden Sie Min- und Max- Werte für alle Pixel.
- Teilen Sie das Intervall [ min , max ] in k Teile.
- Berechnen Sie die Pixelfrequenzen in jedem Unterintervall nach Wert .
- Sortieren Sie die Unterbereiche nach der Anzahl der Pixel in absteigender Reihenfolge.
- Berechnen Sie Pixelzentren in Teilintervallen.
Clusteranalyse: VerlaufskarteDer 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.
- Sortieren Sie alle Eingabevektoren nach Größe
- Wenn Sie in einem sortierten Array von einem Eingabevektor zu einem anderen wechseln, sehen Sie sich die Änderung der Monotonie der Größe an entsprechende Ausgabevektoren.
- Monotone Eingangsvektoren Ordnen Sie die entsprechenden Ausgangsvektoren, die nicht größer als der gewählte Schwellenwert p sind , einer Klasse zu.
- Der Schwellenwert p kann variiert werden, um die Vektoren in die gewünschte Anzahl von Clustern zu unterteilen.
Adaptiver FilterFü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
dx •
dy • 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-SpeicherNachdem 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 ExperimentDer 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.FazitEs 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- 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.