虽然逻辑回归姓 回归,不过其实它的真实身份是二分类器。介绍完了姓,咱们来介绍一下它的名字,逻辑斯蒂。这个名字来源于逻辑斯蒂分布:git
设X是连续随机变量,X服从逻辑斯蒂分布是指X具备下列的分布函数和密度函数: 算法
上式中,μ 表示位置参数,γ>0 为形状参数。机器学习
有没有发现F(x)是啥?有图你就知道真相了:函数
有没有发现右边很熟悉?没错,就是sigmoid 曲线,这个曲线是以点( μ, 0.5) 为中心对称。从图中能够看出,曲线在中心附近增加速度较快,而形状参数 γ 值越小,曲线在中心附近增加越快,请自行脑补一下。学习
sigmoid曲线有几个特性:优化
1.x趋向正无穷时F(x)趋近于1atom
2.x趋向负无穷时F(x)趋近于0spa
3.x在0处为0.5blog
它的这些特性,决定它很是适合用于看成基于几率的二项分类函数。相似的还有正态分布的分布函数,和它很是相似,若是选用正态分布,则是贝叶斯逻辑回归(Bayesian logistic regression)。事件
逻辑斯谛回归的采用的是最大似然估计的思想。对于给定的训练数据集T = {(x1, y1),(x2, y2),......(xn, yn)},咱们找到它的似然函数(即它发生的几率),若是能使似然函数取得最大值,那么就是让这个样本发生的几率最大(这个几率是个联合几率)。
咱们看一下逻辑回归的似然函数。
L(w)取得极大值,则须要yi为1时,P(Y = 1 | x)尽可能的大,yi为0时,P(Y = 1 | x)尽可能的小。
咱们的几率函数P(Y = 1 | x)为
P (Y = 1 | x) 为sigmod函数(等价形式),为了使yi为1时,P(Y = 1 | x)尽可能的大,yi为0时,P(Y = 1 | x)尽可能的小。咱们须要调整w⋅x,使得yi 为1时,w⋅x尽可能取比较大的值,位于原点右侧较远的地方,yi为0时,w⋅x尽可能位于原点左侧较远的地方,即它发生的几率尽可能小。换句话说,咱们调整w⋅x使得yi为1尽可能发生,为0尽可能不要发生。这个时候似然函数取得最大值
借用andrew ng老师的图
咱们要找到w⋅x = 0 这条曲线,使得样本x尽可能被分红两部分,一类发生的几率尽可能大,另外一类几率尽可能小。样本点与w⋅x = 0 的距离,即偏差,服从逻辑斯谛分布。
一个事件的概率(odds):指该事件发生与不发生的几率比值,若事件发生几率为p,那么事件发生的概率就是
那么该事件的对数概率(log odds或者logit)就是:
那么,对逻辑回归而言,Y=1的对数概率就是:
也就是说,输出Y=1的对数概率是由输入x的线性函数表示的模型,这就是 逻辑回归模型。当 w⋅x的值越接近正无穷,P(Y=1|x) 几率值也就越接近1.
模型的数学形式肯定后,剩下就是如何去求解模型中的参数。在统计学中,经常使用极大似然估计法来求解,即找到一组参数,使得在这组参数下,咱们的数据的似然度(几率)最大。
设:
似然函数:
对数似然函数:
如今要求 w 使得L(w) 最大,有的人可能会有疑问:
在机器学习领域,咱们更常常遇到的是损失函数的概念,其衡量的是模型预测错误的程度。经常使用的损失函数有0-1损失,log损失,hinge损失等。一般是最小化损失函数,这里为啥求极大似然估计?
实际上,对数似然损失在单个数据点上的定义为:
若是取整个数据集上的平均对数似然损失,咱们刚好能够获得:
即在逻辑回归模型中,咱们最大化似然函数和最小化对数似然损失函数其实是等价的。
接下来就是对L(w)求极大值(也可认为是求J(w)的最小值),获得w的估计值。逻辑回归学习中一般采用的方法是梯度降低法 和 牛顿法。
[先跑个题],讲到求极值的方法,忽然想到有几个可视化的gif图,可以很直观地体现各类算法的优劣,好东西固然要分享了。
Imgur 网友经过可视化方法,对比了SGD, momentum, Nesterov, AdaGrad, AdaDelta,
RMSProp等优化算法在Long Valley, Beale’s Function及Saddle Point状况下的性质。
Long Valley:
Beale’s Function:
Saddle Point:
之后会专门写一篇来说求极值的方法,这是题外话了,咱们仍是继续回归逻辑吧,哈哈。
下面介绍使用梯度降低法来求解逻辑回归问题。
算法(梯度降低法求解逻辑回归)
输入:目标函数:J(w)(对数似然损失函数),梯度函数: g(w)=∇J(w), 计算精度ϵ
输出:J(w) 的极小值点 w∗
过程:
(1) 取初始值 w0∈Rn, 令k=0
(2) 计算J(wk)
(3) 计算梯度 gk=g(wk)=∇J(w)
若||gk||<ϵ ,中止迭代,令
不然,令pk=−g(wk),求λk,使得
(4) 令wk+1=wk+λkpk,计算 J(wk+1)
当||J(wk+1)−J(wk)||<ϵ 或 ||wk+1−wk||<ϵ,中止迭代,令
(5) 不然,令k=k+1,转(3).
当模型的参数过多时,很容易遇到过拟合的问题。而正则化是结构风险最小化的一种实现方式,经过在经验风险上加一个正则化项,来惩罚过大的参数来防止过拟合。
正则化是符合奥卡姆剃刀(Occam’s razor)原理的:在全部可能选择的模型中,可以很好地解释已知数据而且十分简单的才是最好的模型。
咱们来看一下underfitting,fitting跟overfitting的状况:
显然,最右这张图overfitting了,缘由多是能影响结果的参数太多了。典型的作法在优化目标中加入正则项,经过惩罚过大的参数来防止过拟合:
p=1或者2,表示L1 范数和 L2范数,这二者仍是有不一样效果的。
L1范数:是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。那么,参数稀疏 有什么好处呢?
L2范数:它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减”(weight decay)。
接下来咱们思考一下为何L1范式会产生稀疏性。
假设代价函数 L 与某个参数 x 的关系如图所示:
则最优的 x 在绿点处,x 非零。
如今施加 L2 regularization,新的代价函数()如图中蓝线所示:
施加L2范式的实质是在原来函数曲线上上移一个抛物线的位移,虽然抛物线在0处取得最小值,可是抛物线在0处过于平缓。最优的 x 在黄点处,x 的绝对值减少了,但依然非零。
而若是施加 L1 regularization,则新的代价函数()如图中粉线所示: