[PYTHON] Apprentissage profond pour démarrer sans GPU

L'apprentissage en profondeur prend plusieurs semaines ou plus à apprendre sans PC avec GPU, et il est difficile de l'essayer facilement. De plus, le fait que le nombre de données d'entraînement soit souvent des dizaines de milliers ou plus est un autre facteur qui élève la barre. Par conséquent, cette fois, nous allons introduire une méthode d'apprentissage avec un PC sans GPU et un petit nombre de données.

Public cible

Problèmes d'apprentissage en profondeur

Il existe une méthode appelée apprentissage par transfert [^ 1] comme méthode pour résoudre ces problèmes. L'apprentissage par transfert est une méthode d'apprentissage seulement d'une partie du réseau qui a été apprise par un autre problème tel qu'ImageNet. Diverses méthodes ont été conçues, mais ce qui est important dans la pratique, c'est qu'elles fonctionnent souvent bien même si elles sont détournées vers un autre problème de classification d'images. [^ 2] (Exemple: classification de l'herbe et des oiseaux, reconnaissance faciale, jugement émotionnel, etc.)

Avantages de l'apprentissage par transfert

Il présente également les avantages suivants, c'est donc un moyen efficace lorsque vous voulez vous sentir libre de l'essayer.

Il existe différentes méthodes, mais j'ai récemment utilisé la méthode suivante.

  1. Collectez les images que vous souhaitez classer. (Veuillez faire de votre mieux pour collecter)
  2. Excluez la mauvaise image.
  3. Déposez l'image dans un espace de faible dimension à l'aide d'un réseau entraîné excluant la couche entièrement connectée.
  4. Trouvez la relation entre l'espace de faible dimension et la bonne réponse à l'aide de SVM [^ 3] et de l'augmentation de gradient [^ 4].

Remarque). Veuillez noter qu'environ 30% sont faux lors de la collecte par recherche d'images Google.

En utilisant l'apprentissage en profondeur uniquement là où il se situe dans un espace de faible dimension comme celui-ci, Il peut être résolu par une autre méthode d'apprentissage à grande vitesse sans apprentissage réseau fastidieux, de sorte qu'il peut être résolu même sur un PC sans GPU.

Expérience numérique

J'ai essayé de résoudre le problème de la classification d'un certain personnage d'anime avec les 3 modèles suivants. A). Un CNN simple, (32x32x3) qui apparaît principalement dans le tutoriel B). Couche ResNet-50 (32x32x3, je pense que c'est principalement utilisé pour les problèmes de classification récents) C). Couche ResNet-50 (réseau appris) + SVM Le taux de réponse correcte était A). 94,33%, B). 94,57%, C). 93,83%, respectivement. Le résultat est presque le même que le cas de la résolution avec CNN pur. Note) Il semble que j'ai fait des erreurs lors de la création des données d'entraînement, alors je me suis demandé si une personne sérieuse pouvait améliorer un peu plus les performances.

Dépôt

Il existe un code qui décrit les méthodes 3 et 4. Je suis heureux que vous puissiez l'utiliser comme référence.

Résumé

Nous avons introduit une méthode appelée apprentissage par transfert qui peut produire des performances raisonnablement bonnes sans PC avec un GPU par apprentissage par transfert. Je pense que cela dépend de l'application, mais cette méthode peut être classée même sur un PC sans GPU, alors pourquoi ne pas l'essayer?

References

Recommended Posts

Apprentissage profond pour démarrer sans GPU
Commencer l'apprentissage en profondeur
Deep Learning Gaiden ~ Programmation GPU ~
Introduction au Deep Learning ~ Règles d'apprentissage ~
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Introduction au Deep Learning ~ Rétropropagation ~
Introduction à l'apprentissage en profondeur ~ Approximation des fonctions ~
Introduction à l'apprentissage profond ~ Préparation au codage ~
L'apprentissage en profondeur
Introduction au Deep Learning ~ Dropout Edition ~
Introduction au Deep Learning ~ Propagation vers l'avant ~
Introduction à l'apprentissage profond ~ Expérience CNN ~
Apprentissage amélioré pour apprendre de zéro à profond
Introduction au Deep Learning ~ Pliage et mise en commun ~
Comment étudier le test Deep Learning G
Alignement d'image: du SIFT au deep learning
Mémorandum d'apprentissage profond
Apprentissage en profondeur Python
Apprentissage profond × Python
Introduction à l'apprentissage profond ~ Fonction de localisation et de perte ~
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
Premier apprentissage profond ~ Lutte ~
Python: pratique du Deep Learning
Fonctions d'apprentissage en profondeur / d'activation
Apprentissage profond à partir de zéro
Apprentissage profond / entropie croisée
Premier apprentissage profond ~ Préparation ~
Première solution d'apprentissage en profondeur ~
[AI] Apprentissage métrique profond
J'ai essayé le deep learning
Comment effectuer un apprentissage avec SageMaker sans délai d'expiration de session
Préparation au démarrage de «Python Machine Learning Programming» (pour macOS)
Django - démarrer le projet sans démarrer le projet
Python: réglage du Deep Learning
[Deep Learning Association E Qualification] Que faire pour recevoir
Learning Deep Forest, un nouveau dispositif d'apprentissage comparable à DNN
Technologie d'apprentissage en profondeur à grande échelle
Intelligence artificielle, machine learning, deep learning pour mettre en œuvre et comprendre
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
Introduction à l'apprentissage automatique
Une scène où le GPU est utile pour le deep learning?
Fonction d'apprentissage profond / softmax
[Partie 4] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
Essayez de créer un réseau de neurones / d'apprentissage en profondeur avec scratch
[Partie 3] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Evangelion] Essayez de générer automatiquement des lignes de type Asuka avec Deep Learning
(Maintenant) Construisez un environnement GPU Deep Learning avec GeForce GTX 960
Pour ceux qui souhaitent démarrer l'apprentissage automatique avec TensorFlow2
Créez une IA qui identifie le visage de Zuckerberg grâce à l'apprentissage en profondeur ③ (Apprentissage des données)
[Partie 2] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
J'ai capturé le projet Toho avec Deep Learning ... je le voulais.
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
J'ai essayé d'écrire dans un modèle de langage profondément appris
Je n'ai pas de GPU, mais je vais essayer le Deep Learning
estimation personnelle en temps réel (apprentissage en utilisant le GPU localement)
[Mémorandum d'apprentissage] Introduction à vim
Apprentissage profond à partir de zéro 1 à 3 chapitres
Essayez l'apprentissage en profondeur avec TensorFlow
<Cours> Apprentissage en profondeur: Day2 CNN
Une introduction à l'apprentissage automatique
Reconnaissance d'image par apprentissage profond 1 théorie