web-dev-qa-db-fra.com

Réseaux de croyances profondes vs réseaux de neurones convolutifs

Je suis nouveau dans le domaine des réseaux de neurones et j'aimerais connaître la différence entre les réseaux de croyances profondes et les réseaux convolutionnels. De plus, existe-t-il un réseau de convolution profonde qui est la combinaison de la croyance profonde et des réseaux neuronaux convolutionnels?

C'est ce que j'ai rassemblé jusqu'à présent. S'il vous plait corrigez moi si je me trompe.

Pour un problème de classification d'image, les réseaux de croyances profondes ont de nombreuses couches, chacune étant entraînée à l'aide d'une stratégie gourmande en couches. Par exemple, si ma taille d'image est de 50 x 50, et que je veux un Deep Network avec 4 couches à savoir

  1. Couche d'entrée
  2. Couche cachée 1 (HL1)
  3. Couche cachée 2 (HL2)
  4. Couche de sortie

Ma couche d'entrée aura 50 x 50 = 2500 neurones, HL1 = 1000 neurones (par exemple), HL2 = 100 neurones (par exemple) et la couche de sortie = 10 neurones, afin de former les poids (W1) entre la couche d'entrée et HL1, I utilisez un AutoEncoder (2500 - 1000 - 2500) et apprenez W1 de taille 2500 x 1000 (Ceci est un apprentissage non supervisé). Ensuite, je fais avancer toutes les images à travers les premières couches cachées pour obtenir un ensemble de fonctionnalités, puis j'utilise un autre encodeur automatique (1000 - 100 - 1000) pour obtenir le prochain ensemble de fonctionnalités et enfin utiliser une couche softmax (100 - 10) pour la classification. (seul l'apprentissage des poids de la dernière couche (HL2 - Sortie qui est la couche softmax) est un apprentissage supervisé).

(Je pourrais utiliser RBM au lieu de l'encodeur automatique).

Si le même problème était résolu en utilisant Réseaux neuronaux convolutionnels , alors pour des images d'entrée 50x50, je développerais un réseau utilisant seulement 7 x 7 correctifs (disons). Mes couches seraient

  1. Couche d'entrée (7 x 7 = 49 neurones)
  2. HL1 (25 neurones pour 25 caractéristiques différentes) - (couche de convolution)
  3. Couche de mise en commun
  4. Couche de sortie (Softmax)

Et pour apprendre les poids, je prends 7 x 7 patchs à partir d'images de taille 50 x 50, et j'avance à travers la couche convolutionnelle, donc j'aurai 25 cartes de caractéristiques différentes de taille (50 - 7 + 1) x (50 - 7 + 1) = 44 x 44.

J'utilise ensuite une fenêtre de 11x11 pour la mise en commun de la main, ce qui donne 25 cartes de caractéristiques de taille (4 x 4) pour la sortie de la couche de mise en commun. J'utilise ces cartes de caractéristiques pour la classification.

Lors de l'apprentissage des pondérations, je n'utilise pas la stratégie des couches comme dans les réseaux de croyances profondes (apprentissage non supervisé), mais j'utilise plutôt un apprentissage supervisé et j'apprends les poids de toutes les couches simultanément. Est-ce correct ou existe-t-il une autre façon d'apprendre les poids?

Ce que j'ai compris est-il correct?

Donc, si je veux utiliser les DBN pour la classification des images, je devrais redimensionner toutes mes images à une taille particulière (disons 200x200) et avoir autant de neurones dans la couche d'entrée, alors que dans le cas des CNN, je ne m'entraîne que sur un plus petit patch du entrée (disons 10 x 10 pour une image de taille 200x200) et convoluer les poids appris sur l'image entière?

Les DBN fournissent-ils de meilleurs résultats que les CNN ou dépendent-ils uniquement de l'ensemble de données?

Merci.

37
user3705926

De manière générale, les DBN sont des réseaux de neurones génératifs qui empilent les machines Boltzmann restreintes (RBM). Vous pouvez considérer les RBM comme des auto-encodeurs génératifs; Si vous voulez un réseau de croyances profondes, vous devez empiler les RBM et non les auto-encodeurs ordinaires, car Hinton et son élève Yeh ont prouvé que l'empilement des RBM aboutit à des réseaux de croyances sigmoïdes.

Les réseaux de neurones convolutifs se sont mieux comportés que les DBN par eux-mêmes dans la littérature actuelle sur les ensembles de données de référence en vision par ordinateur tels que MNIST. Si l'ensemble de données n'est pas une vision par ordinateur, alors les DBN peuvent très certainement mieux fonctionner. En théorie, les DBN devraient être les meilleurs modèles, mais il est très difficile d'estimer avec précision les probabilités conjointes pour le moment. Vous pouvez être intéressé par Lee et. les travaux de al (2009) sur les réseaux de croyances profondes convolutionnelles qui cherchent à combiner les deux.

22
rahulm

Je vais essayer d'expliquer la situation en apprenant des chaussures.

Si vous utilisez DBN pour apprendre ces images, c'est la mauvaise chose qui se produira dans votre algorithme d'apprentissage

  • il y aura des chaussures à différents endroits.

  • tous les neurones vont essayer d'apprendre non seulement les chaussures mais aussi la place des chaussures dans les images car il n'aura pas le concept de "patch d'image locale" à l'intérieur des poids.

  • DBN est logique si toutes vos images sont alignées au moyen de la taille, de la translation et de la rotation.

l'idée des réseaux convolutifs est qu'il existe un concept appelé partage de poids. Si j'essaie d'étendre ce concept de "partage du poids"

  • vous avez d'abord examiné les patchs 7x7, et selon votre exemple - comme un exemple de 3 de vos neurones dans la première couche, vous pouvez dire qu'ils ont appris les parties des chaussures 'avant', 'arrière-bas' et 'arrière-supérieur' comme celles-ci se ressemblerait pour un patch 7x7 à travers toutes les chaussures.

    • Normalement, l'idée est d'avoir plusieurs couches de convolution l'une après l'autre pour apprendre

      • lignes/bords dans la première couche,
      • arcs, coins dans la deuxième couche,
      • des concepts supérieurs dans des couches supérieures comme des chaussures à l'avant, des yeux dans un visage, une roue dans une voiture ou des triangles à cônes triangles comme des combinaisons primitives mais pourtant de sorties de couches précédentes.
    • Vous pouvez penser à ces 3 choses différentes que je vous ai dites comme 3 neurones différents. Et ces zones/neurones dans vos images se déclenchent quand il y a des chaussures dans une partie de l'image.

    • Le regroupement protégera vos activations supérieures tout en sous-échantillonnant vos images et en créant un espace de dimension inférieure pour rendre les choses plus faciles et réalisables sur le plan informatique.

    • Donc, à la dernière couche, lorsque vous regardez votre 25X4x4, c'est-à-dire un vecteur à 400 dimensions, s'il y a une chaussure quelque part dans l'image, vos `` neurones de chaussure '' seront actifs tandis que les neurones sans chaussure seront proches de zéro.

    • Et pour comprendre quels neurones sont destinés aux chaussures et lesquels ne le sont pas, vous mettrez ce vecteur à 400 dimensions dans un autre classificateur supervisé (cela peut être quelque chose comme multi-classe-SVM ou comme vous l'avez dit une couche soft-max)

Je peux vous conseiller de jeter un coup d'œil au document de Fukushima 1980 pour comprendre ce que j'essaie de dire sur l'invariance de la traduction et la ligne -> arc -> demi-cercle -> devant de chaussure -> idée de chaussure ( http: //www.cs .princeton.edu/courses/archive/spr08/cos598B/Lectures/Fukushima1980.pdf ). Le simple fait de regarder les images sur le papier vous donnera une idée.

20
Doga Siyli