Coursera-支持向量机

251 阅读5分钟

逻辑回归的假设函数是输出概率,而支持向量机的假设函数直接输出 0 或 1

给定样本点(xi,yi),超平面(w,b),超平面关于该样本点的函数间隔即为yi = (w⋅xi+b),定义超平面关于整个数据集T的超平面的函数间隔为为超平面关于所有样本点的函数间隔最小值。函数间隔能有效表示分类预测的正确性及确信度。 但是,对于一个超平面(w,x)来说,通过缩放变换(成倍的放大缩小w,b),超平面并没有改变,但是函数间隔却改变了。所以可以通过对超平面的法向量w加以约束,如规范化令||w||=1,这样间隔就是确定的,这时候的函数间隔即为几何间隔,即为点(xi,yi)到超平面(w,b)的距离


吴恩达思路:

大间隔分类器背后的原理:

介绍了矩阵内积的原理

u^Tv = p||u|| 其中u为范数norm,p为v在u上的投影长度。最后的结果是一个标量。 其中 u^Tv = p||u|| = v^Tu

如果u和v的夹角大于90度时,p就会是一个负值。

优化目标函数的原理

SVM的目标函数为 min\frac{1}{2}\sum^n_{j=1}{θ_j^2},其中θ为w和b的矩阵。

假设θ_0为0,即b=0,n=2,即有2个w,那么可以推导。

min\frac{1}{2}\sum^n_{j=1}{θ_j^2} = min\frac{1}{2}{θ_1^2+θ_2^2} = min\frac{1}{2}\sqrt{θ_1^2+θ_2^2}^2 = min\frac{1}{2}||θ||^2

结合之前的矩阵内积的几何意义,约束条件中的 θ^Tx = ||θ||*p

所以目标函数优化问题转化为了:

由于θ与θ^Tx成90°,任意样本点所构成的向量到θ的投影为p,如图所示

上图是没有最大化间隔的超平面,可以看到p值很小,如果p||θ||>=1,那么θ就会很大,但是min\frac{1}{2}\sum^n_{j=1}{θ_j^2}中需要我们最小化θ,这两个方向就会出现矛盾。

但是这样的超平面,p就很大,所以θ就会相对变小,符合优化函数的方向。所以SVM本质上最大化所有点的p距离,然后最小化θ的范数。

核函数

非线性决策边界

如果有这样一个数据集,通常我会门通过多项式来拟合这样的曲线。

但是可惜这样的做法非常消耗计算量,而且你并不清楚哪些哪些高阶项是我们不需要的。

核函数

核函数也叫高斯核函数。

假设我们先选出3个标记为l^{(1)},l^{(2)},l^{(3)}, 那么得到3个新的feature记录为f_1,f_2,f_3

f代表数据与标记位的相似度。其中相似度函数就是核函数。

所以如果x与标记位很近,那么||x-l||的值就接近与0,所以f1接近与1.

如果x与标记位很远,那么||x-l||的值就很大,所以f1就接近与0.

上图展示了高斯核函数中σ的作用。 解释完核函数的作用,现在代入假设函数中,假设函数为 θ_0+θ_1f_1+θ_2f_2 >= 0 如果预测值为1。 假设我们已经得出θ的值,θ_0=-0.5,θ_1=1,θ_2=1,θ_3=0

我们就会得到如下得到决策边界

显然靠近l1或l2才会得到决策边界。所以核函数可以来拟合非常复杂的非线性特征,且其特征f具有可解释性。

如何选择标记位

事实上我们可以将我们得到训练数据都作为标记位,

然后我们可以通过以下的损失函数来

其中 θ^Txθ^Tf代替,还要正则函数在SVM中也会略有不同。

\frac{1}{2}\sum^{j=1}_{n}θ_j^2 = \frac{1}{2}\sum^{j=1}_{n}θ^TMθ 其中M矩阵依赖你所使用的核函数类型。可以说最小化了一种新的度量,即M||θ||。这种技巧可以使SVM运用在更大的数据集上,背后的数学原理Andrew Ng没有解释

第二问题:为什么不把这种核函数的技巧运用于逻辑回归等其他算法。虽然我们可以这么做,但是使用SVM的优化技巧并不能用于其他算法,诸如θ^TMθ这种技巧只对SVM有用,但对于逻辑回归就会显得特别慢。

\sum_{i=1}^5a_iZ_i + a_6 = 0


西瓜书思路:


其他:

选择逻辑回归模型还是支持向量机模型?

n为特征数, m为训练样本数。 (1)如果相较于m而言, n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。 (2)如果n较小,而且m大小中等,例如n在 1-1000 之间,而m在 10-10000 之间,使用高斯核函数的支持向量机。 (3)如果n较小,而m较大,例如n在 1-1000 之间,而m大于 50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。 值得一提的是,神经网络在以上三种情况下都可能会有较好的表现,但是训练神经网络可能非常慢,选择支持向量机的原因主要在于它的代价函数是凸函数,不存在局部最小值。

逻辑回归和不带核函数的支持向量机

逻辑回归和不带核函数的支持向量机它们都是非常相似的算法,不管是逻辑回归还是不带核函数的 SVM,通常都会做相似的事情,并给出相似的结果。但是根据你实现的情况,其中一个可能会比另一个更加有效。 在其中一个算法应用的地方,另一个也很有可能很有效。但是随着 SVM 的复杂度增加,当你使用不同的内核函数来学习复杂的非线性函数时,样本数量可能是 5 万(50,000),你的特征变量的数量会相当大。这是一个非常常见的体系,也许在这个体系里,不带核函数的支持向量机就会表现得相当突出,而逻辑回归则不容易实现目的。