模型:二类分类的线性模型 (线性模型+符号函数)
策略:基于误分类的损失函数最小化
算法:原始形式 对偶形式
感知机是神经网络和支持向量机的基础
一、模型
训练数据集
D={(x1,y1),(x2,y2)...(xn,yn)}
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
.
.
.
(
x
n
,
y
n
)
}
xi∈Rn,yi∈{+1,−1}
x
i
∈
R
n
,
y
i
∈
{
+
1
,
−
1
}
参数 w,b w , b 。
感知机旨在求出将训练数据进行线性划分的分离超平面。
取+1,-1为了更好定义损失函数,如果输出的类别是0,1 怎么处理
把{0,1}映射为{-1,+1}。
二、策略
损失函数
其中M为误分类点的集合。
感知机的损失函数类似0-1损失函数,对分类正确的不惩罚,分类错误的惩罚。
对误分类的点 (xi,yi) ( x i , y i ) 有
从另一个角度理解损失函数 (这与SVM中的函数间隔概念相关)
损失函数定义为误分类点到超平面的总距离
点到超平面的距离
误分类点到超平面的总距离
不考虑 1||w|| 1 | | w | | ,就得到感知机的损失函数。
为什么可以忽略参数 w w 的模。
【1】
分子和分母都含有,当分子的 w w 扩大N倍时,分母的L2范数也会扩大N倍。分子和分母有固定的倍数关系。
那么我们可以固定分子或者分母为1,然后求另一个即分子自己或者分母的倒数的最小化作为损失函数,这样可以简化我们的损失函数。
在感知机模型中,我们采用的是保留分子。
支持向量机,采用的是固定分子为1,然后求的最小化。
采用不同的损失函数主要与它的后面的优化算法有关系。
例 x1+x2=1 x 1 + x 2 = 1 与 2x1+2x2=2 2 x 1 + 2 x 2 = 2 是同一个超平面三、算法
3.1 原始形式
最小化损失函数
minw,bL(w,b)=−∑xi∈Myi(w⋅xi+b) m i n w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b )
损失函数的梯度
∇wL(w,b)=−∑xi∈Myixi ∇ w L ( w , b ) = − ∑ x i ∈ M y i x i
∇bL(w,b)=−∑xi∈Myi ∇ b L ( w , b ) = − ∑ x i ∈ M y i
采用随机梯度下降,不是一次使用M中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
随机选取一个误分类点 (xi,yi) ( x i , y i ) ,对 w,b w , b 更新
w←w+ηyixi w ← w + η y i x i
b←b+ηyi b ← b + η y i
为什么用SGD,不用BGD【1】
用普通的基于所有样本的梯度和的均值的批量梯度下降法(BGD)是行不通的,原因在于我们的损失函数里面有限定,只有误分类的M集合里面的样本才能参与损失函数的优化。所以我们不能用最普通的批量梯度下降,只能采用随机梯度下降(SGD)或者小批量梯度下降(MBGD)3.2对偶形式
思想 :将 w,b w , b 表示成 x,y x , y 的线性组合形式,通过求解其系数而求得 w,b w , b
假设样本点 (xi,yi) ( x i , y i ) 在更新过程中被使用了 ni n i 次,从原始形式的学习过程可以得到,最后的 w,b w , b 可以表示为
w=∑i=1Nniηyixi w = ∑ i = 1 N n i η y i x i
b=∑i=1Nniηyi b = ∑ i = 1 N n i η y i
ni n i 的含义:如果 ni n i 很大,那么意味着这个样本点经常被误分,什么样的点容易被误分? 很明显就是离超平面很近的点,超平面稍微移动一点点,这个样本就从正变负,或负变正。而在SVM中,这种点就很可能是支持向量。
上式代入感知机模型
f(x)=sign(w⋅x+b)=sign(∑j=1Nnjηyjxj⋅x+∑j=1Nnjηyj) f ( x ) = s i g n ( w ⋅ x + b ) = s i g n ( ∑ j = 1 N n j η y j x j ⋅ x + ∑ j = 1 N n j η y j )
此时,学习的目标就不再是 w,b w , b ,而是 ni n i 。
训练过程:
1. 初始时: ∀ni=0 ∀ n i = 0
2. 在训练数据集中选取 (xi,yi) ( x i , y i )
3. 如果 yi(∑Nj=1njηyjxj⋅xi+njηyj)≤0 y i ( ∑ j = 1 N n j η y j x j ⋅ x i + n j η y j ) ≤ 0 ,更新 ni←ni+1 n i ← n i + 1
4. 转至2直至没有误分类点感知机对偶形式的意义是什么?
【2】
四、总结
- 感知机由于采用不同的初值,或选取不同的误分类点计算梯度,解是不同的。
- 当数据集线性可分时,感知机是收敛的,经有限次的迭代可以找到将训练数据完全正确分开的分离超平面。
- 当训练集线性不可分时,感知机不收敛,迭代结果会发生震荡。
参考文献
【1】http://www.cnblogs.com/pinard/p/6042320.html
【2】https://www.zhihu.com/question/26526858