遇到问的机器学习基本问题(2)


1. logistic回归

手动求导

遇到问的机器学习基本问题(2)

2. SVM支持向量机


最佳分割超平面

现在假设有两类线性可分的样本,一类圈圈,一类叉叉。分类问题就是要找一个超平面,将这两类分开,但是能分割开这两类的超平面有很多,如下面的图所示。感知机算法就是随机的找到一个能够分开的超平面,它并不关心这个超平面如何。下面三个图中,直觉上感觉,第三个超平面是最理想的。 
遇到问的机器学习基本问题(2) 
那么为什么第三个超平面是最理想的呢?原因是测试集上的样本是我们观测得到的数据,而观测到的数据和它真实分布是有一定的误差的,下面三个图中灰色的圆圈表示了每个平面能够容忍误差的大小,当误差超过这个圆圈的范围,分割面就要犯错误了,所以第三个图的容忍误差的能力是最强的。这是从直观上的一个解释,下面推导SVM的过程中会解释为什么这个是最佳的分割面。

遇到问的机器学习基本问题(2) 
这样,能容忍误差的能力最大的那个超平面是我们要的,定义margin为,由分割平面开始往两边推,到碰到样本点时候的距离。如下面的图所示,黄色部分即为margin。 
遇到问的机器学习基本问题(2)

以下是几种常用的核函数表示:

线性核(Linear Kernel)

遇到问的机器学习基本问题(2)

多项式核(Polynomial Kernel)

遇到问的机器学习基本问题(2)

径向基核函数(Radial Basis Function)

遇到问的机器学习基本问题(2)

也叫高斯核(Gaussian Kernel),因为可以看成如下核函数的领一个种形式:

遇到问的机器学习基本问题(2)

3.LR和SVM的异同

相同点:
1,LR和SVM都是分类算法。
2,如果不考虑核函数,LR和SVM都是线性分类算法,即分类决策面都是线性的。
3,LR和SVM都是监督学习算法。

不同点:

1,本质上是其loss function不同。
2,支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)。
线性SVM不直接依赖于数据分布,分类平面不受一类点影响;LR则受所有数据点的影响,如果数据不同类别strongly unbalance,一般需要先对数据做balancing。
3,在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
这个问题理解起来非常简单。分类模型的结果就是计算决策面,模型训练的过程就是决策面的计算过程。通过上面的第二点不同点可以了解,在计算决策面时,SVM算法里只有少数几个代表支持向量的样本参与了计算,也就是只有少数几个样本需要参与核计算(即kernal machine解的系数是稀疏的)。然而,LR算法里,每个样本点都必须参与决策面的计算过程,也就是说,假设我们在LR里也运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。所以,在具体应用时,LR很少运用核函数机制。
4,线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受其影响。
5,SVM的损失函数就自带正则!!!(损失函数中的1/2||w||^2项),这就是为什么SVM是结构风险最小化算法的原因!!!而LR必须另外在损失函数上添加正则项!!!