标签:
本博客仅为作者记录笔记之用,不免有很多细节不对之处。
还望各位看官能够见谅,欢迎批评指正。
博客虽水,然亦博主之苦劳也。
如需转载,请附上本文链接,不甚感激!
http://blog.csdn.net/cyh_24/article/details/50359055
写这篇博客的动力是源于看到了下面这篇微博:
我在看到这篇微博的时候大为触动,因为,如果是rickjin来面试我,我想我会死的很惨,因为他问的问题我基本都回答不上来。所以,痛定思痛,我决定今后对一些算法的理解不能只是停留在表面,而应该至少往前推一步,尝试看得更远一些。
对于学习机器学习的人来说,Logistic Regression可以说是一个入门的算法,算法本身不复杂,不过也正是因为这个原因,很多人往往忽略了这个算法的一些内在精髓。
这篇博客里,我打算就rickjin问的一些问题,进行总结:
1. LR原理
2. LR的求解数学推导
3. LR的正则化
4. 为什么LR能比线性回归好?
5. LR与MaxEnt的关系
6. 并行化的LR
虽然逻辑回归 姓 回归,不过其实它的真实身份是二分类器。介绍完了姓,我们来介绍一下它的名字,逻辑斯蒂。这个名字来源于逻辑斯蒂分布:
设X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列的分布函数和密度函数:
有没有发现
有没有发现右边很熟悉?没错,就是sigmoid 曲线,只不过,这个曲线是以点(
之前说到,逻辑回归是一种二分类模型,由条件概率分布
也就是说,输出
Y=1 的对数几率是由输入x 的线性函数表示的模型,这就是 逻辑回归模型。当w?x 的值越接近正无穷,P(Y=1|x) 概率值也就越接近1.
模型的数学形式确定后,剩下就是如何去求解模型中的参数。在统计学中,常常使用极大似然估计法来求解,即找到一组参数,使得在这组参数下,我们的数据的似然度(概率)最大。
设:
似然函数:
对数似然函数:
现在要求
在机器学习领域,我们更经常遇到的是损失函数的概念,其衡量的是模型预测错误的程度。常用的损失函数有0-1损失,log损失,hinge损失等。通常是最小化损失函数,这里为啥求极大似然估计?
实际上,对数似然损失在单个数据点上的定义为:
如果取整个数据集上的平均对数似然损失,我们恰好可以得到:
即在逻辑回归模型中,我们最大化似然函数和最小化对数似然损失函数实际上是等价的。
接下来就是对
[先跑个题],讲到求极值的方法,突然想到有几个可视化的gif图,能够很直观地体现各种算法的优劣,好东西当然要分享了。
Imgur 网友通过可视化方法,对比了SGD, momentum, Nesterov, AdaGrad, AdaDelta,
RMSProp等优化算法在Long Valley, Beale’s Function及Saddle Point情况下的性质。
Long Valley:
Beale’s Function:
Saddle Point:
以后会专门写一篇来讲求极值的方法,这是题外话了,我们还是继续回归逻辑吧,哈哈。
下面介绍使用梯度下降法来求解逻辑回归问题。
算法(梯度下降法求解逻辑回归)
输入:目标函数:
输出:
过程:
(1) 取初始值
(2) 计算
(3) 计算梯度
若
否则,令
(4) 令
当
(5) 否则,令
当模型的参数过多时,很容易遇到过拟合的问题。而正则化是结构风险最小化的一种实现方式,通过在经验风险上加一个正则化项,来惩罚过大的参数来防止过拟合。
正则化是符合奥卡姆剃刀(Occam’s razor)原理的:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单的才是最好的模型。
我们来看一下underfitting,fitting跟overfitting的情况:
显然,最右这张图overfitting了,原因可能是能影响结果的参数太多了。典型的做法在优化目标中加入正则项,通过惩罚过大的参数来防止过拟合:
p=1或者2,表示
L1 范数:是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。那么,参数稀疏 有什么好处呢?
一个关键原因在于它能实现 特征的自动选择。一般来说,大部分特征
L2 范数:它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减”(weight decay)。
它的强大之处就是它能 解决过拟合 问题。我们让
为了更直观看出两者的区别,我再放一张图:
为了简单,上图只考虑了
一句话总结就是:
L1 会趋向于产生少量的特征,而其他的特征都是0,而L2 会选择更多的特征,这些特征都会接近于0。
虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。然而,正是这个简单的逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星。
下面我们来谈谈逻辑回归与线性回归的异同点吧。
假设随Tumor Size变化,预测病人的肿瘤是恶性(malignant)还是良性(benign)的情况。给出8个数据如下(阈值为0.5):
![此处输入图片的描述][10]
图1.a中,粉色线是预测模型,可以看出,模型能够完全把结果预测对了,但是图1.b中蓝色线却预测的很差。
这主要是由于线性回归在整个实数域内敏感度一致,而分类范围,需要在[0,1]之内。而逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,其回归方程与回归曲线如下图所示。逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。
逻辑回归跟最大熵模型到底有啥区别呢?
简单粗暴 的回答是:逻辑回归跟最大熵模型没有本质区别。逻辑回归是最大熵对应类别为二类时的特殊情况,也就是当逻辑回归类别扩展到多类别时,就是最大熵模型。
下面来详细地介绍一下:
在进行下面推导之前,先上几个数学符号定义:
π(x)u 表示,输入时x , 输出的y=u 的概率;A(u,v) 是一个指示函数,若u=v ,则A(u,v)=1 ;否则A(u,v)=0 - 我们的目标,就是从训练数据中,学习得到一个模型,使得
π(x)u 最大化,也就是输入x ,预测结果是y 的概率最大,也就是使得π(x)y 最大;
标准的逻辑回归是二类模型,有:
我们用一个更加泛化的形式来表达
回到我们的目标:令
对
令偏导等于0,可以得到:
使用
想要证明逻辑回归跟最大熵模型是等价的,那么,只要能够证明它们的
利用信息论的只是,我们可以得到
现在,我们有了目标:
对
令偏导=0,得到:
因为有约束条件:
因此,可以得到
把
有没有发现这就是逻辑回归中,提到的那个泛化的式子,这就证明了逻辑回归是最大熵模型的一个特殊例子(k=2)!
到此,逻辑回归与最大熵模型的关系就解释完毕了,总结一下:
逻辑回归跟最大熵模型没有本质区别。逻辑回归是最大熵对应类别为二类时的特殊情况
指数簇分布的最大熵等价于其指数形式的最大似然。
二项式分布的最大熵解等价于二项式指数形式(sigmoid)的最大似然;
多项式分布的最大熵等价于多项式分布指数形式(softmax)的最大似然。
假设分布求解最大熵,引入拉格朗日函数,求偏导数等于0,直接求出的就是sigmoid函数形式。还有很多指数簇分布都有对应的最大似然解。而单个指数簇分布往往表达能力有限,这就需要引入了多个指数簇分布的混合模型,比如高斯混合,从而引出EM算法。
Logistic Regression的理论部分讲的差不多了,下一篇文章将介绍Logistic Regression的并行化 工程问题。敬请期待…
Please feel free to contact me if you have any questions.
[1]. 李航,《统计学习方法》
[2]. John Mount. *"The equivalence of logistic regression and maximum entropy models"*
[3]. http://tech.meituan.com/intro_to_logistic_regression.html
[4]. http://blog.csdn.net/zouxy09/article/details/24971995
[5]. http://www.tuicool.com/articles/auQFju
Logistic Regression 的前世今生(理论篇)
标签:
原文地址:http://blog.csdn.net/cyh_24/article/details/50359055