逻辑回归原理以及推导

 1.之前听其他面试者说,遇到过写LR中损失函数的推导,也就是从概率一般式  开始,运用似然函数求解概率最大(被问到:为什么可以用似然函数。答:因为目标是要让预测为正的的概率最大,且预测为负的概率也最大,即每一个样本预测都要得到最大的概率,将所有的样本预测后的概率进行相乘都最大,这就能到似然函数了。)即:

ææ¯å享

然后取对数:再乘以负的m分之一,就得到了损失函数https://blog.csdn.net/u013044811/article/details/76861529。(面试技巧)

以下转自:https://blog.csdn.net/AriesSurfer/article/details/41310525

逻辑回归模型就是一个加了Sigmod激活函数的线性回归模型,它是广义线性回归模型。LR模型可以被认为就是一个被Sigmoid函数(logistic方程)所归一化后的线性回归模型!

逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。

线性回归模型:

sigmod函数:

由于sigmoid函数的定义域为,值域为,因此最基本的LR分类器适合对两类目标进行分类。

所以Logistic回归最关键的问题就是研究如何求得这组权值。这个问题是用极大似然估计来做的。

考虑具有个独立变量的向量,设条件慨率为根据观测量相对于某事件发生的

概率。那么Logistic回归模型可以表示为

                                                       

这里称为Logistic函数。其中

那么在条件下不发生的概率为

           

 

所以事件发生与不发生的概率之比为

           

 

这个比值称为事件的发生比(the odds of experiencing an event),简记为odds。

对odds取对数得到

 LR的代价函数:

    有了前面的假设,我们首先定义一下损失函数Loss Function,如我们使用常用的平方损失函数: 

这里我们想到逻辑回归也可以视为一个广义的线性模型,那么线性模型中应用最广泛的代价函数-误差平方和函数,可不可以应用到逻辑回归呢?首先告诉你答案:是不可以的! 那么为什么呢? 这是因为LR的假设函数的外层函数是Sigmoid函数,Sigmoid函数是一个复杂的非线性函数,这就使得我们将逻辑回归的假设函数带入上式时,我们得到的是一个非凸函数,也就是函数图像中会出现许多的局部最小值,导致梯度下降法极其容易得到局部最小值。如下:

在逻辑回归中,我们最常用的损失函数为对数损失函数,对数损失函数可以为LR提供一个凸的代价函数,有利于使用梯度下降对参数求解。

可以看出Logistic回归都是围绕一个Logistic函数来展开的。接下来就讲如何用极大似然估计求分类器的参数。

假设有个观测样本,观测值分别为,设为给定条件下得到的概率,同样地,

的概率为,所以得到一个观测值的概率为。(因为是二分类问题,所以当yi=0时p(yI)=1-pi),所以得到这个公式。二项分布的原理:https://blog.csdn.net/u011947630/article/details/81508829

因为各个观测样本之间相互独立,那么它们的联合分布为各边缘分布的乘积。得到似然函数https://baike.baidu.com/item/%E6%9E%81%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1/3350286?fr=aladdin(似然函数的定义)为

                                         

然后我们的目标是求出使这一似然函数的值最大的参数估计,最大似然估计就是求出参数,使得

取得最大值,对函数取对数得到

            

 

2.2 似然函数的求解-梯度下降

转自:https://blog.csdn.net/weixin_39910711/article/details/81607386

https://blog.csdn.net/ltlitao717/article/details/75453480

代价函数的求导过程

Sigmoid函数的求导过程:

  

故,sigmoid函数的导数

   

损失函数梯度求解过程:

    

故,参数更新公式为:

      

3、加入正则项

3.1 正则解释:转自:https://blog.csdn.net/weixin_39910711/article/details/81607386
当模型的参数过多时,很容易遇到过拟合的问题。这时就需要有一种方法来控制模型的复杂度,典型的做法在优化目标中加入正则项,通过惩罚过大的参数来防止过拟合: 

一般回归分析中回归w表示特征的系数,从上式可以看到正则化项是对系数做了处理(限制)。L1正则化和L2正则化的说明如下:

L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为
L2正则化是指权值向量w中各个元素的平方和然后再求平方根
(可以看到Ridge回归的L2正则化项有平方符号),通常表示为
一般都会在正则化项之前添加一个系数,Python中用α表示,一些文章也用λ表示。这个系数需要用户指定。

那添加L1和L2正则化有什么用?下面是L1正则化和L2正则化的作用,

L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合


 
如上图椭圆和蓝色的区域(惩罚函数)的切点就是目标函数的最优解,可以看到如果蓝色区域是圆,则很容易切到圆周的任意一点,但是很难切到坐标轴上,这样就得不出稀疏的借,冗余数据就会相对较多;但是如果蓝色区域是菱形或者多边形,则很容易切到坐标轴上,因此很容易产生稀疏的结果。这也说明了为什么1范式会是稀疏的。https://blog.csdn.net/asd136912/article/details/79344602

更进一步的解释:

假设有如下带L1正则化的损失函数: 

        其中J0是原始的损失函数,加号后面的一项是L1正则化项,α是正则化系数。注意到L1正则化是权值的绝对值之和,J是带有绝对值符号的函数,因此J是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数J0后添加L1正则化项时,相当于对J0做了一个约束。令L=,则J=J0+LJ,此时我们的任务变成在L约束下求出J0取最小值的解。考虑二维的情况,即只有两个权值w1和w2,此时L=|w1|+|w2|对于梯度下降法,求解J0的过程可以画出等值线,同时L1正则化的函数L也可以在w1、w2的二维平面上画出来。如下图:

图1 L1正则化

       图中等值线是J0的等值线,黑色方形是L函数的图形。在图中,当J0等值线与L图形首次相交的地方就是最优解。上图中0J与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多『突出的角』(二维情况下四个,多维情况下更多),J0与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。

       而正则化前面的系数α,可以控制L图形的大小。α越小,L的图形越大(上图中的黑色方框);α越大,L的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值(w1,w2)=(0,w)中的w可以取到很小的值。

3.2.2  L2正则化和过拟合

类似,假设有如下带L2正则化的损失函数: 

同样可以画出他们在二维平面上的图形,如下:

图2 L2正则化

二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。

拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。
原文:https://blog.csdn.net/weixin_39910711/article/details/81607386 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值