机器学习——逻辑回归

1 简单介绍

机器学习中的逻辑回归(Logistic Regression)是解决分类问题的基础模型,同线性回归一样,逻辑回归主要的目标也是拟合一条曲线。为了通俗的解释逻辑回归问题,我们下面看一个简单的二分类问题。

机器学习——逻辑回归

如图所示,假设我通过数字图像处理技术分割出橘子和柠檬的区域,但我并不知道如何判断是橘子还是柠檬,所以我采集了一些样本数据,分别对它们的圆度(如果是一个完美的圆,它的圆度就是1,如果一个图形越接近圆,其圆度就越接近1)和颜色进行统计,如下图所示:

机器学习——逻辑回归

图中绿色圆形代表的是橘子,橙色矩形代表的是柠檬。这时我们不难发现,代表橘子和柠檬的点分别集中在两块区域上。如果我们在中间画一条线,像这样子:机器学习——逻辑回归

显然,该条直线把这些点分成了两类,在机器学习中我们通常把该条直线称为决策边界(decision boundary)

2 sigmoid函数

为了将逻辑回归问题代数化,我们先介绍一个在概率论中经常使用的一个函数。在二分类问题中,我们对一个输入判断结果一定是二值的,即是或者不是该类,而且最好是光滑连续的,这样便于使用梯度下降法,除此之外由于概率是在[0,1]范围内的,所以我们的输出值也必须在[0,1]范围。sigmoid函数就是满足我们要求的曲线,其输出值表示对y=i(此处的i表示该类的标签号)时的概率估计,通俗的讲就是属于此类的概率大小。这里值得一提的是,bp神经网络就是利用sigmoid函数作为激励函数的。

机器学习——逻辑回归

sigmoid函数方程为:机器学习——逻辑回归,从图中可以看出其输出在(0,1)范围内,且当自变量z>0时,输出在(0.5,1)范围内;当自变量z<0时,输出在(0,0.5)范围。运用到逻辑回归问题中,其模型如下:

机器学习——逻辑回归.

式中,X为输入的特征向量。而同线性回归一样,机器学习——逻辑回归就是每个特征值的权重,也是需要我们运用梯度下降法求解的。对于上面谈到的橘子和柠檬的分类问题,输入可以表示为机器学习——逻辑回归,当Z>0时,即机器学习——逻辑回归,输出在(0.5,1)范围内,此时可以判断机器学习——逻辑回归;当Z<0时,即机器学习——逻辑回归,输出在(0,0.5)范围内,此时可以判断机器学习——逻辑回归,这样我们就实现了二分类。这里的机器学习——逻辑回归似乎可以表示成一条直线,其实该条直线就是我们上面说的决策边界。

3 代价函数

同线性回归的代价函数不同的是,逻辑回归的代价函数是这样表示的:

机器学习——逻辑回归,

机器学习——逻辑回归.

第一个式子叫做损失函数(loss fuction),损失函数就是对单个样本计算的误差,代价函数就是对损失函数进行求加权平均得到的。

为什么逻辑回归不和线性回归一样采用最小平方错误为代价函数的方式呢?实际上,如果我们使用同线性回归一样的方式表示代价函数,其曲线会如下图一样产生许多局部极小值,并非是一个完美的凸函数,这时如果采用梯度下降法,我们拟合得到的特征系数并不能保证收敛到全局最小值。

机器学习——逻辑回归

下面详细讲述一下逻辑回归的损失函数。如下图所示,当样本数据机器学习——逻辑回归数据时,损失函数值如下方左图所示。如果模型机器学习——逻辑回归的输出为0,其损失函数值就会趋向于无穷大;如果模型输出为1,其损失函数值为0。下方右图为机器学习——逻辑回归时的损失函数,也满足这种性质。

机器学习——逻辑回归

对损失函数加权求平均后,我们可以得到代价函数的表达式:

机器学习——逻辑回归.(这里的"log"函数表示的是"ln",在matlab中自然对数是用"log"表示的)

运用此种形式表示损失函数,就可以保证所得到的代价函数是一个凸函数,这时我们就可以放心大胆的运用梯度下降法求解特征系数了。

4 梯度下降法

机器学习——逻辑回归.

 

同线性回归一样,我们也是通过迭代的方式,求得机器学习——逻辑回归。关于梯度下降法的介绍可以参考上一篇博客,这里不再赘述。