第5步:自编码器与表征学习
把数据压进 1 维"瓶颈"再还原 — 非线性降维与 PCA 的直观对决
重建动画 — 灰:原始数据 · 紫:自编码器重建点 · 细线:对应关系(训练中逐渐贴回流形)
PCA 对比 — 蓝线:第一主成分 · 黄点:投影(一条直线压不住弯曲的流形)
潜空间探索 — 紫线:解码器从 z 扫出的流形 · 亮点:当前 z 的解码位置(拖右侧滑杆)
数据与模型
网络结构 2 → 4 → 1 → 4 → 2
瓶颈层 1 维 · tanh 输出 linear
损失 MSE(目标 = 输入自身)
优化器 Adam · lr 0.02
瓶颈层 1 维 · tanh 输出 linear
损失 MSE(目标 = 输入自身)
优化器 Adam · lr 0.02
训练
训练步数 0
自编码器重建 MSE —
PCA(直线)重建 MSE —
自编码器重建 MSE —
PCA(直线)重建 MSE —
点击"开始训练",看紫色重建点逐渐贴回灰色数据流形
潜空间探索
把 z 送进解码器(z → 4 → 2 两层手工前向),训练好后亮点会沿学到的流形滑动。
为什么"瓶颈"能逼出好表征?
中间层只有 1 个神经元:网络必须把每个 2 维点压成 1 个数再还原。要让重建误差小,这个数只能是流形上最有信息量的坐标 —— 网络被迫学到数据的"本质坐标",这就是表征学习。
为什么胜过 PCA?PCA 是线性方法,只能用一条直线逼近数据; 自编码器的编码/解码器带 tanh 非线性,能弯过来贴合流形。 盯住右侧两个 MSE:流形越弯,自编码器赢得越多。
潜变量 z ≈ 流形上的位置:训练好后拖动滑杆,亮点沿流形连续滑动 —— 1 个数表达了 2 维位置。
两个有趣现象:圆环上常看到流形被"撕开"一个口(1 维直线坐标装不下闭环); 有时网络会塌缩成 PCA 那样的直线解(线性陷阱),点"重置网络"换个初始权重即可。
🔰 先修:ML 第 11 步 · PCA 降维
中间层只有 1 个神经元:网络必须把每个 2 维点压成 1 个数再还原。要让重建误差小,这个数只能是流形上最有信息量的坐标 —— 网络被迫学到数据的"本质坐标",这就是表征学习。
为什么胜过 PCA?PCA 是线性方法,只能用一条直线逼近数据; 自编码器的编码/解码器带 tanh 非线性,能弯过来贴合流形。 盯住右侧两个 MSE:流形越弯,自编码器赢得越多。
潜变量 z ≈ 流形上的位置:训练好后拖动滑杆,亮点沿流形连续滑动 —— 1 个数表达了 2 维位置。
两个有趣现象:圆环上常看到流形被"撕开"一个口(1 维直线坐标装不下闭环); 有时网络会塌缩成 PCA 那样的直线解(线性陷阱),点"重置网络"换个初始权重即可。
🔰 先修:ML 第 11 步 · PCA 降维
💡 键盘快捷键:← → 切换章节