[PYTHON] Un amateur a essayé le Deep Learning avec Caffe (Vue d'ensemble)

introduction

Cet article

  1. Qu'est-ce que le Deep Learning? Vue d'ensemble (cet article)
  2. Installez Caffe, l'une des bibliothèques Deep Learning Introduction
  3. Faisons un apprentissage simple en utilisant Caffe Practice Il est composé de trois

Bien que ce soit également dans le titre, il s'agit d'un article sur un disque laissé par un amateur qui n'est ni un chercheur en Deep Learning ni quoi que ce soit, alors pardonnez-moi toute erreur et lisez-le. (S'il y a quelque chose qui ne va pas, j'apprécierais que vous le signaliez dans les commentaires)

Qu'est-ce que le Deep Learning en premier lieu?

En gros, il existe différents points de vue, mais Deep Learning rend Neural Network, qui est connu comme une sorte d'apprentissage automatique, étonnamment multicouche (Deep), et une grande quantité de données (images, etc.) qui ne peuvent être communément connues jusque-là. C'est l'une des méthodes d'apprentissage automatique qui permet d'apprendre des concepts d'ordre supérieur tels que les caractéristiques et les significations contenues dans les données à l'aide de la voix.

Pourquoi le Deep Learning attire l'attention

Deep Learning est né dans Paper publié par Geoffrey Hinton et al. Autour de l'année, dans le [Concours célèbre] de reconnaissance d'image (http://www.image-net.org/), c'était une évolution graduelle qui améliorait les performances de 1 à 2% par an, mais il était classé deuxième ou moins. Il s'est fait remarquer en remportant le championnat avec une énorme différence de performance de reconnaissance de 10% ou plus.

Récemment, Google a déclaré que les ordinateurs peuvent reconnaître les chats. Il a été rapporté que l'équipe UC Berkley a appris à utiliser le Deep Learning pour aider les robots à effectuer automatiquement des tâches simples. UC Berkley BRETT

De cette manière, il est également appliqué à l'apprentissage des robots, etc., et il est polyvalent car il a des performances extrêmement élevées et la machine peut automatiquement apprendre des pièces d'artisanat telles que les caractéristiques d'image conçues par des humains jusqu'à présent. Il attire l'attention en raison de sa haute sexualité et la recherche est promue partout dans le monde.

3 choses que vous devez savoir pour démarrer avec le Deep Learning avec Caffe

Bien sûr, je n'ai pas eu de mal à comprendre diverses choses (j'y suis toujours pas du tout), mais pour le moment, les amateurs vont commencer le Deep Learning! Avant cela, je n'écrirai brièvement que trois choses que vous devez savoir Neural Network Le Deep Learning est un type de réseau neuronal. Vous devez donc connaître le réseau neuronal. Alors, quel est exactement le réseau neuronal?

Neural Network est un modèle simplifié des échanges de signaux électriques effectués par les neurones du cerveau.

Dans Neural Network, les neurones sont modélisés comme celui qui émet un signal lorsque l'entrée pondérée dépasse un certain seuil, et plusieurs d'entre eux sont préparés et connectés.

Neural Network Image Extrait de Wikipedia

Dans cet exemple, il y a 3 neurones en entrée, 4 en caché et 2 en sortie, l'entrée est connectée à caché et caché est connecté à la sortie dans un sens (il y a aussi un réseau de neurones qui se connecte les uns aux autres, mais je ne vais pas l'expliquer. ) De plus, bien que non représenté sur la figure, pensez que le poids ci-dessus est sur chaque flèche. Ensuite, procédez comme suit:

  1. Donnez une valeur de sortie (valeur numérique) à chaque neurone d'entrée
  2. Pour chaque flèche d'entrée et cachée, calculez le poids de la flèche d'entrée * et donnez-le aux neurones cachés connectés.
  3. Chaque neurone caché ajoute un geta appelé valeur de biais à la somme des valeurs entrées en 2. et le produit s'il dépasse la valeur de seuil.
  4. Lisez l'entrée comme cachée et cachée comme sortie et faites-en quelques-unes.
  5. Obtenez la sortie de Output

J'omettrai les détails des formules, mais celles-ci seront finalement exprimées et calculées sous forme d'opérations matricielles. Pour le moment, je pense qu'il serait bon d'avoir l'image que chaque neurone reçoit l'entrée d'autres neurones et la transmet au neurone suivant qui est au-dessus d'un certain niveau. En faisant cela, nous avons pu modéliser l'échange de signaux électriques qui se propagent les uns après les autres dans le cerveau.

Dans Deep Learning, augmentez le nombre de couches (deep = Deep) pour que cela devienne Entrée → Caché → Caché → ・ ・ ・ (plusieurs) ・ ・ ・ → Caché → Sortie.

Ensuite, par exemple, placez l'image, c'est-à-dire la valeur de chaque pixel dans Input, et ajustez la valeur de poids de sorte que le neurone supérieur de Output soit 1 si l'image est un chat et 0 sinon. C'est apprendre sur le réseau neuronal Ensuite, (espérons-le) ce neurone se déclenchera s'il s'agit d'un chat, cela se déclenchera s'il s'agit d'un humain, et ainsi de suite, la sortie répondra en fonction de l'image d'entrée, et le réseau créera un concept plus élevé de chat ou d'humain à partir de l'image. Vous pourrez reconnaître

GPU Après tout, Neural Network répète les opérations de la matrice pour procéder à l'apprentissage. Bien sûr, le calcul se fait à l'aide d'un ordinateur, mais en Deep Learning, comme le nom l'indique "Deep", l'opération de matrice s'exécute beaucoup pendant l'apprentissage. Si le calcul prend beaucoup de temps, cela peut prendre des jours pour obtenir le résultat d'apprentissage, ce qui pose problème.

Nous utilisons donc GPU. Le GPU est à l'origine destiné à accélérer le traitement graphique que le CPU ne peut pas faire beaucoup, mais le GPU a plus de cœurs que le CPU et crée des milliers de threads pour traiter la même chose en parallèle. Il a la particularité de bien le faire avec sérieux. En revanche, les opérations matricielles répètent la somme et le produit des lignes et des colonnes, mais elles peuvent être calculées indépendamment (le calcul des lignes 2 et des colonnes 2 doit être attendu pour la multiplication des lignes 1 et des colonnes 1). Ce n'est pas que vous ne pouvez pas le faire), il est donc très approprié pour le traitement sur GPU. L'utilisation de GPU au lieu de CPU réduit le temps requis pour l'apprentissage final, il est donc très courant dans la zone Deep Learning d'utiliser des GPU pour les calculs, et il est recommandé d'utiliser des GPU dans les bibliothèques décrites ci-dessous.

En particulier, la bibliothèque d'utilisation du GPU appelée CUDA émise par nVidia est souvent utilisée. Veuillez vérifier s'il s'agit d'un GPU compatible CUDA tel qu'il est écrit dans le mode d'emploi de la carte graphique avec la puce nVidia. Liste des puces compatibles CUDA (Je suis désolé si ce n'est pas nVidia en premier lieu. Si la carte graphique compatible CUDA est bon marché, vous pouvez l'acheter à partir d'environ 20 000 yens!)

Au fait, je n'ai pas un tel GPU! Je n'ai pas l'intention de l'acheter! Même si vous dites cela, Caffe, qui sera décrit plus tard, peut exécuter l'apprentissage (même si ce sera plus lent) même si vous utilisez le processeur. De plus, si les données sont petites, l'apprentissage peut être effectué en quelques dizaines de secondes à quelques minutes, même avec le processeur.

Pour le moment, je pense que vous devez vous rappeler que si vous utilisez GPU en Deep Learning, l'apprentissage se terminera plus rapidement que le CPU.

Bibliothèque d'apprentissage en profondeur

Pour démarrer avec Deep Leaning, vous pouvez coder à partir de zéro pour modéliser Neuron et créer des mécanismes d'apprentissage, mais Deep Learning dispose d'une bibliothèque pratique pour faciliter l'apprentissage. Beaucoup sont ouverts au public Ici, nous allons faire du Deep Learning en utilisant Caffe, qui est l'une des bibliothèques qu'il contient.

En plus de Caffe, il existe des bibliothèques telles que Theano et Torch.

Il n'y a pas de raison claire, mais l'information selon laquelle c'est plus facile (probablement) que Theano, et que la bibliothèque est écrite en C ++ et peut être utilisée à partir de Python, il semble donc que le seuil d'apprentissage en termes de langage de programmation soit bas, alors voici Caffe Procéder à

Ce que je veux dire, c'est qu'il y a une bibliothèque pour que vous puissiez le faire sans aucune connaissance.

à la fin

Vous êtes maintenant prêt à démarrer le Deep Learning Dans le prochain article, je voudrais expliquer la procédure d'installation de Caffe sur Ubuntu.

Matériel de référence

Deep Learning Caffe Video of Deep Learning Lecture at Nara Advanced University (anglais) Introduction à la programmation CUDA

Recommended Posts

Un amateur a essayé le Deep Learning avec Caffe (Vue d'ensemble)
Un amateur a essayé le Deep Learning avec Caffe (Introduction)
Un amateur a essayé le Deep Learning en utilisant Caffe (Practice)
J'ai essayé l'apprentissage en profondeur avec Theano
J'ai essayé le deep learning
J'ai essayé d'exécuter le didacticiel de détection d'objets en utilisant le dernier algorithme d'apprentissage en profondeur
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 2
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 3
J'ai essayé d'héberger un modèle d'apprentissage en profondeur de TensorFlow à l'aide de TensorFlow Serving
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 7
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 4
Un amateur a trébuché dans le Deep Learning à partir de zéro.
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 2
J'ai essayé l'apprentissage par renforcement avec PyBrain
Modèle de reconnaissance d'image utilisant l'apprentissage profond en 2016
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow)
[Kaggle] J'ai essayé l'apprentissage d'ensemble avec LightGBM
[Python] Lorsqu'un amateur commence l'apprentissage automatique
J'ai essayé d'héberger le modèle d'apprentissage en profondeur de Pytorch avec TorchServe sur Amazon SageMaker
L'apprentissage en profondeur
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
Les débutants du Deep Learning ont essayé les prévisions météorologiques à partir d'images satellitaires météorologiques à l'aide de Keras
J'ai essayé l'histoire courante de prédire la moyenne Nikkei à l'aide du Deep Learning (backtest)
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
J'ai essayé d'utiliser PyEZ et JSNAPy. Partie 1: Aperçu
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow) - Partie 2
[Recherche causale / inférence causale] Effectuer une recherche causale (SAM) à l'aide du Deep Learning
Prévision du cours de l'action à l'aide du Deep Learning [acquisition de données]
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Apprentissage en profondeur Python
Apprentissage profond × Python
[Bouclier d'épée Pokémon] J'ai essayé de visualiser la base de jugement de l'apprentissage en profondeur en utilisant la classification des trois familles comme exemple
Réflexion sur les tactiques de croissance de type attaque de groupe en utilisant l'apprentissage en profondeur
J'ai essayé d'apprendre mon propre ensemble de données en utilisant Chainer Trainer
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
J'ai essayé de devenir un Ann Man en utilisant OpenCV
Apprentissage automatique avec des images de catégorie Caffe -1 à l'aide du modèle de référence
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
Apprenons en profondeur! Sous Windows (VS2013 + caffe + CUDA7.5 + cudnn5.1)
Collecte et automatisation d'images érotiques à l'aide du deep learning
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
[Deep Learning from scratch] J'ai essayé d'expliquer la confirmation du gradient d'une manière facile à comprendre.