斯坦福大学机器学习笔记(5)算法的评估与修改方向

课程官网
吴恩达老师机器学习课程笔记
斯坦福大学的课程视频

什么叫好效果?
好效果就是猜得准。
什么样的算法一般会有好效果?
特征够准,给的算法能做出合适的曲线,有足够庞大且各种情况完善的数据集。

接下来将重点关注的问题是 假如你在开发一个机器学习系统,或者想试着改进一个机器学习系统的性能,你应如何决定接下来应该选择哪条道路在接下来几节课中,我将先来介绍如何评价你的学习算法。在此之后,我将介绍一些诊断法,希望能让你更清楚。在接下来的尝试中,如何选择更有意义的方法。

  1. 收集更多原始数据【费时费力】
  2. 删减、提炼出更精确的特征,或者增加有用的特征,或者把两个特征相乘、平方
  3. 修改惩罚参数λ
  4. 修改隐藏层数量

我们不应该凭直觉选择上面的某种方法来改进我们的算法,而是运用一些机器学习诊断法来帮助我们知道上面哪些方法对我们的算法是有效的。

首先,当我们的神经网络有大量的必需的隐藏层,或者要计算的参数和特征很多时,我们才需要有与其相当的数据集去训练。【或者你确实已经训练好了某个神经网络,什么参数也不想再动了,只想增加数据然后让他精度高点,也可以】

评估系统

七三分

​ 为了检验算法是否过拟合,我们将数据分成训练集和测试集,通常用70%的数据作为训练集,用剩下30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,通常我们要对数据进行“洗牌”,然后再分成训练集和测试集。

请添加图片描述

六二二分

  1. 某个特征的分析的精细程度
    在这里插入图片描述
    使用60%的数据作为训练集,使用 20%的数据作为交叉验证集,使用20%的数据作为测试集
    模型选择的方法为:
  • 使用训练集训练出10个模型
  • 用10个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值) 【用同一个数据集 经过不同的模型计算代价函数的值 】
  • 选取代价函数值最小的模型
  • 用步骤3中选出的模型对测试集计算得出推广误差(代价函数的值)
    在这里插入图片描述
    一开始欠拟合,所以训练集和验证集的误差都很大,中途拟合得好,过拟合的时候训练集拟合得好,但是不适用于验证集。
  1. 惩罚参数的调节
    【所以,如果这个参数调节得好,上面小节的那个根本就不会欠拟合或者过拟合? 这可不行。。在做上面的实验的时候应该先去掉惩罚参数】

*

  • 使用训练集训练出12个不同程度正则化的模型
  • 用12个模型分别对交叉验证集计算的出交叉验证误差
  • 选择得出交叉验证误差最小的模型
  • 运用步骤3中选出模型对测试集计算得出推广误差
  • 我们也可以同时将训练集和交叉验证集模型的代价函数误差与λ的值绘制在一张图表上
    在这里插入图片描述
    λ值很小时,过拟合;λ值很大时,欠拟合。所以就是上面那个小节的图的左右翻转。
  1. 隐藏层层数
    同样的原理。自己试试

学习曲线

【数据集从0到一大堆时的误差曲线图】
在这里插入图片描述
这是欠拟合的图。如果数据只有两个,那用直线也能好好拟合,但验证集的两个数据自然误差就很大;当数据集很大,误差自然就稳定了。而且误差大得很。。

在这里插入图片描述
这是过拟合的学习曲线。在高方差/过拟合的情况下,增加更多数据到训练集可能可以提高算法效果。【我猜是因为只要数据量足够大,曲线足够精密,说不定验证集里的数据也真的会在曲线上。】但是这曲线的图我看不太动。。它会收敛到哪呢?

总之

​ 使用较小的神经网络,类似于参数较少的情况,容易导致高偏差和欠拟合,但计算代价较小使用较大的神经网络,类似于参数较多的情况,容易导致高方差和过拟合,虽然计算代价比较大,但是可以通过正则化手段来调整而更加适应数据。
​ 通常选择较复杂的神经网络并采用正则化处理会比采用较简易的神经网络效果要好。
一个是用惩罚函数压制自己的洪荒之力,另一个是无论数据是啥样都给你拟合成直线。你看,知道咋办了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值