形式陈述
给定特征向量 ϕ i = ϕ ( x i ) ,先在特征空间取均值 ϕ ¯ = m − 1 ∑ i ϕ i ,令 ψ i = ϕ i − ϕ ¯ 。经验协方差算子是
C = 1 m ∑ i = 1 m ψ i ⊗ ψ i . 用核技巧 公理库 核技巧 kernel trick · kernelization by inner products · 核替换 将只依赖特征内积的算法改写为 Gram 矩阵计算,从而隐式使用特征空间。 计算原 Gram 矩阵 K ,再令
H = I − 1 m 1 1 ⊤ , K c = H K H . 若按有限维谱定理 公理库 有限维谱定理 Finite-dimensional spectral theorem 有限维实对称或复自伴算子存在正交规范特征向量基。 取单位特征向量
K c v ℓ = m λ ℓ v ℓ , ‖ v ℓ ‖ 2 = 1 , λ ℓ > 0 , 则特征空间的单位主方向为
u ℓ = 1 m λ ℓ ∑ i = 1 m ( v ℓ ) i ψ i . 训练点坐标是 ⟨ u ℓ , ψ j ⟩ = m λ ℓ ( v ℓ ) j 。把输入坐标中心化通常不能替代 K c = H K H ;只有线性核等特殊情形二者才一致。
直觉
普通 PCA 寻找中心化向量方差最大的方向;KPCA 做同一件事,只是向量位于由核决定的特征空间。非线性来自 ϕ ,谱问题本身仍是一个中心化 Gram 矩阵的线性代数问题。
双侧乘 H 同时减去行均值、列均值并加回总均值,确保每个 ψ i 的和为零。只减一次全局常数或只中心化原始输入,都会留下特征空间均值,首个成分可能主要记录偏移而非变异。
K c 的非零特征值等于经验协方差非零特征值的 m 倍,这解释了方程中的 m λ ℓ 。特征向量只确定到符号;同一主方向把 v ℓ 乘 − 1 会让所有坐标同时变号,却不改变重构子空间、方差或任意成对距离。重根时甚至只能唯一确定整个特征子空间,不能逐列比较两个实现的向量。
例子与边界
在一维取训练点 ( 0 , 1 , 2 ) 与线性核 k ( x , z ) = x z 。原 Gram 矩阵为
K = ( 0 0 0 0 1 2 0 2 4 ) , 特征均值为 1,故
K c = ( 1 0 − 1 0 0 0 − 1 0 1 ) . 唯一正特征值是 2 = m λ 1 ,所以 λ 1 = 2 / 3 ;可取 v 1 = ( 1 , 0 , − 1 ) ⊤ / 2 。归一化公式给 u 1 = − 1 ,训练坐标为 ( 1 , 0 , − 1 ) ,与中心化输入 ( − 1 , 0 , 1 ) 只差主成分任意的整体符号。
对样本外点 x ,必须按训练均值中心化核向量:
k ~ c ( x ) i = k ( x i , x ) − 1 m ∑ j k ( x j , x ) − 1 m ∑ j k ( x i , x j ) + 1 m 2 ∑ j , r k ( x j , x r ) . 投影是
⟨ u ℓ , ϕ ( x ) − ϕ ¯ ⟩ = v ℓ ⊤ k ~ c ( x ) m λ ℓ . 对上例 x = 3 ,中心化核向量为 ( − 2 , 0 , 2 ) ⊤ ,投影为 − 2 ,与 u 1 ( 3 − 1 ) = − 2 完全一致。
零特征值方向不能除以 m λ ℓ ,应丢弃;显著负特征值表示核不 PSD 或数值误差过大。KPCA 只给特征空间坐标,一般没有唯一输入空间 pre-image;把近似逆映射当作算法自带输出会越过定义边界。
推论与应用
KPCA 可提取非线性低维坐标,用于可视化、降噪或后续预测。保留成分的方差比例要基于 K c 的非负特征值,并说明经验协方差采用 1 / m 而非 1 / ( m − 1 ) ,否则特征值尺度会不同。
样本外公式必须沿用训练集的均值,不可把查询点加入后重新中心化,否则每次查询都改变基底。大样本时完整特征分解成本高,可用迭代或 Nyström 近似;近似谱误差和中心化方式需要一起验证。
参考资料
Bernhard Schölkopf, Alexander Smola, and Klaus-Robert Müller, “Nonlinear Component Analysis as a Kernel Eigenvalue Problem,” Neural Computation 10(5), 1998, pp. 1299–1319, doi:10.1162/089976698300017467 .
Bernhard Schölkopf and Alexander J. Smola, Learning with Kernels , MIT Press, 2002, Sec. 14.2.
John Shawe-Taylor and Nello Cristianini, Kernel Methods for Pattern Analysis , Cambridge University Press, 2004, Sec. 6.2.