Datawhale X 李宏毅苹果书 AI夏令营-深度学习入门班-task3-机器学习实践方法论

引入

在简单了解到机器学习的过程,以及模型函数的优化升级之后,我们需要根据一些方法论,解决模型实践过程中会遇到的问题,学会分析模型数据,按照正确的路径优化模型,减少测试误差(Testing Loss)

实践方法论

整体框架

下图是实践方法论的整体框架,下文会根据逻辑顺序一一介绍。

step1:检查训练数据的损失

从训练数据的损失上,我们可以看出模型选择的正确与否和参数确定的准确性。通俗来说,就是先确定模型的大方向是否正确,在确保正确的情况下再进行模型的训练。

训练数据损失大-----跳转step2:确定问题:模型偏差or优化问题

训练数据损失小-----跳转step3:计算测试数据的损失

注:检查数据时一定要先检查训练数据的损失,它是模型构建的基础,检查它才能够发现模型构建是否有问题。

step2:确定问题:模型偏差or优化问题

在训练数据损失大的情况下分析其导致因素,选取一个神经元层数更少的模型,对比其与测试模型损失大小。正常情况下,层数越多,损失越少。若损失数据正常,则证明是模型偏差,即没有找到最合适的模型函数,需要更改模型函数类型;若损失数据反常,则证明是优化问题,即在该模型函数中没有找到最小的损失值,是梯度下降(gradient descent)中的局部最小值问题。

注:不是所有在测试训练中,层数多反而损失大的情况都是过拟合(overfitting),只有在训练数据上的损失小且测试数据上的损失大的情况才是过拟合。

上图所示数据显示,该问题为优化问题,未找到函数中的最小损失。注意其不是过拟合现象,因其在训练数据上的损失也比其层数低的函数大。

  • 模型偏差(model bias)

选取更复杂的模型,使模型函数与训练数据贴合度更高。

  • 优化问题

选取其他计算方法,重新计算在最小损失下的超参数。

step3:计算测试数据的损失

在训练数据损失大的情况下进一步分析测试数据损失,检查其预测能力。

测试数据损失大-----step4:确定问题:过拟合or不匹配

测试数据损失小-----模型测试成功

step4:确定问题:过拟合or不匹配

  • 过拟合

为什么会出现过拟合?

通常有以下几点原因:

1、模型过分得关注训练数据的细节,导致其在新的测试数据中的泛化能力较差。

2、提供训练数据较少,在没有训练模型数据的部分,模型函数的灵活性很大,使其与测试数据之间产生较大的损失。如图:

如何处理过拟合问题?

1、增加训练集:提供给模型更多的训练数据,使其能够“自由发挥”的空间减少。

2、做数据增强(data augmentation):根据自己对问题的理解创造出新的数据,相较于上一方法更为快捷,不需要收取更多信息,但在创造数据时需要符合逻辑。

3、增加模型限制:同样是限制模型的灵活性,但需要找对限制的函数类型,不然可能会弄巧成拙,产生模型偏差问题。这其中有以下方式实现:

①减少参数:我们目前使用的是全连接网络(fully-connected network),具有较强的灵活性,与此对应的卷积神经网络(Convolutional Neural Network,CNN),是一个有限制的架构。

②减少特征:适当减少天数等特征的带入会改善过拟合问题。

③其他方法:如早停(early stopping)正则化(regularization)丢弃法(dropout method)

随着模型越来越复杂,测试数据的损失会在达到一定复杂度时开始暴增,出现过拟合问题。如下图:

那么如何找到一个中间的损失最少的模型函数,成为了问题的焦点。

思路一

取训练集中的模型,在公开测试集中跑一遍,认为损失最小的模型函数就是最好的。

注:这种方法具有极大的随机性,有可能在私人测试集中出现损失较大的情况,不建议此方法。

思路二

采用交叉验证的方法,将训练集分为两部分,分别为训练集(training set)验证集(validation set),在训练集上训练出模型,再使用验证集来衡量它们的分数,根据验证集上面的分数去挑选结果。因为是用验证集来挑模型,所以公开测试集分数就可以反映私人测试集的分数。但如果根据公开测试集去调整模型太多次,就会使公开测试集中的损失小于私人测试集的数据。

验证集的分法也有一定的技巧,可以采用k 折交叉验证(k-foldcross validation)的方法分出验证集,将每个模型在k个验证集中都跑一遍,分别求平均值,找到最好的结果。具体如下图:

  • 不匹配

不匹配(mismatch)是指训练集与测试集分布不同而产生的损失,这种情况是增加数据集没有办法改善的。

小结

通过本章的学习,有明确的优化模型步骤,能够基本搭建起机器学习模型创建的实践方法架构,能够处理一些简单的模型损失过大的情况。

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值