吴恩达机器学习Coursera-week7
作者:互联网
Large Margin Classification
Optimization Objective
此小节主要讲了SVM的cost function是怎么来的。SVM(Support Vector Machine)是一种类似于Logistic Regression的分类算法。Andrew通过Logistic Regression的cost function来引申出了SVM的cost function,如下图:
![3959253-bf07d69a524b9f9d.jpg](https://upload-images.jianshu.io/upload_images/3959253-bf07d69a524b9f9d.jpg)
图中,我们用红色曲线来近似地替代Logistic Regression的cost function曲线。当y=1时,我们的cost function记做cost1(z);当y=0时,记做cost0(z)。(注意:z=θTx)
然后我们将这个新的cost function替换原来的cost function,并进行一些转换,具体如下图:
![3959253-42a0ccc236c05a34.jpg](https://upload-images.jianshu.io/upload_images/3959253-42a0ccc236c05a34.jpg)
- 首先用cost0(θTx)和cost1(θTx)替换原先的cost function
- 其次,去掉1/m,因为这个乘数不影响最终θ的值
- 用C来代替λ,相当于各项都乘以1/λ
另外,在优化这个cost function的时候,我们会使得中括号中的项为0(根据我们的cost function的图形可以看出,优化成功的结果就是使得cost(z)为0),所以我们优化的目标就转化为如下公式
1.3-optimize objective
图中红框圈出的就是我们的优化目标,其中红色箭头指向的是限定条件
Large Margin Intuition
这节主要讲了直觉上large margin是怎么回事,主要是decision bounary两边会有margin,如下图:
![3959253-e1b2fe6c82e9876a.jpg](https://upload-images.jianshu.io/upload_images/3959253-e1b2fe6c82e9876a.jpg)
Mathematics behind large margin classification
此小节主要讲了SVM背后的数学原理。
首先,讲了向量内积(vector inner product)的知识,假设我们有两个向量u和v, 那么它们的inner product就是uTv,从这里也可以看出向量内积是一个实数,我们可以通过如下方式计算向量内积:
![3959253-0fedcec1c2fd9128.jpg](https://upload-images.jianshu.io/upload_images/3959253-0fedcec1c2fd9128.jpg)
uTv = P · ||u|| = u1v1 + u2v2
其中P是向量v在向量u上投影的长度, ||u||是向量u的长度,这里需要注意P是一个有符号数,当其夹角>90° 且<270°时,P为负。
然后,结合图1.3我们的优化目标,可以看出要想满足我们的优化条件就会使得decision boundary有较大的margin,如下图推导过程:
![3959253-55eb79a980050aa0.jpg](https://upload-images.jianshu.io/upload_images/3959253-55eb79a980050aa0.jpg)
上图中有些错误:首先第二个限定条件应该是y(i)=0; 另外,右下角图应该是满足条件P(i)||θ|| >= 1
从图中可以看出为了满足我们的优化目标,即θ的长度越小越好,还要符合限定条件,那么结论就是p越大越好,即当y=1时,p长度越大,||θ||就可以使用相对较小的值来满足p(i)·||θ|| >= 1, 这样就会使得1/2 ||θ||2越小;同样道理y=0也是希望p的长度越大越好。
这里有个问题,就是为啥θ向量一定是垂直于decision boundary的?另外,如果不是线性可分的,那么如何使得其限定条件能满足呢?比如在y(i)=1的情况下,如果p(i)<0,这种情况就无法满足p(i)·||θ|| >=1
第二个问题在接下来的Kernels章节得到了回答,即如果是非线性可分的情况下,我们需要引入polynomial function来使得decision bounary变为曲线的,而在接下来的章节,我们会发现,最终使用的是新引入的feature,而非直接将原有的feature相乘。具体参考后面的章节。
Kernels
Kernels I
首先,Andrew引入了一个非线性问题的示例,使用之前Linear Regression的知识,我们可以想象出需要引入polynomial function来解决此类问题。实际上我们可以理解为引入了新的Feature(比如将x1*x2作为一个新的feature f1),但是,实际上我们是否有更好的引入新的feature的方法呢?原因之一就是使用polynomial方法的计算量会非常大,而且这个变量本身的含义也不是很清楚,因此这就是我们接下来要引入kernel的原因。下图展示了如何引入新的feature:
![3959253-4957094bd3881e61.jpg](https://upload-images.jianshu.io/upload_images/3959253-4957094bd3881e61.jpg)
图中我们选取了三个点,分别记做l(1),l(2),l(3),这三个点我们称之为landmarks
-
新的feature记做f1,f2,f3, 实际上是与x的相似度,所以我们使用similarity(x, l)来表示,空间中两个点的相似度我们改如何表示和计算呢?这里我们使用了所谓的高斯核(Gaussian Kernels),这个函数中其中一部分就是使用欧几里得距离来表示两点之间的距离(某种程度上就是近似度),如下图所示:
4.2-欧几里得距离
-
exp表示e的多少次方,其中A为(0,1)点,其图形如下:
4.3-以e为底的指数函数
由上图我们可得出如下的结论:
![3959253-c2d8921156d61ee4.jpg](https://upload-images.jianshu.io/upload_images/3959253-c2d8921156d61ee4.jpg)
即如果两点距离很大,那么这个新的feature f就会接近于0,如果距离很小,f就会接近于1,而
标签:function,kernel,吴恩达,SVM,Coursera,feature,cost,我们,week7 来源: https://blog.csdn.net/weixin_33691598/article/details/87229790