感知机Perceptron

文章目录

  • 一、感知机模型
  • 二、感知机损失函数
  • 三、感知机优化


一、感知机模型

感知机 y = s i g n ( w T x + b ) y=sign(w^Tx+b) y=sign(wTx+b) 是一个简单的二分类模型,将类别的label设定为1和-1,针对线性可分的数据,感知机可以完全收敛(即将所有的训练样本正确分类)。
 

二、感知机损失函数

感知机的目标是寻找一个线性分离超平面 w T x + b w^Tx+b wTx+b,将线性可分的训练样本正确分类, w w w b b b是需要学习的参数。

感知机损失函数的一个很自然的选择就是误分类点的个数,但是这样的损失函数并不是 w w w b b b的连续可导函数,于是,转换思路,感知机的损失函数可以使用误分类点到超平面的总距离,最小化此损失函数就是优化感知机的过程。

考虑误分类点 ( x i , y i ) (x_i,y_i) (xi,yi),其中 x i x_i xi是一个 m m m维向量 ( x i 1 , x i 2 , x i 3 , . . . x i m ) (x_i^1,x_i^2,x_i^3,...x_i^m) (xi1,xi2,xi3,...xim) y i ∈ { 1 , − 1 } y_i\in\{1,-1\} yi{1,1},此点到分类超平面的距离为
d i s t a n c e = ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ distance=\frac{|w^Tx_i+b|}{||w||} distance=∣∣w∣∣wTxi+b
对于误分类点来说, ∣ w T x i + b ∣ = − y i ( w T x i + b ) |w^Tx_i+b|=-y_i(w^Tx_i+b) wTxi+b=yi(wTxi+b),所以
d i s t a n c e = − y i ( w T x i + b ) ∣ ∣ w ∣ ∣ distance=-y_i\frac{(w^Tx_i+b)}{||w||} distance=yi∣∣w∣∣(wTxi+b)
设误分类点的集合为 S S S,则感知机损失函数
L ( w , b ) = 1 ∣ ∣ w ∣ ∣ ∑ x i ∈   S − y i ( w T x i + b ) L(w,b)=\frac{1}{||w||}\sum_{x_i \in\ S}-y_i(w^Tx_i+b) L(w,b)=∣∣w∣∣1xi Syi(wTxi+b)
考虑我们可以始终将超平面法向量用单位向量来表示,即 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1,就可以把 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣从损失函数中删除,最终损失函数成为:
L ( w , b ) = ∑ x i ∈   S − y i ( w T x i + b ) L(w,b)=\sum_{x_i \in\ S}-y_i(w^Tx_i+b) L(w,b)=xi Syi(wTxi+b)

三、感知机优化

有了上面的损失函数,感知机的优化就变成如下问题的求解,
min ⁡ w , b ∑ x i ∈   S − y i ( w T x i + b ) \min_{w,b}\sum_{x_i \in\ S}-y_i(w^Tx_i+b) w,bminxi Syi(wTxi+b)
采用随机梯度下降的方法进行优化,

1. 初始化 w w w b b b
 
2. 针对初始化后的分类超平面,随机选择一个误分类点 ( x j , y j ) (x_j,y_j) (xj,yj),使用 w w w b b b的梯度对参数进行更新,即
w = w + η x j y j w=w+\eta x_jy_j w=w+ηxjyj b = b + η y j b=b+\eta y_j b=b+ηyj
其中 η \eta η是学习率;
 
3. 就这样一直优化参数,直到没有误分类点。

你可能感兴趣的:(算法,机器学习,算法,python)