• 向毕业妥协系列之机器学习笔记:监督学习-回归与分类(三)


    目录

    一.逻辑回归

    二.决策边界

    三. 逻辑回归的代价函数

    四.梯度下降

    五. 过拟合问题

    1.概念

    2.解决过拟合问题

    六.正则化

    1.概念

    2.用于线性回归的正则方法

    3.用于逻辑回归的正则方法


    一.逻辑回归

    在分类问题中,你要预测的变量y是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。

    在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;之前我们也谈到了肿瘤分类问题的例子,区别一个肿瘤是恶性的还是良性的。

    我们从二元的分类问题开始讨论。

    我们将因变量(dependent variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量 y属于(0,1),其中 0 表示负向类,1 表示正向类。

    如果我们要用线性回归算法来解决一个分类问题,对于分类, y取值为 0 或者1,但如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于0,即使所有训练样本的标签y都等于 0 或 1。尽管我们知道标签应该取值0 或者1,但是如果算法得到的值远大于1或者远小于0的话,就会感觉很奇怪。所以我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在0到 1 之间。

    顺便说一下,逻辑回归算法是分类算法,我们将它作为分类算法使用。有时候可能因为这个算法的名字中出现了“回归”使你感到困惑,但逻辑回归算法实际上是一种分类算法,它适用于标签y取值离散的情况,如:1 0 0 1。 

    对于分类问题的拟合的图像举例如下,看到左侧的拟合曲线,是不是有点像咱们在高数中学过的sigmoid函数(下图右侧)

    因为sigmoid函数的值域在(0.1)之间,所以可以认为模型的输出就是对于分类问题的的一个概率输出,例如输出0.7,那么说明该模型认为该病人肿瘤恶性的概率是70%,对于二元分类问题,两种可能加在一起的概率是1,公式里不一定传入wx+b,而是吴老师为了让我们更好的理解,引入一个直线到曲线的渐变过程。

    二.决策边界

    咱们现在来举一个例子,让f(x)=w1x+w2x+b,然后分别使参数值为1,1,-3

    很多情况下会取二元分类的阈值是0.5,高于或大于就会分出不同的预测情况,而概率函数值是分界阈值0.5的时候,就会有w1x+w2x+b=0,也就会有图中的推导,x1+x2=3,然后咱们把这条线在图中画出来,,可见可以把两类散列点隔开,当然如果你取另一个阈值,决策边界将是另一条线。

    下图是一个更为复杂的例子,非线性的决策边界 (该说不说,学了机器学习之后才能感觉到数学的魅力,可以用到很多而又不是特别深奥的数学推导)

     another example:

    分类就是根据处于决策边界外还是决策边界内来区分不同的类别。

    三. 逻辑回归的代价函数

     这个训练集有m个训练示例,每个训练示例有n个特征,然后逻辑回归模型由右侧的那个函数定义,然后我们来看一下如何进行参数w和b的选择

    上图最上面的新的成本函数就是 逻辑回归的成本函数,可以看到1/2不是在最外面了,而是在累加的每一项都要乘1/2。回想一下之前的线性回归,如果把这个式子带入逻辑回归模型当中,得到的函数图像如上图右下角所示,已经不是一个凸函数了,有很多局部最小值,这将影响梯度下降算法寻找全局最小值。

    最上面的蓝框里的部分是单个训练示例的损失函数,

    下面来看一看两种不同的分类情况对应的不同的损失函数

    综上所述我们就找到了适用于逻辑回归的成本函数,如下:

    简化逻辑回归的损失函数:

    红框处的式子就可以代替原来的分段函数的式子,因为y只能取0或1,所以自己带入0或1试试就知道了,很简单又很巧妙。

    进而简化逻辑回归的成本函数:

    带入之后把负号提出来了。

    四.梯度下降

     求完偏导之后和线性回归那里的梯度下降公式差不多,甚至说看起来是一样的,但是其实不一样,因为我们对f的定义已经更改,看下面的第二张图片,清晰地列出了线性回归和逻辑回归的公式之间的差别。

    注意图二的最底下的那个公式,负号应该在括号外面。

     之前学过的特征缩放和矢量化都可以用到这里哦!

    五. 过拟合问题

    1.概念

    到现在为止,我们已经学习了几种不同的学习算法,包括线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致它们效果很差。

    在这段视频中,我将为你解释什么是过度拟合问题,并且在此之后接下来的几个视频中,我们将谈论一种称为正则化(regularization)的技术,它可以改善或者减少过度拟合问题。

    如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(代价函数可能几乎为0),但是可能会不能推广到新的数据。

    回归和分类问题都存在过拟合的现象

    回归拟合的三种情况:

    左边那个图欠拟合且具有高偏差,而右边那个图过拟合且具有高方差,中间那个算是恰到好处。

    分类拟合的三种情况:

    从左到右也是上面说的那三种情况(可以看到过拟合时都是一个复杂的高阶多项式)。

    2.解决过拟合问题

    方法一:

    收集更多的训练数据。

     方法二:

    查看是否可以用更少的特征

    因为如果特征过多但是没有足够的训练集数据时,就会出现过度拟合训练集的现象。

    比如上面的概念里也提到了过拟合时多项式高阶且复杂,我们可以进行特征选择,选择一些主要的特征来进行构建模型,但是这有一个缺点,就是可能会丢失一些与构建模型相关的信息(因为了减少了特征)。

    方法三:

    正则化,下面会讲。

    六.正则化

    1.概念

    这个思想是将特征值缩小,而不是直接将特征扔了,是一种相对温和的方式,但是如果特征太多,比如现在有100个特征,那么我们通常很难提前决定哪个是比较重要的特征,所以需要一种正则化的方法。

    新的最小化成本函数由均方误差项和正则化项两部分组成,前一部分鼓励模型更好的拟合数据,并尝试最小化后一部分,并且算法还试图使参数wj保持较小,这将有助于减少过拟合。

    让我们看看lambda的不同值会导致这个算法做什么:

    • 当lambda=0时,即lambda很小的情况,我们没有使用正则化项,因为我们现在讲的是正则化的方法,所以我们没有舍弃任何特征,所以是在一种以正则化为前提的基础上讨论的,那么这就很容易导致过度拟合。
    • 当lambda=一个非常非常大的数的时候,即lambda很大的情况,比如10的10次方,那么此时为了保证最小化成本函数的唯一方法就是确保w非常小(接近于0),那么从上图看右下角那个公式的话,带x的项都接近于0,那么f的值就基本等于b,所以学习算法就会拟合出一条水平直线,并且欠拟合。

    所以这就需要我们选择一些合适的lambda值,使我们在保留所有特征的前提之下,还能够较好的拟合数据。这和alpha一样,都是需要我们自己去设定德一些参数。

    2.用于线性回归的正则方法

    首先我们的成本函数发生了改变,所以我们进行梯度下降得时候只需要根据新的成本函数的表达式再重新计算偏导即可。

    注意这些参数值要同步更新。

     将上面的wj的计算公式拆开简单变换一下,得到如下的公式,alpha通常是一个比较小的数字,假如是0.01,而lambda通常是一个不太大的正数,比如1或10,假如是1,又假如训练示例的个数m=50,那么变换之后的公示的前面那项的系数计算就是右侧那样,可以得到是0.9998,那么这个数字和wj相乘又有什么意义呢,意义就是每次迭代时缩小wj一点点。

    我们学会上面的方法之后,当你有很多特征和一个较小的训练集的时候,这应该可以让先行回归在许多问题上工作得更好。

    3.用于逻辑回归的正则方法

    上图得到了使用了正则化的逻辑回归的成本函数的公式

    然后我们像之前一样进行梯度下降即可

    第一课的week3的最后一个实验没有做,先不做了,因为我的初衷是为了毕业而学的机器学习,师姐(和我一个方向的)告诉我可能后面用不太到那么深,她当时也学了,学的比较浅,说留个印象就行了,哎,对于我这种强迫症患者(比较喜欢系统化学习)来说就稍微有点不太得劲,罢了,再学一段时间的ML,就开始论文与ML入门一起并行吧。

  • 相关阅读:
    excel高级绘图技巧100讲(二十四)-Excel绘制动态图表
    docker学习第二天
    本地生活商家如何通过短视频赛道,提升销量曝光量?
    MySQL事务
    找链表的交点
    (九)学习笔记:动手深度学习(多层感知机 + 代码实现)
    js数组按照id删除
    玩玩“小藤”开发者套件 Atlas 200I DK A2 之部署智能语音助手
    mybatis拦截器 打印完整sql日志,并存入数据库
    复试(服务器测试实习生)、一面
  • 原文地址:https://blog.csdn.net/weixin_44593822/article/details/127525399