逻辑回归其实是是一种广义的线性回归,虽然说是回归函数,但是它其实是处理分类问题,我们从其背景,损失函数两方面说清楚。

背景

参考周志华教授的《机器学习》和吴恩达大神的深度学习中的讲解,逻辑回归的起源是解决二分类问题,这里我们假设二分类中的类别是{0,1},我们想知道给定一个样本X,这个样本属于1类的概率是多少?也就是要求得一文读懂逻辑回归(Logistic Regression)的值,而线性回归模型产生的预测值一文读懂逻辑回归(Logistic Regression)是实值,但是要想得到概率值,输出的值必须是在区间[0,1]内,所以想到的就是将线性回归模型产生的预测值通过变换使其在区间(0,1)内。

很明显sigmoid函数的值域在区间(0,1)内,如下图:

一文读懂逻辑回归(Logistic Regression)

 所以我们就得到:一文读懂逻辑回归(Logistic Regression),这个就是逻辑回归函数的原型。这里的转换函数就是sigmoid函数,至于为什么选这个函数,首先这个函数的值域是在区间(0,1)内,还有一点很重要的是,这个函数连续可导。在机器学习和深度学习中,函数的选择包括各种**函数都满足连续可导,这是因为在反向传播的时候,我们需要对误差函数进行求导,如果不可导的话,这个过程完全做不了。

从上述可以看出,逻辑回归具有以下优点:

(1) 它是直接对分类可能性进行建模,不需要事先假设数据分布,这样就避免了假设分布不准确所带来的的问题;

(2) 它不仅预测出“类别”,而是可以得到近似概率预测,这对于许多需要利用概率辅助决策的任务很有用;

(3) 此外,逻辑回归函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可以直接用于求解最优解。

损失函数

给定m个样本,一文读懂逻辑回归(Logistic Regression),其中一文读懂逻辑回归(Logistic Regression),这是个二分类问题,用逻辑回归解决。所以:一文读懂逻辑回归(Logistic Regression),其中一文读懂逻辑回归(Logistic Regression),最终的目的是希望预测的值和真实值无限接近:一文读懂逻辑回归(Logistic Regression)。也就是说希望预测值和真实值之间的误差越小越好。

在线性回归中,我们一般使用真实值和预测值的差得平方作为我们的损失函数,然后对其进行最小化,如一文读懂逻辑回归(Logistic Regression),但是通常在逻辑回归中,不会选择使用这个损失函数,因为当我们使用这个损失函数来学习参数w和b的时候,会发现后面的优化问题会变成非凸的,最后会得到,很多个局部最优解,也就是说我们的梯度下降法可能找不到全局最优解,这个是机器学习中令人头痛的一个问题。

所以在逻辑回归中会定义一个不同的损失函数,它起着与误差平方相似的作用,最重要的是这个损失函数使得我们的优化问题是凸优化,以下是逻辑回归中的损失函数:

                                                一文读懂逻辑回归(Logistic Regression)

所以我们的目的是最小化上面这个损失函数。

为什么这个损失函数能够起作用,举两个例子说明:

(1) 当真实值y=1的时候,一文读懂逻辑回归(Logistic Regression),这个时候,想要一文读懂逻辑回归(Logistic Regression)足够的小,也就是说一文读懂逻辑回归(Logistic Regression)足够的大,也就是一文读懂逻辑回归(Logistic Regression)足够的大,但是因为一文读懂逻辑回归(Logistic Regression),所以一文读懂逻辑回归(Logistic Regression)的区间是在(0,1)内,又要想一文读懂逻辑回归(Logistic Regression)足够大,所以一文读懂逻辑回归(Logistic Regression)只能无限接近1。

(2) 同理当真实值y=0的时候,这个时候最小化损失函数的时候,只会让一文读懂逻辑回归(Logistic Regression)无限接近于0。

损失函数(loss function)是在单个训练样本中定义的,它衡量了在单个训练样本上的表现,下面定义一个成本函数(cost function)来衡量在全体训练样本上的表现。

成本函数

cost function:一文读懂逻辑回归(Logistic Regression),所以最终的优化目标是成本函数。

问题变成了,通过最小化一文读懂逻辑回归(Logistic Regression)来找到参数w和b:

一文读懂逻辑回归(Logistic Regression)

很明显可以看到成本函数一文读懂逻辑回归(Logistic Regression)是个凸函数,可以找到全局最优解,这也就是选择逻辑回归函数中选择一文读懂逻辑回归(Logistic Regression)作为损失函数的重要原因之一。

接下来就是使用梯度下降法找到使得成本函数一文读懂逻辑回归(Logistic Regression)最小的w和b的值:

(1) 初始化w和b,对于逻辑回归而言,几乎是任意的初始化方法都有效,这是因为我们的最小化函数是凸函数,无论w和b的初始值如何,我们总能找到全局最优解,通常用0来初始化w和b。

(2) 将训练数据输入逻辑回归模型中,得到成本函数一文读懂逻辑回归(Logistic Regression)

(3) 这一步是梯度下降的关键,我们重复计算:一文读懂逻辑回归(Logistic Regression)一文读懂逻辑回归(Logistic Regression)知道w和b的值不再变化。其中一文读懂逻辑回归(Logistic Regression)称为学习率,用来控制每一次的迭代或者梯度下降法中的步长。求解w和b就是迭代求导的过程。

相关文章: