参数设置
输入信号类型
输入维度 D = 10 固定。所选信号决定本征维度,加入噪声后在 N = 50 个样本上用 SGD 训练。随着轮次推进损失下降,重构 x̂ 逐渐逼近输入 x。
编码·瓶颈·重构及学习曲线
上部=输入信号 x(蓝色实线)与重构 x̂(橙色虚线)/左下=瓶颈 z(K个)/右下=训练步数 vs 损失MSE。随着轮次推进 x̂ 逐渐与 x 重合,损失下降。
理论·主要公式
1D 线性自编码器将输入 $x \in \mathbb{R}^D$ 通过编码器矩阵 $W_e \in \mathbb{R}^{K \times D}$ 压缩为低维潜在表示 $z$,再通过解码器矩阵 $W_d \in \mathbb{R}^{D \times K}$ 重构回原维度。
编码、解码与重构误差:
$$z = W_e\,x, \qquad \hat{x} = W_d\,z = W_d\,W_e\,x$$
$$L = \lVert x - \hat{x} \rVert^2$$
随机梯度下降法的更新式(学习率 $\eta$):
$$W_e \leftarrow W_e + 2\eta\,W_d^{\top}(x - \hat{x})\,x^{\top}$$
$$W_d \leftarrow W_d + 2\eta\,(x - \hat{x})\,z^{\top}$$
优化收敛后 $W_d W_e \approx V V^{\top}$($V$ 为前 $K$ 个主成分),线性自编码器变为与PCA等价的子空间投影。
1D 线性自编码器·模拟器简介
🙋
自编码器就是把输入原样输出的网络,这有什么意思吗?
🎓
关键在于中间有一个"瓶颈"层。比如说,把10维的输入压缩到仅3维,再扩展回10维。如果输入本来需要完整10维的自由度是不可能恢复的,但如果数据实际上"只在3维空间里",那就能近乎完美地重构。在模拟器里让 K = 3 然后点"重新训练",变异解释率应该会超过99%。
🙋
确实看到了!我把 K 改成1,解释率就大幅下降了。这意味着3维的信息无法压进1个数里吧?
🎓
正是这样。从信息论的角度,3维的信号要用1维来表示必然要丢掉2/3的信息,剩下2个方向的方差就会显示为"重构误差"。线性自编码器的理论证明了,把信号压到K维时的最优解等价于"投影到前K个主成分"。所以线性自编码器本质上就是PCA。
🎓
好问题。纯线性的话确实PCA就够了。但当编码器和解码器加上非线性激活函数(比如ReLU或tanh)的一瞬间,就能沿着"弯曲的流形"做压缩了。比如图像中MNIST的数字数据其实是"784维空间里的薄曲面",这种曲面线性空间捕捉不了。实际应用中有图像压缩、异常检测、去噪、生成模型(VAE)等各种用途。
🙋
把噪声滑块往上拉,K=3还是会让解释率下降呢。这是怎么回事?
🎓
那叫"噪声下限"。数据总方差由"3维本质成分的方差"加"噪声方差"组成。K=3的自编码器只能捕捉本质成分,噪声成分会残留在重构误差里。所以理论上重构MSE会约等于 $\sigma^2$。反过来说这就是"自编码器自动去噪"的机制啦,也是去噪自编码器的基础。
常见问题
学习率过大的话,梯度下降会跨过损失的谷底飞到对面,导致MSE增加或振荡。线性自编码器是二次函数的最小化问题,极端的η可能导致发散成NaN。本模拟器初始值是η=0.05,如果η超过0.3通常会看到发散现象。如果训练不稳定,把η改回0.01~0.05范围。
SGD是随机的,迭代次数少了收敛会不充分。本模拟器如果把迭代数降到10,即使K=3精度也会大幅下降。通常500~1000次为目标,看学习曲线是否平坦。线性自编码器也可以用SVD闭形式解,但这里用SGD是为了连接到深度学习。
不一定。线性自编码器最优解的"前K个主成分张成的子空间"是唯一的,但在子空间内部有旋转自由度。相同的子空间投影可以用无数种(We, Wd)组合实现。要提取真正的主成分,需要训练完后再对We·X的协方差做对角化处理。
K设得比3更大(比如5或9),重构MSE也不会再下降。本质上只有3维信息加噪声,多出来的维度只是在学"噪声的一部分"。过大的瓶颈维度会导致"噪声暗记",新数据的泛化能力会下降。这也是为什么实务中保持K偏小——作为正则化手段之一。
实际应用
异常检测:用正常数据训练自编码器后,正常输入重构误差低,异常输入重构误差高。制造业振动数据、医学影像、网络日志等缺少标注异常的场景里广泛应用。本模拟器的"本质维度+噪声"结构学习能力就是基础。
图像·视频压缩:JPEG/MPEG的替代品,深层自编码器做学习型图像压缩的研究在进行。编码器把图像变成紧凑潜在表示,解码器负责重构。线性自编码器是出发点,PCA压缩和Eigenface人脸识别数学上等价。
表示学习·特征抽取:用大量无标注数据通过自编码器学"有意义的特征",再用到下游任务(分类、回归)。BERT、GPT这样的现代自监督学习也继承了"预测输入某部分"的自编码器思想。
生成模型(VAE·扩散模型的基础):变分自编码器(VAE)在潜在空间引入概率分布,能生成新样本。更新的扩散模型也和潜空间自编码思想息息相关。线性自编码器是这些最先进模型的基础。
常见误解和注意事项
最常见的误解是"自编码器能魔法般压缩信息"。信息论上,K维瓶颈能通过的信息量有上限,K小于数据本质维度必然信息丢失。本模拟器里K=1或K=2时解释率大幅下降,"找出数据本质维度"是自编码器设计的起点。
其次是"线性自编码器和PCA是两回事"的思维。前面说过,MSE损失下训练的线性自编码器最优解就是PCA前K主成分投影。线性自编码器的价值在于通向深层、非线性自编码器的教育意义,以及SGD对大规模数据的可扩展性。直接用线性自编码器处理原始数据,计算成本上SVD就够了。
最后一个是"重构误差越接近0越好"的错觉。在噪声多的数据上把误差逼到0,网络就在学噪声,新数据泛化能力会崩溃。本模拟器设σ=0.5这样的噪声,然后把K往上加,会看到误差下降,但同时发生"噪声暗记"。实务上要选好K、学习率、迭代数,还要看验证数据的重构误差。