Comment les encodeurs automatiques peuvent-ils être utilisés pour le clustering?


9

Supposons que j'ai un ensemble de signaux du domaine temporel sans aucune étiquette . Je veux les regrouper en 2 ou 3 classes. Les encodeurs automatiques sont des réseaux non supervisés qui apprennent à compresser les entrées. Donc, étant donné une entrée , les poids et , les biais et et la sortie , nous pouvons trouver les relations suivantes:x(i)W1W2b1b2x^(i)

z(i)=W1x(i)+b1
x^(i)=W2z(i)+b2

Donc serait une forme compressée de , et la reconstruction de ce dernier. Jusqu'ici tout va bien.z(i)x(i)x^(i)

Ce que je ne comprends pas, c'est comment cela pourrait être utilisé pour le clustering (s'il existe un moyen de le faire). Par exemple, dans la première figure de cet article , il y a un schéma fonctionnel que je ne suis pas sûr de comprendre. Il utilise le comme entrées pour le réseau à action directe, mais il n'y a aucune mention de la façon dont ce réseau est formé. Je ne sais pas s'il y a quelque chose que j'ignore ou si le document est incomplet. De plus, ce didacticiel à la fin montre les poids appris par l'autoencodeur, et ils semblent être des noyaux qu'un CNN apprendrait à classer les images. Donc ... Je suppose que les poids de l'auto-encodeur peuvent être utilisés d'une manière ou d'une autre dans un réseau à action directe pour la classification, mais je ne sais pas comment.z(i)

Mes doutes sont:

  1. Si est un signal du domaine temporel de longueur (c'est-à-dire ), peut être un vecteur aussi? En d'autres termes, serait-il logique que soit une matrice avec une de ses dimensions supérieure à ? Je crois que non, mais je veux juste vérifier.x(i)Nx(i)R1×Nz(i)z(i)1
  2. Laquelle de ces quantités constituerait l'entrée d'un classificateur? Par exemple, si je veux utiliser un MLP classique qui a autant d'unités de sortie que de classes dans lesquelles je veux classer les signaux, que dois-je mettre à l'entrée de ce réseau entièrement connecté ( , , autre chose)?z(i)x^(i)
  3. Comment puis-je utiliser les poids et les biais appris dans ce MLP? N'oubliez pas que nous avons supposé qu'aucune étiquette n'est disponible, il est donc impossible de former le réseau. Je pense que les et devraient être utiles d'une manière ou d'une autre dans le réseau entièrement connecté, mais je ne vois pas comment les utiliser.Wibi

Observation: notez que j'ai utilisé un MLP comme exemple car c'est l'architecture la plus basique, mais la question s'applique à tout autre réseau de neurones qui pourrait être utilisé pour classer les signaux du domaine temporel.

Réponses:


11

Le regroupement est difficile à faire dans des dimensions élevées car la distance entre la plupart des paires de points est similaire. L'utilisation d'un encodeur automatique vous permet de représenter à nouveau des points de haute dimension dans un espace de dimension inférieure. Il ne fait pas de clustering en soi - mais c'est une étape de prétraitement utile pour une étape de clustering secondaire. Vous mapperiez chaque vecteur d'entrée à un vecteur (pas une matrice ...) avec une dimensionnalité plus petite, disons 2 ou 3. Vous utiliseriez alors un autre algorithme de regroupement sur toutes les valeurs . xizizi

Peut-être que quelqu'un d'autre peut jouer sur l'utilisation des encodeurs automatiques pour les séries temporelles, parce que je ne l'ai jamais fait. Je soupçonne que vous voudriez que l'une des couches soit une couche convolutionnelle 1D, mais je ne suis pas sûr.

Certaines personnes utilisent également des encodeurs automatiques comme étape de prétraitement des données pour la classification. Dans ce cas, vous devez d'abord utiliser un encodeur automatique pour calculer le mappage -to- , puis jeter la partie -to- et utiliser le mappage -to- comme première couche du MLP.xzzx^xz


Et dans le dernier cas, comment les poids des autres couches du MLP seraient-ils appris si les données sont totalement non étiquetées? Ou cette approche (c'est-à-dire la combinaison autoencoder-MLP) n'aurait-elle de sens que si des étiquettes sont disponibles?
Tendero

Oui, un MLP (aka réseau de neurones à action directe) n'est vraiment utilisé que si les données sont étiquetées. Sinon, vous n'avez aucune information à utiliser pour mettre à jour les poids. Un encodeur automatique est en quelque sorte une façon «astucieuse» d'utiliser les réseaux de neurones car vous essayez de prédire l'entrée d'origine et n'avez pas besoin d'étiquettes.
tom

Donc, la seule façon d'utiliser un NN pour faire du clustering serait la méthode que vous avez mentionnée, non? À savoir, utilisez un encodeur automatique, puis exécutez un algorithme de clustering standard tel que K-means.
Tendero

C'est la seule façon que je connaisse. Si quelqu'un d'autre a une idée, je serais heureuse de l'entendre. Vous pouvez essayer d'autres algorithmes en plus de K-means, car il existe des hypothèses assez strictes associées à cet algorithme particulier (mais c'est toujours une bonne chose d'essayer d'abord b / c, c'est rapide et facile).
tom

1

Avant de demander «comment utiliser l'encodeur automatique pour regrouper les données? nous devons d'abord demander «Les encodeurs automatiques peuvent-ils regrouper les données?


Puisqu'un autoencodeur apprend à recréer les points de données à partir de l'espace latent. Si nous supposons que l'autoencodeur mappe l'espace latent de «manière continue», les points de données qui proviennent du même cluster doivent être mappés ensemble. Ainsi, d'une certaine manière, l'encodeur regroupera des points similaires «ensemble», les regroupera «ensemble». Nous avons vu dans la littérature que les auto-encodeurs ne tiennent pas cette hypothèse de continuité dans l'espace latent.

Mais à notre avantage, les codeurs automatiques variationnels fonctionnent exactement de cette manière. Les codeurs variationnels apprennent les mappages d'espace latent avec les deux propriétés principales: continuité, exhaustivité1.
  • La propriété de continuité garantit que deux points proches l'un de l'autre dans l'espace latent ne donnent pas deux sorties complètement différentes lors du décodage.
  • La propriété d'exhaustivité garantit que lors de l'échantillonnage, un point de l'espace latent donnera une sortie significative lors du décodage.

Par conséquent, l'utilisation d'un encodage autoencoders peut elle-même, peut parfois être suffisante. Cependant, un travail a été fait pour improviser / apprendre explicitement le clustering. L'algorithme proposé par Xie et al. (2016) 2 en est un exemple, qui "affine de manière itérative les grappes avec une distribution cible auxiliaire dérivée d'une affectation de grappe souple actuelle".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.