首先介绍感知机模型,然后叙述感知机的学习策略,特别是损失函数,最后介绍感知机学习算法,包括原始模式和对偶模式,并证明算法的收敛性
感知机模型
输入空间(特征空间):X⊆Rn,假设x∈X
输出空间:Y={+1,−1},假设y∈Y
由输入空间到输出空间的如下函数称为感知机:
f(x)=sign(ω⋅x+b)
其中ω∈Rn叫做权值,b∈R叫做偏置,ω⋅x表示内积,sign表示符号函数:
sign(x)={+1x≥0−1x<0
- 感知机是一种线性分类模型,属于判别模型,对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面。
- 感知机模型的假设空间时定义在特征空间中的所有线性分类函数或线性分类器,即函数集合f|f(x)=ω⋅x+b
感知机学习策略
目标:确定模型参数ω,b
损失函数:误分类点到超平面S的总距离
1||ω|||ω⋅xi+b|
||ω||是指ω的L2范数
又因为误分类点有如下定义:
−yi(ω⋅xi+b)>0
所以误分类点到超平面的距离为:
−1||ω||yi(ω⋅xi+b)
假设误分类点集合M,那么所有误分类点到超平面的总距离为:
−1||ω||∑xi∈Myi(ω⋅xi+b)
得到损失函数:
L(ω,b)=−∑xi∈Myi(ω⋅xi+b)
感知机学习算法
感知机学习问题转化为求解损失函数式的最优化问题,最优化的方法是随机梯度下降法
感知机学习算法的原始形式
输入:训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,⋯,N;学习率η(0<η≤1)
输出:ω,b;感知机模型f(x)=sign(ω⋅x+b)
- 选取初值ω0,b0;
- 在训练集中选取数据(xi,yi);
- 如果yi(ω⋅xi+b)≤0:
ω←ω+ηyixib←b+ηyi
- 转至第二步,直到没有误分类点
算法的收敛性
收敛性证明:误分类的次数k是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的超平面
假设^ω=(ωT,b)T,^x=(xT,1)T,^ω∈Rn+1,^x∈Rn+1,则^ω⋅^x=ω⋅x+b
定理:
- 存在满足条件||^ωopt||=1的超平面^ωopt⋅^x=ωopt⋅x+bopt=0将训练数据集完全正确分开;且存在γ>0对所有i=1,2,⋯,N
yi(^ωopt⋅^xi)=yi(ωopt⋅xi+bopt)≥γ
- 令R=max1≤i≤N||^xi||,则感知机算法在训练数据集上的误分类次数k满足不等式:
k≤(Rγ)2
证明:
- 由于训练数据集是线性可分的,所以存在超平面可将训练数据集完全正确分开,取此超平面为^ωopt⋅^x=ωopt⋅x+bopt=0,使||^ωopt||=1,由于对有限的i=1,2,⋯,N,均有
yi(^ωopt⋅^xi)=yi(ωopt⋅xi+bopt)>0
所以存在
γ=mini{yi(ωopt⋅xi+bopt)}
使
yi(^ωopt⋅^xi)=yi(ωopt⋅xi+bopt)≥γ
- 感知机算法从^ω0=0开始,如果实例被误分类,则更新权重,令^ωk−1是第k个误分类实例之前的扩充权重向量,即:
^ωk−1=(ωTk−1,bk−1)T
则第k个误分类实例的条件是:
yi(^ωk−1⋅^xi)=yi(ωk−1⋅xi+bk−1)≤0
若(xi,yi)是被^ωk−1=(ωTk−1,bk−1)T误分类的数据,则ω和b的更新是:
ωk←ωk−1+ηyixibk←bk−1+ηyi
即:
^ωk=^ωk−1+ηyi^xi
递推1:
^ωk⋅^ωopt=^ωk−1⋅^ωopt+ηyi^ωopt⋅^xi≥^ωk−1⋅^ωopt+ηγ≥^ωk−2⋅^ωopt+2ηγ≥⋯≥kηγ
递推2:
||^ωk||2=||^ωk−1||2+2ηyi^ωk−1⋅^xi+η2||^xi||2≤||^ωk−1||2+η2||^xi||2≤||^ωk−1||2+η2R2≤||^ωk−2||2+2η2R2≤⋯≤kη2R2
结合两个递推式:
kηγ≤^ωk⋅^ωopt≤||^ωk|| ||^ωopt||≤√kηRk2γ2≤kR2k≤(Rγ)2
感知机算法的对偶形式
不失一般性,假设ω0,b0均为0,已知下式
ω←ω+ηyixib←b+ηyi
逐步修改ω,b,设修改n次,则ω,b关于(xi,yi)的增量分别是αiyixi,αiyi,这里αi=niη,可以得到:
ω=N∑i=1αiyixib=N∑i=1αiyi
输入:训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,⋯,N;学习率η(0<η≤1)
输出:α,b
感知机模型:
f(x)=sign(N∑j=1αjyjxj⋅x+b),α=(α1,α2,⋯,αN)T
- α←0,b←0;
- 在训练集中选取数据(xi,yi)
- 如果yi(∑Nj=1αjyjxj⋅xi+b)≤0,则:
αi←αi+ηb←b+ηyi
注:在计算的过程中训练实例以内积的形式出现,可以预先计算储存下来,这个矩阵叫做Gram矩阵,G=[xi⋅xj]N×N
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix