机器学习-笔记(二)-svm处理线性问题

svm算法分成两个步骤

  1. 求出线性可分问题的解
  2. 将线性可分问题中得到的结论推广到非线性可分问题

线性可分的定义

对于二维空间来说,就是存在一条直线可以将样本分开

 对于三维平面来说,就是存在一个平面将样本分开

问题描述

Vapnik提出:

  • 如果一个数据集是线性可分的,那将存在无数个超平面将各个类别分开

  • 那么哪个平面是最好的呢?

  • 这个平面又是怎么画出来/得到的呢?

首先需要了解几个概念

将任意一条直线朝一侧平行的移动,直到其叉到一个或几个训练样本位置,如下图可以看到这条虚线平行的移动,直到他叉到了其中的一个或几个训练样本。

支持向量

距离超平面最近(平移超平面,最先碰到的样本点)的点叫支持向量

间隔

 平行的两条直线的距离叫间隔

所以最优解/最优超平面要求满足:

  • 将样本分开了类别

  • 间隔最大

  • 最好的平面应该在上下两个平行的平面中间,到所有支持向量的距离相等

 如何求解

要求解一个问题,首先我们需要用数学的方式写出对问题的描述

问题

一个训练样本集{(Xi,Yi)},i=1~N线性可分,是指存在一个向量w和一个常数b,使得当

  1. Y_i=+1时,W^TX_i+b>0
  2. Y_i=-1时,W^TX_i+b<0

基于上文的提出,支持向量机需要寻找的是间隔最大的超平面,因此等价于求解这个最优问题

最小化:\frac{1}{2}||w||^2

限制条件:Y_i(W^TX_i+b)\geqslant 1(i=1\sim N)

解释一下以上两个是怎么来的

最小化||w||是怎么来的?
首先根据点到直线的距离公式可得
                    点x0到超平面的距离是d=\frac{w^Tx_0+b}{||w||}
我们想要间距最大,即d最大,但是上下两边都是可变的,因而引入一个变量a缩放所求的(w,b)
                    w^Tx+baw^T+ab=0所表示的平面是同一个(式子2除以a就等于式子1,a属于实数)
引入这个变量a以后使得在支持向量上的x0有|w^Tx_0+b|=1(位于直线的上方是+1,位于直线下方是-1);则d=\frac{1}{||w||}
也就是说求d最大,等价于了求||w||的最小值

限制条件是怎么来的?
由于非支持向量的距离肯定大于d,则非支持向量上的点满足|w^Tx_0+b|>1,那么也就是所有的向量满足|w^Tx_0+b|\geq 1;再结合y=+1或-1,得出了限制条件

线性可分条件下的支持向量机求解是凸优化的问题

凸优化就是:

1、在最小化(最大化)的要求下,

2、目标函数是一个凸函数(凹函数)

3、同时约束条件所形成的可行域集合是一个凸集。

凸优化问题一定有一个唯一的全局最优解,也就是说在最优化的问题中,如果一个问题是凸优化问题,就会把他当成是一个已经解决的问题,因为凸优化问题只有唯一的一个全局的极值,可以使用梯度下降的算法,能够非常方便的求得他的解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值