感知机为何只修正犯错样本:从分离超平面到收敛条件 | xkmchenmu Blog

感知机为何只修正犯错样本:从分离超平面到收敛条件

感知机用一个线性超平面完成二分类,并在样本被分错时沿标签方向修正参数。本文把判别函数、几何间隔、更新推导、收敛前提与不可分数据的诊断连成一条逻辑链。

感知机的规则可以写得很短:计算样本在线性函数哪一侧,若预测错误,就移动分界面。短规则背后却包含监督学习的完整骨架——表示、目标、优化和适用条件。把这四部分分开理解,比背诵更新公式更重要,因为同一公式只有在线性可分、标签编码和数据尺度满足假设时,才会呈现教科书中的行为。

判别函数把特征空间切成两半

给定特征向量 x、权重 w 和偏置 b,感知机计算 f(x)=sign(w·x+b)。w 决定超平面的法向方向,b 决定它相对原点的位置。二分类标签通常编码为 +1 与 −1;当 y(w·x+b)>0 时,样本位于标签对应的一侧,乘积小于或等于零则表示分错或落在边界上。

预测:ŷ = sign(w·x + b);正确条件:y(w·x + b) > 0

在二维平面里,w·x+b=0 是一条直线;三维中是平面;更高维统称超平面。点到该平面的几何距离与 |w·x+b|/||w|| 成正比,而带标签的函数间隔 y(w·x+b) 同时表达方向和置信程度。感知机只关心符号是否正确,并不主动最大化所有样本到边界的最小距离,这一点与最大间隔方法不同。

缩放参数不会改变分类,却会改变函数间隔

若同时把 w 和 b 乘以正数,预测符号保持不变,但 y(w·x+b) 会被放大。因此讨论几何距离时必须除以 ||w||。经典感知机损失常对当前误分类集合 M 求 −Σ y_i(w·x_i+b),它在错误样本上为正,并让梯度直接指向纠正这些样本的方向。由于归一化会使优化更复杂,学习规则通常使用未除范数的形式。

  • 模型表示是一条线性分界面,不能自动弯曲包围复杂区域。
  • 标签必须与符号约定一致,否则所有更新方向都会相反。
  • 偏置让分界面不必经过原点,可视为常数特征的权重。
  • 特征尺度会影响每次更新的幅度和训练轨迹。

误分类集合会随着参数变化而变化,所以损失是分段线性的。某个样本一旦被分对,就暂时不再贡献更新;后来分界面因其他样本移动,它也可能重新进入错误集合。训练轨迹因此取决于样本访问顺序,但在线性可分且满足常见有界条件时,算法会在有限次错误更新后找到一个可分超平面。

一次更新就是把边界推向正确一侧

对被误分的样本 (x_i,y_i),损失关于 w 的梯度为 −y_i x_i,关于 b 的梯度为 −y_i。沿负梯度方向更新得到 w←w+ηy_i x_i、b←b+ηy_i,其中 η 为正学习率。若正类样本被错判,w 向该样本方向增加;若负类被错判,w 朝反方向移动。偏置同时调整整体边界位置。

感知机为何只修正犯错样本:从分离超平面到收敛条件 - 感知机单样本纠错几何
样本状态 符号 动作
正类且在正侧 y=+1,得分>0 保持参数
正类却在负侧 y=+1,得分≤0 沿 x 方向增加 w
负类且在负侧 y=−1,得分<0 保持参数
负类却在正侧 y=−1,得分≥0 沿 x 反方向修正 w

学习率改变路径与参数尺度,却不改变更新的基本方向。对普通感知机而言,固定正学习率常可用于理解收敛;工程实现仍应注意特征量纲差异,极大数值会让某个样本产生过强移动。标准化特征不仅有利于数值稳定,也使二维可视化和训练日志更容易解释。

从零实现时,先让每次错误都可观察

  1. 检查 x 的样本数与 y 一致,标签只包含两种符号。
  2. 初始化 w 与 b,并明确边界样本是否视为错误。
  3. 逐样本计算得分和 y·得分,仅对非正值执行更新。
  4. 每轮记录错误次数、参数范数和分界面变化。
  5. 错误数为零时停止;达到上限仍不为零则报告未收敛。

停止条件不能只写“参数变化很小”。在不可分数据上,算法可能持续来回修正;在特征很小的情况下,每步参数变化也可能很小但错误依然存在。记录整轮误分类数更直接。为了调试,可先用少量二维可分点,画出每次更新后的直线;若正类更新反而远离正侧,通常是标签、符号或偏置实现出了问题。

收敛定理承诺存在答案时能找到一个答案

若存在某个超平面能够以正间隔正确分开训练样本,且样本范数有界,感知机收敛定理给出错误更新次数的上界关系。直观上,每次错误更新都会让当前 w 朝某个理想分离方向取得进展,而参数范数的增长又受到限制;正间隔使进展最终不能无限拖延。这里承诺的是找到某个分离面,不是唯一解、最大间隔解或最好的泛化解。

训练集上零错误只证明这组样本被线性分开;它没有证明边界离样本足够远,也没有证明新数据会同样分布。

不同样本顺序、初始化和学习率可能得到不同分界面。若希望减少顺序敏感性,可以在多轮训练中打乱数据,并保留表现最好的参数作为工程折中;也可以转向带有明确间隔或概率损失的线性模型。选择哪种方式取决于任务目标,不能把感知机的简洁性与所有线性分类方法混为一谈。

不可线性分时,持续犯错是信息而不是偶然

异或式分布、标签噪声或重叠类别不存在一条能把训练样本全部分开的直线。普通感知机会在冲突样本之间振荡,继续增加轮数不会创造线性可分性。此时先检查数据质量和特征表达,再决定使用非线性特征映射、核方法、更灵活模型,或接受无法完全分开的目标。盲目调小学习率只会让振荡变慢。

for 每个样本: if y_i * (w·x_i + b) <= 0: w = w + η*y_i*x_i; b = b + η*y_i

评价也不应只看训练是否停止。需要在独立验证数据上计算分类指标,检查类别不平衡,并观察边界对输入扰动是否敏感。若特征维数很高,权重可以帮助了解方向,但相关特征会让单个系数难以直接解释为因果影响。

感知机最适合作为线性学习的透明样板

它把分类决策压缩成内积与符号,把训练压缩成“发现错误—沿标签修正”,因而适合观察表示、损失和优化如何连接。进一步学习逻辑回归、支持向量机和神经网络时,仍能看到这些骨架,只是损失从只惩罚错误变得更平滑,目标加入概率或间隔,模型也通过多层变换获得非线性边界。

真正掌握感知机,不是能默写 w 与 b 的两行更新,而是能回答:超平面怎样划分空间,误分类条件为何写成 y 乘得分,更新为什么朝该方向,收敛依赖哪些前提,以及不收敛时应怀疑数据还是实现。沿这条逻辑链,最简单的二分类器便成为理解更复杂学习算法的一块可靠基石。

(0)
打赏 支付宝扫一扫 支付宝扫一扫

发表回复

登录后才能评论