SVM Support vectors machine 基础概念

Support vectors machines :SVM支持向量机是一种,输出为2个类的分类算法(classification algorithm)模型。

classification algorithm:分类算法是一个网络结构,有输入有输出,输入的数据经过网络根据输出值大小,进行分类。SVM输出有两类,通过一个阈值控制,大于阈值就是1类,少于阈值就是2类。

supervied learning algorithm:有监督学习算法是一个种网络结构,学习指的是通过训练数据得到这个结构的过程,有监督的意识是输出结果有监督,有监督就是使得输出分别到几个预先设计好的类别中,并根据训练数据预先带答案进行检查,根据对错调整网络结构。SVM预先设计好了是两个输出类别,训练数据也都包含正确的分类。

trainning sample:训练样本:样本(样本的特征使用数据表示),带有标签,表示样本属于哪一个类别。

Goal of SVM:SVM的目标:给定一个特定的数据点(样本的特征),数据点代表的样本属于哪一个类别。

separating hyperplane:分隔超面:特定维度的样本特征空间的分隔的统称。1维样本特征空间,超面是一个点。2维样本特征空间,超面是一条线,3维样本特征空间,超面是一个面。高维度样本空间,称之为超面。关键在于其分隔性。正如广泛的说标量可以成为0阶的张量。

optimal separating hyperplane:优化分隔超面:能分隔空间的面,不一定是划分最好的面。所谓好坏,就是这个面距离两个分类中的数据点都是尽可能的远。当一个面距离1类足够的远,保证对1类的分类都是成功的,但是此时可能会导致把2类的分类错误了,那如果让这个面距离1类近了,近到2类的分类是好的,又会对1类的分类造成麻烦。所以最后是要同时考虑两类,找到一条对两边的分类都尽可能的好的面。这个面到两个类的距离是一样的,但是能等分的超面也不一定是分的最好的,我们使用边缘来描述每个类距离分隔超面的距离。

margin:边缘:空间中任意一个分隔超面固定好了后【不一定最优】,把训练数据中1类的数据都计算一下和超面的距离,找到一个最近的。把训练数据中2类的数据也计算一下和超面的距离,又找到一个最近的。目标是这两个距离是相等的,这两个距离加起来就是边缘。我们找到能使得这个边缘最大的分隔超面()

vector:向量:在一个空间中,向量由量magnitude和方向direction构成。

magniture:量:衡量长度的特性。符号||x||,向量在空间中的长度,由空间决定,使用比如2范来衡量这个空间里的长度特性。

norm:范:是一种长度样的属性,描述向量的长度特点。有1范,2范(最常见的),0范,无穷范。

L2-norm空间中,||x||_2=\sqrt{x^2_1+ x_2^2+,\cdots,x^2_n}  n是空间的维度。

direction:方向:是一个向量,描述向量的方向特点,角度\theta\cos(\theta)表示维度上的角度值,所以向量中的项是所在维度的角度余弦值。

例如有向量u在2维空间中\boldsymbol u = [u_1,u_2],方向 \boldsymbol w_u = [{u_1\over ||\boldsymbol u||},{u_2\over ||\boldsymbol u||}] 方向由所在维度的角度余弦值表示。

【可以发现,u向量和方向向量之间的关系,类似于等比例除了u向量在空间中的范】

计算\|\boldsymbol w_u\| = \sqrt{​{u_1^2 \over u^2_1+u_2^2},{u_2^2 \over u^2_1+u_2^2}}=1 方向向量的范是1,这种向量被成为单位向量(unit vector),

\boldsymbol w的方向向量w_{w_u}} = [{ w_{u_1} \over 1} ,{w_{u_2} \over 1}]=[w_{u_1},w_{u_2}] 就是自己这个u的方向向量。

dot product inner product:点积、内积:向量空间中两个向量的点积等于向量空间范积乘以夹角余弦。

\rm x \cdot \rm y = \|x\|\|y\|\cos(\theta)

比如:x的角大为\beta和y的角小一些为\alpha

\theta= \beta - \alpha , \cos(\theta) =\cos(\beta)\cos(\alpha) + \sin(\beta)\sin(\alpha)

\cos(\theta) ={x_1\over \|x\|}{y_1\over \|y\|}+{x_2\over \|x\|}{y_2\over \|y\|} ={x_1y_1 + x_2y_2 \over \|x\|\|y\|}

\|x\|\|y\|\cos(\theta)=x_1y_1 + x_2y_2       

向量的点乘就是每个维度的积求和\sum_i^N (x_iy_i)点积的代数定义。

为什么用点积呢?就是因为我们在向量中间点了一个点。还有表现方式为:

\left \langle x,y \right \rangle线性代数中的内积(inner product)

标量积(scalar product)因为我们得到的是一个标量(实数)

向量的正交映射 (orthogonal projection) Z

\boldsymbol z=\boldsymbol u_y (\boldsymbol u_y \cdot \boldsymbol x)    向量的正交映射等于被映射向量的方向单元向量,乘以被映射向量的方向单元向量点乘映射向量的点积。

在向量空间中,一个向量 到沿着一个向量的线之间的最短距离就是正交映射向量 减去原向量的量,不需要知道方向。

向量空间中和一个向量的点积为0的情况,在本身范不为零是,角度为90,这些向量组成一个虚拟的线,仅仅用来区分数据点。

在二维向量空间【举例子】中设定一个向量\boldsymbol w=[w_1 ,w_2],和这个向量正交的是一个特定方向的向量,这些向量在二维形成了一条线(概念上的线)。向量就是这个线的法向量(normal vector)

空间中的点A到这个线的距离,可以看做到\boldsymbol w=[w_1 ,w_2]的投影向量P的范\|p\| 

训练就是通过调整参数,影响法向量,进而影响正交的超面。

 

\\ \boldsymbol x_i , i\leq i \leq N \\ \boldsymbol x_i \in \Bbb R^p \\ y_i = \begin{Bmatrix} 1\\ -1 \end{Bmatrix} \\ (\boldsymbol x_i,y_i) \in \cal D

超面的空间向量条件

\boldsymbol w \cdot \boldsymbol x = 0 ,w \in \Bbb R^3,x \in \Bbb R^3 ,\cal D \it is \Bbb R^2

二维空间但是约束条件使用三维的向量,如果正常使用二维向量

\boldsymbol w \cdot \boldsymbol x +b = 0 ,w \in \Bbb R^2,x \in \Bbb R^2 ,b \in \Bbb R,\cal D \it is \Bbb R^2

满足约束的超面是:向量h,投射到向量w后的向量z的范w的范的积值为-b的,这些向量h组成的空间中虚拟的线H。

我来找一个H^0,由无穷个满足特定条件的h^0在空间中组成的一条线。0超面。

\boldsymbol w \cdot \boldsymbol h^0 + b =0 ,h^0 \in H^0

就是超面上的向量和特定向量\boldsymbol w的内积为特定值,所以当特定值变化时候,这个虚拟的超面在空间中平行移动,法向量\boldsymbol w控制其不能旋转。

现在数据中的向量\boldsymbol x经过\boldsymbol w \cdot \boldsymbol x +b计算之后,也会得到一个投射到特定\boldsymbol w的向量z的范w的范的积加上偏移b,结果是一个实数有大有小,数据中的A类的向量,\boldsymbol x^A,这个值和\boldsymbol w \cdot \boldsymbol h^0 + b计算出的值之间的差,就是空间上\boldsymbol x^A正交投射到超面\boldsymbol H^0的距离。

\boldsymbol h映射到\boldsymbol w的范被约束

\boldsymbol x映射到\boldsymbol w的范减去\boldsymbol h映射到\boldsymbol w的范就是数据点到超面的距离。

汇聚一下,可以这样看。

y_i(\boldsymbol w \cdot \boldsymbol x_i + b) \geq D    训练数据点在法向量\boldsymbol w 上点积加偏移后,大于等于实数D。

空间中我竖起两个超面,A超面和B超面之间的空间范距离为m,叫做边缘margin。

\\ k\perp h_A,k\perp h_B\\ \|k\| = m

这个超面间的距离向量K,首先是正交于两个超面,也就是和法向量\boldsymbol w方向相同,空间范是m。有了方向和量的定义,就有了

\boldsymbol k=m \boldsymbol u_w =m{\boldsymbol w \over \|\boldsymbol w\|}

A超面和B超面上数据点,之间的差为k ,推导得到m={2D\over \|w\|}    D是一个固定的常数,目标是要\|w\|尽可能的小。

机器的参数w,b,使得\|w\|尽可能小。

限制条件是y_i(\boldsymbol w \cdot \boldsymbol x_i + b) \geq D  在N个训练样本中训练。

数学求解析解的方法

凸函数:convex function:如果你能在函数的两个点之间绘制一条线,而不穿过函数。

凸集合:convex set:指区域,对于区域中的每一对点,每一个连接点对的直线段上的点在这个区域内。

对偶性:Duality:数学优化理论中,对偶意味着优化问题可以被从两个角度的任意一个看,主要问题或者对偶问题(对偶原则)。对偶问题的解为了主要问题的解提供了下限(lower bound)

如果你有部分有序集合K(可被用来比较的),下限是K的一个元素,小于等于S的每一个元素。infimum(最佳下限)

如果你有一个最小化问题,你可以把它看做一个最大化问题。当你找到这个问题的最大化了,他将会是最小化问题的解的下限。也就是说,它将少于或者等于最小化问题的最小化。

拉格朗日乘法(lagrange multipliers):L乘方法是策略,找到函数的局部最大和最小,受到等式限制。

等高线图(contour lines):等高线图是一个方法,视觉化三维函数到2维。:关键点:线上的每一个点,函数返回相同的值。更深的区域,函数的值更小。

函数的梯度(gradient)被看做是一个向量场(vector field)箭头指向函数增加的方向。

结果我们能在等高线图上容易的绘制梯度向量,他们垂直于等高线,他们应该指向函数增加的方向。

拉格朗日:找到受限函数的最小值,我们需要看或者指出 \nabla f(x,y) = \lambda\nabla g(x,y),梯度之间的关系。系数就是lagrange multiplier。实际上,尽管两个梯度向量指向相同方向,他们可能被没有相同长度,所有必须有一些系数来做转换。

L(x,y,\lambda) = f(x,y)-\lambda g(x,y) 这个是两个函数的差。

\nabla L(x,y,\lambda) =\nabla f(x,y)-\lambda \nabla g(x,y)就是加上系数后的梯度差。找到=0的点,就是两个梯度平行,也就是目标函数的最小值。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值