携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情
逻辑回归模型
分类问题
分类问题是机器学习主要解决问题的一个重要组成部分,根据已知样本的特征,去判断样本属于哪一个类别。分类问题可以细分如下:
- 二分类问题:表示分类任务中有两个类别。
- 多分类问题:表示分类任务中有多类别。
常见应用场景:
- 垃圾邮件识别:将邮件分成两部分:垃圾邮件与普通邮件。
- 图像内容识别:根据图像类容进行分类,例如猫,狗等
- 文本情感分析:将微博中的评论分成两种褒义与贬义,甚至可以分成多种情感。
介绍
逻辑回归模型(Logistic Regression)虽然称之为回归,但是解决问题类型与线性回归不同,利用回归类似的思路去解决分类问题。与线性回归模型不同的是模型输出值不同。
- 线性回归输出值是连续的,拟合成一个线条
- 逻辑回归输出值是离散的,分布均匀。
既然分布均匀,我们可以设置一个阈值,将值进行区分开来。
我们来看一个例子。假如现在有一个关于肿瘤大小的数据集,需要根据肿瘤的大小来判定是良性(用数字 0 表示)还是恶性(用数字 1 表示),这是一个很典型的二分类问题。
接下来,使用线性函数去进行拟合数据,根据输出对其进行阈值(设置为5)的比较(阶跃函数)你就可以得到样本的类别。
这样的函数是不方便我们去进行后面的优化计算的过程的,函数值不连续,就无法进行求导的操作,我们选择一条函数值连续,值区间在 (0,1) Sigmoid
函数。函数值代表样本类别的概率。
他的图像如下:
该函数将我们输出的值都映射到了0到1之间,作为类别的概率值,帮助判断样本类别。
决策边界
当空间内充满着两种不同的类别样本,怎么去将其划分呢?需要设置决策边界。
决策边界就是分类器对于样本进行区分的边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries)。
线性决策边界如下:
单纯的一个线性函数是无法拟合如上图的分布均匀的值的,但是你可以找到一条线性函数将其两个部分分开,既然无法拟合,怎么确定这条线性函数呢?这里就用到了 Sigmoid 函数,它可以将我们的值映射到0到1的区间,代表着类别的概率。(函数 代表 Sigmoid
函数)
非线性决策边界如下:
如线性决策边界一样,是无法通过一个函数进行拟合,但是可以通过 Sigmoid 函数对输出装进行映射,然后找到那个非线性函数,完成分类结果。
损失函数
当逻辑回归模型的数学形式确定后,接下来就是设置损失函数去衡量预测值和标准答案之间的差异。我们之前接触的损失函数是均方误差。
均方误差损失函数在回归问题中是广泛应用,但是在逻辑回归问题中,是不适用的。直接的原因是Sigmoid
函数值映射会使我们最终的损失函数曲线,不是一个凸函数的样子,凹凸不平,是非凸的损失函数,会使我们陷入局部最优解,很难获取到全局最优解。凸函数的局部最优解也是全局最优解,我们更希望损失函数是凸函数,更方便进行优化过程。结论可得对于逻辑回归他不是一个很好的损失函数。
在逻辑回归中,我们一般是使用的是对数损失函数(交叉熵损失函数),这个函数达到了我们想要的情况。
当时,样本曲线如下图,当样本作为类别 0 时,若接近1时,的值会变大,损失值趋近于无穷,反之损失值则接近于0。
当时,样本曲线如下图,当样本作为类别 1 时,若接近0时,的值会变大,损失值趋近于无穷,反之损失值则接近于0。
可以简化对数损失函数,更方便后面的梯度下降过程,公式如下:
其中代表样本值,类别0取值为0,类别1取值为1.
从上图可以看出该损失函数是一个凸函数,局部最优解也是全局最优解,达到了我们的预期。
梯度下降
梯度下降的过程与线性回归模型是一致的,就不多阐述了。 参考:
www.showmeai.tech/article-det…