You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

机器学习:单个感知机如何学习?权重更新是否用到损失函数?

单层感知机学习机制与损失函数作用说明

习题所用更新规则的本质

你在课程习题中使用的是经典的感知机收敛算法,对应的权重更新逻辑如下:

若激活函数输出 Act.Fct(f(x)) ≠ 样本真实标签 y:
    w_new = w_old + y * x
否则:
    权重不做调整

注:Act.Fct 即 Activation Function(激活函数),感知机默认使用阶跃激活函数,输出对应样本的二分类标签(通常取+1/-1)。

这个更新流程不是没有用到损失函数,而是它对应的损失形式和更新逻辑已经做了极致化简,把显式计算误差、求梯度的步骤完全融合进了判断分支里,所以看不到单独的误差计算环节。

隐式使用的感知机损失函数

单层感知机的更新规则完全对应感知机损失(零一损失的代理损失,属于合页损失的特例),这个损失的设计逻辑非常直接:

  • 所有被当前权重分类正确的样本,损失记为0,不会对权重更新产生任何贡献
  • 所有被当前权重误分类的样本,损失值和样本到决策边界的距离成正比

对应的单个样本损失公式为:
L(w) = max(0, -y · wᵀx)

我们把这个损失和梯度下降更新规则做个对应,就能完全匹配你用的更新逻辑:

  • 当样本分类正确时,y和感知机输出wᵀx符号一致,-y·wᵀx < 0,损失取0,对权重w的梯度也为0,因此权重不需要更新,正好对应伪代码里分类正确不操作的分支。
  • 当样本分类错误时,y和wᵀx符号相反,-y·wᵀx > 0,损失对w的梯度为-yx。按照梯度下降的核心逻辑,权重沿损失减小的方向更新:w_new = w_old - η · ∇L(w),当学习率η取1时,代入梯度结果就得到了w_new = w_old + yx的更新式,和你习题里的计算规则完全一致。你算出来的逐样本更新后的权重结果,本质上就是每一步沿梯度方向降低感知机损失的结果。

和多层神经网络反向传播的差异

你提到的多层神经网络靠损失函数做反向传播更新,和感知机的更新底层逻辑是完全同源的,都是基于梯度下降最小化损失的思路,二者的区别只在于计算复杂度:

  • 多层神经网络存在隐藏层,损失对每层权重的梯度需要通过链式法则逐层反向传递计算,流程复杂,因此必须显式定义损失、计算预测值和真实标签的误差,再逐层回传梯度完成更新。
  • 单层感知机没有隐藏层,损失对权重的梯度可以直接化简为极简的算术规则,不需要单独走“计算损失值→求解梯度”的显式流程,看起来就像是没有用到损失函数而已。

内容的提问来源于stack exchange,提问作者smithy08

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:15:37