线性可分支持向量机的对偶问题求解

原始问题

首先,我们从支持向量机的原始优化问题开始。对于线性可分支持向量机,我们要解决如下优化问题:

原始问题 (Primal problem):
min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2}\|w\|^2 w,bmin21w2
约束条件 (Constraints):
y i ( w T x i + b ) − 1 ≥ 0 , i = 1 , … , n y_i(w^T x_i + b) - 1 \ge 0, \quad i = 1, \dots, n yi(wTxi+b)10,i=1,,n
其中w是权重向量,b是偏置,x_i是输入样本,y_i是样本的类别标签(+1或-1),n是样本数。

对偶问题

为了使用拉格朗日对偶性,我们首先引入拉格朗日乘子α_i(对每个约束条件一个)以及广义拉格朗日函数:

广义拉格朗日函数 (Lagrangian):
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y i ( w T x i + b ) − 1 ] L(w, b, \alpha) = \frac{1}{2}\|w\|^2 - \sum_{i=1}^n \alpha_i [y_i(w^T x_i + b) - 1] L(w,b,α)=21w2i=1nαi[yi(wTxi+b)1]
其中α是一个非负的拉格朗日乘子向量。

接下来,我们计算关于wb的拉格朗日函数的梯度,令它们为零。这样我们就可以消去wb,将原始问题转化为对偶问题。

求解关于wb的梯度:

∂ L ∂ w = w − ∑ i = 1 n α i y i x i = 0 \frac{\partial L}{\partial w} = w - \sum_{i=1}^n \alpha_i y_i x_i = 0 wL=wi=1nαiyixi=0
得到:
w = ∑ i = 1 n α i y i x i w = \sum_{i=1}^n \alpha_i y_i x_i w=i=1nαiyixi

∂ L ∂ b = − ∑ i = 1 n α i y i = 0 \frac{\partial L}{\partial b} = -\sum_{i=1}^n \alpha_i y_i = 0 bL=i=1nαiyi=0
从而得出:
∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1nαiyi=0

将以上结果代回拉格朗日函数,我们得到对偶问题:

对偶问题 (Dual problem):
max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( x i T x j ) \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i^T x_j) αmaxi=1nαi21i=1nj=1nαiαjyiyj(xiTxj)
约束条件:
α i ≥ 0 , i = 1 , … , n \alpha_i \ge 0, \quad i = 1, \dots, n αi0,i=1,,n
以及
∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1nαiyi=0

通过求解这个对偶问题,我们可以找到最优的拉格朗日乘子α_i,然后通过原始问题和对偶问题的关系,找到最优的wb。这就是将原始支持向量机问题通过拉格朗日对偶性转化为对偶问题的过程。

广义拉格朗日函数

广义拉格朗日函数(Generalized Lagrangian)是一种用于处理具有约束条件的优化问题的方法。它通过将原始优化问题的目标函数与约束条件结合在一起,创建一个新的函数,使得在一定条件下,原始问题与其对偶问题具有相同的解。

广义拉格朗日函数的形式如下:

L ( w , b , α ) = f ( w , b ) − ∑ i = 1 n α i g i ( w , b ) L(w, b, \alpha) = f(w, b) - \sum_{i=1}^n \alpha_i g_i(w, b) L(w,b,α)=f(w,b)i=1nαigi(w,b)

其中,f(w, b)是原始目标函数,g_i(w, b)是第i个约束条件,α_i是拉格朗日乘子,它是一个非负实数。这里的减号表示约束条件是不等式约束,并且是大于等于0的形式。如果约束条件是等式约束,那么我们需要使用加号。

通过将约束条件以这种方式融入目标函数,我们可以将约束优化问题转化为无约束优化问题。当拉格朗日函数关于wb的梯度为零时,约束条件被满足,从而我们能找到满足约束条件的最优解。

为什么能够将约束条件加在目标函数后面?这是因为拉格朗日乘子α_i的引入。对于满足约束条件的解,g_i(w, b) >= 0,此时α_i >= 0,使得拉格朗日函数的值不受约束条件的影响。而对于不满足约束条件的解,我们可以通过调整α_i的值,使得拉格朗日函数的值变得非常大,从而在优化过程中避免这些不满足约束条件的解。

在使用拉格朗日对偶性时,我们需要确保原始问题和对偶问题之间的一些性质,如强对偶性。强对偶性保证了原始问题和对偶问题具有相同的最优值。在某些条件下,例如凸优化问题(如支持向量机),这些性质自然满足,使得拉格朗日对偶性成为一种有效的求解方法。

手算示例

我们将通过一个简单的例子手动计算线性可分支持向量机的对偶问题。考虑以下两个类别的二维数据集:

类别1(正类):

x1 = (1, 1), y1 = +1
x2 = (2, 2), y2 = +1

类别2(负类):

x3 = (3, 3), y3 = -1
x4 = (4, 4), y4 = -1

对于线性可分支持向量机,我们要求解以下对偶问题:

max ⁡ α ∑ i = 1 4 α i − 1 2 ∑ i = 1 4 ∑ j = 1 4 α i α j y i y j ( x i T x j ) \max_{\alpha} \sum_{i=1}^4 \alpha_i - \frac{1}{2} \sum_{i=1}^4 \sum_{j=1}^4 \alpha_i \alpha_j y_i y_j (x_i^T x_j) αmaxi=14αi21i=14j=14αiαjyiyj(xiTxj)

约束条件:

α i ≥ 0 , i = 1 , … , 4 \alpha_i \ge 0, \quad i = 1, \dots, 4 αi0,i=1,,4

以及

∑ i = 1 4 α i y i = 0 \sum_{i=1}^4 \alpha_i y_i = 0 i=14αiyi=0

计算内积(kernel):

K(x1, x1) = 2, K(x1, x2) = 4, K(x1, x3) = 6, K(x1, x4) = 8
K(x2, x2) = 8, K(x2, x3) = 12, K(x2, x4) = 16
K(x3, x3) = 18, K(x3, x4) = 24
K(x4, x4) = 32

我们的对偶问题可以表示为:

max ⁡ α ( α 1 + α 2 − α 3 − α 4 ) − 1 2 ( 2 α 1 2 + 4 α 1 α 2 + 8 α 1 α 3 + 8 α 1 α 4 + 8 α 2 2 + 16 α 2 α 3 + 16 α 2 α 4 + 18 α 3 2 + 24 α 3 α 4 + 32 α 4 2 ) \max_{\alpha} (\alpha_1 + \alpha_2 - \alpha_3 - \alpha_4) - \frac{1}{2}(2\alpha_1^2 + 4\alpha_1\alpha_2 + 8\alpha_1\alpha_3 + 8\alpha_1\alpha_4 + 8\alpha_2^2 + 16\alpha_2\alpha_3 + 16\alpha_2\alpha_4 + 18\alpha_3^2 + 24\alpha_3\alpha_4 + 32\alpha_4^2) αmax(α1+α2α3α4)21(2α12+4α1α2+8α1α3+8α1α4+8α22+16α2α3+16α2α4+18α32+24α3α4+32α42)

约束条件为:

α1 + α2 - α3 - α4 = 0
α1, α2, α3, α4 ≥ 0

我们可以使用拉格朗日乘子法、梯度下降法、序列最小优化(SMO)等方法求解这个优化问题。在这个简单的例子中,我们可以观察到,对于训练数据点x1x3,决策边界在它们中间,即x = (2, 2)。由于x2x4在决策边界的同侧,它们不会是支持向量。

因此,我们可以猜测:α2 = α4 = 0,而α1和α3是非零值。根据约束条件,α1 - α3根据约束条件,我们有:

α 1 − α 3 = 0 \alpha_1 - \alpha_3 = 0 α1α3=0

由于我们猜测了α2 = α4 = 0,那么α1α3应该相等。我们可以令α1 = α3 = k,其中k > 0。那么,我们的对偶问题可以简化为:

max ⁡ k 2 k − 1 2 ( 2 k 2 + 8 k 2 ) \max_{k} 2k - \frac{1}{2}(2k^2 + 8k^2) kmax2k21(2k2+8k2)

k求导,并令导数等于零以找到最大值:

d d k ( 2 k − 10 k 2 ) = 2 − 20 k = 0 \frac{d}{dk} (2k - 10k^2) = 2 - 20k = 0 dkd(2k10k2)=220k=0

解得k = 1/10。因此,我们有α1 = α3 = 1/10。由于我们假设α2 = α4 = 0,我们现在得到了所有的拉格朗日乘子。

现在,我们可以计算权重向量w

w = ∑ i = 1 4 α i y i x i = 1 10 ( 1 , 1 ) + 0 ( 2 , 2 ) − 1 10 ( 3 , 3 ) − 0 ( 4 , 4 ) = ( − 1 5 , − 1 5 ) w = \sum_{i=1}^4 \alpha_i y_i x_i = \frac{1}{10}(1, 1) + 0(2, 2) - \frac{1}{10}(3, 3) - 0(4, 4) = (-\frac{1}{5}, -\frac{1}{5}) w=i=14αiyixi=101(1,1)+0(2,2)101(3,3)0(4,4)=(51,51)

要计算截距b,我们可以使用任何支持向量,例如x1

b = y 1 − w T x 1 = 1 − ( − 1 5 ) ( 1 + 1 ) = 3 5 b = y1 - w^T x1 = 1 - (-\frac{1}{5})(1 + 1) = \frac{3}{5} b=y1wTx1=1(51)(1+1)=53

因此,我们的最终分类器是:

f ( x ) = s i g n ( w T x + b ) = s i g n ( − 1 5 x 1 − 1 5 x 2 + 3 5 ) f(x) = sign(w^T x + b) = sign(-\frac{1}{5}x_1 - \frac{1}{5}x_2 + \frac{3}{5}) f(x)=sign(wTx+b)=sign(51x151x2+53)

在这个简单的例子中,我们手动计算了线性可分支持向量机的对偶问题。实际上,在更复杂的情况下,通常会使用更高效的优化算法,如序列最小优化(SMO)或梯度下降。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rvosuke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值