第二课:逻辑回归与梯度下降
逻辑回归
【原理】逻辑回归原理
作者 : 老饼 日期 : 2022-06-26 03:35:02 更新 : 2022-09-24 16:59:11
本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com


逻辑回归模型是机器学习中二分类模型中的经典,

它用于分类问题中预测属于某个类别的概率。

本文讲解逻辑回归的思想、模型、损失函数和求解方法。



  一、二分类问题  


  什么是二分类问题  


现在有一组数据,
需要利用各个特征去预测目标的类别是1还是0:
 
 

 这就是二分类问题,它的目的是判断类别样本属于哪个类别。
二分类问题一般默认类别标签为0和1,
只需判断是不是1类就可以了,
因为如果不是1类,即默认是0类。



  二分类问题的输出  


二分类问题可以直接输类别标签,
也可以输出Yes或No,即代表是不是类别1.
还可以输出属于类别1的概率。




  二、逻辑回归   


逻辑回归主要用于解决二分类问题,

它输出的是属于类别1的概率。


下面我们讲解,逻辑回归是怎么解决二分类问题的。


    数值与概率的关系   


我们知道,线性回归拟合的是数值,并不符合我们预测类别的需求。
但数值与类别也是有关联的,例如,天色越黑,下雨概率就越大。
即值越大,属于某类别的概率也越大,值与概率之间可以互转。



    数值与概率的转换   


在数学里通常用    函数将数值转化为概率:

 


   逻辑回归的思想   


逻辑回归就是这样的原理,
先用   作为综合值的评估,
再套用 sigmoid 函数将综合评估值转为概率。
所以,逻辑回归本骨子里还是线性模型。

这样的理解是不严谨的,但作为入门无伤大雅,后面接触了信息熵的概念,再回头补充sigmoid函数的由来。



  三、模型表达式  



逻辑回归的模型表达式如下



 备注:这里的X代表,最后的1用于替代b。



在单变量时,逻辑回归模型就是一条S曲线



类似地,在两个变量时,它就是一个S面,在更多变量时,则是一个超S面。



其中,w控制了S曲线的拉伸,b则控制了它的平移位置








   四、损失函数   


损失函数引导我们去求取模型里的参数w和b,
也就是指明我们想要一个什么样的w,b。

在逻辑回归中,采用误差就不适合了。
逻辑回归模型采用的是,模型预测正确概率最大化~!



   (一) 单个样本评估正确的概率   


模型对单个样本评估正确的概率   为:

解释:
逻辑回归的输出就是属于类别1的概率,
真实值 y为1 时, P就是评估正确的概率 ;
 真实值 y为0时,P是错误的概率,1-P 就是模型正确的概率。


巧妙的操作是,可以用一条式子把上述二式合并如下


 
解释:
 
当y=1时,第二个括号等于1,
当y=0时,第一个括号等于0,
化简后与上述两式一致。



   (二) 所有样本评估正确的概率   


假设每个样本是独立事件,
则总评估正确的概率为所有样本评估正确的积



   (三) 损失函数   


我们期待  ​  最大化,
只要将损失函数设计成  即可。

又由于   中含 有大量的乘号,
为计算方便,我们外套一个对数。

最后,损失函数设计如下:
 



备注:化简的具体过程在文未附上,此处省略。

在连乘的情况下,使用对数使其转为加号是常用的操作。
因为对数是单调函数,能让P最大化的W,同样会是令lnP最大化的W。



  (四) 总结  


逻辑回归损失函数设计的整体思路为:

这种思路设计的损失函数也叫最大似然损失函数。




  五、模型求解  

现在我们需要求解最佳的W,
使损失函数   最小,
也即令预测概率准确性最大化。
理论上,我们可以求损失函数的偏导,
m个样本,共m个方程,联立求解出k+1个参数即可。
但遗憾的是,它的偏导数是非线性方程,
我们没有能力去求解m+1个非线性方程的解。
因此,我们退而求其次,使用算法去寻找一个优秀解。
其中,梯度下降法就是一个经典的数值求解算法。


  (一) 梯度下降算法  


其原理如下:

 
即先初始化一个初始解,
然后不断地根据目标函数的梯度下降方向,
调整x,最后达到局部最优值。
具体理论请看《入门篇-求解算法:梯度下降》。


  (二) 梯度公式  


梯度下降法在迭代过程使用到了L(W)的梯度,
我们需要求出L(W)的梯度公式(公式详细推导见附件):


其中
 X :
m*n矩阵, m样本数, n为特征个数,
(即一行为一个样本,一列为一特征)   
y,p: 为 列向量, 
W:n*1的列向量                           



   (三) 梯度下降算法应用于逻辑回归   


先初始化W,然后
(1) 按照梯度公式算出梯度,
(2) 将W往负梯度方向调整
不断循环(1)和(2),直到达到终止条件(例如达到最大迭代次数)



   软件包里的求解算法   


工具包里通常不使用梯度下降算法,
对于逻辑回归,会有更巧妙的求解算法,
例如matlab工具箱里使用的就是牛顿法,它与梯度下降法思想类似。
在这里我们先学习梯度下降法求解,
它是最经典必学的求解算法,没有之一。
它简单,普适性广,通用。
至于工具箱中使用的算法,在进阶阶段再进行学习。






 End 









联系小饼