感知机原理与python实现

本文详细介绍了感知机的工作原理,包括线性可分性、判别函数、损失函数和学习过程。同时,文章讨论了感知机在线性可分数据集上的收敛性,通过两种方式进行证明。此外,还提供了感知机的Python实现示例,并展示了实际运行过程中的挑战和解决策略。最后,给出了参考文献供进一步阅读。
摘要由CSDN通过智能技术生成

感知机原理与python实例

原理

线性可分

给定一个二类数据集的标签为正负1,如果存在某个超平面 S S S
w x + b = 0 wx + b = 0 wx+b=0
将所有正负实例点完全正确地划分到超平面的两侧,即对 y = + 1 y = +1 y=+1的实例有: w x + b &gt; 0 wx + b &gt; 0 wx+b>0;即对 y = − 1 y = -1 y=1的实例有: w x + b &lt; 0 wx + b &lt; 0 wx+b<0.

判别函数

针对标签为正负1的二分类问题,感知机的判别函数为:
f ( x ) = s i g n ( w x + b ) f(x) = sign(wx + b) f(x)=sign(wx+b)

损失函数

自然地想,损失函数应当是误分类的点的个数,但是这个函数是不可导的,所以优化起来比较困难。

考虑 R n R^n Rn空间中的任意一点 x 0 x_0 x0到超平面的距离为:
1 ∣ ∣ w ∣ ∣ 2 ( w x 0 + b ) \frac{1}{||w||_2}(wx_0 + b) w21(wx0+b)
对应误分类集合 M M M中的点来说:
− y ∣ ∣ w ∣ ∣ 2 ( w x + b ) &gt; 0 -\frac{y}{||w||_2}(wx + b) &gt; 0 w2y(wx+b)>0
所以最终选择的损失函数为:
L ( w , b ) = − ∑ x ∈ M y ( w x + b ) L(w, b) = -\sum_{x \in M}y(wx + b) L(w,b)=xMy(wx+b)

学习过程

目前学习的过程就变成使损失函数最小化的过程。
( w , b ) = arg ⁡ min ⁡ w , b L ( w , b ) ∂ L ∂ w = − ∑ x ∈ M y x ∂ L ∂ b = − ∑ x ∈ M y \begin{aligned} (w, b) &amp;= \arg \min_{w, b}L(w, b) \\ \frac{\partial L}{\partial w} &amp;= -\sum_{x \in M}yx \\ \frac{\partial L}{\partial b} &amp;= -\sum_{x \in M}y \end{aligned} (w,b)wLbL=argw,bminL(w,b)=xMyx=xMy
通过梯度下降的方式,在每次迭代过程中以学习率 η \eta η更新 w , b w, b w,b的值,直到结果收敛或者达到指定的迭代次数为止。
w t = w t − 1 − η ∂ L ∂ w b t = b t − 1 − η ∂ L ∂ b w^t = w^{t - 1} - \eta\frac{\partial L}{\partial w} \\ b^t = b^{t - 1} - \eta\frac{\partial L}{\partial b} \\ wt=wt1ηwLbt=bt1ηbL

收敛性证明

下面证明当数据是线性可分的情况下,感知机准则是一定收敛的。通过两种方法来进行证明。

方式一

方便起见,令 a = ( w T , b ) T , z = ( x T , 1 ) T a = (w^T, b)^T, z = (x^T, 1)^T a=(wT,b)T,z=(xT,1)T
设最优的权重解为: a ^ \hat{a} a^,一定满足 ∀ x i , a ^ T z y i &gt; 0 \forall x_i, \hat{a}^Tzy_i &gt; 0 xi,a^Tzyi>0
假设经过 t t t轮迭代之后的解为: a t a^t at,在这一轮中仍然被分错的向量集合为: E ( t ) = { z ∣ a T z y &lt; 0 } E(t) = \lbrace z|a^Tzy &lt; 0 \rbrace E(t)={ zaTzy<0},根据上文描述的梯度下降的规则,在第 t + 1 t + 1 t+1轮中,权重应当被更新为:
a ( t + 1 ) = a t + ∑ x i ∈ E ( t ) y i z i a^{(t + 1)} = a^t + \sum_{x_i \in E(t)}y_iz_i a(t+1)=at+xiE(t)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值