Quelle est la différence entre les réseaux de neurones convolutionnels, les machines Boltzmann restreintes et les auto-encodeurs?

123

Récemment, j'ai lu sur l'apprentissage en profondeur et je suis confus sur les termes (ou dire technologies). Quelle est la différence entre

  • Réseaux de neurones convolutifs (CNN),
  • Machines Boltzmann restreintes (RBM) et
  • Auto-encodeurs?
RockTheStar
la source

Réponses:

237

Autoencoder est un simple réseau de neurones à 3 couches dans lequel les unités de sortie sont directement connectées aux unités d’entrée . Par exemple, dans un réseau comme celui-ci:

entrez la description de l'image ici

output[i]a un avantage input[i]pour tous i. Généralement, le nombre d'unités cachées est bien inférieur au nombre d'unités visibles (entrée / sortie). En conséquence, lorsque vous transmettez des données via un tel réseau, celui-ci compresse (code) le vecteur d'entrée pour "s'adapter" à une représentation plus petite, puis tente de le reconstruire (le décoder). La tâche de formation est de minimiser une erreur ou une reconstruction, c'est-à-dire de trouver la représentation compacte (codage) la plus efficace pour les données d'entrée.

RBM partage une idée similaire, mais utilise une approche stochastique. Au lieu de déterministe (par exemple, logistique ou ReLU), il utilise des unités stochastiques avec une distribution particulière (généralement binaire ou gaussienne). La procédure d'apprentissage consiste en plusieurs étapes d'échantillonnage de Gibbs (propager: échantillons de masques donnés visibles; reconstituer: échantillons visibles de masques donnés; répéter) et d'ajuster les poids pour minimiser les erreurs de reconstruction.

entrez la description de l'image ici

L’intuition derrière les RBM est qu’il existe des variables aléatoires visibles (par exemple des critiques de films de différents utilisateurs) et des variables cachées (comme des genres de films ou d’autres fonctionnalités internes), et la tâche de la formation est de déterminer comment ces deux ensembles de variables sont réellement utilisés. connectés les uns aux autres (vous trouverez plus d'informations sur cet exemple ici ).

Les réseaux de neurones convolutifs ressemblent quelque peu à ces deux réseaux , mais au lieu d’apprendre une matrice de poids globale unique entre deux couches, ils visent à trouver un ensemble de neurones localement connectés. Les CNN sont principalement utilisés dans la reconnaissance d'images. Leur nom vient de l' opérateur "convolution" ou simplement "filtre". En bref, les filtres sont un moyen facile d’effectuer des opérations complexes en modifiant simplement le noyau de convolution. Appliquez le noyau flou gaussien et vous obtiendrez un lissage. Appliquez le noyau Canny et vous verrez toutes les arêtes. Appliquez le noyau Gabor pour obtenir les fonctions de dégradé.

entrez la description de l'image ici

(image d' ici )

L'objectif des réseaux de neurones de convolution n'est pas d'utiliser un des noyaux prédéfinis, mais plutôt d' apprendre des noyaux spécifiques à des données . L’idée est la même que celle utilisée avec les autoencodeurs ou les RBM: traduire de nombreuses fonctionnalités de bas niveau (par exemple, critiques d’utilisateur ou pixels d’image) en représentation de haut niveau compressée (par exemple, genres de film ou bords), mais à présent, les poids ne sont appris que par des neurones. spatialement proches les uns des autres.

entrez la description de l'image ici

Les trois modèles ont leurs cas d'utilisation, leurs avantages et leurs inconvénients, mais les propriétés les plus importantes sont probablement:

  1. Les autoencodeurs sont les plus simples. Ils sont intuitivement compréhensibles, faciles à mettre en œuvre et à raisonner (par exemple, il est beaucoup plus facile de trouver de bons méta-paramètres pour eux que pour les RBM).
  2. Les RBM sont génératifs. Autrement dit, contrairement aux auto-encodeurs qui ne distinguent que certains vecteurs de données au profit d’autres, les RBM peuvent également générer de nouvelles données avec une distribution jointe donnée. Ils sont également considérés comme plus riches en fonctionnalités et flexibles.
  3. Les CNN sont des modèles très spécifiques qui sont principalement utilisés pour des tâches très spécifiques (bien que très populaires). La plupart des algorithmes de haut niveau en reconnaissance d'image sont basés sur les CNN actuels, mais en dehors de ce créneau, ils sont difficilement applicables (par exemple, quelle est la raison d'utiliser la convolution pour l'analyse de critiques de films?).

UPD.

Réduction de la dimensionnalité

nnXXmmm<nmles composants les plus importants sont ensuite utilisés comme nouvelle base. Chacune de ces composantes peut être considérée comme une caractéristique de haut niveau, décrivant les vecteurs de données mieux que les axes d'origine.

nm

Architectures profondes

mc1..cmX=Σje=1mwjecje

nmmk

Mais vous ne vous contentez pas d'ajouter de nouvelles couches. Sur chaque couche, vous essayez d’apprendre la meilleure représentation possible des données de la précédente:

entrez la description de l'image ici

Sur l'image ci-dessus, vous trouverez un exemple d'un tel réseau. Nous commençons avec des pixels ordinaires, procédons avec des filtres simples, puis avec des éléments de visage, pour finir avec des visages entiers! C'est l'essence de l'apprentissage en profondeur .

Notez maintenant que dans cet exemple, nous avons travaillé avec des données d'image et avons séquentiellement pris des zones de plus en plus grandes de pixels proches dans l'espace. Ça ne sonne pas pareil? Oui, car c'est un exemple de réseau convolutionnel profond . Qu'il soit basé sur des autoencodeurs ou des RBM, il utilise la convolution pour souligner l'importance de la localité. C'est pourquoi les CNN sont quelque peu distincts des auto-encodeurs et des RBM.

Classification

Aucun des modèles mentionnés ici ne fonctionne comme un algorithme de classification en soi. Au lieu de cela, ils sont utilisés pour la pré -formation - apprentissage des transformations d'une représentation de bas niveau difficile à consommer (comme les pixels) à une représentation de haut niveau. Une fois le réseau profond (ou peut-être pas aussi profond) pré-entraîné, les vecteurs d'entrée sont transformés en une meilleure représentation et les vecteurs résultants sont finalement transmis à un classificateur réel (tel que SVM ou régression logistique). Dans une image ci-dessus, cela signifie que tout en bas se trouve un composant supplémentaire qui effectue la classification.

petit ami
la source
3
@ffriend Explication très courte et claire. Il y a beaucoup d'écrits sur ces sujets mais votre briefing est fantastique. "RockTheStar" Si vous souhaitez des explications plus détaillées, vous pouvez lire ce livre de 100 pages de Yoshua Bengio (www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)
Javierfdr
qu'utiliseriez-vous pour prédire des séquences d'événements?
Skan
2
@skan: jetez un coup d'œil aux RNN . Plus précisément, LSTM est très populaire maintenant. Vous pouvez également poser une question distincte avec plus de détails pour obtenir une réponse qualifiée, car les RNN ne sont pas tout à fait mon domaine d'expertise.
ffriend
15

Toutes ces architectures peuvent être interprétées comme un réseau de neurones. La principale différence entre AutoEncoder et Convolutional Network réside dans le niveau de câblage du réseau. Les filets de convolution sont à peu près câblés. Le fonctionnement de la convolution est assez local dans le domaine de l'image, ce qui signifie beaucoup plus de parcellaire dans le nombre de connexions en vue de réseau neuronal. La mise en commun (sous-échantillonnage) dans le domaine de l’image est également un ensemble câblé de connexions neuronales dans le domaine neural. Ces contraintes topologiques sur la structure du réseau. Compte tenu de ces contraintes, la formation de CNN apprend les meilleurs poids pour cette opération de convolution (dans la pratique, il existe plusieurs filtres). Les CNN sont généralement utilisés pour les tâches d’image et de la parole pour lesquelles les contraintes de convolution sont une bonne hypothèse.

En revanche, les auto-encodeurs ne spécifient presque rien sur la topologie du réseau. Ils sont beaucoup plus généraux. L'idée est de trouver une bonne transformation neuronale pour reconstruire l'entrée. Ils sont composés d'un encodeur (projette l'entrée dans la couche cachée) et d'un décodeur (reprojecte la couche cachée en sortie). La couche cachée apprend un ensemble de caractéristiques latentes ou de facteurs latents. Les auto-encodeurs linéaires couvrent le même sous-espace avec PCA. Étant donné un ensemble de données, ils apprennent nombre de base pour expliquer le modèle sous-jacent des données.

Les RBM sont également un réseau de neurones. Mais l'interprétation du réseau est totalement différente. Les RBM interprètent le réseau non pas comme une rétroaction, mais comme un graphe bipartite dans lequel l’idée est d’apprendre la distribution de probabilité conjointe des variables cachées et des variables d’entrée. Ils sont considérés comme un modèle graphique. N'oubliez pas que AutoEncoder et CNN apprennent une fonction déterministe. Les RBM, en revanche, sont un modèle génératif. Il peut générer des échantillons à partir de représentations cachées apprises. Il existe différents algorithmes pour former des RBM. Cependant, à la fin de la journée, après avoir appris les RBM, vous pouvez utiliser ses pondérations de réseau pour l’interpréter comme un réseau à anticipation.

Cylonmath
la source
6

Les RBM peuvent être vus comme une sorte de codeur automatique probabiliste. En fait, il a été démontré que dans certaines conditions, ils deviennent équivalents.

Néanmoins, il est beaucoup plus difficile de montrer cette équivalence que de simplement croire que ce sont des bêtes différentes. En effet, j'ai du mal à trouver beaucoup de similitudes entre les trois, dès que je commence à regarder de près.

Par exemple, si vous écrivez les fonctions implémentées par un encodeur automatique, un RBM et un CNN, vous obtenez trois expressions mathématiques complètement différentes.

Bayerj
la source
1

Je ne peux pas vous en dire beaucoup sur les RBM, mais les autoencodeurs et les CNN sont deux types de choses différentes. Un autoencoder est un réseau de neurones formé de manière non supervisée. Le but d'un auto-codeur est de trouver une représentation plus compacte des données en apprenant un codeur, qui transforme les données en leur représentation compacte correspondante, et un décodeur, qui reconstruit les données d'origine. La partie codeur des autoencodeurs (et à l’origine, les RBM) a été utilisée pour apprendre les poids initiaux d’une architecture plus profonde, mais il existe d’autres applications. Essentiellement, un auto-codeur apprend à regrouper les données. En revanche, le terme CNN fait référence à un type de réseau de neurones qui utilise l'opérateur de convolution (souvent la convolution 2D lorsqu'il est utilisé pour des tâches de traitement d'image) pour extraire des caractéristiques des données. En traitement d'image, les filtres, qui sont alambiquées avec des images, sont appris automatiquement pour résoudre la tâche à accomplir, par exemple une tâche de classification. Que le critère d'apprentissage soit une régression / classification (supervisée) ou une reconstruction (non supervisée) est sans rapport avec l'idée de convolutions comme alternative aux transformations affines. Vous pouvez également avoir un CNN-autoencoder.

Sigurd
la source
autoencoder est une formation supervisée, car vous vous entraînez à générer les mêmes informations en sortie que l'entrée donnée, uniquement avec une couche cachée plus petite, de sorte que le réseau doit trouver un codage approprié, qui transforme l'entrée à la taille de la couche cachée et inversement. . Dans le cadre d’une formation non supervisée, telle qu’elle est utilisée dans les réseaux statistiques, tels que SOM ou Neural Gas, vous n’avez pas d’information sur la cible qui est présentée au réseau en sortie.
SCI