LogisticRegression & Maxent(面试准备
1、手推LogisticRegression(损失函数)
二项逻辑斯蒂回归模型是如下条件概率分布:
这里的包含偏置项,即为,其对应的。
由此可得:
即:
也就是说,的对数几率由输入的线性函数表示的模型称为逻辑斯蒂回归模型。
接下来应用极大似然估计法估计模型参数:
设:
似然函数为:
对数似然函数为:
直接对求导是无法得到解析解的,因此采用梯度下降法或者拟牛顿法等方法优化。
这里我们可以求解对各的梯度,为了推导简便,我们写出 sigmoid 函数:
从而:
有一个很好的性质:
从而可以写作:
接下来求对各的梯度:
2、逻辑斯蒂回归在多分类时的情形
对于分类:
3、逻辑斯蒂回归为什么采用 sigmoid 函数?
-
sigmoid 函数可以很方便的将的结果映射到区间上,从而代表分类概率的大小。
-
sigmoid 函数在 0 附近斜率较大,而在远离 0 处的斜率较小,这体现了模型对不同样本点的敏感性的大小,即对于远离分类边界的点敏感性较小,对于分类边界附近的点敏感性较大。这有利于模型重点关注较难分类的样本,从而取得较好的分类效果。
-
sigmoid 函数的选择也可以从最大熵模型推导得出。
4、最大熵模型与逻辑斯蒂回归模型的关系
逻辑斯蒂回归模型可以视作最大熵模型的一个特例。
假设分类模型是一个条件概率分布,给定训练数据集,可以确定联合分布的经验分布和边缘分布的经验分布。
其中表示训练数据集中样本的频数,表示训练数据集中输入出现的频数,为样本容量。
用特征函数描述输入和输出之间的某个事实,定义为:
特征函数关于经验分布的期望值为:
特征函数关于模型与经验分布的期望值为:
若模型能够获取训练数据中的信息,则可假设这两个期望相等(注意是我们的模型学得的结果):
将上式作为模型的约束条件,设所有满足约束的模型集合为:
定义在条件概率分布上的条件熵为:
则最大熵模型的学习变为求解约束最优化问题:
改写为等价的最小化问题:
引入拉格朗日乘子,构造拉格朗日函数:
原问题等价于:
对偶问题为:
求对对偏导数:
解得:
由得:
之后,求解对偶问题外层的极大化问题,即把上式带入后再求解最优的使得最大。
不难看出,这里的的形式和 Logistic Regression 很像。
实际上,若取特征函数:
则:
这就得到了逻辑斯蒂回归。
5、LR 与 SVM 的区别与联系
相同点:
-
LR 和 SVM 都是分类算法
-
如果不考虑核函数,LR 和 SVM 都是线性分类算法,即分类决策面都是线性的
-
LR 和 SVM 都是有监督学习算法
-
LR 和 SVM 都是判别模型
不同点:
- 损失函数的不同。LR 采用的是对数损失函数,SVM 采用的是合页损失函数。而前者比后者发散更快,因此相比 SVM,LR 对异常值更加敏感。
-
分类原理的不同。LR 基于概率模型,通过极大似然估计的方法估计出参数的值,而 SVM 基于几何间隔最大化原理。所以 SVM 会找到唯一的最优解,而 LR 没有这个特性。
-
对于线性不可分的复杂情形,SVM 可以利用核函数将线性不可分的低维数据映射为线性可分的高维数据;而 LR 很少用到核函数(LR 是可以使用核函数的,接下来会进行说明),因为 LR 模型中每个样本点都必须参与核函数的计算,计算复杂度很高。所以在具体应用中,LR 很少运用核函数机制,遇到线性不可分的情形多使用 SVM 解决。
这里简要说下 Kernel Logistic Regression(KLR):
为了说明 LR 可以使用核函数,先证明如下定理:
- 对于任意带 L2 正则化的线性模型都可以使用 Kernel Trick。
具体说来,对如下模型:
最优解一定可以表示成,从而使得中出现内积的形式,可以使用 Kernel Trick 简化计算。
证明:设,其中,且。若,则:
且:
则是比更好的解,矛盾。因此,即,即可由的线性组合表示。证毕。
应用此定理可知,带 L2 正则项的 LR 模型可以应用 Kernel Trick,得到的模型 KLR 具有处理非线性可分数据的能力,且一定程度上可以防止过拟合(因为包含正则项)。
-
SVM 输出分类结果 0 或 1,而 LR 输出介于 0 和 1 之间的表示分类概率的数值,这在某些应用场景下是非常有用的,比如医疗诊断这样后果较为严重的场合,或者我们对数据质量并不是十分有信心的时候,LR 可以告诉我们在多大程度上可以相信模型产生的分类结果。
-
SVM 的结果只受边界附近少数几个样本点的影响,LR 的结果则受所有样本点的影响。两者没有绝对的优劣之分,具体使用结合应用场景。
Reference
https://blog.csdn.net/cuiy0818/article/details/81288701
https://medium.com/@george.drakos62/support-vector-machine-vs-logistic-regression-94cc2975433f