精读西瓜书(第六章-支持向量机)-支持向量回归

写在前面

  • 昨天, 我们学习了SVM中的软间隔与正则化; 今天, 我们继续学习SVM中的支持向量回归.

支持向量回归

  • 现在我们来考虑回归问题. 给定训练样本 \(D = \lbrace (x_{1}, y_{1}), (x_{2}, y_{2}), …, (x_{m}, y_{m}) \rbrace\) , \(y_{i} \in \mathbb{R}\) , 希望学得一个回归模型, 使得 \(f(x)\) 与 \(y\) 尽可能接近, \(w\) 和 \(b\) 是待确定的模型参数.
  • 对样本 \((x, y)\) , 传统回归模型通常直接基于模型输出 \(f(x)\) 与真实输出 \(y\) 之间的差别来计算损失, 当且仅当 \(f(x)\) 与 \(y\) 完全相同时, 损失才为零. 与此不同, 支持向量回归(Support Vector Regression, 简称SVR)假设我们能容忍 \(f(x)\) 与 \(y\) 之间最多有 \(\varepsilon\) 的偏差, 即仅当 \(f(x)\) 与 \(y\) 之间的差别绝对值大于 \(\varepsilon\) 时才计算损失. 如下图, 这相当于以 \(f(x)\) 为中心, 构建了一个宽度为 \(2\varepsilon\) 的间隔带, 若训练样本落入此间隔带, 则认为是被预测正确的.
  • 于是, SVR问题可形式化为:
  • 其中 \(C\) 为正则化常数, \(l_{\varepsilon}\) 是 \(\varepsilon\) - 不敏感损失 ( \(\varepsilon\) - insensitive loss )函数:
  • 引入松弛变量 \(\varepsilon {i}\) 和 \(\hat{\varepsilon}{i}\) , 可重写为:

- 通过引入拉格朗日乘子 \(\mu_{i} \geq 0 , \hat{\mu_{i}} \geq 0 , \alpha_{i} \geq 0 , \hat{\alpha_{i}} \geq 0\) , 由拉格朗日乘子法可得到拉格朗日函数: * 再令 \(L(w, b, \alpha , \hat{\alpha} , \varepsilon , \hat{\varepsilon} , \mu , \hat{\mu})\) , 对 \(w , b, \varepsilon {i}\) 和 \(\hat{\varepsilon}{i}\) 的偏导为零可得:

  • 将式带入, 即可得到SVR的对偶问题:
  • 上述过程中满足KKT条件, 即要求:
  • 可以看出, 当且仅当 \(f(x) - y_{i} - \varepsilon - \varepsilon {i} = 0\) 时 \(\alpha{i}\) 能取非零值, 当且仅当 \(y_{i} - f(x_{i}) - \varepsilon - \hat{\varepsilon}{i} = 0\) 时 \(\hat{\alpha}{i}\) 能取非零值. 换言之, 仅当样本 \((x_{i}, y_{i})\) 不落入 \(\varepsilon\) - 间隔带中, 相应的 \(\alpha_{i}\) 和 \(\hat{\alpha}{i}\) 才能取非零值. 此外, 约束 \(f(x{i}) - y_{i} - \varepsilon - \varepsilon_{i} = 0\) 和 \(y_{i} - f(x_{i}) - \varepsilon - \hat{\varepsilon}{i} = 0\) 不能同时成立, 因此 \(\alpha{i}\) 和 \(\hat{\alpha}_{i}\) 中至少有一个为零. 则SVR的解形如:
  • 能使 \((\hat{\alpha}{i} - \alpha{i}) \neq 0\) 的样本即为SVR的支持向量, 他们必须落在 \(\varepsilon\) - 间隔带之外. 显然, SVR的支持向量仅是训练样本的一部分, 即其解仍具有稀疏性. 由KKT条件可看出, 对每个样本 \((x_{i}, y_{i})\) 都有 \((C - \alpha_{i})\varepsilon_{i} = 0\) 且 \(\alpha_{i} (f(x_{i}) - y_{i} - \varepsilon - \varepsilon_{i}) = 0\) . 于是, 在得到 \(\alpha_{i}\) 后, 若 \(0 < \alpha_{i} < C\) , 则必有 \(\varepsilon_{i} = 0\) 进而有:
  • 因此, 在求解得到 \(\alpha_{i}\) 后, 理论上来说, 可任意选取满足 \(0 < \alpha_{i} < C\) 的样本求得 \(b\) . 实践中长采用一种更鲁棒的办法: 选取多个(或所有)满足条件 \(0 < \alpha_{i} < C\) 的样本求解 \(b\) 后取平均值. 若考虑特征映射形式, 相应的, 得到:
  • 则SVR可表示为:
    其中 \(k(x_{i}, x_{j}) = \phi (x_{i})^{T} \phi (x_{j})\) 为核函数.

写在后面

  • 今天, 我们学习了SVM中的支持向量回归; 明天, 我们将继续学习SVM中的核方法.