Y a-t-il une différence entre la formation d'un autoencodeur empilé et un réseau neuronal à 2 couches?

14

Disons que j'écris un algorithme pour construire un autoencodeur empilé à 2 couches et un réseau neuronal à 2 couches. S'agit-il des mêmes choses ou de la même différence?

Ce que je comprends, c'est que lorsque je crée un encodeur automatique empilé, je crée couche par couche. Pour le réseau neuronal, j'initialisais tous les paramètres dans le réseau, puis pour chaque point de données, je le passais à travers le réseau et calculais la perte (par exemple, la distance eucléenne) et faisais une rétropropagation.

RockTheStar
la source

Réponses:

16

Les auto-encodeurs empilés et les réseaux de neurones multicouches sont différents. En pratique, vous aurez les deux réseaux partager des poids et éventuellement partager des tampons de mémoire. Ainsi, dans votre mise en œuvre, les deux réseaux se confondent.

En règle générale, les encodeurs automatiques sont formés de manière non supervisée, gourmande et par couche. (Pas d'étiquettes, commencez la formation avec seulement la première couche du réseau, puis ajoutez de nouvelles couches au fur et à mesure.) Les poids peuvent être appris en utilisant une variété de techniques allant de la descente de gradient "par lots" (veuillez ne pas le faire), à la descente de gradient stochastique en mini-lots (SGD), à des méthodes quasi-Newton comme L-BFGS.

L'idée est que les pondérations apprises de manière non supervisée pour minimiser les erreurs de reconstruction pour la tâche d'apprentissage de la représentation offrent un bon point de départ pour initialiser un réseau pour une tâche discriminante supervisée telle que la classification ou la similitude. C'est-à-dire que le réseau apprend quelque chose sur la distribution sous-jacente en examinant les données non étiquetées, lui permettant de faire la distinction entre les données étiquetées. Cependant, les poids doivent encore être «affinés» pour cette nouvelle tâche. Ajoutez donc une couche de régression logistique au sommet du réseau, puis effectuez un apprentissage supervisé avec un ensemble de données étiqueté. L'étape de réglage fin effectuera une descente de gradient et ajustera les poids pour toutes les couches du réseau simultanément.

Les avantages de cette façon de former les réseaux neuronaux sont:

  1. La formation non supervisée vous permet d'afficher plus de données sur le réseau, car il est beaucoup plus facile d'obtenir de grands ensembles de données non supervisés que d'en obtenir des étiquetés.
  2. Vous pouvez utiliser le réseau pré-formé comme «point de départ» pour former de nouveaux classificateurs afin de ne pas avoir à recommencer à zéro à chaque fois.

Pour l'article, voir Autoencoders de débruitage empilé: apprentissage de représentations utiles dans un réseau profond avec un critère de débruitage local .

sabalaba
la source
Je suis confus à propos de la deuxième étape où vous entraînez la couche d'encodage avec une couche de classification (par exemple, la couche softmax) pour une tâche de classification. Réutilisez-vous à nouveau le jeu de données de formation pour cette partie pour apprendre les étiquettes? Je trouve cela étrange parce que l'ensemble d'entraînement a été utilisé pour apprendre une approximation de lui-même.
gars
Cela n'a pas beaucoup de sens si vous avez de toute façon toutes les données étiquetées. C'est plus pour les situations où vous avez beaucoup plus de données sans étiquette à pré-former, puis utilisez les données étiquetées «formation» pour affiner.
meow