感知机是二分类的线性模型。输入 x∈Rn,输出 y∈{+1,−1}:
f(x)=sign(w⋅x+b)
几何上,w⋅x+b=0 定义了特征空间中的一个超平面(2D 是直线,3D 是平面)。这个超平面把空间分成两半——一半判为 +1,另一半判为 −1。
w 是超平面的法向量,决定朝向;b 是截距,决定平移。
前提:训练集线性可分——存在某个超平面能把两类完全分开。
损失函数的设计思路:不能用误分类点的个数(不可导),而用误分类点到超平面的函数距离之和:
L(w,b)=−xi∈M∑yi(w⋅xi+b)
其中 M 是当前误分类点的集合。当 xi 被误分类时,yi(w⋅xi+b)<0,取负号后为正。所有点分类正确时 L=0。
用随机梯度下降(SGD)。每次随机选一个误分类点 (xi,yi) 更新:
w←w+ηyixi
b←b+ηyi
直觉:如果一个正例被判为负(在超平面错误一侧),把 w 往 xi 方向拉一拉,超平面就转过来了。
迭代 0
w = [0.00, 0.00]b = 0.00
每步选一个误分类点(黄色虚线圈),按 w ← w + η·y·x, b ← b + η·y 更新。紫色线是决策边界 w·x + b = 0。
算法流程:
- 初始化 w=0,b=0
- 在训练集中找一个误分类点
- 按上述公式更新
- 重复直到没有误分类点
Novikoff 定理:若训练集线性可分,感知机算法在有限步内收敛。
设最优分离超平面的几何间隔为 γ,数据半径为 R=maxi∥xi∥,则:
迭代次数≤(γR)2
关键含义:间隔越大收敛越快。这也是 SVM 追求"最大间隔"的理论铺垫。
注意:算法依赖初值和遍历顺序,解不唯一。
设 w 和 b 用训练样本的累积更新次数表示:
w=i=1∑Nαiyixi,b=i=1∑Nαiyi
其中 αi=niη,ni 是第 i 个样本被用来更新的次数。
判别式变为:
f(x)=sign(i=1∑Nαiyi(xi⋅x)+b)
训练只需要 Gram 矩阵 Gij=xi⋅xj,不需要显式的 w。这是核方法的起点——把内积 xi⋅xj 换成核函数 K(xi,xj) 就能处理非线性。