PCA和自动编码器有什么区别?


Answers:


52

PCA仅限于线性图,而自动编码器可以具有非线性编码器/解码器。

具有线性传递函数的单层自动编码器几乎等效于PCA,几乎意味着AE和PCA所找到的将不相同-而是各个W所跨越的子空间。WW


我懂了!所以我需要两层非线性转换。那么多层意味着非常复杂的非线性?
RockTheStar

7
@RockTheStar:重要的不是层数,而是激活函数[传递函数]。使用线性传递函数时,没有任何层数都会导致非线性自动编码器。
变形虫说恢复莫妮卡2014年

因此,使用非线性变换,即使只有1层隐藏单元。解决方案仍然是非线性的吗?
RockTheStar

是。(而且在某些情况下,它可能仍然是线性的,例如,当隐藏的单位在接近线性的区域被激活时。)
bayerj 2014年

“当隐藏单元在接近线性区域被激活时”,是指S型函数中的线性部分,对吗?
RockTheStar 2014年

17

正如bayerj指出的,PCA是一种假设线性系统的方法,而自动编码器(AE)则没有。如果AE中没有使用非线性函数,并且隐藏层中神经元的数量较小,则输入的维数较小,那么PCA和AE可以产生相同的结果。否则,AE可能会找到其他子空间。

需要注意的一件事是,AE中的隐藏层可能比输入的维数更大。在这种情况下,AE可能不会进行降维。在这种情况下,我们认为它们正在从一个特征空间转换为另一个特征空间,其中新特征空间中的数据解开了变化因子。

关于您的问题,即多层对Bayerj的响应是否意味着非常复杂的非线性。取决于您所说的“非常复杂的非线性”,这可能是正确的。但是,深度确实可以提供更好的概括。许多方法要求相等数量的样本等于区域数。然而,事实证明,根据Bengio等人的说法,“ 可以用O N )个示例定义非常多的区域,例如 ” 。这是由于表示复杂性的结果,该表示复杂性是由网络中较低层的较低特征组成的。O(2N)O(N)


2
感谢您的回答!
RockTheStar 2014年

6

这更适合作为评论,但由于我缺乏声誉,因此将其作为答案。

我对Bayerj:s的回答几乎感到困惑。阅读神经网络和主成分分析:从没有局部极小值的示例中学习,并给出证明。

pΣXX

那么这是否正是PCA所跨越的对应空间?


1
您引用的论文使用线性自动编码器,即没有非线性激活函数。这就是为什么其权重完全覆盖PCA所覆盖的相同子空间的原因。
elliotp

6

{xiRn}i=1NN nXx1,,xN

h1=W1x+b1x^=W2h1+b2

x^W1Rn×mW2Rm×nm<n

mW2mX

W2mXXn×NW2m×nW2O(m2n)XO(n2N)m<n

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.