文章目录
- 一、逻辑回归的介绍
- 二、逻辑回归与线性回归对比
- 1.定义
- 2.损失函数
- 3.参数更新
一、逻辑回归的介绍
,也就是常说的sigmoid函数,其公式为:
的函数图像如下图,它将输入压缩到0和1之间,当时,输出;当时,输出。我们还可以发现当时,梯度较大,函数变化较快;当趋于无穷时,梯度趋于0,函数变化较慢。也可以根据其导数来观察性质,,当趋于0和1时,即趋于无穷时,梯度较小,当,即时,梯度最大。
我们知道线性回归给定输入特征后可以预测输出值,逻辑回归返回的是一个0到1之间的数,这其实是一个概率值,常用来做二分类。
假设有两类样本和,现在给定一个样本,我们可以定义样本属于类别的概率为:
那么样本属于的概率显然为:。我们只需要根据的正负就能判断类别,当时,,可以判定属于,否则属于。
令表示的标签,表示的标签,表示预测值,,这里0和1表示哪个类别的标签都可以,预先定义好就行,标签为1的样本通常称为正样本,标签为0的称为负样本。
给定个样本(上标表示样本编号),下面我们需要定义一个目标函数来衡量和之间的差异,线性回归使用的是最小均方误差损失,这里我们使用交叉熵损失,其公式为:
其中
这里为什么要这样定义呢?在线性回归中我们希望预测值和真实值越接近越好,而真实值有无穷多个可能的取值,所以我们希望预测值和真实值的均方误差越小越好;而在二分类问题中,真实值只能取0或1,我们希望正样本输出接近1,负样本输出接近0,即正样本的似然概率越大越好。
举一个例子,假设样本及其对应的标签如下表所示:
,负样本为,那么我们可以求出似然概率为:
我们希望越大越好,这样就能使得正样本输出越来越接近1,负样本输出越来越接近0,对结果取可以得到:
结果再取负号,然后扩展到个样本就得到了上面定义的交叉熵损失函数,我们希望其值越小越好。
因此目标函数为:
我们要做的就是找到一组参数使得目标函数的值最小,即,然后用梯度下降法迭代求解。
那逻辑回归可以使用均方误差函数吗?假设使用均方误差函数:
我们可以求出梯度为:
当时,如果(即标签是1,预测值是1,预测值接近目标值),,这是合理的,因为我们希望预测正确的时候梯度为0;
如果(即标签是0,预测值是1,预测值远离目标值),,这是不合理的,因为预测值不正确,但是梯度却为0;
同理,当时,如果,;如果,。
交叉熵损失和均方误差损失的图像如下所示,黑色表示交叉熵损失的图像,红色表示均方误差损失,可以看出交叉熵损失变化更剧烈。
二、逻辑回归与线性回归对比
1.定义
,它可能的输出任何值。
逻辑回归的公式为:,它可能的输出值在0和1之间。
2.损失函数
线性回归使用均方误差损失,公式为:
逻辑回归使用交叉熵损失,公式为:
3.参数更新
对于线性回归,我们可以求出损失函数的梯度为:
对于逻辑回归,我们把公式表示为:,
根据链式法则:
其中:
将上面的式子整合起来得到:
我们可以发现线性回归和逻辑回归的梯度在形式上是相同的。
本文根据李宏毅老师2020机器学习资料整理。
地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML20.html