趋近智
基于之前介绍的组成部分,我们来对基础自编码器进行数学形式化。自编码器由编码器和解码器两部分组成,它们通常以神经网络的形式实现。
编码器(记作 f)接收一个输入向量 x∈Rd,并将其映射到低维潜在表示(或编码)z∈Rk,其中 k<d。这个映射由编码器的参数 θe(包含权重和偏置)来确定。我们可以写成:
z=f(x;θe)
对于一个简单的单隐藏层自编码器,这可能看起来像:
z=σe(Wex+be)
其中,We 是权重矩阵,be 是偏置向量,σe 是编码器的逐元素激活函数(如 Sigmoid、ReLU 或 tanh)。实际应用中,编码器可以是包含多个层的更深的网络。
解码器(记作 g)接收潜在表示 z∈Rk,并将其映射回重构结果 x^∈Rd。目标是使 x^ 尽可能地接近原始输入 x。这个映射由解码器的参数 θd 来确定:
x^=g(z;θd)
与编码器类似,一个简单的单层解码器可能表示为:
x^=σd(Wdz+bd)
其中 Wd 和 bd 是解码器的权重和偏置,σd 是解码器的激活函数。σd 的选择通常取决于输入数据 x 的特性。例如,如果 x 表示介于 0 和 1 之间归一化的像素值,则 Sigmoid 激活函数很常用。如果 x 可以取任何实数值(归一化后),则可以使用线性激活函数。
整个自编码器结合了编码器和解码器。给定输入 x,重构结果 x^ 是通过先将 x 编码为 z,然后将 z 解码回 x^ 而获得的:
x^=g(f(x;θe);θd)
自编码器通过最小化原始输入 x 与其重构结果 x^ 之间的差异进行训练。这种差异由重构损失函数 L(x,x^) 量化。自编码器的整体目标函数 J(θ)(其中 θ={θe,θd} 代表所有可训练参数)通常是数据集 D={x(1),x(2),...,x(N)} 中 N 个样本的平均损失:
J(θ)=N1∑i=1NL(x(i),x^(i))
代入编码器和解码器函数:
J(θ)=N1∑i=1NL(x(i),g(f(x(i);θe);θd))
L(x,x^) 的选择较为重要,并取决于输入数据 x 的特性:
均方误差(MSE): 当输入数据是连续的(常假定为高斯分布)时使用。它衡量 x 和 x^ 各元素之间的平均平方差。 LMSE(x,x^)=d1∑j=1d(xj−x^j)2 最小化 MSE 对应于在重构误差为高斯分布的假设下最大化对数似然。它适合归一化图像像素或连续特征等输入。
二元交叉熵(BCE): 当输入数据是二元或可解释为概率(例如,范围在 [0, 1] 的值)时使用。这通常适用于 MNIST 等图像,其中像素值被视为伯努利参数。 LBCE(x,x^)=−d1∑j=1d[xjlog(x^j)+(1−xj)log(1−x^j)] 最小化 BCE 对应于在输入每个元素服从伯努利分布的假设下最大化对数似然。当使用 BCE 时,解码器的最终激活函数 σd 通常应为 Sigmoid 函数,以确保输出 x^j 处于 (0, 1) 范围内,可解释为概率。
训练的目的是找到最优参数 θ∗={θe∗,θd∗},使目标函数 J(θ) 最小化。这通过使用基于梯度下降的优化算法来实现。反向传播用于计算损失 L 相对于 θe 和 θd 中所有参数的梯度。这些梯度 ∇θeJ(θ) 和 ∇θdJ(θ) 随后被 Adam 或 RMSprop 等优化器用来迭代更新参数。
本质上,数学公式定义了一个特定的优化问题:学习函数 f 和 g,使得它们按顺序应用(g∘f)能根据所选损失度量 L 尽可能准确地重构输入数据。瓶颈 z 促使网络学习一种压缩表示,这种表示捕获了重构所需的最主要信息。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造