吴恩达机器学习 笔记七 支持向量机svm

1. 线性svm

1.1 代价函数

  吴恩达的svm课程中由logisitic回归讲起,将logistic回归中的代价函数转换成图中的形式。刚开始的时候我自己很疑惑这个地方:

  • 为什么代价函数要变成这个样子
  • 又为什么代价为零的地方要是 z=11 z = 1 和 − 1 ,不是 z=2,3,4 z = 2 , 3 , 4 … …

  直到好好研究了一番svm的几何意义才明白这样做的意义,下面一一道来。

1.1.1 代价函数为什么要变成这个样子

吴恩达机器学习 笔记七 支持向量机svm_第1张图片

  我们假设二维平面,训练数据散点的坐标为 x=(x1,x2)T x = ( x 1 , x 2 ) T ,我们要明确两个地方:

  • svm的目标是寻找一条支持最大分类间隔的直线 θTx=0 θ T x = 0
  • 我们不要忘记代价函数中的 z=θTx z = θ T x ,这样,我们就可以将代价函数和几何意义联系起来了:
    • y=1 y = 1 时, θTx>=1 θ T x >= 1 ,也就是处于下图中的直线 wTx+b=1 w T x + b = 1 的上方,认为判断正确,代价为零。 θTx<1 θ T x < 1 时,位于直线 wTx+b=1 w T x + b = 1 的下方, θTx θ T x 的值越小,离直线 wTx+b=1 w T x + b = 1 越远,代价越大。
    • y=1 y = − 1 时, θTx<=1 θ T x <= − 1 ,也就是处于下图中的直线 wTx+b=1 w T x + b = − 1 的下方,认为判断正确,代价为零。 θTx>1 θ T x > − 1 时,位于直线 wTx+b=1 w T x + b = − 1 的上方, θTx θ T x 的值越大,离直线 wTx+b=1 w T x + b = − 1 越远,代价越大。

吴恩达机器学习 笔记七 支持向量机svm_第2张图片

1.1.2 为什么代价为零的地方要是 z=11 z = 1 和 − 1

  简便起见,这里用 wTx+b w T x + b 表示直线。我们要寻找的 wTx+b=11 w T x + b = 1 或 − 1 这两条直线是由数据所决定的,也就是说,在数据确定的情况下,这两条支持直线是确定的。那么显然 w w 是会随着 wx+b=1,2, w x + b = 1 , 2 , … 来调整的,所以 z=1 z = 1 不会影响我们的目标。

1.2 间距最大化的直观理解

  显然,蓝色的支持直线有一个安全间距,而绿色和红色支持直线几乎是没有的。
吴恩达机器学习 笔记七 支持向量机svm_第3张图片

1.3 优化目标

minθCi=1m[y(i)cost1(θTx(i))+(1y(i))cost0(θTx(i))]+12i=1nθ2j min θ C ∑ i = 1 m [ y ( i ) c o s t 1 ( θ T x ( i ) ) + ( 1 − y ( i ) ) c o s t 0 ( θ T x ( i ) ) ] + 1 2 ∑ i = 1 n θ j 2

  • 如果 y=1 y = 1 ,我们希望 θTx>=1 θ T x >= 1 ,不仅仅是 >=0 >= 0
  • 如果 y=0 y = 0 ,我们希望 θTx<=1 θ T x <= − 1 ,不仅仅是 <=0 <= 0

这就相当于构建出了一个安全间距。因此,优化目标可以变换为

minθ12i=1n||θj||2 min θ 1 2 ∑ i = 1 n | | θ j | | 2
θTx(i)>1,if y(i)=1θTx(i)<1,if y(i)=0 θ T x ( i ) > 1 , i f   y ( i ) = 1 θ T x ( i ) < − 1 , i f   y ( i ) = 0
根据向量内积的几何意义,此优化的目标,是 寻找在 x(i) x ( i ) 上的投影满足条件的 θ θ 中模值最小的那个 θ θ 。并且,由前面的分析可知, θ θ 最小的时候安全间距是最大

2. 非线性svm

2.1 核函数

  核函数用来描述两个向量之间的相似度。高斯核函数的表达式如下

fguass=exp(||xl||22σ2) f g u a s s = e x p ( − | | x − l | | 2 2 σ 2 )

2.2 核函数在svm中的应用

  在线性svm中,我们直接用 θTx=0 θ T x = 0 作为分界直线。但是在非线性可分的情况下,我们就需要引入二次项了。在二维的情况下,我们可以人工将二次项都表示出来,但是在高维的时候仍然人工表示是不太现实的。
  我们注意到,在上面提到的核函数中,是含有经过映射的二次项的。并且,我们可以将训练样本的所有数据作为参考 l l ,即用与训练样本数据的相似度来刻画出我们所要寻找的非线性分界曲线
  采用核函数的非线性svm的代价函数表达式如下:

minθCi=1m[y(i)cost1(θTf(i))+(1y(i))cost0(θTf(i))]+12i=1nθ2j min θ C ∑ i = 1 m [ y ( i ) c o s t 1 ( θ T f ( i ) ) + ( 1 − y ( i ) ) c o s t 0 ( θ T f ( i ) ) ] + 1 2 ∑ i = 1 n θ j 2
其中, f(i)j=fguass(x(i),x(j)) f j ( i ) = f g u a s s ( x ( i ) , x ( j ) )

你可能感兴趣的:(机器学习)