个人学习笔记(二)感知机

本文深入探讨感知机模型,一种线性分类模型,包括其数学表达、学习策略及算法实现。解析感知机如何通过随机梯度下降法最小化误分类点的损失函数,并详细推导了Novikoff定理,证明算法在数据线性可分情况下的收敛性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、感知机模型

       假设输入空间是X∈RnX\in R^nXRn,输出空间是Y={+1,−1}Y=\{+1,-1\}Y={+1,1},由输入空间到输出空间的如下函数称为感知机。
f(x)=sign(w⋅x+b)f(x)=sign(w\cdot x+b)f(x)=sign(wx+b)       其中w∈Rnw\in R^nwRnb∈Rb\in RbRsignsignsign是符号函数,即
sign(x)={+1,x≥0−1,x≤0sign(x)=\left\{\begin{array}{rcl}+1,&{x\ge0}\\-1,&{x\le0} \end{array} \right.sign(x)={+1,1,x0x0       感知机是一种线性分类模型,属于判别模型。感知机模型的假设空间是定义在特征空间中的所有线性分类模型(linear classification model),即函数集合{f∣f(x)=w⋅x+b}\{f|f(x)=w\cdot x+b\}{ff(x)=wx+b}

2、感知机学习策略

       模型已经明确了,根据上一章的知识,接下来要确定一个能够评价模型好坏的策略,即定义一个损失函数。经验损失函数一个很自然的选择是误分类点的个数,但这样的损失函数不是参数wwwbbb的连续可导函数,不易优化。因此采用误分类点到超平面SSS的总距离作为损失函数,这里的超平面指的是w⋅x+b=0w\cdot x+b=0wx+b=0对应于特征空间RnR^nRn的超平面。
       首先写出输入空间RnR^nRn中任一点x0x_0x0到超平面SSS的距离
1∣∣w∣∣∣w⋅x0+b∣\frac{1}{||w||}|w\cdot x_0+b|w1wx0+b       其中∣∣w∣∣||w||wwwwL2L_2L2范数。
       对于误分类的数据(xi,yi)(x_i,y_i)(xi,yi)来说,若yi=1y_i=1yi=1,则w⋅xi+b&lt;0w\cdot x_i+b&lt;0wxi+b<0;若yi=−1y_i=-1yi=1,则w⋅xi+b&gt;0w\cdot x_i+b&gt;0wxi+b>0。所以对误分类点来说,−yi(w⋅xi+b)&gt;0-y_i(w\cdot x_i+b)&gt;0yi(wxi+b)>0恒成立。
       这样,误分类点(xi,yi)(x_i,y_i)(xi,yi)到超平面SSS的距离是
−1∣∣w∣∣yi(w⋅xi+b)-\frac{1}{||w||}y_i(w\cdot x_i+b)w1yi(wxi+b)       那么设误分类点集合为MMM,所有误分类点到超平面SSS的总距离为
−1∣∣w∣∣∑xi∈Myi(w⋅xi+b)-\frac{1}{||w||}\sum_{x_i\in M}y_i(w\cdot x_i+b)w1xiMyi(wxi+b)       不考虑分母∣∣w∣∣||w||w,就能得到感知机的损失函数定义为
L(w,b)=−∑xi∈Myi(w⋅xi+b)L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b)L(w,b)=xiMyi(wxi+b)       为什么可以不考虑∣∣w∣∣||w||w?因为感知机是误分类点驱动的,而∣∣w∣∣||w||w不影响−yi(w⋅xi+b)-y_i(w\cdot x_i+b)yi(wxi+b)的符号,即不影响点(xi,yi)(x_i,y_i)(xi,yi)的分类正误;用梯度下降法求解时,∣∣w∣∣||w||w也不会影响梯度的方向。

3、感知机学习算法

       给定一个训练数据集
T={(x1,y1),(x2,y2),⋯&ThinSpace;,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}T={(x1,y1),(x2,y2),,(xN,yN)}       求参数wwwbbb,使其为以下损失函数极小化问题的解
min⁡w,bL(w,b)=−∑xi∈Myi(w⋅xi+b)\min_{w,b}L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b)w,bminL(w,b)=xiMyi(wxi+b)       具体采用随机梯度下降法(stochastic gradient descent)进行求解。首先任意选取一个超平面w0w_0w0b0b_0b0,若误分类点集合MMM是固定的,则损失函数L(w,b)L(w,b)L(w,b)的梯度为
∇wL(w,b)=−∑xi∈Myixi\nabla_wL(w,b)=-\sum_{x_i\in M}y_ix_iwL(w,b)=xiMyixi∇bL(w,b)=−∑xi∈Myi\nabla_bL(w,b)=-\sum_{x_i\in M}y_i bL(w,b)=xiMyi       随机梯度下降就是随机选取一个误分类点(xi,yi)(x_i,y_i)(xi,yi),对wwwbbb进行更新
w←w+ηyixiw\gets w+\eta y_ix_iww+ηyixib←b+ηyib\gets b+\eta y_ibb+ηyi       式中η\etaη是步长,即学习率(learning rate),这样不断迭代可以使L(w,b)L(w,b)L(w,b)不断减小,直到为0。
       现在考虑算法的收敛性,为便于推导将bbb并入权重向量www中,记作w^=(wT,b)T\hat w=(w^T,b)^Tw^=(wT,b)T,同时将输入向量加进常数1,记作x^=(xT,1)T\hat x=(x^T,1)^Tx^=(xT,1)T。这样,x^∈Rn+1\hat x\in R^{n+1}x^Rn+1w^∈Rn+1\hat w\in R^{n+1}w^Rn+1,有w^⋅x^=w⋅x+b\hat w\cdot \hat x=w\cdot x+bw^x^=wx+b
       可以引出下述NovikoffNovikoffNovikoff定理:
       设训练数据集TTT是线性可分的,则
       (1)存在满足条件∣∣w^opt∣∣=1||\hat w_{opt}||=1w^opt=1的超平面w^opt⋅x^=0\hat w_{opt}\cdot \hat x=0w^optx^=0将训练数据集完全正确分开;且存在γ&gt;0\gamma&gt;0γ>0,对所有i=1,2,⋯&ThinSpace;,Ni=1,2,\cdots,Ni=1,2,,N
yi(w^opt⋅x^i)≥γy_i(\hat w_{opt}\cdot \hat x_i)\ge\gammayi(w^optx^i)γ       (2)令R=max⁡1≤i≤N∣∣x^i∣∣R=\max_{1\le i\le N}||\hat x_i||R=max1iNx^i,则感知机算法的误分类次数kkk满足不等式
k≤(Rγ)2k\le(\frac{R}{\gamma})^2k(γR)2       定理(1)的证明比较简单,由于训练数据集线性可分,存在超平面可将训练数据集完全正确分开,取此超平面为w^opt⋅x^i=0\hat w_{opt}\cdot \hat x_i=0w^optx^i=0,由于对有限的i=1,2,⋯&ThinSpace;,Ni=1,2,\cdots,Ni=1,2,,N均有
yi(w^opt⋅x^i)&gt;0y_i(\hat w_{opt}\cdot \hat x_i)&gt;0yi(w^optx^i)>0       所以存在
γ=min⁡i{yi(w^opt⋅x^i)}\gamma=\min_i\{y_i(\hat w_{opt}\cdot \hat x_i)\}γ=imin{yi(w^optx^i)}       使得
yi(w^opt⋅x^i)≥γy_i(\hat w_{opt}\cdot \hat x_i)\ge\gammayi(w^optx^i)γ       针对定理(2),令w^k−1\hat w_{k-1}w^k1是第kkk个误分类实例之前的扩充权重向量,若(xi,yi)(x_i,y_i)(xi,yi)是被w^k−1\hat w_{k-1}w^k1误分类的数据,则wwwbbb的更新是
w^k←w^k−1+ηyix^i\hat w_k\gets \hat w_{k-1}+\eta y_i\hat x_iw^kw^k1+ηyix^i       这里省略了从www推至w^\hat ww^的过程,不过比较简单。下面推导两个不等式中的第一个:
w^k⋅w^opt=(w^k−1+ηyix^i)⋅w^opt=w^k−1⋅w^opt+ηyiw^opt⋅x^i\hat w_k\cdot \hat w_{opt}=(\hat w_{k-1}+\eta y_i\hat x_i)\cdot \hat w_{opt}=\hat w_{k-1}\cdot \hat w_{opt}+\eta y_i\hat w_{opt}\cdot\hat x_iw^kw^opt=(w^k1+ηyix^i)w^opt=w^k1w^opt+ηyiw^optx^i       根据定理(1),yiw^opt⋅x^i≥γy_i\hat w_{opt}\cdot\hat x_i\ge\gammayiw^optx^iγ,因此上式可得
w^k⋅w^opt≥w^k−1⋅w^opt+ηγ≥⋯≥kηγ\hat w_k\cdot\hat w_{opt}\ge\hat w_{k-1}\cdot\hat w_{opt}+\eta\gamma\ge\cdots\ge k\eta\gammaw^kw^optw^k1w^opt+ηγkηγ       又由于∣∣w^k⋅w^opt∣∣≤∣∣w^k∣∣⋅∣∣w^opt∣∣||\hat w_k\cdot\hat w_{opt}||\le||\hat w_k||\cdot||\hat w_{opt}||w^kw^optw^kw^opt,而∣∣w^opt∣∣=1||\hat w_{opt}||=1w^opt=1,即
∣∣w^k∣∣≥kηγ||\hat w_k||\ge k\eta\gammaw^kkηγ       接着推导第二个不等式:
∣∣w^k∣∣2=∣∣w^k−1+ηyix^i∣∣2=∣∣w^k−1∣∣2+2ηyiw^k−1⋅x^i+η2yi2∣∣x^i∣∣2||\hat w_k||^2=||\hat w_{k-1}+\eta y_i\hat x_i||^2=||\hat w_{k-1}||^2+2\eta y_i\hat w_{k-1}\cdot\hat x_i+\eta^2y_i^2||\hat x_i||^2w^k2=w^k1+ηyix^i2=w^k12+2ηyiw^k1x^i+η2yi2x^i2       由于(xi,yi)(x_i,y_i)(xi,yi)w^k−1\hat w_{k-1}w^k1的误分类点,因此
yiw^k−1⋅x^i&lt;0y_i\hat w_{k-1}\cdot\hat x_i&lt;0yiw^k1x^i<0       又由于yi∈{1,−1}y_i\in \{1,-1\}yi{1,1},即yi2=1y_i^2=1yi2=1,可得到下面的不等式
∣∣w^k∣∣2≤∣∣w^k−1∣∣2+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2R2≤⋯≤kη2R2||\hat w_k||^2\le||\hat w_{k-1}||^2+\eta^2||\hat x_i||^2\le||\hat w_{k-1}||^2+\eta^2R^2\le\cdots\le k\eta^2 R^2w^k2w^k12+η2x^i2w^k12+η2R2kη2R2       将得到的两个不等式结合,可得
kηγ≤∣∣w^k∣∣≤kηRk\eta\gamma\le||\hat w_k||\le\sqrt{k}\eta Rkηγw^kkηR       即
k≤(Rγ)2k\le(\frac{R}{\gamma})^2k(γR)2       定理表明,误分类的次数kkk是有上界的,即经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。
       上述使用随机梯度下降法进行迭代的方法属于原始形式,其与对偶形式相对应。对误分类点(xi,yi)(x_i,y_i)(xi,yi),原始形式通过
w←w+ηyixiw\gets w+\eta y_ix_iww+ηyixib←b+ηyib\gets b+\eta y_ibb+ηyi       逐步修改wwwbbb,可假设初值w0w_0w0b0b_0b0均为0,这样最后学习到的wwwbbb可以表示为
w=∑i=1Nαiyixiw=\sum_{i=1}^N\alpha_iy_ix_iw=i=1Nαiyixib=∑i=1Nαiyib=\sum_{i=1}^N\alpha_iy_ib=i=1Nαiyi       式中,αi=niη\alpha_i=n_i\etaαi=niηnin_ini为第iii个点由于误分类而进行更新的次数。
       因此感知机模型可以写作
f(x)=sign(∑j=1Nαjyjxj⋅x+∑j=1Nαjyj)f(x)=sign(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+\sum_{j=1}^N\alpha_jy_j)f(x)=sign(j=1Nαjyjxjx+j=1Nαjyj)       在迭代过程中,选取数据(xi,yi)(x_i,y_i)(xi,yi),若yi(∑j=1Nαjyjxj⋅xi+∑j=1Nαjyj)≤0y_i(\sum_{j=1}^N\alpha_jy_jx_j\cdot x_i+\sum_{j=1}^N\alpha_jy_j)\le0yi(j=1Nαjyjxjxi+j=1Nαjyj)0,按如下规则更新αi\alpha_iαi即可
αi←αi+η\alpha_i\gets\alpha_i+\etaαiαi+η       在对偶形式的感知机模型中,训练实例仅以内积的形式出现,即式中的xj⋅xx_j\cdot xxjx,可以预先将训练集的内积计算出来,以矩阵的形式存储,这个矩阵就是GramGramGram矩阵
G=[xi⋅xj]N×NG=[x_i\cdot x_j]_{N\times N}G=[xixj]N×N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值