趋近智
传统线性方法,如主成分分析(PCA),对降维很有用,但当数据位于复杂的非线性流形上时,它们会遇到困难。自动编码器提供了一种强大的、数据驱动的方法来学习非线性映射,以实现降维和数据压缩。
欠完备自动编码器的核心架构自然适用于降维。回顾一下其结构:编码器网络f将高维输入数据x∈RD映射到低维潜在表示z∈Rd,其中d<D。这个潜在向量z=f(x)位于“瓶颈”层,代表了输入数据的压缩概括。解码器网络g随后尝试从这个表示中重建原始输入,即x^=g(z)。
编码器f有效地学习了从原始数据空间RD到低维空间Rd的非线性投影。与PCA(它寻找最大化方差的线性子空间)不同,自动编码器可以学习到弯曲流形上的投影,从而获得数据中更为复杂的结构。
考虑一个位于3D空间螺旋上的数据集。PCA可能会将其投影到2D平面上,这可能导致螺旋上原本不同的点发生重叠。然而,一个经过适当训练的自动编码器可以学习将螺旋“展开”成其低维表示,更有效地保留邻域结构。
值得注意的是,如果编码器和解码器函数(f和g)都限制为线性,并且重建损失是均方误差(MSE),那么自动编码器学习到的潜在空间z本质上与PCA识别的子空间相同。自动编码器的真正优势在于它们能够通过在其隐藏层中使用非线性激活函数来学习非线性映射。
何时使用自动编码器进行降维:
然而,训练自动编码器通常比运行PCA计算量更大。它们还会引入更多的超参数(网络架构、激活函数、优化器设置、潜在维度d),这些都需要仔细调整,本章后面将讨论这个话题。此外,解释潜在空间z中各个维度的含义通常不如解释从PCA获得的主成分(它们对应于最大方差的方向)那么直接。
同样使得降维成为可能的机制也让自动编码器能够进行数据压缩。过程包括:
重要的一点是,这几乎总是有损压缩。重建输出x^通常不会与原始输入x完全相同。信息损失的程度与所选的重建损失函数L(x,x^)(例如,MSE、二元交叉熵)以及自动编码器的容量,特别是瓶颈层的维度d有关。
压缩的权衡:
压缩比(由d/D决定)与重建的保真度之间存在直接的权衡。
自动编码器压缩流程:输入数据由编码器压缩成低维潜在向量,然后存储或传输。解码器从潜在向量重建原始数据的近似。
实际考量:
与标准压缩算法(例如JPEG、MP3、ZIP)不同,使用自动编码器进行压缩不仅需要存储或传输压缩向量z,还需要存储或传输解码器网络g的参数。编码器f本身也需要用于压缩。与模型参数相关的这部分开销可能很大,使得基于自动编码器的压缩与高度优化的标准算法相比,对于通用压缩而言实用性较低。
然而,在特定情况下它可能可行:
例如,一个在人脸图像上训练的卷积自动编码器(第5章)可以学习将其压缩成非常小的潜在向量。解码器随后可以从这些向量重建出可识别但可能不完美的图像。质量将很大程度上取决于网络架构、训练数据和所选的潜在维度d。
最终,将自动编码器用于降维侧重于学习到的表示z本身的用途,而将其用于压缩则侧重于在保持可接受的重建质量x^的前提下最小化z的大小。两者都利用了通过编码器-解码器结构学习紧凑、非线性数据表示的相同核心原理。选择合适的架构(例如用于图像的卷积自动编码器或用于序列的循环自动编码器)并仔细选择重建损失对于这些应用的成功很重要。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造