[PYTHON] Ich habe versucht, PCANet zu implementieren

Ich habe ein neuronales Netzwerk namens PCANet implementiert.

PCANet-Übersicht

Wie der Name schon sagt, handelt es sich bei PCANet um einen CNN-Typ, der die Netzwerkgewichte anhand der PCA (Hauptkomponentenanalyse) berechnet.

Vorteil

PCANet verfügt über die folgenden Funktionen.

Benötigt kein Lehreretikett

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.

Nachteil

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."

Über die Implementierung

Es gibt etwas, das ich in der Zeitung nicht verstehe

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.

Ich kann kein Mini-Batch verwenden

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

Ich habe versucht, PCANet zu implementieren
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, Deep VQE zu implementieren
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich habe versucht, Realness GAN zu implementieren
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich habe versucht zu debuggen.
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, PPO in Python zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, TOPIC MODEL in Python zu implementieren
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Ich habe versucht, das Problem des Handlungsreisenden umzusetzen
Ich habe versucht, PredNet zu lernen
Ich habe versucht, SVM zu organisieren.
Ich habe versucht, Linux wieder einzuführen
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, SparseMatrix zusammenzufassen
jupyter ich habe es berührt
Ich habe versucht, ein multivariates statistisches Prozessmanagement (MSPC) zu implementieren.
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Ich habe versucht, Drakues Poker in Python zu implementieren
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, GA (genetischer Algorithmus) in Python zu implementieren
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
Ich habe versucht, SSD jetzt mit PyTorch zu implementieren (Dataset)
Ich habe versucht, einen automatischen Nachweis der Sequenzberechnung zu implementieren
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, Pytorchs Datensatz zu erklären
Ich habe Watson Voice Authentication (Speech to Text) ausprobiert.
Ich habe Teslas API berührt
Ich habe versucht, mich über MCMC zu organisieren.
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, mit Quantx eine Linie mit gleitendem Durchschnitt des Volumens zu implementieren
Ich habe versucht, das grundlegende Modell des wiederkehrenden neuronalen Netzwerks zu implementieren
Ich habe versucht, die Erkennung von Anomalien durch spärliches Strukturlernen zu implementieren
Ich habe versucht, einen eindimensionalen Zellautomaten in Python zu implementieren
Ich habe versucht, mit Quantx einen Ausbruch (Typ der Täuschungsvermeidung) zu implementieren
[Django] Ich habe versucht, Zugriffsbeschränkungen durch Klassenvererbung zu implementieren.
Ich habe versucht, ListNet of Rank Learning mit Chainer zu implementieren
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich habe versucht, Harry Potters Gruppierungshut mit CNN umzusetzen
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
Ich habe versucht, das Blackjack of Trump-Spiel mit Python zu implementieren
Ich habe versucht, SSD jetzt mit PyTorch zu implementieren (Modellversion)
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)