基础概念
数据集的线性可分性
对于给定数据集,如果存在某个超平面 w ⋅ x + b = 0 w·x+b=0 w⋅x+b=0,能够将数据集的正类和负类样本点完全正确划分,则称该数据集线性可分。
点到平面的距离
空间中任一点到超平面S的距离是:(平面S方程为
w
⋅
x
+
b
=
0
w·x+b=0
w⋅x+b=0)
(推导见 https://blog.csdn.net/yutao03081/article/details/76652943)
第二章 感知机
感知机是二分类的线性分类模型,属于判别模型。目的是学习一个超平面,对数据进行线性划分,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,可求得感知机模型。
1.感知机模型
线性方程
w
⋅
x
+
b
=
0
w·x+b=0
w⋅x+b=0,对ing与特征空间中的一个超平面S,这个超平面将空间划分为正、负两部分,S称为分离超平面。
我们要做的就是,学习参数w和b,得到感知机模型。
2.感知机学习策略
感知机模型的优化策略是:使得误分类点到超平面的距离总和最小,对于误分类点
x
i
x_i
xi,有:
−
y
i
(
w
⋅
x
i
+
b
)
>
0
-y_i(w·x_i+b) > 0
−yi(w⋅xi+b)>0
因此,误分类点
x
i
x_i
xi到超平面的距离为:
−
1
∣
∣
w
∣
∣
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{||w||}y_i(w·x_i+b)
−∣∣w∣∣1yi(w⋅xi+b)
假设所有误分类点集合为M,则所有误分类点到S的总距离为:
−
1
∣
∣
w
∣
∣
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{||w||}\sum_{x_i\in{M}}y_i(w·x_i+b)
−∣∣w∣∣1xi∈M∑yi(w⋅xi+b)
感知机的损失函数定义为:(M为误分类点的集合)(注意:这里的损失函数是经验风险函数)
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
L(w,b)=-\sum_{x_i\in{M}}y_i(w·x_i+b)
L(w,b)=−xi∈M∑yi(w⋅xi+b)
感知机模型就是通过学习,使得上述损失最小。
3.感知机学习算法
采用随机梯度下降来学习,更新的时候随机选取一个误分类点
x
i
x_i
xi,让其梯度下降(不是一次使所有误分类点的梯度都下降)。损失函数
L
(
w
,
b
)
L(w,b)
L(w,b)的梯度为:
∇
w
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
x
i
\nabla_wL(w,b)=-\sum_{x_i\in{M}}y_ix_i
∇wL(w,b)=−xi∈M∑yixi
Δ
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
\Delta_L(w,b)=-\sum_{x_i\in{M}}y_i
ΔL(w,b)=−xi∈M∑yi
随机选取一个误分类点
x
i
x_i
xi,对w,b进行更新:
w
=
w
+
η
y
i
x
i
w = w + \eta{y_ix_i}
w=w+ηyixi
b
=
b
+
η
y
i
b = b + \eta{y_i}
b=b+ηyi
感知机算法的收敛性:
对于线性可分数据集,感知机算法原始形式收敛,即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。