给定一个数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T = \left \{ (x_1,y_1),(x_2,y_2),...,(x_N,y_N) \right \}
T={(x1,y1),(x2,y2),...,(xN,yN)}其中,
x
i
∈
X
=
R
n
x_i \in X= {R}^n
xi∈X=Rn,
y
i
∈
Y
=
{
+
1
,
−
1
}
y_i \in Y= \mathbb{\{+1,-1}\}
yi∈Y={+1,−1},
i
=
1
,
2
,
.
.
.
,
N
i=1,2,...,N
i=1,2,...,N,如果存在某个超平面
S
S
S,可以将数据集划分为:对所有
y
i
=
+
1
y_i = +1
yi=+1的实例
x
i
x_i
xi,有
w
⋅
x
>
0
w\cdot x > 0
w⋅x>0;对所有
y
i
=
−
1
y_i = -1
yi=−1的实例
x
i
x_i
xi,有
w
⋅
x
>
0
w\cdot x > 0
w⋅x>0,那么我们就说这个数据集
T
T
T是线性可分的,在下述中我们均在数据集
T
T
T线性可分的假设下讨论。
学习策略
为求得这个可以准确划分正、负实例的超平面
S
:
w
⋅
x
=
0
S:w\cdot x = 0
S:w⋅x=0,我们需要确定模型参数
w
w
w和
b
b
b,因此,需要确定一个学习策略,即定义一个经验损失函数并将其最小化。
在感知机模型中选用的损失函数定为:误分类点到超平面
S
S
S的距离的总和。
首先,我们复习一下点到直线的距离公式:
d
=
∣
A
x
0
+
B
y
0
+
C
A
2
+
B
2
∣
d=\left|\frac{A x_{0}+B y_{0}+C}{\sqrt{A^{2}+B^{2}}}\right|
d=∣∣∣∣A2+B2Ax0+By0+C∣∣∣∣由此,输入空间
R
n
{R}^n
Rn中任一点
x
0
x_0
x0到超平面
S
S
S的距离为:
1
∥
w
∥
∣
w
⋅
x
0
+
b
∣
1
\frac{1}{\|w\|}\left|w \cdot x_{0}+b\right|\qquad 1
∥w∥1∣w⋅x0+b∣1
∣
∣
w
∣
∣
||w||
∣∣w∣∣为向量
w
w
w的
L
2
L_2
L2范数,即
w
1
2
+
w
2
2
+
.
.
.
+
w
N
2
\sqrt{w_1^2+w_2^2+...+w_N^2}
w12+w22+...+wN2
对于误分类的数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)来说有:
−
y
i
(
w
⋅
x
i
+
b
)
>
0
2
-y_i(w\cdot x_i + b) > 0 \qquad 2
−yi(w⋅xi+b)>02恒成立。
因为当
w
⋅
x
>
0
w\cdot x > 0
w⋅x>0时,
y
i
=
−
1
y_i = -1
yi=−1;当
w
⋅
x
<
0
w\cdot x < 0
w⋅x<0时,
y
i
=
+
1
y_i = +1
yi=+1。因此,任意误分类点
x
i
x_i
xi到超平面
S
S
S的距离为:
−
1
∥
w
∥
y
i
(
w
⋅
x
i
+
b
)
3
-\frac{1}{\|w\|}y_i\left(w \cdot x_{i}+b\right) \qquad 3
−∥w∥1yi(w⋅xi+b)3(注:为什么距离从上式
1
1
1的绝对值变成了本式的
−
y
i
∗
(
.
.
.
)
-y_i * (...)
−yi∗(...)?
我的理解为:这样操作不会改变表达式的值,但却能去掉绝对值,使得损失函数具有更好的数学性质,如可导性等)
此时,假设超平面
S
S
S的误分类点集合为
M
M
M,那么所有的误分类点到超平面
S
S
S的距离总和为:
−
1
∥
w
∥
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{\|w\|} \sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right)
−∥w∥1xi∈M∑yi(w⋅xi+b)不考虑
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1的话,就得到了感知机模型的损失函数。
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
L(w, b)=-\sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right)
L(w,b)=−xi∈M∑yi(w⋅xi+b)由式
2
2
2知,损失函数
L
(
w
,
b
)
L(w, b)
L(w,b)是非负的。
下一章:感知机原始形式算法与python实现