高斯过程与支持向量机:平均场与留一法
1. 引言
高斯过程(GP)和支持向量机(SVM)是密切相关的两种非参数方法。它们都可看作单层感知机的推广,允许(至少对于某些核函数)调整无限多个参数,但随着数据量增加,只有有限数量的参数是活跃的。
SVM通过二次优化算法最大化正负样本之间的间隔,其权重是输入特征向量的线性组合,计算时可通过核函数进行,无需显式计算非线性特征向量。而贝叶斯方法通过引入感知机权重的先验分布来正则化问题,若先验分布为多元高斯分布,单层感知机的激活函数就成为高斯过程。SVM中使用的核函数可作为高斯过程的协方差函数,反之亦然,二者存在更多显著的数学关系。
本文主要探讨两个主题:一是展示如何将SVM理解为使用特定非归一化似然函数的高斯过程的最大后验(MAP)预测;二是介绍两种近似技术,用于解决GP和SVM学习中出现的计算难题,包括使用线性响应方法推导SVM泛化误差的近似留一法估计器,以及使用平均场方法处理GP中难以解析求解的后验平均问题。
2. 高斯过程分类
高斯过程以函数的先验分布自然地表述贝叶斯学习。考虑一个二进制分类器,输出为 $g(x) = \text{sgn}f(x)$,其中 $f(x)$ 是输入点 $x$ 处的“激活”。在贝叶斯方法中,当已知示例数据时,关于 $f(x)$ 的所有信息都编码在激活函数的后验分布中。
- 似然函数 :对于无噪声分类和输出标签 $y$,$f(x)$ 的似然函数为 $p(y|f(x)) = \Theta(y f(x))$,即当 $y f(x) > 0$ 时为 1,否则为 0。
-
先验分布
:一个简单的选择是高斯过程先验,即任意有限个函数值 $f = (f(x_1), \ldots, f(x_m))$ 在输入空间的任意点 $x_1, \ldots, x_m$ 处具有联合高斯分布:
[p(f) = \frac{1}{\sqrt{(2\pi)^m \det k}} e^{-\frac{1}{2} (f - m)^T k^{-1} (f - m)}]
其中 $m = (m(x_1), \ldots, m(x_m))$ 是均值,$k \equiv E(ff^T) - mm^T$ 是协方差矩阵,其元素为 $k(x_i, x_j)$。协方差函数 $k(x, x’)$ 反映了我们对函数 $f(x)$ 可变性的先验信念,通常选择径向基协方差函数,均值函数 $m(x)$ 通常设为常数。
2.1 高斯过程的统计推断
给定训练集 $D_m = {(x_i, y_i)|i = 1, \ldots, m}$,推断任务是预测新点 $x$ 的正确标签 $y$。在贝叶斯框架中,这通过使用 $f(x)$ 的后验分布来完成。
后验分布为:
[p(f, f(x)|y) = \frac{1}{p(y)} p(y|f) p(f, f(x))]
其中训练集输出为 $y = y_1, \ldots, y_m$,训练集激活的似然函数为 $p(y|f) = \prod_{i = 1}^m p(y_i|f(x_i)) = \prod_{i = 1}^m \Theta(y_i f(x_i))$,归一化常数为 $p(y) = \int df p(y|f) p(f)$。
预测分布为 $p(f(x)|y) = \int df p(f, f(x)|y)$,通过该分布可计算输出 $y$ 的概率 $p(y|y) = \int df p(y|f)p(f|y)$。对于二进制 $\pm 1$ 分类,贝叶斯分类器可表示为:
[y_{Bayes}(D_m, x) = \text{sgn} \int df p(f|y) \text{sgn} f]
3. 噪声建模
在实际情况中,噪声或模糊性几乎总是存在的。考虑两种噪声模型:输入(或加性)噪声和输出(或乘性)噪声。
- 输入噪声 :定义为添加到似然函数中激活函数的随机项,即 $p(y|f(x), \xi(x)) = \Theta(y (f(x) + \xi(x)))$。可以通过直接修改似然函数或改变变量到“有噪声”的过程 $f + \xi$ 来将输入噪声纳入高斯过程框架。例如,对于零均值和方差为 $v$ 的高斯噪声,第一种方法得到修改后的似然函数 $p(y|f) = \Phi(\frac{yf}{\sqrt{v}})$,对应于概率回归;第二种方法中,过程 $f + \xi$ 也是高斯过程,其协方差矩阵为 $k_{noisy} = k + vI$。
- 输出噪声 :是翻转噪声,即 $p(y|f(x), \xi(x)) = \Theta(y \xi(x) f(x))$,其中 $\xi \in {-1, +1}$。采用独立同分布的翻转过程,以概率 $\kappa$ 翻转分类标签,似然函数为 $p(y|f) = \kappa + (1 - 2\kappa) \Theta(yf)$。这种噪声过程可以模拟异常值的影响,但可能无法很好地处理某些数据中的异常值。
4. 从高斯过程到支持向量机
为了从高斯过程得到支持向量机,首先考虑激活和噪声变量的最大后验(MAP)值,通过最大化联合分布 $p(y, \xi, f) = \prod_i [p(y_i|f_i, \xi_i)p(\xi_i)] p(f)$ 或最小化负对数后验 $L = -\log p(y, \xi, f)$ 来获得。
将激活变量移到零均值高斯过程,并引入非负拉格朗日乘子 $\alpha$ 来强制执行似然函数的不等式约束,得到:
[L = -\sum_i \log p(\xi_i) - \log p(f) - \sum_i \alpha_i [y_i(f_i + b + \xi_i)]]
对 $f_i$ 求偏导并令其为 0,得到著名的 SVM 表达式 $f_{SVM}^i = \sum_j k_{ij}y_j\alpha_j$,MAP 预测为 $y_{SVM}(x) = \text{sgn}(\sum_j k(x, x_j)y_j\alpha_j + b)$。
然而,如果噪声分布的均值为零,对其他变量的变化会得到平凡解 $f = \alpha = 0$。为了得到 SVM 解,需要进行额外的临时修改,即引入一个间隔,最终表达式为:
[L = -\sum_i \log p(\xi_i) - \log p(f) - \sum_i \alpha_i [y_i(f_i + b + \xi_i) - 1]]
这种临时引入的额外间隔破坏了相应似然函数的概率解释,因为它未归一化,所以直接对 SVM 进行贝叶斯概率解释并不完全可行。但在实践中,当使用相同的协方差函数(核)和噪声(松弛)模型时,两种方法的预测往往非常相似。
对于输出噪声实现 $\xi = \pm 1$,无法采用相同的方案,因为这会导致一个难以解决的组合优化问题。可以使用对噪声实现进行平均后的似然函数,但它不是对应于简单不等式约束的 0 - 1 概率,在优化中难以使用拉格朗日乘子强制执行。而对于高斯过程的推断,处理这种似然函数在形式上和实际上都很直接。
5. 留一法估计器
推导 SVM 分类器泛化误差的近似留一法(loo)估计器。基本思想是计算移除示例 $l$ 时输入 $i$ 的解 $f_i$ 的变化。
移除示例 $l$ 前后的解分别为 $f_i = \sum_j k_{ij} y_j \alpha_j$ 和 $f_{i}^{\setminus l} = \sum_{j \neq l} k_{ij} y_j \alpha_{j}^{\setminus l}$,则变化量为 $\delta f_i = f_{i}^{\setminus l} - f_i = \sum_{j \neq l} k_{ij} y_j \delta \alpha_j - k_{il} y_l \alpha_l$。
留一法误差通过简单的错误计数得到:$\epsilon_{SVM}^{loo} = \frac{1}{m} \sum_i \Theta(-y_i f_{i}^{\setminus i})$。
为了计算 $\delta \alpha_j$,做出以下假设:
1. 非支持向量($y_j f_j > 1$ 且 $\alpha_j = 0$)在移除示例 $l$ 后仍为非支持向量,即 $\delta \alpha_j = 0$。
2. 边界支持向量($y_j f_j = 1$ 且 $\alpha_j \in [0, C]$)在移除示例 $l$ 后仍为边界支持向量,即 $\delta f_j = 0$。
3. 错误分类的模式($y_j f_j < 1$ 且 $\alpha_j = C$)在移除示例 $l$ 后仍为错误分类的模式,即 $\delta \alpha_j = 0$。
根据移除示例 $l$ 所属的组,分别计算 $\delta \alpha_j$ 和 $\delta f_i$:
- 若示例 $l$ 是非支持向量,则 $\delta \alpha_j = 0$。
- 若示例 $l$ 是边界支持向量,$\delta \alpha_i = \sum_{j \neq l} [(k_{mSV}^{\setminus l})^{-1}]
{ij} k
{jl} y_l \alpha_l$,$\delta f_i = -\frac{1}{[k_{mSV}^{-1}]
{ii}} y_i \alpha_i$。
- 若示例 $l$ 是错误分类的模式,$\delta \alpha_i = \sum_j [k
{mSV}^{-1}]
{ij} k
{jl} y_l \alpha_l$,$\delta f_i = (\sum_{j, j’} k_{ij} [k_{mSV}^{-1}]
{jj’} k
{j’i} - k_{ii}) y_i \alpha_i$。
虽然求逆 $k_{mSV}$ 计算成本较高,但预计其计算成本与找到优化问题的解相当。使用这种留一法估计器比精确的留一法估计要便宜得多,因为精确估计需要运行算法 $N$ 次。还可以使用类似 Wahba 的随机化 GACV 方法来降低估计器的计算复杂度。
这些结果可以很容易地推广到非零阈值的情况,只需将 $f_i$ 替换为 $f_i + b$,并相应地调整边界支持向量的 Kuhn - Tucker 条件。
6. 朴素平均场算法
平均场方法的目标是计算 GP 分类器的贝叶斯预测 $y_{Bayes}(x) = \text{sgn} \langle \text{sgn}f(x) \rangle$ 的近似值。这里只讨论“朴素”平均场算法,强调 SVM 和高斯过程方法之间的异同。
使用简化预测 $y(x) = \text{sgn} \langle f(x) \rangle$,当后验关于其均值对称时,贝叶斯分类器可简化为此形式。后验的精确表达式为:
[\langle f(x) \rangle = \frac{1}{p(y)} \int df df f p(y|f)p(f, f(x))]
通过一系列推导,得到 $\langle f(x) \rangle = \sum_{i = 1}^m k(x, x_i) y_i \alpha_i$,与 SVM 的预测形式相同。对于平均场方法,示例 $i$ 的“嵌入强度” $\alpha_i$ 为:
[\alpha_i = \frac{y_i}{p(y)} \int df p(f) \frac{\partial}{\partial f_i} p(y|f)]
为了近似计算 $\alpha_i$,引入辅助变量 $t$,经过一系列积分和近似,得到“朴素”平均场近似下的 $\alpha_i$ 表达式:
[\alpha_i = \frac{1}{\sqrt{k_{ii}}} \frac{(1 - 2\kappa) D(z_i)}{\kappa + (1 - 2\kappa) \Phi(z_i)}]
其中 $z_i = \frac{y_i \langle f_i \rangle - k_{ii} y_i \alpha_i}{\sqrt{k_{ii}}}$,$D(z) = \frac{e^{-z^2/2}}{\sqrt{2\pi}}$ 是高斯测度。
“朴素”平均场近似忽略了变量 $\sum_{j \neq i} k_{ij} (-it_j)$ 的波动,将其替换为期望值 $\sum_{j \neq i} k_{ij} \langle -it_j \rangle = \sum_{j \neq i} k_{ij} y_j \alpha_j$。
给出了求解平均场方程的并行迭代方案的伪代码:
Algorithm 17.1 : Naive mean field
Initialization:
Start from tabula rasa, α := 0.
Learning rate, η := 0.05.
Fault tolerance, ftol := 10−5.
Iterate:
while maxi |δαi|2 > ftol do:
for all i:
⟨fi⟩:= ∑j kijyjαj
δαi := (1 / √kii) * ((1 - 2κ)D(zi) / (κ + (1 - 2κ)Φ(zi))) - αi,
zi ≡ (yi ⟨fi⟩ - kiiyiαi) / √kii
endfor
for all i:
αi := αi + ηδαi
endwhile
为了确保(并快速)收敛,使用自适应学习率:如果更新步骤中 “误差” $\sum_i |\delta \alpha_i|^2$ 减小,则将 $\eta$ 设置为 $1.1\eta$,否则将其设置为 $\eta/2$。该算法并非对所有超参数值都收敛,但如果 SVM 对于某些超参数选择有解,平均场算法几乎总是会收敛到一个解,反之亦然。
还给出了朴素平均场算法的留一法估计器:
[\epsilon_{naive}^{loo} = \frac{1}{m} \sum_{i \in SV} \Theta(-y_i \langle f_i \rangle + (\frac{1}{[(Ω + k)^{-1}]
{ii}} - Ω_i) \alpha_i)]
其中 $Ω$ 是对角矩阵,元素为 $Ω_i = k
{ii} (\frac{1}{y_i \alpha_i \langle f_i \rangle} - 1)$。
7. 模拟结果
在威斯康星乳腺癌数据集上测试了两种算法,该数据集是基于 9 个属性的二进制分类任务。移除了 16 个有缺失值的示例,并进行了标准预处理,使每个输入的均值为零,方差为 1。使用 10 折交叉验证评估性能。
对于 SVM,使用 Anlauf 和 Biehl 的 Adatron 算法的并行版本;对于朴素平均场理论,使用上一节描述的迭代方案求解平均场方程。选择径向基协方差函数,并使用高斯噪声模型。通过扫描多个参数值,选择参数 $\sigma^2 = 0.15/N$ 和 $v = 1.3$ 用于两种算法,对于平均场算法,$\kappa = 0$。
10 折交叉验证误差分别为:SVM 的 $\epsilon = 0.0307$(21 个误分类),朴素平均场理论的 $\epsilon = 0.0293$(20 个误分类)。留一法误差分别为 $\epsilon_{loo} = 0.0293$ 和 $\epsilon_{loo} = 0.0270$。
比较两种算法的学习速度,在不评估留一法估计器时,朴素平均场算法比 Adatron 快约 4 倍;在评估留一法估计器时,SVM 比朴素平均场算法快约 4 倍。这是因为 SVM 的留一法估计器只需要求逆边界支持向量示例的协方差矩阵,而朴素平均场算法的留一法估计器需要求逆整个训练集的协方差矩阵。
两种算法的“嵌入强度” $\alpha_i$ 解非常相似,但小的差异导致了不同的间隔分布。朴素平均场算法实现的间隔既有比 SVM 小的,也有比 SVM 大的。留一法估计器预测为错误分类的示例几乎都是 $\alpha_i$ 最高的示例,这表明可以引入一个启发式的 $\alpha_i$ 截断值,使留一法估计器更快,而不会显著降低估计器的质量。
| 算法 | $\epsilon_{exact}^{loo}$ | $\epsilon_{loo}$ | CPU w. loo | CPU wo. loo | 迭代次数 |
|---|---|---|---|---|---|
| SVM | 0.0261 | 0.0261 | 5 | 4 | 195 |
| Naive Mean Field | 0.0293 | 0.0293 | 16 | 1 | 31 |
总结
本文讨论了高斯过程和支持向量机(SVM)分类的两个方面。一方面,展示了 SVM 可以作为 GP 模型的最大后验预测推导出来,但相应的似然函数未归一化,无法进行完全令人满意的概率解释。另一方面,介绍了两种近似方法,用于处理 GP 和 SVM 学习中出现的计算问题。使用线性响应理论推导了 SVM 泛化误差的近似留一法估计器,该估计器只需要求逆边界支持向量示例的协方差矩阵;使用“朴素”平均场方法推导了 GP 分类器的贝叶斯预测算法,其留一法估计器需要求逆整个训练集的协方差矩阵,这凸显了 SVM 和 GP 在处理大数据集时的一个重要差异,即 GP 解缺乏 SVM 的稀疏性。
在威斯康星乳腺癌数据集上的模拟结果表明,两种算法的性能非常相似,近似留一法估计器与精确留一法估计器完全一致。未来的重要研究方向是找到自动调整核中更多超参数的有效方法,贝叶斯模型选择方法如证据(或 MLII)方法可能是有前途的替代方案,但需要更详细地理解 GP 和 SVM 之间的定量关系和差异。
高斯过程与支持向量机:平均场与留一法
8. 两种算法对比总结
- 理论关联 :SVM 可从 GP 模型的最大后验预测推导得出,但对应的似然函数未归一化,难以实现完美的概率解释。
- 计算难题处理 :在处理 GP 和 SVM 学习中的计算问题时,采用了不同的近似方法。SVM 借助线性响应理论推导泛化误差的近似留一法估计器,仅需对边界支持向量示例的协方差矩阵求逆;而 GP 分类器运用“朴素”平均场方法推导贝叶斯预测算法,其留一法估计器则需对整个训练集的协方差矩阵求逆,这体现出 GP 解缺少 SVM 的稀疏性,在处理大数据集时会产生重要影响。
- 性能表现 :在威斯康星乳腺癌数据集的模拟测试中,两种算法性能相近,近似留一法估计器与精确留一法估计器高度吻合。
9. 未来研究方向
- 超参数自动调整 :当前研究虽已取得一定成果,但仍需探索自动调整核中更多超参数的高效方法。这对于适应输入组件的不同长度尺度至关重要,能够进一步提升算法的性能和适应性。
- 贝叶斯模型选择方法应用 :贝叶斯模型选择方法,如证据(或 MLII)方法,具有很大的潜力。它们不仅适用于贝叶斯 GP 方法,也可能在 SVM 中发挥重要作用。然而,要有效应用这些方法,需要深入理解 GP 和 SVM 之间的定量关系和差异,以确保方法的准确性和可靠性。
10. 操作建议
- 参数选择 :在实际应用中,可参考威斯康星乳腺癌数据集的参数选择经验。对于 SVM 和朴素平均场算法,选择径向基协方差函数和高斯噪声模型是一个不错的起点。通过扫描多个参数值,找到使留一法误差最小的参数组合。例如,在该数据集中,选择 $\sigma^2 = 0.15/N$ 和 $v = 1.3$ 用于两种算法,对于平均场算法,$\kappa = 0$。
- 算法选择 :根据计算资源和数据规模选择合适的算法。如果计算资源有限且数据规模较大,SVM 在评估留一法估计器时具有优势;如果不评估留一法估计器,朴素平均场算法速度更快。
- 留一法估计器优化 :为了提高留一法估计器的计算效率,可以引入启发式的 $\alpha_i$ 截断值。只考虑 $\alpha_i$ 较高的示例的协方差矩阵,如预期错误率约为 5% 时,可仅考虑 10% 的 $\alpha_i$ 最高的示例。
11. 关键流程回顾
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(数据预处理):::process --> B(参数选择):::process
B --> C{算法选择}:::process
C -->|SVM| D(SVM 训练):::process
C -->|朴素平均场算法| E(朴素平均场算法训练):::process
D --> F(留一法估计器计算):::process
E --> G(留一法估计器计算):::process
F --> H(性能评估):::process
G --> H
12. 补充说明
- 算法收敛性 :朴素平均场算法并非对所有超参数值都能收敛,但如果 SVM 对于某些超参数选择有解,平均场算法几乎总是会收敛到一个解,反之亦然。在实际应用中,可使用自适应学习率来确保并加快收敛速度。
- 计算复杂度 :虽然求逆边界支持向量示例的协方差矩阵计算成本较高,但预计其计算成本与找到优化问题的解相当。在处理大规模数据时,可考虑使用类似 Wahba 的随机化 GACV 方法来降低估计器的计算复杂度。
13. 总结展望
高斯过程和支持向量机在分类问题中都具有重要的应用价值。通过深入研究它们之间的关系和近似计算方法,我们能够更好地理解和应用这两种算法。未来的研究将聚焦于超参数的自动调整和贝叶斯模型选择方法的应用,以进一步提高算法的性能和适应性。同时,在实际应用中,我们应根据具体情况选择合适的算法和参数,合理利用计算资源,以实现最佳的分类效果。相信随着研究的不断深入,高斯过程和支持向量机将在更多领域发挥重要作用。
超级会员免费看
13

被折叠的 条评论
为什么被折叠?



