逻辑回归的假设函数是输出概率,而支持向量机的假设函数直接输出 0 或 1
给定样本点,超平面
,超平面关于该样本点的函数间隔即为
,定义超平面关于整个数据集T的超平面的函数间隔为为超平面关于所有样本点的函数间隔最小值。函数间隔能有效表示分类预测的正确性及确信度。
但是,对于一个超平面
来说,通过缩放变换(成倍的放大缩小w,b),超平面并没有改变,但是函数间隔却改变了。所以可以通过对超平面的法向量w加以约束,如规范化令
=1,这样间隔就是确定的,这时候的函数间隔即为几何间隔,即为点
到超平面
的距离
吴恩达思路:
大间隔分类器背后的原理:
介绍了矩阵内积的原理
其中u为范数norm,p为v在u上的投影长度。最后的结果是一个标量。
其中
如果u和v的夹角大于90度时,p就会是一个负值。
优化目标函数的原理
SVM的目标函数为 ,其中θ为w和b的矩阵。
假设为0,即b=0,n=2,即有2个w,那么可以推导。
结合之前的矩阵内积的几何意义,约束条件中的
所以目标函数优化问题转化为了:
由于θ与成90°,任意样本点所构成的向量到θ的投影为p,如图所示
上图是没有最大化间隔的超平面,可以看到p值很小,如果,那么θ就会很大,但是
中需要我们最小化θ,这两个方向就会出现矛盾。
但是这样的超平面,p就很大,所以θ就会相对变小,符合优化函数的方向。所以SVM本质上最大化所有点的p距离,然后最小化θ的范数。
核函数
非线性决策边界
如果有这样一个数据集,通常我会门通过多项式来拟合这样的曲线。
但是可惜这样的做法非常消耗计算量,而且你并不清楚哪些哪些高阶项是我们不需要的。
核函数
核函数也叫高斯核函数。
假设我们先选出3个标记为, 那么得到3个新的feature记录为
f代表数据与标记位的相似度。其中相似度函数就是核函数。
所以如果x与标记位很近,那么的值就接近与0,所以f1接近与1.
如果x与标记位很远,那么的值就很大,所以f1就接近与0.
上图展示了高斯核函数中σ的作用。
解释完核函数的作用,现在代入假设函数中,假设函数为 如果预测值为1。
假设我们已经得出
的值,
我们就会得到如下得到决策边界
显然靠近l1或l2才会得到决策边界。所以核函数可以来拟合非常复杂的非线性特征,且其特征f具有可解释性。
如何选择标记位
事实上我们可以将我们得到训练数据都作为标记位,
然后我们可以通过以下的损失函数来
其中 被
代替,还要正则函数在SVM中也会略有不同。
其中M矩阵依赖你所使用的核函数类型。可以说最小化了一种新的度量,即
。这种技巧可以使SVM运用在更大的数据集上,背后的数学原理Andrew Ng没有解释。
第二问题:为什么不把这种核函数的技巧运用于逻辑回归等其他算法。虽然我们可以这么做,但是使用SVM的优化技巧并不能用于其他算法,诸如这种技巧只对SVM有用,但对于逻辑回归就会显得特别慢。
西瓜书思路:
其他:
选择逻辑回归模型还是支持向量机模型?
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),你的特征变量的数量会相当大。这是一个非常常见的体系,也许在这个体系里,不带核函数的支持向量机就会表现得相当突出,而逻辑回归则不容易实现目的。