当前位置: 代码迷 >> 综合 >> 机器学习学习笔记.day6
  详细解决方案

机器学习学习笔记.day6

热度:21   发布时间:2023-12-23 03:07:24.0

周志华《机器学习》 学习笔记

最近开始学习机器学习,参考书籍西瓜书,做点笔记。



第六章 支持向量机

6.1 间隔与支持向量

在样本空间中找到一个超平面,将不同类别样本分开,超平面应选择尽量靠中间,容错率较好;

为超平面的线性方程,其中ω为平面法向量,b为位移项;

由点到面距离公式,可得到样本空间中任一点到超平面的距离:

若yi=+1,则>0;若yi=-1,则<0;

距离超平面最近的样本点称为支持向量;

两个不同类别支持向量到超平面的距离为:

寻找超平面,即找到不同类别支持向量到超平面的距离最大,则:

要让距离最大化,则仅需把最小化即可,即:

其中1/2是为后面求偏导方便,平方是为了处理正负号问题;

6.2 对偶问题

求解大间隔划分超平面模型的参数,使用拉格朗日乘子法可得到其对偶问题;

上式则为拉格朗日乘子法得到的拉格朗日函数;

对ω,b求偏导,并等于0,得到:

将上两式代入拉格朗日函数,则得到的对偶问题:

解出α则原模型变为:

以上过程满足KKT条件:

由KKT条件,训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关;

由SMO算法,固定αi外的所有参数,然后求αi上的极值,SMO每次选择两个变量,并固定其他参数,即:

    1.选取一对需要更新的变量;

    2.固定两个变量以外的参数,求解后获得新的两个变量;

直观看来KKT条件违背程度越大,则变量更新后可能导致目标函数值增幅越大;

由SMO可得到偏移量b的值:

6.3 核函数

在现实任务中,原始样本空间内不存在一个能正确划分两类的超平面,可将原始空间映射到一个更高维的空间中;

相应的映射后的模型为:

则求解后得:;中间的推导过程与上面相似;

其中称为核函数;

常用核函数见书,核函数还可以通过函数组合得到;

6.4 软间隔与正则化

在实际中,很难找确定合适的核函数使训练样本线性可分,则引入软间隔概念;

软间隔则允许某些样本不满则约束,即在最大化间隔的同时,不满足约束的样本尽可能少;

优化目标写为:

其中l()为替代损失函数;

常用损失函数:hinge损失,指数损失,对率损失;

求解推到过程与之前类似,并且由KKT条件,软间隔支持向量机最终模型仅与支持向量有关,损失函数与保持了稀疏性;

6.5 支持向量回归

支持向量回归中引入偏差,只有在模型输出与真实值差值大于偏差时,才计算损失;

SVR形式:

推到求解过程与之前类似,约束条件稍有变化;

SVR:


第六章支持向量机,大体上来讲需要在形成坐标图的思维,在图形上面理解要轻松很多,需要动手画图以及自己推导一遍公式。

我的笔记做的比较粗糙,还请见谅。

有不正确或者不完整的地方,欢迎补充。