吴恩达机器学习7
一、SVM直观理解1. SVM引入逻辑回归2. 大边界分类器SVM3. SVM原理二、核函数1. 核函数原理和概念2. SVM和核函数结合的计算步骤三、使用SVM一、SVM直观理解
1. SVM引入逻辑回归
与逻辑回归和神经网络 相比,支持向量机,或者简称 SVM,在学习复杂的 非线性方程 时提供了一种更为清晰,更加强大的方式。它也是我们所介绍的最后一个监督学习算法。
如我们之前的学习算法,我们从优化目标开始。为了描述支持向量机,将会从逻辑回归开始展示我们如何一点一点修改来得到本质上的支持向量机。
其CostFunction为:
在SVM中对costfunction进行改变:
将其中log函数部分换成了蓝色折线所代表的cost函数。
2. 大边界分类器SVM
SVM是一种“宽边界”分类器(Large Margin Intuition)。
如图,SVM希望找到“最中间”的那条分界线(最宽边界)来分割两类。我们一步步来看:
首先观察SVM代价函数的图像:
和逻辑回归相比较:
IF y=1, we want θTx≥1 (not just ≥0)IF y=0, we want θTx≤−1 (not just ≤0)
同时,当C非常大时,我们希望蓝色的这部分为0
最小化问题便转变成:
3. SVM原理
通过上一节简化问题,我们知道SVM要求的最小值为||θ||的最小值,即θ的范数最小值。模型如下:
下面看一下限制条件代表的含义,通过高中数学,我们知道两个向量相乘(内积)的几何含义如下 :(向量A在另一条向量B上的映射×向量B的模)
通过上面可知,我们要求||θ||的最小值,因此我们希望p(i)(x在θ上的映射)尽量大。只有这样才能使上面说的约束条件S.T满足。也就是SVM转变为了找到那个x在θ上的最大映射。
例子如下(θ为分界的法线(垂直)):
假如选择了下面图中的绿色线作为边界,我们会发现p(i)比较小,这样不能得出||θ||的最小值
如果选择下面的绿色线作为边界,我们可以得较长的映射p、和较小的||θ||值。
总结: SVM 要找到最中间的边界。所以要找到最长的映射p。进而可以找到所求参数θ的最小值。
二、核函数
1. 核函数原理和概念
在这里我们通过引入核函数来解决这个问题。
假设函数hθ(x)=θ0+θ1f1+θ2f2+θ3f3+⋯hθ(x)=θ0+θ1f1+θ2f2+θ3f3+⋯(用f代替x的参数)这个函数为新的假设函数。
引入:如果我们给出几个向量l(i)作为landmarks
这样就表示了样本x的一种高维映射,里标记点越近值越高。
最后,我们需要研究δ对核函数的影响,通过图片看出,δ越大收敛慢,δ越小收敛快。
2. SVM和核函数结合的计算步骤
上一节中的标记点,我们是随机选取的,但是这样不科学。
那么,关于landmarks我们应该怎么选取呢?
1 一种比较好的方法,是将训练集中的正样本选取为标记点,如图:
这样定义好l后,再定义每一个映射F。此时,对于每一个训练集中的数据,我们都有一个m+1维向量与之对应。每给定一个样本x,计算他与所有l的映射f:
预测样本点的归属类,在预测时,使用以下计算公式:
这个函数等价于:hθ(x)=θ0+θ1f1+θ2f2+θ3f3+⋯hθ(x)=θ0+θ1f1+θ2f2+θ3f3+⋯
以上就是已知参数θ时 ,怎么做出预测的过程。那么 怎样得到参数θ呢?
方法具体来说就是要求解这个最小化问题, 你需要求出能使这个式子取最小值的参数θ。
J(θ)=C∑mi=1[y(i)Cost1(θTf(i))+(1−y(i))Cost0(θTf(i))]+12∑mj=1θ2j下面总结一些SVM中的参数对模型的影响,主要是两个方面:C和δ。 C 大C:低偏差,高方差(对应低λ,overfitting)因为C约等于λ的倒数。小C:高偏差,低方差(对应高λ) δ 大δ2:fi分布更平滑,高偏差,低方差小δ2:fi分布更集中,低偏差,高方差 (overfitting)
三、使用SVM
在实际工作中,我们往往使用已有的工具包中所包含的SVM。在使用时,我们需要注意其中的参数选定
选择一个合适的C:
大C:低偏差,高方差(对应低λ,overfitting)因为C约等于λ的倒数。小C:高偏差,低方差(对应高λ)
选择一个合适的核函数:
linear kernel(No kernel)高斯核
什么时候选择SVM或逻辑回归?
特征维度n很大:使用逻辑回归和线性SVM.特征维度n小,样本数量m中等:使用高斯核SVM。特征维度n小,且样本数量m巨大:可以创建新的特征,然后使用逻辑回归和无核SVM