[统计学习方法]感知机
1.感知机模型

在感知机模型中,w与b分别代表权值向量和偏置. w是权值向量,b是偏置. 符号函数用于判断数值正负. 当输入x满足大于等于零的条件时,符号函数返回+1;否则返回-1.
该感知器模型旨在解决两类分类问题。其输入为特征向量,在分析银行客户的特征时(如性别、年龄、收入等构成特征向量),输出则限定为+1与-1两种可能。例如,在分析银行客户的特征时(如性别、年龄、收入等构成特征向量),输出结果包括是否发放信用卡(以+1表示发放、-1表示拒绝);此外还包括判断一封邮件是否为垃圾邮件等任务。
经典的二元分类器感知机模型对应于特征空间Rn中的一个法向量w所确定的超平面H。在几何学中,我们可以将其视为由法向量w决定的超平面H在Rn中所定义的空间分割结构。其中,w是法向量来定义该超平面的方向信息而b是用于调节偏置项以实现对数据集的高度可分性。该超平面H则将整个特征空间划分为两个互不相交的部分,这两个区域各自对应于正类别和负类别的结果输出结果。
如果说得比较通俗的话,就是寻找一个函数

为了确保在任意给定的有标记的数据点(x, y)下,在其标记为正类时其函数输出结果不小于零,并且在标记为负类时其函数输出结果严格小于零。
这里,我们需要确定的值有w1~wn和b。
PS:在这里我们可以在每个数据中加入个x0=1,使得函数变成

设w_0 = b。这样做带来的好处是可以使得b与\omega能够统一地进行计算,并且f(x)可以直接表示为向量\omega与x的内积。需要注意的是,在本书中并没有采用这种方式进行处理。因此,在后续讨论中我们暂时不会采用这种方法进行处理。
2.数据集的线性可分性
假设存在这样一个函数f(x)满足以下条件:对于所有的数据点x,
当实例属于正类(即y=+1)时有f(x)\geq 0,
而当实例属于负类(即y=-1)时有f(x)< 0
。
那么我们就可以认为这是一组线性可分的数据,
即可找到一个超平面S来完美地将这些点进行分类。
否则就称该数据集为线性不可分的。
在几何学中,在分析y值为正的所有点所形成的凸包以及y值为负的所有点所形成的凸包时,请判断这两个凸包是否存在重叠区域。如果存在重叠区域,则判定该数据集线性不可分;反之则判定其线性可分。
3.感知机的学习方法
3.1.损失函数
假设所给数据集是线性可分的,则我们需要找到适当的权重系数向量\mathbf{W}及其对应的偏移项b。一旦找到了合适的\mathbf{W}与b值,则有必要设计一种方法用于评估所设定的目标是否达到预期效果。为此目的而引入一个损失函数L(\mathbf{W}, b)用于评估所设定的目标是否达到预期效果,并以此作为衡量标准来判断\mathbf{W}与b的选择质量。当该损失函数L(\mathbf{W}, b)值最小时,则认为所选择的\mathbf{W}与b达到了最佳状态,在此情况下能够更好地适应给定的数据集。
按照损失函数的要求,在给定w和b后会生成一个f(x),其本质即为误判数量。然而这样的离散性质不利于求导优化过程中的极值搜索。因此我们需要采用一种连续性定义来构建损失函数以保证良好的数学性质与可微性要求。
所以建议我们采用所有被错误分类的点到超平面总距离之和作为损失函数(其中M代表被错误分类的数据集合):

其中,我们不考虑

,就得到了损失函数:

该损失函数是非负的,这是因为,对于所有分错的点来说,

恒为负数(由于yi与括号内部内容符号相反),而当没有任何被错误分类的点存在时,损失函数的值达到零
我们的目的就是找到w和b让损失函数的值越小越好。
3.2.随机梯度下降法
前面提到其目的是为了最小化损失函数,并采用了被称为随机梯度下降法的方法进行优化运算;即从这些被错误分类的数据中随机选取一个样本进行分析,并对该样本进行梯度下降优化计算以调整模型参数以期达到更好的分类效果。
梯度下降等同于一个人想要下山的过程。他沿着坡度最为陡峭的方向前进,在每一步之前都会观察周围环境以确定下一步行走的方向。经过若干步后会逐渐找到最低点并完成下山过程。数学公式y = mx + b描述了这一过程中的线性关系。
考虑到优化问题的本质特性,在训练神经网络模型的过程中,我们通常需要通过求取该模型中损失函数J(w,b)的偏导数来确定下降方向;随后通过调整权重参数w和偏置项b来进行优化;这一过程将被反复迭代执行直至收敛至全局最小值点;此时我们的目标是最小化损失函数J(w,b)使其达到其最小值点。


显然地,在遍历所有被错误分类的数据时,我们可以计算出精确的梯度值。然而,在实际应用中由于数据集往往规模庞大,直接遍历所有样本计算梯度并不高效。因此,在实际操作中我们通常随机选取一个误分样本进行更新,并观察其对整体损失函数的影响。尽管如此,在大体趋势上这种方法仍然是能够逐步逼近最优解的。
因此,假设我们选择了某误分类点(xi,yi),进行更新:


其中

其中步长值(即学习率)取自区间(0,1],它代表每次移动的距离,并重新考察周围的最低点。
从几何学视角来看,在每一次迭代过程中都会选取一个误分类的样本点,并通过调整法向量的方向使其逐步靠近该样本的位置;这样一来,在每一步迭代中都会使该样本与当前分离超平面之间的距离逐渐减小,并最终将其正确归类到位。
3.3.算法的收敛性
该部分内容可在书中找到完整证明。他进一步指出,在数据集线性可分的情况下,感知机算法的确切迭代步数存在上限这一结论。然而具体的上限值我们尚无法确定。对于规模庞大的数据集而言,直接判断其是否线性可分确实存在挑战。值得注意的是,在假设数据集是线性可分的情况下,则存在无数个可能的超平面能够实现完美分类这一事实具有重要意义——这意味着,在给定初始参数w和b的前提下(其中w代表权重向量,b代表偏置),通过不同的训练样本集合可能会导致不同的分类超平面被选择出来。
3.4.感知机学习算法的对偶形式
通过观察w和b的调整过程可以看出这是一个逐步累加的结果。基于假设w和b最初都设置为零,并且已知在迭代过程中每个点被选择的次数后 我们就可以直接计算出它们最终的具体数值
我们假设第i个点更新了n_i次,那么w和b的最终值应该是


其中,

这时候我们成功的把求w和b换成了求

和b。
初始值,b为0,

为0向量(由于此时所有数据点均未被修正),随后每次都会找出一个误判的样本并进行修正。

和b,直到每个点都被正确分类。
其中,某个点(xi,yi)分错类意味着(也就是把w向量替换成alpha向量):

更新方法为:

(即ni增加了1)

在训练过程中,在计算x_j与x_i的点积时,我们可以预先计算出一个规模庞大的矩阵,并将其直接用于后续步骤。这个矩阵通常被称为Gram矩阵。
即:

