Quelles sont les différences entre PCA et autoencoder?

56

La PCA et l’auto-encodeur peuvent tous deux réduire la démence. Quelle est la différence entre eux? Dans quelle situation devrais-je utiliser l'un plutôt que l'autre?

RockTheStar
la source

Réponses:

52

La PCA est limitée à une carte linéaire, alors que les encodeurs automatiques peuvent avoir des encodeurs / décodeurs non linéaires.

Un encodeur automatique monocouche avec une fonction de transfert linéaire est presque équivalent à PCA, ce qui signifie presque que le trouvé par AE et PCA ne sera pas le même, mais que le sous-espace couvert par la volonté du respectif .WW

Bayerj
la source
Je vois! J'ai donc besoin de deux couches pour la transformation non linéaire. Donc, plusieurs couches signifie non-complexe très complexe?
RockTheStar
7
@RockTheStar: ce n'est pas le nombre de couches qui compte, mais la fonction d'activation [fonction de transfert]. Avec la fonction de transfert linéaire, aucun nombre de couches ne conduira à un auto-codeur non linéaire.
amibe dit de réintégrer Monica
Donc, avec une transformation non linéaire, même s'il n'y a qu'une couche d'unité cachée. La solution est toujours non linéaire?
RockTheStar
Oui. (En outre, il peut rester linéaire dans certains cas, par exemple lorsque les unités cachées sont activées dans des régions presque linéaires.)
bayerj
"quand les unités cachées sont activées dans les régions presque linéaires", vous voulez dire la partie linéaire dans la fonction sigmoïde, non?
RockTheStar
17

Comme le souligne bayerj, la PCA est une méthode reposant sur des systèmes linéaires, contrairement à la méthode des auto-encodeurs (AE). Si aucune fonction non linéaire n'est utilisée dans l'AE et que le nombre de neurones dans la couche cachée est de dimension inférieure à celle de l'entrée, PCA et AE peuvent alors donner le même résultat. Sinon, l'AE peut trouver un sous-espace différent.

Une chose à noter est que la couche masquée dans un AE peut avoir une plus grande dimensionnalité que celle de l'entrée. Dans de tels cas, les EI peuvent ne pas être en train de réduire la dimensionnalité. Dans ce cas, nous les percevons comme effectuant une transformation d'un espace de fonctions à un autre dans lequel les données du nouvel espace de fonctions démêlent les facteurs de variation.

En ce qui concerne votre question sur la question de savoir si plusieurs couches correspondent à une réponse non complexe très complexe à bayerj. Selon ce que vous entendez par "non complexe très complexe", cela pourrait être vrai. Cependant, la profondeur offre vraiment une meilleure généralisation. De nombreuses méthodes requièrent un nombre égal d'échantillons égal au nombre de régions. Cependant, il s'avère qu'un "très grand nombre de régions, par exemple , peuvent être définies avec des exemples " selon Bengio et al . Cela est dû à la complexité de la représentation résultant de la composition des entités inférieures à partir des couches inférieures du réseau.O(2N)O(N)

DaemonMaker
la source
2
merci pour vos ans!
RockTheStar
6

Cela convient mieux comme commentaire, mais comme la réputation me manque, sa réponse sera donnée.

J'ai un peu confondu la notion de presque dans la réponse de bayerj: s. Lecture de réseaux de neurones et d’analyse en composantes principales: Tirer des exemples sans minima locaux où la preuve est donnée.

« » Dans le cas autoassociatif ... et donc la carte locale unique et globalement optimale W est la projection orthogonale sur l'espace engendré par les premiers vecteurs propres de « » pΣXX

N’est-ce pas alors exactement l’espace correspondant tel que défini par la PCA?

johnblund
la source
1
Le document que vous citez utilise un auto-codeur linéaire, c’est-à-dire aucune fonction d’activation non linéaire. C'est pourquoi ses poids couvrent exactement le même sous-espace que celui traité par PCA.
elliotp
6

La réponse actuellement acceptée de @bayerj indique que les poids d'un autoencodeur linéaire couvrent le même sous-espace que les composants principaux trouvés par PCA, mais qu'ils ne sont pas les mêmes vecteurs. En particulier, ils ne constituent pas une base orthogonale. Cela est vrai, cependant, nous pouvons facilement récupérer les composants principaux chargeant des vecteurs à partir des poids autoencoder. Un petit peu de notation: soit soit un ensemble de vecteurs à dimensions, pour lesquels nous souhaitons calculer PCA, et soit la matrice dont les colonnes sont . Définissons ensuite un auto-codeur linéaire en tant que réseau de neurones à couche cachée défini par les équations suivantes:{xiRn}i=1NN nXx1,,xN

h1=W1x+b1x^=W2h1+b2

où est la sortie de l'auto-codeur (linéaire), indiquée par un chapeau afin de souligner le fait que la sortie d'un auto-codeur est une "reconstruction" de l'entrée. Notez que, comme c'est le cas le plus souvent avec les autoencodeurs, la couche cachée a moins d'unités que la couche d'entrée, c'est-à-dire et avec .x^W1Rn×mW2Rm×nm<n

Maintenant, après avoir formé votre auto-encodeur linéaire, calculez les premiers vecteurs singuliers de . Il est possible de prouver que ces vecteurs singuliers sont en réalité les premiers composants principaux de , comme en témoigne Plaut, E., Des sous-espaces principaux aux composants principaux avec des autoencodeurs linéaires, Arxiv.org : 1804.10253.mW2mX

Depuis SVD est en fait l'algorithme couramment utilisé pour calculer PCA, il pourrait sembler inutile de premier train une autoencoder linéaire puis appliquer SVD à afin de récupérer ensuite les premiers vecteurs de chargement, plutôt que d' appliquer directement SVD à . Le fait est que est une matrice , alors que est . Maintenant, la complexité temporelle de SVD pour est , alors que pour est avecW2mXXn×NW2m×nW2O(m2n)XO(n2N)m<nAinsi, certaines économies pourraient être réalisées (même si elles n’étaient pas aussi grandes que ce que prétendait l’auteur du document que je lie). Bien sûr, il existe d'autres approches plus utiles pour calculer l'ACP du Big Data (on peut penser à l'APC en ligne randomisée), mais le point central de cette équivalence entre les auto-encodeurs linéaires et l'APC n'est pas de trouver un moyen pratique de calculer l'APC pour des données volumineuses. sets: il s’agit plus de nous donner une intuition sur les liens entre les auto-encodeurs et d’autres approches statistiques de la réduction des dimensions.

DeltaIV
la source