核化典型相关分析(Kernel Canonical Correlation Analysis, KCCA)的原理与优化求解过程
字数 3632 2025-12-15 04:22:49

核化典型相关分析(Kernel Canonical Correlation Analysis, KCCA)的原理与优化求解过程

一、 题目描述

典型相关分析(Canonical Correlation Analysis, CCA)是一种经典的统计方法,用于分析两个随机变量集合(或称“视图”)之间的线性相关关系。它寻找两组变量中各一个线性组合(称为典型变量),使得这两个线性组合之间的相关性最大化。然而,CCA只能捕捉线性关系。核化典型相关分析(Kernel CCA)通过“核技巧”(Kernel Trick)将CCA扩展到非线性领域。其核心思想是:首先通过一个非线性映射函数,将原始数据隐式地映射到一个高维(甚至无限维)的再生核希尔伯特空间(RKHS)中,然后在这个高维特征空间中执行标准的线性CCA。KCCA广泛应用于特征融合、多模态学习、降维等领域。

二、 解题过程:循序渐进讲解

步骤1:回顾标准线性CCA

首先,让我们明确问题。假设我们有两组已中心化(均值为0)的数据视图:

  • 视图1:X ∈ R^{n×p}, 有 n 个样本,p 个特征。
  • 视图2:Y ∈ R^{n×q}, 有 n 个样本,q 个特征。

CCA的目标是找到投影向量 w_x ∈ R^pw_y ∈ R^q,使得投影后的数据 X w_xY w_y 之间的皮尔逊相关系数最大化:
maximize_{w_x, w_y} (w_x^T X^T Y w_y) / sqrt((w_x^T X^T X w_x)(w_y^T Y^T Y w_y))
这是一个广义特征值问题,最终转化为求解:
(X^T X)^{-1} X^T Y (Y^T Y)^{-1} Y^T X w_x = ρ^2 w_x
其中 ρ 是最大化的相关系数(典型相关系数)。

步骤2:引入核方法与非线性的思想

线性CCA的局限在于,它假设两组变量之间的关系是线性的。对于复杂的非线性关系(例如,一个视图是图像像素,另一个是文本描述),线性模型无法有效建模。

核方法的思路是:我们不直接设计复杂的非线性变换,而是定义一个核函数 k(x_i, x_j) = φ(x_i)·φ(x_j),它计算了样本 x_ix_j 在某个高维特征空间 φ(·) 中的内积。通过这个核函数,我们可以在不知道 φ(·) 具体形式的情况下,在高维空间中进行线性运算。这是核技巧的精髓。

对于KCCA,我们分别为两个视图定义核函数 k_xk_y,以及对应的核矩阵:
K_x = Φ_x Φ_x^T ∈ R^{n×n},其中 Φ_xX 映射到特征空间后的数据矩阵(行是样本)。
K_y = Φ_y Φ_y^T ∈ R^{n×n},定义类似。

步骤3:在特征空间中表述KCCA问题

在特征空间中,我们的数据变成了 Φ_xΦ_y。根据表示定理,在RKHS中,投影方向 w_xw_y 可以表示为所有样本映射的线性组合:
w_x = Φ_x^T αα ∈ R^n
w_y = Φ_y^T ββ ∈ R^n
这里 αβ 是我们需要求解的新系数向量,替代了原始的 w_xw_y

那么,投影后的数据变为:
Φ_x w_x = Φ_x Φ_x^T α = K_x α
Φ_y w_y = Φ_y Φ_y^T β = K_y β

因此,KCCA的目标转化为:寻找系数向量 αβ,使得 K_x αK_y β 之间的相关系数最大化。

步骤4:建立KCCA的优化目标函数

将投影后的表达式代入CCA的相关系数公式,目标函数变为:
maximize_{α, β} (α^T K_x^T K_y β) / sqrt((α^T K_x^T K_x α)(β^T K_y^T K_y β))

注意,K_xK_y 是对称矩阵,所以 K_x^T = K_xK_y^T = K_y。同时,为了确保问题良定并控制解的复杂度(避免过拟合),我们通常需要加入正则化项。最终,带有正则化项(Tikhonov正则化)的KCCA优化问题可以写为:
maximize_{α, β} (α^T K_x K_y β)
subject to: α^T (K_x^2 + κ_x I) α = 1
subject to: β^T (K_y^2 + κ_y I) β = 1
其中 κ_xκ_y 是小的正正则化参数,I 是单位矩阵。正则化项 κI 的加入防止了当 K_xK_y 奇异(或病态)时解的不稳定性。

步骤5:求解KCCA的广义特征值问题

这是一个带有等式约束的优化问题,可以通过拉格朗日乘子法求解。构建拉格朗日函数 L
L(α, β, λ_x, λ_y) = α^T K_x K_y β - (λ_x/2)[α^T (K_x^2 + κ_x I) α - 1] - (λ_y/2)[β^T (K_y^2 + κ_y I) β - 1]

分别对 αβ 求导并令导数为零:
∂L/∂α = K_x K_y β - λ_x (K_x^2 + κ_x I) α = 0 -> (1)
∂L/∂β = K_y K_x α - λ_y (K_y^2 + κ_y I) β = 0 -> (2)

由(1)式可得:K_x K_y β = λ_x (K_x^2 + κ_x I) α
由(2)式可得:K_y K_x α = λ_y (K_y^2 + κ_y I) β

可以证明,在最优解处,λ_x = λ_y = ρ(即最大化后的典型相关系数)。将(1)式中的 αβ 表示,代入(2)式,经过整理,我们可以得到一个关于 β 的广义特征值问题(或关于 α 的对称形式):
(K_y + κ_y I)^{-1} K_y K_x (K_x + κ_x I)^{-1} K_x K_y β = ρ^2 β

同理,关于 α 的特征值方程为:
(K_x + κ_x I)^{-1} K_x K_y (K_y + κ_y I)^{-1} K_y K_x α = ρ^2 α

实际上,更稳定和常见的求解方式是将原问题转换为一个等价的、规模为 2n×2n 的广义特征值问题:
[ 0, K_x K_y; K_y K_x, 0 ] [α; β] = ρ [ (K_x^2+κ_x I), 0; 0, (K_y^2+κ_y I) ] [α; β]
求解这个广义特征值问题,最大的特征值 ρ 就是第一对典型变量的相关系数,对应的特征向量 [α; β] 给出了第一对投影系数。后续的典型变量可以通过求取次大的特征值和对应的特征向量获得,且它们与之前找到的变量是正交的。

步骤6:KCCA的计算与预测

  1. 训练(拟合模型)

    • 输入中心化后的原始数据 X, Y
    • 选择核函数(如高斯RBF核、多项式核)及参数,计算核矩阵 K_xK_y
    • 设置正则化参数 κ_x, κ_y
    • 求解上述广义特征值问题,得到前 d 对特征向量 (α_i, β_i) 和特征值 ρ_ii=1,...,d)。d 是想要保留的典型变量个数。
  2. 转换(降维/特征提取)

    • 对于训练数据,其在第 i 个典型变量上的投影(得分)为:
      • 视图1的投影:f_i = K_x α_i
      • 视图2的投影:g_i = K_y β_i
    • d 对投影 (f_i, g_i) 就是降维后的非线性相关特征。
  3. 预测(对新样本)

    • 对于一个新样本 (x_new, y_new),要得到它在特征空间中的投影,需要计算它和所有训练样本的核函数值。
    • 定义向量 k_x_new = [k_x(x_new, x_1), ..., k_x(x_new, x_n)]^Tk_y_new 类似。
    • 那么,新样本在第 i 个典型变量上的投影为:
      • 视图1的投影:f_i_new = (k_x_new)^T α_i
      • 视图2的投影:g_i_new = (k_y_new)^T β_i

总结:核化典型相关分析(KCCA)通过核技巧将线性CCA扩展到了非线性领域。其核心步骤是:1) 用核函数隐式定义非线性映射;2) 利用表示定理,将投影方向表示为训练样本的线性组合;3) 构建关于组合系数 αβ 的、带有正则化的相关性最大化目标;4) 将其转化为一个广义特征值问题进行求解;5) 利用求得的系数对数据进行非线性相关特征提取。KCCA成功的关键在于核函数的选择和正则化参数的控制。

核化典型相关分析(Kernel Canonical Correlation Analysis, KCCA)的原理与优化求解过程 一、 题目描述 典型相关分析(Canonical Correlation Analysis, CCA)是一种经典的统计方法,用于分析两个随机变量集合(或称“视图”)之间的线性相关关系。它寻找两组变量中各一个线性组合(称为典型变量),使得这两个线性组合之间的相关性最大化。然而,CCA只能捕捉线性关系。核化典型相关分析(Kernel CCA)通过“核技巧”(Kernel Trick)将CCA扩展到非线性领域。其核心思想是:首先通过一个非线性映射函数,将原始数据隐式地映射到一个高维(甚至无限维)的再生核希尔伯特空间(RKHS)中,然后在这个高维特征空间中执行标准的线性CCA。KCCA广泛应用于特征融合、多模态学习、降维等领域。 二、 解题过程:循序渐进讲解 步骤1:回顾标准线性CCA 首先,让我们明确问题。假设我们有两组已中心化(均值为0)的数据视图: 视图1: X ∈ R^{n×p} , 有 n 个样本, p 个特征。 视图2: Y ∈ R^{n×q} , 有 n 个样本, q 个特征。 CCA的目标是找到投影向量 w_x ∈ R^p 和 w_y ∈ R^q ,使得投影后的数据 X w_x 和 Y w_y 之间的皮尔逊相关系数最大化: maximize_{w_x, w_y} (w_x^T X^T Y w_y) / sqrt((w_x^T X^T X w_x)(w_y^T Y^T Y w_y)) 这是一个广义特征值问题,最终转化为求解: (X^T X)^{-1} X^T Y (Y^T Y)^{-1} Y^T X w_x = ρ^2 w_x 其中 ρ 是最大化的相关系数(典型相关系数)。 步骤2:引入核方法与非线性的思想 线性CCA的局限在于,它假设两组变量之间的关系是线性的。对于复杂的非线性关系(例如,一个视图是图像像素,另一个是文本描述),线性模型无法有效建模。 核方法的思路是:我们不直接设计复杂的非线性变换,而是定义一个核函数 k(x_i, x_j) = φ(x_i)·φ(x_j) ,它计算了样本 x_i 和 x_j 在某个高维特征空间 φ(·) 中的内积。通过这个核函数,我们可以在不知道 φ(·) 具体形式的情况下,在高维空间中进行线性运算。这是核技巧的精髓。 对于KCCA,我们分别为两个视图定义核函数 k_x 和 k_y ,以及对应的核矩阵: K_x = Φ_x Φ_x^T ∈ R^{n×n} ,其中 Φ_x 是 X 映射到特征空间后的数据矩阵(行是样本)。 K_y = Φ_y Φ_y^T ∈ R^{n×n} ,定义类似。 步骤3:在特征空间中表述KCCA问题 在特征空间中,我们的数据变成了 Φ_x 和 Φ_y 。根据表示定理,在RKHS中,投影方向 w_x 和 w_y 可以表示为所有样本映射的线性组合: w_x = Φ_x^T α , α ∈ R^n w_y = Φ_y^T β , β ∈ R^n 这里 α 和 β 是我们需要求解的新系数向量,替代了原始的 w_x 和 w_y 。 那么,投影后的数据变为: Φ_x w_x = Φ_x Φ_x^T α = K_x α Φ_y w_y = Φ_y Φ_y^T β = K_y β 因此,KCCA的目标转化为:寻找系数向量 α 和 β ,使得 K_x α 和 K_y β 之间的相关系数最大化。 步骤4:建立KCCA的优化目标函数 将投影后的表达式代入CCA的相关系数公式,目标函数变为: maximize_{α, β} (α^T K_x^T K_y β) / sqrt((α^T K_x^T K_x α)(β^T K_y^T K_y β)) 注意, K_x 和 K_y 是对称矩阵,所以 K_x^T = K_x , K_y^T = K_y 。同时,为了确保问题良定并控制解的复杂度(避免过拟合),我们通常需要加入正则化项。最终,带有正则化项(Tikhonov正则化)的KCCA优化问题可以写为: maximize_{α, β} (α^T K_x K_y β) subject to: α^T (K_x^2 + κ_x I) α = 1 subject to: β^T (K_y^2 + κ_y I) β = 1 其中 κ_x 和 κ_y 是小的正正则化参数, I 是单位矩阵。正则化项 κI 的加入防止了当 K_x 或 K_y 奇异(或病态)时解的不稳定性。 步骤5:求解KCCA的广义特征值问题 这是一个带有等式约束的优化问题,可以通过拉格朗日乘子法求解。构建拉格朗日函数 L : L(α, β, λ_x, λ_y) = α^T K_x K_y β - (λ_x/2)[α^T (K_x^2 + κ_x I) α - 1] - (λ_y/2)[β^T (K_y^2 + κ_y I) β - 1] 分别对 α 和 β 求导并令导数为零: ∂L/∂α = K_x K_y β - λ_x (K_x^2 + κ_x I) α = 0 -> (1) ∂L/∂β = K_y K_x α - λ_y (K_y^2 + κ_y I) β = 0 -> (2) 由(1)式可得: K_x K_y β = λ_x (K_x^2 + κ_x I) α 由(2)式可得: K_y K_x α = λ_y (K_y^2 + κ_y I) β 可以证明,在最优解处, λ_x = λ_y = ρ (即最大化后的典型相关系数)。将(1)式中的 α 用 β 表示,代入(2)式,经过整理,我们可以得到一个关于 β 的广义特征值问题(或关于 α 的对称形式): (K_y + κ_y I)^{-1} K_y K_x (K_x + κ_x I)^{-1} K_x K_y β = ρ^2 β 同理,关于 α 的特征值方程为: (K_x + κ_x I)^{-1} K_x K_y (K_y + κ_y I)^{-1} K_y K_x α = ρ^2 α 实际上,更稳定和常见的求解方式是将原问题转换为一个等价的、规模为 2n×2n 的广义特征值问题: [ 0, K_x K_y; K_y K_x, 0 ] [α; β] = ρ [ (K_x^2+κ_x I), 0; 0, (K_y^2+κ_y I) ] [α; β] 求解这个广义特征值问题,最大的特征值 ρ 就是第一对典型变量的相关系数,对应的特征向量 [α; β] 给出了第一对投影系数。后续的典型变量可以通过求取次大的特征值和对应的特征向量获得,且它们与之前找到的变量是正交的。 步骤6:KCCA的计算与预测 训练(拟合模型) : 输入中心化后的原始数据 X , Y 。 选择核函数(如高斯RBF核、多项式核)及参数,计算核矩阵 K_x 和 K_y 。 设置正则化参数 κ_x , κ_y 。 求解上述广义特征值问题,得到前 d 对特征向量 (α_i, β_i) 和特征值 ρ_i ( i=1,...,d )。 d 是想要保留的典型变量个数。 转换(降维/特征提取) : 对于训练数据,其在第 i 个典型变量上的投影(得分)为: 视图1的投影: f_i = K_x α_i 视图2的投影: g_i = K_y β_i 这 d 对投影 (f_i, g_i) 就是降维后的非线性相关特征。 预测(对新样本) : 对于一个新样本 (x_new, y_new) ,要得到它在特征空间中的投影,需要计算它和所有训练样本的核函数值。 定义向量 k_x_new = [k_x(x_new, x_1), ..., k_x(x_new, x_n)]^T , k_y_new 类似。 那么,新样本在第 i 个典型变量上的投影为: 视图1的投影: f_i_new = (k_x_new)^T α_i 视图2的投影: g_i_new = (k_y_new)^T β_i 总结 :核化典型相关分析(KCCA)通过核技巧将线性CCA扩展到了非线性领域。其核心步骤是:1) 用核函数隐式定义非线性映射;2) 利用表示定理,将投影方向表示为训练样本的线性组合;3) 构建关于组合系数 α 和 β 的、带有正则化的相关性最大化目标;4) 将其转化为一个广义特征值问题进行求解;5) 利用求得的系数对数据进行非线性相关特征提取。KCCA成功的关键在于核函数的选择和正则化参数的控制。