【Datawhale X 李宏毅苹果书 AI夏令营】深度学习详解笔记 2

第 2 章 实践方法论

2.1 模型偏差

模型偏差(模型偏见):把一个模型可以描述的所有的函数集合起来可以得到一个函数的集合。但是该函数的集合太小了,可以让损失变更低的函数不在模型可以描述的范围内。在这种情况下,就算找出了一个最小化损失的,但损失还是不够低。

这个时候重新设计一个模型,给模型更大的灵活性。如果模型的灵活性不够大,可以增加更多特征,可以设一个更大的模型,可以用深度学习来增加模型的灵活性。

2.2 优化问题

一般只会用梯度下降进行优化,但这种优化的方法很多的问题。比如可能会卡在局部最小值的地方,无法找到一个真的可以让损失很低的参数。

找不到一个损失低的函数:(1)模型的灵活性不够(2)模型的灵活性已经够了,只是优化有问题

判断方法:比较不同的模型
Example:训练集上,20 层的网络损失其实是比较低的,56 层的网络损失是比较高的,这代表 56 层的网络的优化没有做好,它的优化不给力。

对于一个从来没有做过的问题,可以先跑一些比较小的、比较浅的网络,或甚至用一些非深度学习的方法,比如线性模型、支持向量机(Support Vector Machine,SVM)(SVM 可比较容易做优化,比较不会有优化失败的问题),即基线(baseline)算法,从而先知道这些简单的模型,到底可以得到什么样的损失。如果深的模型跟浅的模型比起来,深的模型明明灵活性比较大,但损失却没有办法比浅的模型压得更低,则代表说优化有问题。

2.3 过拟合

如果训练损失小,测试损失大,可能发生了过拟合。

随着模型越来越复杂,训练损失可以越来越低,但测试时,当模型越来越复杂的时候,刚开始,测试损失会跟著下降,但是当复杂的程度,超过某一个程度以后,测试损失就会突然暴增了。这就是因为当模型越来越复杂的时候,复杂到某一个程度,过拟合的情况就会出现。

原因:如果模型它的自由度很大,它可以产生非常奇怪的曲线,导致训练集上的结果好,但是测试集上的损失很大。

解决思路:

  1. 增加点限制曲线形状
  • 增加训练集。
  • 数据增强(data augmentation):根据问题的理解创造出新的数据,如图像识别中对图片左右翻转作为输入。要根据对数据的特性以及要处理的问题的理解,来选择合适的数据增强的方式。
  1. 限制模型本身的灵活性
  • 给模型比较少的参数。(图像识别多用CNN的原因)
  • 用比较少的特征。
  • 早停(early stopping)、正则化(regularization)和丢弃法(dropoutmethod)……
  • 但也不要给模型太多的限制,防止模型偏差。

Kaggle 测试集分成公开的数据集跟私人的数据集,公开的分数可以看到,私人的分数要截止日期以后才知道。如果根据公开数据集来选择模型,可能会出现这种情况:在公开的排行榜上面排前十,但是截止日期一结束,可能掉到 300 名之外。因为计算分数的时候,会同时考虑公开和私人的分数。这也是由于过拟合导致的。

2.4 交叉验证

比较合理选择模型的方法是把训练的数据分成两半,一部分称为训练集(training set),一部分是验证集(validation set)。比如 90% 的数据作为训练集,有 10% 的数据作为验证集。

在训练集上训练出来的模型会使用验证集来衡量它们的分数,根据验证集上面的分数去挑选结果,再把这个结果上传到 Kaggle 上面得到的公开分数。这样在挑分数的时候,是用验证集来挑模型,所以公开测试集分数就可以反映私人测试集的分数。
但假设这个循环做太多次,根据公开测试集上的结果调整模型太多次,就又有可能在公开测试集上面过拟合。理想上只用验证集即可,有比较好的基线算法以后,就不要再去动它了。

若随机分验证集,可能会分得不好。如果分到很奇怪的验证集,会导致结果很差。可以用 k 折交叉验证(k-foldcross validation) 解决这个问题。k 折交叉验证就是先把训练集切成 k 等份。取 k=3 ,训练集被切成 3 等份,切完以后,拿其中一份当作验证集,另外两份当训练集,这件事情要重复 3 次。即第 1 份第 2 份当训练,第 3 份当验证;第 1 份第 3 份当训练,第 2 份当验证;第 1 份当验证,第 2 份第 3 份当训练。然后对比评估模型的损失,选择偏差小的模型。

2.5 不匹配

不匹配是指训练集与测试集的数据分布不同,从而造成偏差。与过拟合不同,对训练集做数据增强并不能起到好的效果。发现与解决不匹配要看对数据本身的理解。

posted @   Coinred  阅读(14)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示

目录导航