(听课记得笔记,大部分是课上的课件内容,发博客作为纪录方便查阅)
感知机–入门垫脚石
如果找不到好的直线,就要在差的线里面找到一个相对好的线(量化直线有多好)。
再进一步就是如果我们把所有分错的点和直线的距离求和,让这段求和的距离最小,那么这条直线就是我们要找的直线。
段落总结
- 一条直线如果能一个点都不分错的话,就是一条好的分类直线。
- 模型要尽可能的找到好的直线。
- 如果没有好的直线,在差的直线中要找到好的直线。
- 判断直线多差的方式:分错的点到直线之间的距离求和。
1.感知机模型
确定终极目标:最后的目标就是
f
(
x
)
f(x)
f(x),也就是说模型就是一个函数
其中:
f
(
x
)
=
s
i
g
n
(
w
⋅
s
⋅
+
b
)
f(x) = sign(w·s· + b)
f(x)=sign(w⋅s⋅+b)
s
i
g
n
(
x
)
=
{
+
1
;
x
>
0
−
1
;
x
≤
0
sign(x)=\left\{ \begin{aligned} +1 ;x>0\\ -1 ;x\leq0 \end{aligned} \right.
sign(x)={+1;x>0−1;x≤0
sign函数,最终输出的就是+1 或者-1, 用这两个树来判断类别
w
⋅
x
+
b
w·x+b
w⋅x+b指的是超平面,在红绿豆的例子里面,当在这条线的右边大于0,左边小于0,在线上等于0,取决于平面的法向量。 其中
w
,
x
w,x
w,x都是向量
在二维的平面当中,可以用一个一维的线来划分
而在一个三位的空间中,可以用一个二维平面来划分
正式来说:
w
⋅
s
+
b
w·s +b
w⋅s+b是一个n维空间中的超平面S,其中w是超平面的法向量,b是超平面的截距,这个超平面将特征空间划分为两个部分,位于两部分的点被分为正负两类,所以,超平面S称为分离超平面。
其中:
w是超平面的法向量
b是超平面的截距
特征空间也就是整个N维空间,样本的每一个属性都叫一个特征,特征空间的意思是在这个空间中可以找到样本所有的属性组合
2. 感知机的学习策略
对于感知机而言,他只能去划分线性可分的数据。
函数间隔和几何间隔
空间中任意一个点
x
0
x_0
x0到平面S的距离是:
函数间距:
∣
w
⋅
x
0
+
b
∣
|w·x_0 +b|
∣w⋅x0+b∣
几何间距:
1
∣
∣
w
∣
∣
∣
w
⋅
x
0
+
b
∣
\frac{1}{||w||} |w·x_0+b|
∣∣w∣∣1∣w⋅x0+b∣
∣
∣
w
∣
∣
2
=
∑
i
=
1
N
w
i
2
||w||_2 = \sqrt{\sum_{i=1}^N w_i^2}
∣∣w∣∣2=i=1∑Nwi2
一般的情况下都用的是几何间距,因为函数间距存在等比例放大或缩小来找到解的情况。
3. 感知机的学习算法–原始形式
对于误分的数据而言: − y i ( w ⋅ x i + b ) > 0 -y_i(w·x_i+b)>0 −yi(w⋅xi+b)>0
- 括号中的是预测值,括号外的是真实值,用于判断模型对于样本分类是否正确。
误分类点
x
i
x_i
xi到超平面S的距离为:
−
1
∣
∣
w
∣
∣
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{||w||} y_i(w·x_i +b)
−∣∣w∣∣1yi(w⋅xi+b)
因此,所有误分类点到超平面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)
损失函数:
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)
- 任选取超平面 w 0 , b 0 w_0,b_0 w0,b0
- 采用梯度下降法极小化目标函数:
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)
对于w求偏导
∇ w L ( w , b ) = − ∑ x i ∈ M y i x i \nabla_w L(w,b)= -\sum_{x_i\in{M}}y_i x_i ∇wL(w,b)=−xi∈M∑yixi
对于b求偏导
∇ b L ( w , b ) = − ∑ x i ∈ M y i \nabla_b L(w,b)= -\sum_{x_i\in{M}}y_i ∇bL(w,b)=−xi∈M∑yi - 更新
w
,
b
w,b
w,b:
w ← w + η y i x i w← w+\eta y_i x_i w←w+ηyixi
d ← b + η y i d← b+\eta y_i d←b+ηyi
4. 总结
- 感知机是通过构建超平面的形式来划分不同类别的点。
- 感知机属于线性类别的模型,因为他的判别边界是线性的。
- 函数间隔和几何间隔的区别
对于感知机用函数间隔,是因为感知机是误分类驱动,最后的目标是不分错每一个点