感知机python实现
给定一个数据集:
T={(x1,y1),(x2,y2),...,(xN,yN)}
yi∈{−1,+1}
输入空间中任意一点 x0 到超平面S的距离为:
−1||w||yi|w⋅x0+b|
这里||w||是w的L2范数
假设超平面S的误分点集合为M,那么所有误分点到超平面S的总距离为:
−1||w||∑xi∈Myi|w⋅xi+b|
在不考虑1||w||的情况下得到感知机学习的损失函数
L(w,b)=−∑xi∈Myi|w⋅xi+b|
假设误分类点M是固定的,那么损失函数的梯度为:
▽wL(w,b)=−∑xi∈Myixi▽wL(w,b)=−∑xi∈Myi
随机选取一个误分类点 (xi,yi),对w,b进行更新
w:=w+ηyixib:=b+ηyi