李宏毅机器学习周报第三周_logistic regression、general guidance、when gredient is small

摘要

本周学习了逻辑回归,并且理解了逻辑回归与线性回归的区别。通过实例了解了生成模型和判别模型在不同场景下的适用性。针对多分类问题,学习了相应的处理方法。同时,也了解到了逻辑回归的一些限制。在机器学习任务中,当训练集的损失值较大时,需要考虑是模型偏差(model bias)还是陷入了局部最小值(local minima)。而在测试集上的高损失值可能表示过拟合或数据不匹配。在参数优化过程中,当梯度下降至微分为零时,可能是陷入了鞍点(saddle point),而局部最小值的出现较为罕见。

Abstract

This week, we learned about logistic regression and understood the differences between logistic regression and linear regression. Through examples, we gained insights into the scenarios where generative models and discriminative models are suitable. We also explored approaches to handle multi-class classification problems. Furthermore, we became familiar with the limitations of logistic regression. In machine learning tasks, when the training loss is high, we need to consider whether it is due to model bias or if we have encountered a local minimum. Conversely, a high loss on the test set indicates overfitting or data mismatch. During parameter optimization, when the gradient descends to zero, it could be a saddle point rather than a local minimum, although the occurrence of true local minima is rare.

一、逻辑回归(Logistic Regression)

1.1 逻辑回归的概念

简单来说,逻辑回归(Logistic Regression)是一种机器学习方法,用于解决二分类问题(0或1)。它用于估计某种事物的概率或可能性。尽管名为"回归",但实际上逻辑回归解决的是分类问题。逻辑回归的基本思想是假设数据服从特定的分布,并使用极大似然估计来估计模型的参数。通过建立一个逻辑函数,逻辑回归将输入特征映射到一个概率范围内,并根据这个概率进行分类决策。逻辑回归是一种简单而有效的分类算法,在实践中广泛应用。逻辑回归的模型 f w , b ( x ) = P w , b ( C 1 ∣ x ) = σ ( w x + b ) \mathrm{f} _{w,b}(x) =P_{w,b}(C_{1} |x)=\sigma (wx+b) fw,b(x)=Pw,b(C1x)=σ(wx+b)。其中, w w w b b b为该模型的参数。而 P w , b ( C 1 ∣ x ) P_{w,b}(C_{1} |x) Pw,b(C1x)表示输入的 x x x C 1 C1 C1类别的概率。

1.2 逻辑回归与线性回归的区别

  1. 模型的差别
    在输出上,逻辑回归在线性回归的基础上添加了一个sigmoid函数,使得其输出值处于0和1之间。而线性回归的输出可以为任何数值。

  2. 判断模型参数好坏方法的区别
    在逻辑回归中,通常使用极大似然估计来判断概率分布的好坏。当计算出的概率值越大,所使用的参数就越好。所以需要找出使 L ( w , b ) L(w,b) L(w,b)的值最大的 w ∗ w^{*} w, b ∗ b^{*} b

    L ( w , b ) L(w,b) L(w,b)的计算过程如下:

    所以可以看出,逻辑回归在损失函数的定义上是用极大似然估计法得到最终的交叉熵表达式。其中,两点分布的交叉熵为: H ( p , q ) = − ∑ x p ( x ) l n ( q ( x ) ) H(p,q)=-\sum_{x}^{} p(x)ln(q(x)) H(p,q)=xp(x)ln(q(x))。其代表两个distribution的接近程度。如果两个distribution一样,则其交叉熵为0。但是线性回归则是使用最小二乘法使均方误差最小化。

  3. 优化过程
    逻辑回归的优化和线性回归一致,都是使用梯度下降法来进行参数的更新,从而找到最优的 w w w b b b。并且他们的更新公式也是相同的。梯度下降法更新参数的过程如下。

  4. 逻辑回归在损失函数的定义上不能使用最小二乘法。如下图所示,如果预测的结果完全正确或者完全错误,都会导致其微分值为0。

    在下图中,黑色的图像表示cross entropy定义的损失函数,红色的图像代表square error定义的损失函数。可以看出,当图像距离目标值越远,cross entropy定义的函数的微分值越大,数据更新的就越快。而square error定义的损失函数在数据的更新上会比cross entropy慢很多。所以虽然square error也可以使用,但是会很卡,故推荐使用cross entropy定义的损失函数。

1.3 Generative model vs. Discriminative model

上周介绍的Probabilistic Generative Model被称为Generative model,而logistic regression被称为Discriminative model。对于 Discriminative model,需要找到最优的 w w w b b b,而Generative model则需找到最优的 μ 1 \mu _{1} μ1 μ 2 \mu _{2} μ2和协方差矩阵。

在宝可梦属性预测案例中,Discriminative model的预测效果比Generative model要好一些。

一般来说,Discriminative model的准确率要比Generative model好一些。假设Generative model里,feature相互独立且采用naive bayes,如下图所示。

在该例中,虽然测试集的数据属于class 1,但是Generative model得到的结果却是class 2,计算过程如下图。

但是,并不是所有情况下,Discriminative model都比Generative model好Generative model假设了数据的概率分布,使得在训练过程中需要更少的数据。这意味着生成模型可以在数据较少的情况下进行训练,并且能够更好地处理数据稀缺的情况。并且对输入数据中的噪声和变异更具鲁棒性。它们能够通过学习数据的分布来识别和消除噪声,从而提高模型的鲁棒性和泛化能力。生成模型能够从不同的信息源中估计先验概率和类相关的概率。这意味着可以利用多种信息来源,如先验知识、领域知识或外部数据,来提供更准确的模型估计和预测结果。

1.3 Multi-class Classification

对于多分类问题,以三个类别为例,处理过程如下图所示。

计算输出和 y ^ \hat{y} y^的交叉熵: − ∑ i = 1 3 y i ^ l n y i -\sum_{i=1}^{3} \hat{y_{i}}lny_{i} i=13yi^lnyi

1.4 逻辑回归的限制

如下图所示,该例中的feature分布不好划分,所以我们需要重新转化feature space,让Logistic Regression能够处理。


二、机器学习任务攻略

机器学习一般为三个步骤,如下图所示。

下面介绍机器学习的任务攻略,可以通过它得到较好的模型。

2.1 较大的训练集损失函数

先检查该模型的损失函数在训练集上的表现,如果错误率较高,那可能存在model bias或者并没有optimization到最优值。

  1. model bias
    如果设计的model的function set较小,即能使loss降低的那个function并不在这个function set中,就会产生model bias。这种情况下的解决方法是,重新设计一个model,这个model要具有更大的弹性。可以通过输入更多的features,或者使用deep learning来增加弹性。
  2. optimization
    造成训练集有较大的loss的另外一种情况是优化问题。在梯度下降的过程中,只能找到local minima。即有些function,我们没有办法通过梯度下降法找到最小的loss值。
  3. 判断损失函数较大的原因
    可以通过比较不同的model,来判断是model bias还是optimization issue。如下图所示,有两个模型,一个是20层,一个是56层。坐标轴的横轴为参数更新的过程。随着参数的更新,两个模型的loss值也随之下降。但是56层的模型的loss值一直比20层的大。这种情况就是optimization issue。因为56层的model的弹性已经比20层的model要大了。并且这种情况也不是过拟合。因为过拟合表示模型在训练集上的精准度很高,而在测试集的精准度却很低。

2.2 较大的测试集损失函数

如果模型在训练集上表现良好,且在测试集上也表现良好,那该模型就是一个优秀的模型。但是如果在测试集上的loss值偏大,那么可能出现overfitting或者mismatch的情况。

  1. overfitting
    如下图所示,由于模型的弹性较大,虽然测试集的点全在曲线上,但是其他没有训练集做约束的地方,会产生freestyle,所以在测试集上的准确率反而会降低。

    解决过拟合问题的方法之一是增加训练集的数量。虽然model的弹性可能很大,但是有更多的训练集做约束,可以让这个model产生更少的freestyle,从而得到更加准确的模型。增加训练集的方法可以为data augmentation。以图片为例,可以将这个图片放大,缩小或者反转,就可以让一个数据变为三个数据,从而增大训练集。

    第二种解决方法是不要给这个model过大的弹性,给它一些限制。在设计这个model的过程中,得把握好弹性的度。一般给model限制的方法为五种,如下图所示。

    在模型越来越复杂的过程中,loss的值是先减小后增大的趋势,所以选择一个中庸的模型。

    如下图所示,在极端的情况下,可能产生一个function,这个function将训练集上资料记下来,故输出就是 y ^ \hat{y} y^,但是在测试集上的输出是随机的。所以在训练集和公开的测试集上mse比较低的model不一定是较好的,它在private的测试集上的精确度可能会很低。

    可以将训练集分成两份,一份为训练集,一份为验证集。在使用训练集训练模型后,再拿验证集去评估模型,根据评估的结果选择较好的训练集就可以避免上述情况。

    可以通过N-fold Cross Validation来分训练集和测试集。将训练集分为N等分,拿其中一份当作验证集,其他的全部当成训练集。重复上述过程N次。然后将得到的结果计算平均值,选出最好的那个model。

    还有一种导致loss值增大的情况是mismatch。这种情况与模型的好坏无关。

三、局部最小值和鞍点

3.1 Critical Point

当对损失函数做梯度下降时,随着参数的更新,在训练集上的loss逐渐不再下降。这是因为这个地方的参数对loss的微分为0。即已经到达了一个Critical Point。Critical Point一般分为两类,分别是local minima和saddle point。

如果卡在了local minima中,那么参数的更新基本上就结束了。但是如果卡在了saddle point上,那么还可以更新参数降低loss的值。如何判断Critical Point是local minima还是saddle point?可以通过观察Tayler Series Approximation来得到答案。
如下图所示,损失函数 L ( θ ) L(\theta) L(θ)约等于下式。当更新参数到Critical Point时, g g g是一个0向量,故第二项绿色的式子的值为0。而红色的式子中, H H H为Hessian矩阵,该矩阵中存放的时对 L L L的二次微分的值。可以通过红色的这一项来判断 θ ′ {\theta}' θ附近的error surface的样子,并通过error surface来判断该Critical Point为local minima还是saddle point。

假设 θ − θ ′ = v \theta- {\theta}'=v θθ=v,对于所有的 v v v,判断 v T H v v^{T} Hv vTHv的值,如果大于0,根据Tayler Series Approximation,可以看出该点为local minima;如果小于0,可以看出该点为local maxima;如果有大于0的,也有小于0的,那么该点为saddle point。但是 v v v的值通常无法全部找出。还可以通过观察 H H H的特征值来判断。如果 H H H的特征值全为正,即该矩阵为正定矩阵,则该点是local minima。如果特征值全为负,该点为local maxima。如果该矩阵特征值有正有负,则该点为saddle point。

举例计算,如下图所示。

3.2 Don’t afraid of saddle point

如果Critical Point是saddle point,那么可以通过 H H H矩阵来判断更新的方向。我们这边假设 μ \mu μ是的 H H H的特征向量,然后λ是 H H H的特征值。另 θ − θ ′ = μ \theta- {\theta}'=\mu θθ=μ,则 θ = θ ′ + μ \theta= {\theta}'+\mu θ=θ+μ,而 θ \theta θ的方向就是更新参数的方向。

3.3 Saddle Point v.s. Local Minima

如果遇到的是local minima,那么后续将无法更新参数使loss的值变小。但是其实在实际情况中,在deep learning的训练是非常复杂的,可能维数会很高。而一个点在一维中可能是local minima,但是在多维中可能不是。所以local minima在实际并不常见,一般的Critical Point还是Saddle Point比较多。

如下图所示是训练某个network的结果。图像中的点是通过梯度下降法下降到Critical Point的结果。横坐标的值越大,代表越接近local minimal。虽然接近,但是很少有点是local minima。所以从经验来看,local minima并不常见,一般情况下的Critical Point都是saddle point,所以可以继续更新参数来降低loss值。

总结

本周的学习使我们对逻辑回归有了更深入的理解,同时了解了生成模型和判别模型的适用场景。我们还学习了解决多分类问题的方法,并认识到逻辑回归的一些限制。在机器学习任务中,我们需要仔细分析训练集和测试集上的损失值,以确定是否存在模型偏差、局部最小值、过拟合或数据不匹配等问题。在参数优化过程中,我们需要谨慎处理梯度下降过程中的鞍点和局部最小值情况。这些知识对于深入理解机器学习算法的应用和局限性非常有价值。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值