逻辑回归算法原理及用于解决多分类问题

逻辑回归算法又叫做对数几率回归,作为一种分类算法,在统计学中属于广义的线性模型。实际上逻辑回归是通过对数几率函数将线性函数的结果进行mapping,这样一来目标函数的取值空间就发生了如下的变化:
逻辑回归多分类MNIST 逻辑回归多分类原理_机器学习
这样一来,逻辑回归就可以用来处理分类问题。

一、逻辑回归的基本原理

在训练时,线性回归模型在整个实数域上对于异常数据点的敏感性一致,所以用于分类效果较差。对于二分类任务,逻辑回归的输出标记如下:
逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_02
而线性回归的预测值是实值,如下:
逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归多分类MNIST_03
因此我们就需要一个特定的函数将实值映射为0/1。

直接的想法就是使用单位阶跃函数,这样一来:预测值大于零就为正例;预测值小于零就为负例;如若预测值为临界值则可以任意判别。但是这样是有问题的:单位阶跃函数不连续而且不光滑,或者说不可导,故而无法进行求解。

那么我们就看中了对数几率函数(S函数),或者说对数概率函数。两者参见下图:

逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_04


逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_05


图一为单位阶跃函数的数学表达式,图二为单位阶跃函数和对数几率函数的图像。

线性回归模型:
逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归多分类MNIST_06
对数线性回归:
逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_07
它实际上实在试图达到如下目标:
逻辑回归多分类MNIST 逻辑回归多分类原理_算法_08

这里的取对数的作用是:将线性回归魔心过的预测值与真实标记联系起来。

推广:考虑单调可谓函数g(.)令:
逻辑回归多分类MNIST 逻辑回归多分类原理_机器学习_09
对数几率函数(Sigmoid函数)表达式:
逻辑回归多分类MNIST 逻辑回归多分类原理_机器学习_10
带入到上述推广之中,得到:
逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归_11
两边取对数求解得到:
逻辑回归多分类MNIST 逻辑回归多分类原理_机器学习_12

逻辑回归多分类MNIST 逻辑回归多分类原理_机器学习_13

逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_14

逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_15

逻辑回归多分类MNIST 逻辑回归多分类原理_算法_16

二、使用梯度下降法对逻辑回归进行求解

逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归_17

逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_18

上式为累乘形式,取对数以转化为累加形式便于求导操作,同时转化为求最小值问题:因此有下式:
逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归_19
使用梯度下降法求解:
逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归_20

逻辑回归多分类MNIST 逻辑回归多分类原理_人工智能_21

三、逻辑回归解决多分类为题

逻辑回归分类器是线性分类器,可以方便的解决二分类问题,但也可以用于解决多分类问题。方案如下:

方案1:当存在样本可能属于多个标签的情况时,可以训练出k个二分类的逻辑回归分类器。第i个分类器用以区分每个样本是否可以归类为第i类,训练该分类器的时候,需要把标签重新整理为第i类标签非第i类标签两类。通过这样的方法,就解决了每个样本可能拥有多个标签的情况。

方案2:若每个样本只对应于一个标签,我们可以假设每个样本属于不同标签的概率服从几何分布,使用多项式逻辑回归(Softmax Regression)来进行分类。具体如下:
逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归多分类MNIST_22

逻辑回归多分类MNIST 逻辑回归多分类原理_机器学习_23

逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归_24

逻辑回归多分类MNIST 逻辑回归多分类原理_机器学习_25

逻辑回归多分类MNIST 逻辑回归多分类原理_算法_26

逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归_27

逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归_28

逻辑回归多分类MNIST 逻辑回归多分类原理_逻辑回归多分类MNIST_29

发现整理之后的式子与逻辑回归一致,因此多项式逻辑回归实际上时二分类逻辑回归在多标签分类下的一种拓展。