感知机模型(Perceptron)的收敛性解读 | 统计学习方法

Python复现,使用了随机梯度下降法,梯度下降法,adagrad和对偶形式四种算法:

舟晓南:感知机模型python复现 - 随机梯度下降法;梯度下降法;adagrad;对偶形式

在《统计学习方法》的感知机算法章节中,作者提出了一个问题,即如何证明一个线性可分的数据集,可以在有限次的迭代后得到这个分离超平面。我们称在有限次迭代后获得分离超平面的性质为感知机算法的收敛性。对于一个线性不可分的数据集,感知机模型将进入无法收敛的状态,即无法获得一个可以将所有实例正确分类的分离超平面,而是在迭代过程中进入震荡。

算法的收敛性:

感知机模型: 

首先为了计算方便,将b并入权重向量w,记作 ,同样输入向量也需要相应地扩充,记作 。

证明1:

设训练集线性可分,那么存在超平面可将训练集完全正确分开,此超平面设为:

在我的另一篇关于感知机的文章:

舟晓南:统计学习方法 - 感知机模型解读 | 数据分析,机器学习,学习历程全记录

中提到作为函数间隔可以等比例放大缩小,因此这里为了方便可以将放大缩小至 。

因为被正确分类的实例有:

且i有限(实例的数量有限),因此在中存在一个最小值,设此最小值为γ:

那么对于所有实例来说,都有不等式(1):

证明2:

因为感知机算法从初始权重向量开始,可令是第k个误分类实例之前的扩充权重向量,且(xi,yi)是被其误分类的样本点。

对于误分类的实例,满足:

经过损失函数求导得到梯度后,w可进行更新:

那么利用不等式(1)可得:

\\\begin{aligned} \hat{w}_{k} \cdot \hat{w}_{\text {opt }}=\left(\hat{w}_{k-1}+\eta y_{i} \hat{x}_{i}\right) \cdot & \hat{w}_{\text {opt }}=\hat{w}_{k-1} \cdot \hat{w}_{\text {opt }}+\eta y_{i} \hat{w}_{\text {opt }} \cdot \hat{x}_{i} \\ & \geqslant w_{k-1} \cdot \hat{w}_{\text {opt }}+\eta \gamma \end{aligned}

由此可推得不等式(2):

\\\hat{w}_{k} \cdot \hat{w}_{\mathrm{opt}} \geqslant \hat{w}_{k-1} \cdot \hat{w}_{\mathrm{opt}}+\eta \gamma \geqslant \hat{w}_{k-2} \cdot \hat{w}_{\mathrm{opt}}+2 \eta \gamma \geqslant \cdots \geqslant k \eta \gamma

接着,因为实例有限,即i有限,我们可以定义 ,在此基础上计算 :

\\\left\|\hat{w}_{k}\right\|^{2}=\hat{w}_{k} \cdot \hat{w}_{k}=\left(\hat{w}_{k-1}+\eta y_{i} \hat{x}_{i}\right)^{2}=\left\|\hat{w}_{k-1}\right\|^{2}+2 \eta y_{i} \hat{w}_{k-1} \cdot \hat{x}_{i}+\eta^{2}\left\|\hat{x}_{i}\right\|^{2}

因为(xi, yi)是误分类项,所以 为负,且 ,所以可推得不等式(3):

\\\left\|\hat{w}_{k}\right\|^{2} \leqslant\left\|\hat{w}_{k-1}\right\|^{2}+\eta^{2}\left\|\hat{x}_{i}\right\|^{2} \leqslant\left\|\hat{w}_{k-1}\right\|^{2}+\eta^{2} R^{2} \leqslant\left\|\hat{w}_{k-2}\right\|^{2}+2 \eta^{2} R^{2} \leqslant \cdots \leqslant k \eta^{2} R^{2}

结合不等式(2)和不等式(3),及 的前提条件,可得:

关于上式这个部分为柯西-施瓦兹不等式,可自行查看证明过程。

通过上式可得:

定理表明,误分类的次数k是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。也就是说,当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的。


我是舟晓南,关注我的同名 公众号 和 知乎,发掘更多内容哦

对机器学习,深度学习,python感兴趣,欢迎关注专栏,学习笔记已原创70+篇,持续更新中~ ^_^

学习笔记:数据分析,机器学习,深度学习

关于 python 二三事

专栏文章举例:

【机器学习】关于逻辑斯蒂回归,看这一篇就够了!解答绝大部分关于逻辑斯蒂回归的常见问题,以及代码实现 - 知乎 (zhihu.com)

记录一下工作中用到的少有人知的pandas骚操作,提升工作效率 - 知乎 (zhihu.com)

关于切片时不考虑最后一个元素以及为什么从0开始计数的问题 - 知乎 (zhihu.com)

关于转行:

舟晓南:如何转行和学习数据分析 | 工科生三个月成功转行数据分析心得浅谈

舟晓南:求职数据分析师岗位,简历应该如何写?|工科生三个月成功转行数据分析心得浅谈

我建了个数据分析,机器学习,深度学习的群~ 需要学习资料,想要加入社群均可私信~

在群里我会不定期分享各种数据分析相关资源,技能学习技巧和经验等等~

详情私信,一起进步吧!

你可能感兴趣的:(感知机模型(Perceptron)的收敛性解读 | 统计学习方法)