评估自动编码器:可能的方法?

机器算法验证 机器学习 主成分分析 深度学习 降维 自动编码器
2022-03-22 15:23:26

文献表明,Antoencoders 可以像 PCA 一样有效地降低维度。可以根据生成的每个主成分的方差来评估 PCA。如何为自动编码器做同样的事情?

一种方法是我们可以从自动编码器的编码表示中重建输入,并可以检查重建误差。但是我们可以像在 PCA 中那样检查方差吗?

2个回答

自动编码器是特定于数据的,这意味着它们只能压缩与训练过的数据相似的数据。因此,隐藏层学习到的特征的有用性可用于评估该方法的有效性。

出于这个原因,我认为评估自动编码器在降维方面的功效的一种方法是削减中间隐藏层的输出,并通过这些减少的数据而不是使用原始数据来比较所需算法的准确性/性能。

可以根据生成的每个主成分的方差来评估 PCA。

实际上,它测量与重建误差相同的东西,但以不同的方式。

让我们修正并更准确地说k

X - data matrix, X - best rank-k approximation (rank-k PCA).

To calculate X you need to do SVD and then only take k singular vectors with biggest singular values.

Eckhart-Young theorem then tells us that this X also minimizes Frobenius norm of XX. Frobenius norm is defined as

XXF=n,m(Xn,mXn,m)2

So

XXF2=n,m(Xn,mXn,m)2=nXnXn2

The last expression is the reconstruction error.

Back to evaluating PCA

The above fragment just says that for fixed rank k we know how to find reconstruction error. I think you mentioned the fact that you can also easily evaluate how the reconstruction changes when you vary the k.

This is where evaluating autoencoder and PCA diverges: the latent variables of autoencoder aren't guaranteed to be orthogonal. That means you can't decompose reconstruction error as in the case of PCA. Also since the coding/decoding in autoencoders is nonlinear, you don't know how the variance in the latent space translates to variance in input space.