支持向量回归(Support Vector Regression, SVR)的数学原理与优化求解过程
字数 3783 2025-12-23 13:23:13

支持向量回归(Support Vector Regression, SVR)的数学原理与优化求解过程


1. 问题描述

支持向量回归(SVR)是支持向量机(SVM)在回归任务中的扩展,其目标是在给定训练样本 \(\{(\mathbf{x}_i, y_i)\}_{i=1}^n\)\(\mathbf{x}_i \in \mathbb{R}^d, y_i \in \mathbb{R}\))后,找到一个函数 \(f(\mathbf{x}) = \mathbf{w}^T \phi(\mathbf{x}) + b\),使得 \(f(\mathbf{x})\) 与真实值 \(y\) 的偏差控制在允许范围内,同时保持模型复杂度最低。SVR 的关键思想是引入 ε-不敏感损失函数,仅当预测值与真实值的绝对偏差大于 ε 时才计算损失,从而获得稀疏解(即仅部分样本参与定义模型)。


2. ε-不敏感损失函数

对于预测值 \(f(\mathbf{x})\) 和真实值 \(y\),定义损失函数:

\[L_\epsilon(y, f(\mathbf{x})) = \max(0, |y - f(\mathbf{x})| - \epsilon) \]

该函数在区间 \([y-\epsilon, y+\epsilon]\) 内损失为 0,即允许预测存在 ε 的误差,超出部分才计入损失。


3. 原始优化问题

为容忍误差,引入两个松弛变量 \(\xi_i \geq 0\)\(\xi_i^* \geq 0\),分别对应正偏差和负偏差超过 ε 的情况。优化目标是最小化正则化项与损失之和:

\[\begin{aligned} \min_{\mathbf{w}, b, \xi, \xi^*} &\quad \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^n (\xi_i + \xi_i^*) \\ \text{s.t.} &\quad y_i - (\mathbf{w}^T \phi(\mathbf{x}_i) + b) \leq \epsilon + \xi_i, \\ &\quad (\mathbf{w}^T \phi(\mathbf{x}_i) + b) - y_i \leq \epsilon + \xi_i^*, \\ &\quad \xi_i, \xi_i^* \geq 0, \quad i = 1, \dots, n. \end{aligned} \]

其中 \(C > 0\) 是正则化参数,控制模型复杂度和损失之间的权衡;\(\phi(\cdot)\) 是映射到高维特征空间的函数(核技巧)。


4. 拉格朗日对偶问题

引入拉格朗日乘子 \(\alpha_i \geq 0\)\(\alpha_i^* \geq 0\) 对应两个约束,以及 \(\eta_i, \eta_i^* \geq 0\) 对应松弛变量的非负性。拉格朗日函数为:

\[\begin{aligned} L &= \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^n (\xi_i + \xi_i^*) \\ &- \sum_{i=1}^n \alpha_i \big( \epsilon + \xi_i - y_i + \mathbf{w}^T \phi(\mathbf{x}_i) + b \big) \\ &- \sum_{i=1}^n \alpha_i^* \big( \epsilon + \xi_i^* + y_i - \mathbf{w}^T \phi(\mathbf{x}_i) - b \big) \\ &- \sum_{i=1}^n (\eta_i \xi_i + \eta_i^* \xi_i^*). \end{aligned} \]

对原始变量 \(\mathbf{w}, b, \xi_i, \xi_i^*\) 求偏导并令为零:

\[\begin{aligned} \frac{\partial L}{\partial \mathbf{w}} &= \mathbf{w} - \sum_{i=1}^n (\alpha_i - \alpha_i^*) \phi(\mathbf{x}_i) = 0 \quad \Rightarrow \quad \mathbf{w} = \sum_{i=1}^n (\alpha_i - \alpha_i^*) \phi(\mathbf{x}_i), \\ \frac{\partial L}{\partial b} &= \sum_{i=1}^n (\alpha_i - \alpha_i^*) = 0, \\ \frac{\partial L}{\partial \xi_i} &= C - \alpha_i - \eta_i = 0 \quad \Rightarrow \quad \alpha_i \leq C, \\ \frac{\partial L}{\partial \xi_i^*} &= C - \alpha_i^* - \eta_i^* = 0 \quad \Rightarrow \quad \alpha_i^* \leq C. \end{aligned} \]

将上述关系代入拉格朗日函数,消去原始变量,得到对偶问题:

\[\begin{aligned} \max_{\alpha, \alpha^*} &\quad -\frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n (\alpha_i - \alpha_i^*) (\alpha_j - \alpha_j^*) K(\mathbf{x}_i, \mathbf{x}_j) - \epsilon \sum_{i=1}^n (\alpha_i + \alpha_i^*) + \sum_{i=1}^n y_i (\alpha_i - \alpha_i^*) \\ \text{s.t.} &\quad \sum_{i=1}^n (\alpha_i - \alpha_i^*) = 0, \\ &\quad 0 \leq \alpha_i, \alpha_i^* \leq C, \quad i = 1, \dots, n. \end{aligned} \]

其中 \(K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j)\) 是核函数(如高斯核 \(K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2)\))。


5. 支持向量的定义与模型表示

求解对偶问题后,根据 KKT 条件

  • \(|y_i - f(\mathbf{x}_i)| < \epsilon\) 时,对应的 \(\alpha_i = \alpha_i^* = 0\)(样本在 ε 管道内,不是支持向量)。
  • 当偏差等于 ε 或更大时,\(\alpha_i\)\(\alpha_i^*\) 可能非零,这些样本称为 支持向量
    最终回归函数为:

\[f(\mathbf{x}) = \sum_{i=1}^n (\alpha_i - \alpha_i^*) K(\mathbf{x}_i, \mathbf{x}) + b. \]

偏置 \(b\) 可通过任意满足 \(0 < \alpha_i < C\)\(0 < \alpha_i^* < C\) 的样本计算:

\[b = y_i - \sum_{j=1}^n (\alpha_j - \alpha_j^*) K(\mathbf{x}_j, \mathbf{x}_i) - \epsilon \quad \text{(若 } \alpha_i > 0\text{)}, \]

\[b = y_i - \sum_{j=1}^n (\alpha_j - \alpha_j^*) K(\mathbf{x}_j, \mathbf{x}_i) + \epsilon \quad \text{(若 } \alpha_i^* > 0\text{)}. \]


6. 求解方法与总结

  • 对偶问题是凸二次规划,可用序列最小优化(SMO)或通用优化器求解。
  • 核函数使 SVR 能处理非线性回归,其稀疏性源于 ε-不敏感损失。
  • 超参数 \(C\)(惩罚系数)、\(\epsilon\)(管道宽度)和核参数(如高斯核的 \(\gamma\))通常通过交叉验证选择。

SVR 通过 ε-不敏感损失控制模型复杂度与误差容忍度,利用核技巧处理非线性关系,最终解仅依赖部分支持向量,具有较好的泛化能力。

支持向量回归(Support Vector Regression, SVR)的数学原理与优化求解过程 1. 问题描述 支持向量回归(SVR)是支持向量机(SVM)在回归任务中的扩展,其目标是在给定训练样本 \(\{(\mathbf{x} i, y_ i)\} {i=1}^n\)(\(\mathbf{x}_ i \in \mathbb{R}^d, y_ i \in \mathbb{R}\))后,找到一个函数 \(f(\mathbf{x}) = \mathbf{w}^T \phi(\mathbf{x}) + b\),使得 \(f(\mathbf{x})\) 与真实值 \(y\) 的偏差控制在允许范围内,同时保持模型复杂度最低。SVR 的关键思想是引入 ε-不敏感损失函数 ,仅当预测值与真实值的绝对偏差大于 ε 时才计算损失,从而获得稀疏解(即仅部分样本参与定义模型)。 2. ε-不敏感损失函数 对于预测值 \(f(\mathbf{x})\) 和真实值 \(y\),定义损失函数: \[ L_ \epsilon(y, f(\mathbf{x})) = \max(0, |y - f(\mathbf{x})| - \epsilon) \] 该函数在区间 \([ y-\epsilon, y+\epsilon ]\) 内损失为 0,即允许预测存在 ε 的误差,超出部分才计入损失。 3. 原始优化问题 为容忍误差,引入两个松弛变量 \(\xi_ i \geq 0\) 和 \(\xi_ i^* \geq 0\),分别对应正偏差和负偏差超过 ε 的情况。优化目标是最小化正则化项与损失之和: \[ \begin{aligned} \min_ {\mathbf{w}, b, \xi, \xi^ } &\quad \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_ {i=1}^n (\xi_ i + \xi_ i^ ) \\ \text{s.t.} &\quad y_ i - (\mathbf{w}^T \phi(\mathbf{x}_ i) + b) \leq \epsilon + \xi_ i, \\ &\quad (\mathbf{w}^T \phi(\mathbf{x}_ i) + b) - y_ i \leq \epsilon + \xi_ i^ , \\ &\quad \xi_ i, \xi_ i^ \geq 0, \quad i = 1, \dots, n. \end{aligned} \] 其中 \(C > 0\) 是正则化参数,控制模型复杂度和损失之间的权衡;\(\phi(\cdot)\) 是映射到高维特征空间的函数(核技巧)。 4. 拉格朗日对偶问题 引入拉格朗日乘子 \(\alpha_ i \geq 0\)、\(\alpha_ i^* \geq 0\) 对应两个约束,以及 \(\eta_ i, \eta_ i^* \geq 0\) 对应松弛变量的非负性。拉格朗日函数为: \[ \begin{aligned} L &= \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_ {i=1}^n (\xi_ i + \xi_ i^ ) \\ &- \sum_ {i=1}^n \alpha_ i \big( \epsilon + \xi_ i - y_ i + \mathbf{w}^T \phi(\mathbf{x} i) + b \big) \\ &- \sum {i=1}^n \alpha_ i^ \big( \epsilon + \xi_ i^* + y_ i - \mathbf{w}^T \phi(\mathbf{x} i) - b \big) \\ &- \sum {i=1}^n (\eta_ i \xi_ i + \eta_ i^* \xi_ i^ ). \end{aligned} \] 对原始变量 \(\mathbf{w}, b, \xi_ i, \xi_ i^ \) 求偏导并令为零: \[ \begin{aligned} \frac{\partial L}{\partial \mathbf{w}} &= \mathbf{w} - \sum_ {i=1}^n (\alpha_ i - \alpha_ i^ ) \phi(\mathbf{x} i) = 0 \quad \Rightarrow \quad \mathbf{w} = \sum {i=1}^n (\alpha_ i - \alpha_ i^ ) \phi(\mathbf{x} i), \\ \frac{\partial L}{\partial b} &= \sum {i=1}^n (\alpha_ i - \alpha_ i^ ) = 0, \\ \frac{\partial L}{\partial \xi_ i} &= C - \alpha_ i - \eta_ i = 0 \quad \Rightarrow \quad \alpha_ i \leq C, \\ \frac{\partial L}{\partial \xi_ i^ } &= C - \alpha_ i^* - \eta_ i^* = 0 \quad \Rightarrow \quad \alpha_ i^* \leq C. \end{aligned} \] 将上述关系代入拉格朗日函数,消去原始变量,得到对偶问题: \[ \begin{aligned} \max_ {\alpha, \alpha^ } &\quad -\frac{1}{2} \sum_ {i=1}^n \sum_ {j=1}^n (\alpha_ i - \alpha_ i^ ) (\alpha_ j - \alpha_ j^ ) K(\mathbf{x}_ i, \mathbf{x} j) - \epsilon \sum {i=1}^n (\alpha_ i + \alpha_ i^ ) + \sum_ {i=1}^n y_ i (\alpha_ i - \alpha_ i^ ) \\ \text{s.t.} &\quad \sum_ {i=1}^n (\alpha_ i - \alpha_ i^ ) = 0, \\ &\quad 0 \leq \alpha_ i, \alpha_ i^* \leq C, \quad i = 1, \dots, n. \end{aligned} \] 其中 \(K(\mathbf{x}_ i, \mathbf{x}_ j) = \phi(\mathbf{x}_ i)^T \phi(\mathbf{x}_ j)\) 是核函数(如高斯核 \(K(\mathbf{x}_ i, \mathbf{x}_ j) = \exp(-\gamma \|\mathbf{x}_ i - \mathbf{x}_ j\|^2)\))。 5. 支持向量的定义与模型表示 求解对偶问题后,根据 KKT 条件 : 当 \(|y_ i - f(\mathbf{x}_ i)| < \epsilon\) 时,对应的 \(\alpha_ i = \alpha_ i^* = 0\)(样本在 ε 管道内,不是支持向量)。 当偏差等于 ε 或更大时,\(\alpha_ i\) 或 \(\alpha_ i^ \) 可能非零,这些样本称为 支持向量 。 最终回归函数为: \[ f(\mathbf{x}) = \sum_ {i=1}^n (\alpha_ i - \alpha_ i^ ) K(\mathbf{x} i, \mathbf{x}) + b. \] 偏置 \(b\) 可通过任意满足 \(0 < \alpha_ i < C\) 或 \(0 < \alpha_ i^* < C\) 的样本计算: \[ b = y_ i - \sum {j=1}^n (\alpha_ j - \alpha_ j^ ) K(\mathbf{x}_ j, \mathbf{x} i) - \epsilon \quad \text{(若 } \alpha_ i > 0\text{)}, \] 或 \[ b = y_ i - \sum {j=1}^n (\alpha_ j - \alpha_ j^ ) K(\mathbf{x}_ j, \mathbf{x}_ i) + \epsilon \quad \text{(若 } \alpha_ i^* > 0\text{)}. \] 6. 求解方法与总结 对偶问题是凸二次规划,可用序列最小优化(SMO)或通用优化器求解。 核函数使 SVR 能处理非线性回归,其稀疏性源于 ε-不敏感损失。 超参数 \(C\)(惩罚系数)、\(\epsilon\)(管道宽度)和核参数(如高斯核的 \(\gamma\))通常通过交叉验证选择。 SVR 通过 ε-不敏感损失控制模型复杂度与误差容忍度,利用核技巧处理非线性关系,最终解仅依赖部分支持向量,具有较好的泛化能力。