[PYTHON] J'ai essayé d'implémenter PCANet

J'ai implémenté un réseau neuronal appelé PCANet.

Présentation de PCANet

Comme son nom l'indique, PCANet est un type de CNN qui calcule les poids de réseau par PCA (analyse en composantes principales).

avantage

PCANet présente les caractéristiques suivantes.

Ne nécessite pas d'étiquette d'enseignant

PCANet considère le patch découpé dans l'image comme un vecteur et sa composante principale est le poids du réseau. En général CNN, l'apprentissage est effectué en rétropropageant la différence entre la sortie cible et la sortie du réseau sur tout le réseau. En revanche, PCANet ne nécessite pas de label enseignant car une fois l'image donnée, l'apprentissage peut se faire simplement en appliquant PCA.

Désavantage

Étant donné que le modèle se compose uniquement d'opérations linéaires et de calculs d'histogrammes, il semble être moins expressif que les modèles non linéaires. Par exemple, La précision de l'identification dans CIFAR 10 n'a pas atteint 80%.

Vous voudrez peut-être utiliser PCANet lorsque vous dites: "La quantité de calcul n'est pas suffisante pour faire du Deep Learning, mais la précision est médiocre avec HoG."

À propos de la mise en œuvre

Il y a quelque chose que je ne comprends pas dans le journal

We then subtract patch mean from each patch

Cependant, on ne sait pas s'il s'agit de la moyenne des patchs extraits de toutes les images de l'ensemble de données ou de la moyenne des patchs extraits pour chaque image. Je pense que c'est probablement le dernier car il peut éliminer la différence de luminosité entre les images.

Je ne peux pas utiliser de mini-lots

Comme PCA est essentiellement un traitement par lots, il n'est pas possible de diviser les données en petits lots et de les apprendre comme des mini-lots. En conséquence, vous manquerez de mémoire lors de l'apprentissage avec des données très volumineuses. En tant que solution de mise en œuvre

Par conséquent, nous apporterons les améliorations nécessaires à l'avenir.

Recommended Posts

J'ai essayé d'implémenter PCANet
J'ai essayé d'implémenter StarGAN (1)
J'ai essayé d'implémenter Deep VQE
J'ai essayé de mettre en place une validation contradictoire
J'ai essayé d'implémenter Realness GAN
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
J'ai essayé de déboguer.
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
J'ai essayé d'implémenter CVAE avec PyTorch
J'ai essayé d'implémenter la lecture de Dataset avec PyTorch
J'ai essayé d'implémenter TOPIC MODEL en Python
J'ai essayé d'implémenter le tri sélectif en python
J'ai essayé de mettre en œuvre le problème du voyageur de commerce
J'ai essayé d'apprendre PredNet
J'ai essayé d'organiser SVM.
J'ai essayé de réintroduire Linux
J'ai essayé de présenter Pylint
J'ai essayé de résumer SparseMatrix
jupyter je l'ai touché
J'ai essayé de mettre en œuvre la gestion des processus statistiques multivariés (MSPC)
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé d'implémenter un pseudo pachislot en Python
J'ai essayé d'implémenter le poker de Drakue en Python
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé d'implémenter GA (algorithme génétique) en Python
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow
J'ai essayé d'implémenter SSD avec PyTorch maintenant (Dataset)
J'ai essayé d'implémenter le calcul automatique de la preuve de séquence
J'ai essayé de toucher Python (installation)
J'ai essayé d'expliquer l'ensemble de données de Pytorch
J'ai essayé l'authentification vocale Watson (Speech to Text)
J'ai touché l'API de Tesla
J'ai essayé de m'organiser à propos de MCMC.
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
J'ai essayé d'implémenter une ligne moyenne mobile de volume avec Quantx
J'ai essayé de mettre en œuvre le modèle de base du réseau neuronal récurrent
J'ai essayé d'implémenter la détection d'anomalies par apprentissage de structure clairsemée
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
J'ai essayé de mettre en œuvre une évasion (type d'évitement de tromperie) avec Quantx
[Django] J'ai essayé d'implémenter des restrictions d'accès par héritage de classe.
J'ai essayé d'implémenter ListNet d'apprentissage de rang avec Chainer
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai essayé de mettre en œuvre le chapeau de regroupement de Harry Potter avec CNN
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
J'ai essayé d'implémenter le blackjack du jeu Trump en Python
J'ai essayé d'implémenter SSD avec PyTorch maintenant (édition du modèle)
J'ai essayé de créer un linebot (implémentation)
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'utiliser Azure Speech to Text.
J'ai essayé de résumer la commande umask
J'ai essayé de créer un linebot (préparation)