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?
machine-learning
pca
neural-networks
autoencoders
RockTheStar
la source
la source
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)
la source
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.
N’est-ce pas alors exactement l’espace correspondant tel que défini par la PCA?
la source
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:{xi∈Rn}Ni=1 N n− X x1,…,xN
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^ W1∈Rn×m W2∈Rm×n m<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.m W2 m X
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 avecW2 m X X n×N W2 m×n W2 O(m2n) X O(n2N) m<n Ainsi, 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.
la source