标准自编码器虽然对降维有效,但其学习到的潜在编码无法自然保证捕捉到真正有意义的特征。若无约束,编码器可能仅学习到一个恒等函数(尤其当潜在维度较大时),或者过度适应训练数据。稀疏自编码器引入了一种正则化 (regularization)方法,专门用来解决此问题,即强制其隐藏(瓶颈)层中的激活值具有稀疏性。
主要思想是,对于任何给定的输入样本,隐藏层中只有一小部分神经元应显著活跃(即具有非零或接近非零的激活值)。这鼓励网络为数据中存在的独立特征学习专门的检测器,而不是让所有神经元对许多输入都做出微弱响应。这类似于生物神经网络 (neural network)系统的运作方式。
稀疏自编码器通过施加稀疏性约束,旨在学习更有意义的特征。施加稀疏性约束主要有两种方法:使用 L1 正则化或 Kullback–Leibler (KL) 散度。
用于稀疏性的 L1 正则化 (regularization)
这种方法直接惩罚隐藏层中激活值的量级。回想一下,L1 正则化会添加一个与参数 (parameter)绝对值之和成比例的惩罚项。在稀疏自编码器的情况下,我们将这种惩罚应用于隐藏层神经元的激活值,而不是权重 (weight)。
设 hj(x(i)) 表示第 i 个输入样本 x(i) 的第 j 个隐藏单元的激活值。L1 稀疏性惩罚项被添加到标准重构损失中:
L总(x,x^)=L重构(x,x^)+λj∑∣hj(x)∣
其中:
- L重构(x,x^) 是输入 x 与重构输出 x^ 之间的常见重构损失(例如,均方误差或二元交叉熵)。
- hj(x) 表示单个输入 x 的隐藏层中第 j 个神经元的激活值。这个和通常针对该输入的所有隐藏神经元进行计算。在实际训练中,这个和会在批次上取平均值。
- λ 是一个超参数 (hyperparameter),控制稀疏性惩罚的强度。较大的 λ 会强制更强的稀疏性,促使更多激活值趋近于零。
思路直接明了:为了最小化总损失,网络必须平衡精确重构输入(最小化 L重构)和保持隐藏层激活值小(最小化 L1 项)。由于 L1 范数已知能够促进稀疏解(与鼓励小但非零值的 L2 范数不同),这种惩罚能有效地促使许多隐藏单元的激活值趋近于零。
KL 散度稀疏性约束
另一种常用方法是,通过约束每个隐藏神经元在整个训练数据集(或一个大批次)上的平均激活值来引导稀疏性。我们定义一个目标稀疏性参数 (parameter) ρ,它表示每个隐藏神经元期望的平均激活水平(例如,ρ=0.05,表示我们希望每个神经元平均而言只有5%的时间活跃)。
首先,我们计算第 j 个隐藏神经元在 m 个训练样本上的实际平均激活值 ρ^j:
ρ^j=m1i=1∑mhj(x(i))
请注意,这要求激活函数 (activation function) hj 的输出值通常在0到1之间(例如 sigmoid 函数),以便将其解释为激活概率或激活水平时有意义。
接着,我们使用 Kullback–Leibler (KL) 散度来度量期望平均激活值 ρ(视为均值为 ρ 的伯努利分布)与观察到的平均激活值 ρ^j(视为均值为 ρ^j 的伯努利分布)之间的差异。两个伯努利分布之间的 KL 散度由下式给出:
KL(ρ∣∣ρ^j)=ρlogρ^jρ+(1−ρ)log1−ρ^j1−ρ
这个 KL 散度项充当惩罚项。当 ρ^j=ρ 时,它被最小化(等于零),并且随着 ρ^j 偏离 ρ 而增大。我们将此惩罚项对所有 s 个隐藏单元求和,并将其添加到重构损失中,由另一个超参数 (hyperparameter) β 加权:
L总(x,x^)=L重构(x,x^)+βj=1∑sKL(ρ∣∣ρ^j)
最小化这个总损失鼓励网络在实现精确重构的同时,确保每个隐藏神经元的平均激活值 ρ^j 接近目标稀疏性水平 ρ。
- ρ:目标平均激活水平(超参数,小数值如0.01,0.05)。
- β:稀疏性惩罚项的权重 (weight)(超参数)。控制重构与稀疏性之间的权衡。
- 计算 ρ^j:此平均激活值通常在每个训练批次上估计,并使用移动平均更新,以近似数据集上的真实平均值。
比较 L1 和 KL 散度稀疏性
- 直接性:L1 直接惩罚每个输入的单个高激活值,可能导致每个样本的编码非常稀疏。KL 散度侧重于神经元在整个数据集上的平均行为,确保神经元不会持续不活跃或过度活跃。
- 分布假设:KL 散度隐式地将激活值建模为伯努利随机变量,使其自然适用于 sigmoid 激活函数 (activation function)。L1 对激活函数类型更不敏感,尽管激活值通常会被裁剪或缩放。
- 实现:L1 更简单,通常只需根据隐藏层的输出来向损失中添加一个项。KL 需要计算每个神经元在一个批次上的平均激活值,增加了一点复杂性。
这两种方法都服务于同一目的:强制自编码器学习一种压缩表示,其中对于任何给定输入,只有少数隐藏单元是活跃的。这鼓励隐藏单元进行专门化,有可能从数据中获取更独立和可解释的特征,同时也是一个强大的正则化 (regularization)器,可防止过拟合 (overfitting)。在它们之间进行选择,并调整相关的超参数 (parameter) (hyperparameter)(λ 或 ρ 和 β),通常取决于具体数据集和任务。