Ich habe ein neuronales Netzwerk namens PCANet implementiert.
Wie der Name schon sagt, handelt es sich bei PCANet um einen CNN-Typ, der die Netzwerkgewichte anhand der PCA (Hauptkomponentenanalyse) berechnet.
PCANet verfügt über die folgenden Funktionen.
PCANet betrachtet den aus dem Bild ausgeschnittenen Patch als Vektor, und seine Hauptkomponente ist das Gewicht des Netzwerks. Im Allgemeinen wird das Lernen durch CNN durchgeführt, indem die Differenz zwischen der Zielausgabe und der Ausgabe des Netzwerks im gesamten Netzwerk zurückpropagiert wird. Auf der anderen Seite benötigt PCANet kein Lehreretikett, da das Lernen nach dem Angeben eines Bildes einfach durch Anwenden von PCA erfolgen kann.
Da das Modell nur aus linearen Operationen und Histogrammberechnungen besteht, scheint es im Vergleich zu nichtlinearen Modellen weniger aussagekräftig zu sein. Beispiel: Die Identifikationsgenauigkeit in CIFAR 10 hat 80% nicht erreicht.
Möglicherweise möchten Sie PCANet verwenden, wenn Sie sagen: "Der Rechenaufwand reicht für Deep Learning nicht aus, aber die Genauigkeit von HoG ist schlecht."
We then subtract patch mean from each patch
Es ist jedoch nicht bekannt, ob es sich um den Durchschnitt der aus allen Bildern im Datensatz extrahierten Patches oder um den Durchschnitt der für jedes Bild extrahierten Patches handelt. Ich denke, es ist wahrscheinlich das letztere, weil es den Helligkeitsunterschied zwischen Bildern beseitigen kann.
Da es sich bei PCA im Grunde genommen um eine Stapelverarbeitung handelt, ist es nicht möglich, Daten in kleine Stapel aufzuteilen und wie Mini-Stapel zu lernen. Infolgedessen wird Ihnen beim Lernen mit sehr großen Datenmengen der Speicherplatz ausgehen. Als Implementierungslösung
Daher werden wir in Zukunft gegebenenfalls Verbesserungen vornehmen.
Recommended Posts