您的位置:首页 > 其它

支持向量机 数学推导 Part2

2018-02-07 21:51 302 查看

怎么计算余量?

支持向量机,这里先拿出跟数学相关的两个字“向量”。

所以这里会介绍一些向量的东西并介绍怎么使用向量作为工具去计算余量。不是很理解的朋友建议回去翻翻高数,不过都是基本的知识。

向量是什么

向量就是给定一个点A,连接原点到点A,并具有由O到A方向的连线,表示为OA→OA→. 书本的定义:向量就是具有大小和方向东西。



大小(magnitude)

向量的大小(magnitude)写作∥x∥‖x‖,称为模(norm).

通过(Pythagoras’ theorem)毕达哥拉斯定理求模如下图,

OA2=OB2+AB2OA2=OB2+AB2

OA2=32+42OA2=32+42

∥x∥=5‖x‖=5



方向(direction)

定义向量u(u1,u2)u(u1,u2)的方向为向量w(u1∥u∥,u2∥u∥)w(u1‖u‖,u2‖u‖)。如下图:



可以看到:

cos(θ)=u1∥u∥cos(θ)=u1‖u‖

cos(α)=u2∥u∥cos(α)=u2‖u‖

所以向量u(3,4)u(3,4)方向向量是w(0.6,0.8)w(0.6,0.8)。方向向量的模为1.如下图



两个向量的加法

任意给给两个向量u(u1,u2)u(u1,u2) ,v(v1,v2)v(v1,v2)两个向量相加:u+v=(u1+v1,u2+v2)u+v=(u1+v1,u2+v2)



两个向量的减法

任意给给两个向量u(u1,u2)u(u1,u2) ,v(v1,v2)v(v1,v2)两个向量相减:u−v=(u1−v1,u2−v2)u−v=(u1−v1,u2−v2)。 方向指向被减数的方向。



向量的点积(dot product)

x⋅y=∥x∥∥y∥cos(θ)x⋅y=‖x‖‖y‖cos(θ), θθ 为两个向量的夹角。

推导过程如下:



根据前面的分析我们知道,

cos(β)=adjacenthypotenuse=x1∥x∥cos(β)=adjacenthypotenuse=x1‖x‖

sin(β)=oppositehypotenuse=x2∥x∥sin(β)=oppositehypotenuse=x2‖x‖

cos(α)=adjacenthypotenuse=y1∥y∥cos(α)=adjacenthypotenuse=y1‖y‖

sin(α)=oppositehypotenuse=y2∥y∥sin(α)=oppositehypotenuse=y2‖y‖

从图片中得到 θ=β−αθ=β−α, 那么cos(θ)=cos(β−α)cos(θ)=cos(β−α)

cos(β−α)=cos(β)cos(α)+sin(β)sin(α)cos(β−α)=cos(β)cos(α)+sin(β)sin(α)

于是,

cos(θ)=cos(β−α)=cos(β)cos(α)+sin(β)sin(α)cos(θ)=cos(β−α)=cos(β)cos(α)+sin(β)sin(α)

cos(θ)=x1∥x∥y1∥y∥+x2∥x∥y2∥y∥cos(θ)=x1‖x‖y1‖y‖+x2‖x‖y2‖y‖

cos(θ)=x1y1+x2y2∥x∥∥y∥cos(θ)=x1y1+x2y2‖x‖‖y‖

∥x∥∥y∥cos(θ)=x1y1+x2y2‖x‖‖y‖cos(θ)=x1y1+x2y2

点积的算术定义就出来,

x⋅y=x1y1+x2y2=∑i=12(xiyi)x⋅y=x1y1+x2y2=∑i=12(xiyi)

从上面的集合定义也能知道,两个向量的点积是一个数。

向量的正交投影

如图给定两个向量xy,那么向量xy上的投影为z



通过上面的学习我们知道,

cos(θ)=∥z∥∥x∥cos(θ)=‖z‖‖x‖

∥z∥=∥x∥cos(θ)‖z‖=‖x‖cos(θ)

点积cos(θ)=x⋅y∥x∥∥y∥cos(θ)=x⋅y‖x‖‖y‖

于是可以推导得

∥z∥=x⋅y∥y∥‖z‖=x⋅y‖y‖

另外我们知道方向向量的,如果u表示向量y的方向向量,u=y∥y∥u=y‖y‖, 那么向量x在向量y上面的投影可以由下式计算:

∥z∥=u⋅x‖z‖=u⋅x

我们还注意到,向量x在向量y上的投影得到的向量z,它的方向向量和向量y的方向向量是一致的,所以向量z可表示为z=∥z∥uz=‖z‖u。

知道了向量x在向量y上面的投影z后,我们就能够计算向量x-z的距离:

∥x−z∥=(3−4)2+(5−1)2−−−−−−−−−−−−−−−√=17−−√‖x−z‖=(3−4)2+(5−1)2=17



SVM 超平面

超平面方程

超平面方程的定义:wTx=0wTx=0

wTxwTx计算两个向量的点积。

直线的方程y=ax+by=ax+b的另外一个表达形式 −b−ax+y=0−b−ax+y=0。给两个向量w⎛⎝⎜−b−a1⎞⎠⎟w(−b−a1),x⎛⎝⎜1xy⎞⎠⎟x(1xy), 写上面超平面定义的形式:

−b−ax+y=wTx=−b×(1)+(−a)×x+1×y−b−ax+y=wTx=−b×(1)+(−a)×x+1×y

既然两种表达式是一样的,那么为什么还要使用向量来定义超平面?

(1)对于高维的情况,向量的表示方式更好处理

(2)向量w对于超平面总是标准的(the vector w will always be normal to the hyperplane)。

计算点到超平面的距离

下图一个超平面把数据分成了两组。



超平面方程为x2=−2x1x2=−2x1,使用向量形式wTx=0wTx=0表示,w(21)w(21),x(x1x2)x(x1x2)

向量w如下图所示,计算点A(3,4)到超平面的距离,也就是计算A到它在超平面投影的距离。



我们把向量OA投影到向量w方向上,得到向量p,我们计算的距离是点A 到超平面的距离,但是从图中我们可以看到,向量OA在向量w方向上的投影就等于点A到超平面的距离,也就是向量p的模∥p∥‖p‖。

可以求得向量w的方向向量,p的方向与w是一样,这个方向向量也是p的方向向量:

∥w∥=22+12−−−−−−√=5–√‖w‖=22+12=5

u=(25–√,15–√)u=(25,15)

向量OAa表示,根据上面的公式,可得向量p和它的模:

p=(u⋅a)up=(u⋅a)u

p=(205,105)p=(205,105)

p=(4,2)p=(4,2)

∥p∥=42+22−−−−−−√=25–√‖p‖=42+22=25

计算超平面的margin

余量定义为:margin=2∥p∥=45–√margin=2‖p‖=45

所以通过计算得到了超平面的余量。

详见原文地址:https://www.svm-tutorial.com/2014/11/svm-understanding-math-part-2/

有兴趣的可以继续阅读:支持向量机 数学推导 Part3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息