前言

在学习了Logistic回归算法之后,接下来我们将讨论一个问题——过拟合。即当拟合程度超过了我们的需要,而使训练集与测试集偏差较大的情况。本课程是笔记是笔者自学吴恩达教授的机器学习课程课程的感想和对重要知识点的归纳。这部分课程将介绍什么是过拟合以及利用一种叫正则化的技术,来尽量避免过拟合现象的发生。

欠拟合与过拟合

定义

image-20210112182001691

在对训练集的拟合过程中,往往会出现两种偏差。一种即拟合不精准,用低次假设函数拟合高次训练集,而导致偏差,成为欠拟合,如图最左。一种即拟合过度,用高次假设函数拟合低次训练集,而导致偏差,称为过拟合,如图最右。在过拟合的情况中,尽管假设函数可能完美符合训练集的数据,但其波动过大有高方差,并不是一个好模型。吴教授所给的过拟合定义如下,供参考:

image-20210112182155694

当然除了回归问题,分类问题也存在欠拟合和过拟合的情况,如下所示:

image-20210112182339390

插一句题外话,在看到这里时,弹幕飘过一句:“直男、暖男、舔狗的区别。”哈哈哈哈哈实在是太生动了。弹幕一下被全炸出来了,满屏飘过“6666”。在b站学习真的是快乐。

image-20210112182820472

过拟合的解决办法

过拟合的实质就是参数设定过多,而训练集的数量太少,导致拟合过度。故我们可以采用以下两个方法:

1、减少参数的量。具体做法包括1)人工检查并选定哪些特征量被留存;2)利用模型选择算法。缺点是在舍去参数的同时,舍去的还有训练集的信息和特征向量。

2、正则化。具体做法是保留所有的特征向量,但是减少量级或参数θj的大小。当我们有很多参数来影响预测时,这么做将非常好,因为这保证了每个参数都能对结果施加一定的影响。

正则化

image-20210112203522846

如上图所示,我们如何使θ3、θ4两参数能取一个较小的值呢?我们需要在代价函数上下功夫。我们在原代价函数的基础上,加上两项,分别为1000θ32和1000θ42(其中,1000只是一个较大数的代称)。这样操作,就可以使θ3、θ4取得一个较小的值,以使代价函数的值尽可能小。

正则化的核心思想就是将高次项参数值θh尽量变小(通过加惩罚项),以获得一个更简单的假设模型。通过这个操作,可以使部分对模型不产生较大影响的参数不被扩大影响,同时也克服了直接删去该参数而使其不能发挥影响(尽管这个影响很小)的问题。

当不知道参数影响的大小时,可以考虑对所有参数进行正则化处理,操作如下:

image-20210112204850898

其中,λ被称为正则化参数。它的存在有两个作用:第一,可以控制参数之间的关系,与第一项有关;第二,保持参数有一个较小的值,与正则化有关。总的说来,是为了控制两项的关系,在保证参数对模型有影响的情况下,防止过拟合。然而,λ过大时会导致欠拟合,这就要求为了是正则化起作用,我们应该选取一个合适的正则化参数λ。

具体的正则化

1、线性回归的正则化:

image-20210113012913555

2、Logistic回归的正则化:

image-20210113012704317

总结

学完本章内容,最基础的机器学习算法的学习可以告一段落了。接下来终于要开始神经网络的学习了。这里需要提醒自己的是,在课程中间一定要注意对数学方法和算法本身的学习,而非偏重应用。毕竟如果要搭建硬件神经网路需要的不是调用后应用,而是从原理层面通过硬件实现软件的算法。继续加油啦!

image-20210113013230141