老饼讲解-机器学习 机器学习 神经网络 深度学习
逻辑回归与决策树

【原理】牛顿法求解逻辑回归

作者 : 老饼 发表日期 : 2022-06-26 13:47:04 更新日期 : 2023-12-13 02:29:01
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



由于牛顿法使用了二阶导的信息,一般比梯度法的求解速度会更快

在工程中使用牛顿法会比梯度下降法求解逻辑回归更有优势

本文讲解如何使用牛顿法求解逻辑回归



      前言     


大部分文章,都是介绍梯度下降法求解逻辑回归,
而笔者在扒取matlab的逻辑回归工具包glmfit的源码后,发现glmfit用的并不是梯度下降,而是牛顿法
事实上,牛顿法在求解效果上要大大优于梯度下降法,这也不得不让笔者感叹matlab作为一个商业软件的专业度
本文按照 glmfit包的实现思路,讲解牛顿法求解逻辑回归的算法原理和流程
在《逻辑回归-自实现代码》中我们再自写代码重现glmfit包的效果





   01、牛顿法求极值的简单回顾   



本节回顾牛顿求极值的相关思想及公式



   牛顿法求极值的思想回顾   


牛顿法求极值的思想如下:
 
牛顿求极值的主要思想如下:
先初始化一个解,
然后在当前解处用二次曲线(曲面)替代原函数,
用二次曲线的极值点作为解的迭代值。
如此反复,直到满足迭代终止条件(例如达到最大迭代次数)



   牛顿法求极值的迭代公式回顾   


牛顿法求极值的迭代公式如下:
(1) 先初始化初始解                                     
(2) 用牛顿法迭代:  
备注:多维时,牛顿迭代公式为
  
其中
G为梯度(一阶导)                 
 的Hession矩阵(二阶导)      






 02. 牛顿法-求解逻辑回归 



本文讲解牛顿法求解逻辑回归的思路及公式推导



   牛顿法求解逻辑回归-思路   


由于牛顿法的迭代公式为:
可知,牛顿法用于求解逻辑回归,
只需求出逻辑回归损失函数对 W的梯度与Hession矩阵,
得到牛顿迭代公式后,按牛顿法迭代即可




   逻辑回归的牛顿迭代公式-推导主流程   


逻辑回归的损失函数为:
  
它的一阶导与二阶导如下(详细推导见下文)

 逻辑回归的一阶导公式
 逻辑回归的梯度(一阶导)公式如下:

 
 
      
 
其中
 
矩阵, N样本数, M为特征个数         
   即一行为一个样本,一列为一特征       
 
的列向量                                          
p : 的列向量,       

逻辑回归的Hession矩阵
逻辑回归的Hession矩阵(二阶导)公式如下:

 
  
 其中
 对角矩阵                                 
  
逻辑回归的牛顿法迭代公式
综合上面一、二阶导的结果,可得到牛顿迭代公式如下:


 

  
  其中
 对角矩阵                                 
    
备注:这里的  W 为          




   牛顿法求解逻辑回归-迭代公式   


综上,可得到逻辑回归的牛顿法迭代公式为:
 
其中
T是对角矩阵,                   
   ( 这里的    为   )    
✍️特别说明
上述公式是根据牛顿法的定义所推导出来的原始迭代公式
但迭代公式中涉及了
的逆矩阵求解,在实际工程中是不太可用的
在《牛顿求解逻辑回归-简化版》中,我们再对其进行简化,实现其工程可用性







  03. 牛顿迭代公式推导  



本节补充上节中的相关公式推导过程



   逻辑回归一阶导推导过程  


我们先推导损失函数的一阶偏导:
单个分量的一阶偏导
 
对单个分量   的偏导:                                                                      
                                        
                           
    代表 第i个样本第j个特征的 x 数据
                                     
       //                 
    ----- 用矩阵形式替换连加形式 --------------------
                                                   
  这里的  ​  即第j个特征的数据.
一阶整体偏导
根据单个分量的偏导形式,可得到整体偏导如下:

 
      
其中
 
矩阵, N样本数, M为特征个数         
   即一行为一个样本,一列为一特征       
 
的列向量                                          
p : 的列向量,       
                    
 备注:一阶偏导列向量大小: 特征个数*1




    逻辑回归二阶导推导过程    


下面我们推导损失函数的二阶偏导:
单个分量的二阶偏导
单个分量分析: 偏  ​  再偏  
              
                 
               
          ----- 写成矩阵形式 ----------------------
          ​                      

 其中
 对角矩阵                                 
  
补充:的推导过程如下:
整体二阶偏导公式
根据单个分量的二阶偏导形式,可得到整体二阶偏导如下: 
  
 
 其中
 对角矩阵                                 
  






   参考文献   


1.Collett, D. (2003) Modelling Binary Data, 2nd edition, Chapman&Hall/CRC Press. 
   
 https://www.doc88.com/p-40929070890500.html?r=1








 End 






联系老饼