支持向量机是什么?
支持向量机是一种用于分类的机器学习算法。它的任务是根据一些已知的数据点,找到一个最佳的“分隔线”,把不同类别的数据点分开。这个分隔线就像一条直线或一个平面,把数据空间分成两个部分,每个部分包含一种类别的数据点.
为什么叫“支持向量”?
在所有可能的分隔线中,有一些数据点离分隔线最近,这些点就是“支持向量”。它们决定了分隔线的位置和方向。如果这些点稍微移动一下,分隔线也会跟着移动。所以,这些点就像在“支持”着这条线,这就是“支持向量”的由来.
如何找到最佳分隔线?
为了找到最佳的分隔线,我们需要考虑两个因素:
- 正确分类:分隔线必须把不同类别的数据点正确分开。
- 最大间隔:分隔线两侧的间隔(即支持向量到分隔线的距离)要尽可能大,这样可以提高分类的准确性.
公式解释
假设我们有一些数据点 ( x_i ),每个点都有一个标签 ( y_i ),表示它是哪一类(比如红色为1,蓝色为-1).
我们用一个线性函数 (
f
(
x
)
=
w
⋅
x
+
b
f(x) = w \cdot x + b
f(x)=w⋅x+b
) 来表示分隔线,其中 ( w ) 是一个向量,( b ) 是一个常数.
为了找到最佳的 ( w ) 和 ( b ),我们需要解决以下优化问题:
[
最大化
2
∥
w
∥
\text{最大化} \quad \frac{2}{\|w\|}
最大化∥w∥2
]
[
约束条件
y
i
(
w
⋅
x
i
+
b
)
≥
1
\text{约束条件} \quad y_i (w \cdot x_i + b) \geq 1 \
约束条件yi(w⋅xi+b)≥1
]
-
最大化间隔:(
2 ∥ w ∥ \frac{2}{\|w\|} ∥w∥2
) 表示分隔线两侧的间隔,我们希望这个间隔尽可能大. -
约束条件:(
y i ( w ⋅ x i + b ) ≥ 1 y_i (w \cdot x_i + b) \geq 1 yi(w⋅xi+b)≥1
) 确保每个数据点 ( x_i ) 被正确分类,并且离分隔线的距离至少为1.
总结
支持向量机通过找到一个最佳的分隔线来区分不同类别的数据点。它利用支持向量来确定分隔线的位置和方向,并通过优化问题来最大化类别之间的间隔,从而提高分类的准确性。希望这个解释能帮助你更好地理解支持向量机!
支持向量机(SVM)的优化问题
为了求解支持向量机(SVM)的优化问题,我们使用拉格朗日乘子法。这个问题可以表示为:
[
最大化
2
∥
w
∥
\text{最大化} \quad \frac{2}{\|w\|}
最大化∥w∥2
]
[
约束条件
y
i
(
w
⋅
x
i
+
b
)
≥
1
\text{约束条件} \quad y_i (w \cdot x_i + b) \geq 1
约束条件yi(w⋅xi+b)≥1
]
首先,我们转换最大化问题为最小化问题,因为拉格朗日乘子法通常用于最小化问题。我们最小化 (
1
2
∥
w
∥
2
\frac{1}{2} \|w\|^2
21∥w∥2
) 而不是 (
2
∥
w
∥
\frac{2}{\|w\|}
∥w∥2
),因为这两个问题在 ( w ) 上是等价的。
所以,我们的优化问题变为:
[
最小化
1
2
∥
w
∥
2
\text{最小化} \quad \frac{1}{2} \|w\|^2 \
最小化21∥w∥2
]
[
约束条件
y
i
(
w
⋅
x
i
+
b
)
≥
1
\text{约束条件} \quad y_i (w \cdot x_i + b) \geq 1
约束条件yi(w⋅xi+b)≥1
]
接下来,我们引入拉格朗日乘子 (
α
i
\alpha_i
αi
) 来处理约束条件。拉格朗日函数 ( L ) 定义为:
[
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
n
α
i
[
y
i
(
w
⋅
x
i
+
b
)
−
1
]
L(w, b, \alpha) = \frac{1}{2} \|w\|^2 - \sum_{i=1}^n \alpha_i [y_i (w \cdot x_i + b) - 1]
L(w,b,α)=21∥w∥2−i=1∑nαi[yi(w⋅xi+b)−1]
]
其中 (
α
i
≥
0
\alpha_i \geq 0
αi≥0
) 是拉格朗日乘子。
为了找到 ( w ) 和 ( b ) 的最优值,我们需要对 ( L ) 关于 ( w ) 和 ( b ) 求偏导数,并令其等于零:
[
∂
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 \
∂w∂L=w−i=1∑nαiyixi=0
]
[
∂
L
∂
b
=
−
∑
i
=
1
n
α
i
y
i
=
0
\frac{\partial L}{\partial b} = -\sum_{i=1}^n \alpha_i y_i = 0
∂b∂L=−i=1∑nαiyi=0
]
从第一个方程中,我们得到:
[
w
=
∑
i
=
1
n
α
i
y
i
x
i
w = \sum_{i=1}^n \alpha_i y_i x_i
w=i=1∑nαiyixi
]
从第二个方程中,我们得到:
[
∑
i
=
1
n
α
i
y
i
=
0
\sum_{i=1}^n \alpha_i y_i = 0 \
i=1∑nαiyi=0
]
现在,我们将 ( w ) 的表达式代入拉格朗日函数 ( L ),得到关于 ( \alpha ) 的对偶问题:
[
L
(
α
)
=
1
2
(
∑
i
=
1
n
α
i
y
i
x
i
)
⋅
(
∑
j
=
1
n
α
j
y
j
x
j
)
−
∑
i
=
1
n
α
i
[
y
i
(
w
⋅
x
i
+
b
)
−
1
]
L(\alpha) = \frac{1}{2} \left( \sum_{i=1}^n \alpha_i y_i x_i \right) \cdot \left( \sum_{j=1}^n \alpha_j y_j x_j \right) - \sum_{i=1}^n \alpha_i [y_i (w \cdot x_i + b) - 1]
L(α)=21(i=1∑nαiyixi)⋅(j=1∑nαjyjxj)−i=1∑nαi[yi(w⋅xi+b)−1]
]
[
L
(
α
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
n
α
i
[
y
i
(
∑
j
=
1
n
α
j
y
j
x
j
⋅
x
i
+
b
)
−
1
]
L(\alpha) = \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^n \alpha_i [y_i (\sum_{j=1}^n \alpha_j y_j x_j \cdot x_i + b) - 1]
L(α)=21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)−i=1∑nαi[yi(j=1∑nαjyjxj⋅xi+b)−1]
]
[
L
(
α
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
n
α
i
y
i
(
∑
j
=
1
n
α
j
y
j
x
j
⋅
x
i
+
b
)
+
∑
i
=
1
n
α
i
L(\alpha) = \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^n \alpha_i y_i (\sum_{j=1}^n \alpha_j y_j x_j \cdot x_i + b) + \sum_{i=1}^n \alpha_i
L(α)=21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)−i=1∑nαiyi(j=1∑nαjyjxj⋅xi+b)+i=1∑nαi
]
[
L
(
α
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
n
α
i
y
i
b
+
∑
i
=
1
n
α
i
L(\alpha) = \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^n \alpha_i y_i b + \sum_{i=1}^n \alpha_i
L(α)=21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)−i=1∑nj=1∑nαiαjyiyj(xi⋅xj)−i=1∑nαiyib+i=1∑nαi
]
[
L
(
α
)
=
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
n
α
i
L(\alpha) = -\frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i=1}^n \alpha_i \
L(α)=−21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)+i=1∑nαi
]
因此,对偶问题为:
[
最大化
L
(
α
)
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
\text{最大化} \quad L(\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 \cdot x_j)
最大化L(α)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)
]
[
约束条件
α
i
≥
0
\text{约束条件} \quad \alpha_i \geq 0
约束条件αi≥0
]
[
约束条件
∑
i
=
1
n
α
i
y
i
=
0
\text{约束条件} \quad \sum_{i=1}^n \alpha_i y_i = 0
约束条件i=1∑nαiyi=0
]
通过求解这个对偶问题,我们可以找到 (
α
i
\alpha_i
αi
) 的值。然后,我们可以使用 (
w
=
∑
i
=
1
n
α
i
y
i
x
i
w = \sum_{i=1}^n \alpha_i y_i x_i
w=i=1∑nαiyixi
) 来找到 ( w ) 的值。最后,我们可以通过选择一个支持向量 ( x_i ) 并使用 (
y
i
(
w
⋅
x
i
+
b
)
=
1
y_i (w \cdot x_i + b) = 1
yi(w⋅xi+b)=1
) 来找到 ( b ) 的值。
这样,我们就找到了 ( w ) 和 ( b ) 的最优值,从而得到了 SVM 的分隔线 (
f
(
x
)
=
w
⋅
x
+
b
f(x) = w \cdot x + b
f(x)=w⋅x+b
)。