深度学习(实践方法论)#Datawhale X 李宏毅苹果书 AI夏令营

 今天的笔记有以下几个部分。

基本原则

在应用机器学习算法时,实践方法论能够帮助我们更好地训练模型。如果在Kaggle上的结果不太好,首先要检查训练数据的损失。模型在训练数据上是否学得好,再去看测试的结果。如果训练数据的损失很大,显然它在训练集上面也没有训练好。接下来再分析一下在训练集上面没有学好的原因。

模型偏差

模型偏差可能会影响模型训练。如果模型过于简单,可能无法包含任何一个可以让损失变低的函数。我们可以重新设计一个模型,给模型更大的灵活性,比如让模型具有更多特征,或者用深度学习来增加模型的灵活性。在此过程中可能会遇到另外一个问题:优化做得不好。

优化

优化问题通常使用梯度下降进行优化,但它可能会卡在局部最小值的地方。可以通过比较不同的模型来判断模型现在到底够不够大。对此,找一个从来没有做过的问题,可以先跑一些比较小的、比较浅的网络,或甚至用一些非深度学习的方法,比如线性模型、支持向量机,SVM可能是比较容易做优化的,它们比较不会有优化失败的问题如果是模型偏差,就把模型变大。假设经过努力可以让训练数据的损失变小,接下来可以来看测试数据损失;如果测试数据损失也小,比这个较强的基线模型还要小,就结束了

过拟合

过拟合是指模型在训练数据上表现很好,但在测试数据上表现不佳。解决过拟合的问题有两个可能的方向:增加训练集和给模型一些限制。可以通过数据增强、减少模型参数、使用正则化等方法来解决过拟合问题。其中,数据增强就是根据问题的理解创造出新的数据,而给模型一些限制就是让模型不要有过大的灵活性

至于给模型制造限制,可以给模型比较少的参数。如果是深度学习的话,就给它比较少的神经元的数量,减少神经元的数量,或者让模型共用参数,可以让一些参数有一样的数值。全连接网络其实是一个比较有灵活性的架构,而卷积神经网络是一个比较有限制的架构

其他方法:早停正则化丢弃法。

总之,要从中选择模型偏差最小的,找到最优的模型。

交叉验证

交叉验证是一种合理选择模型的方法。把训练的数据分成两半,一部分称为训练集,一部分是验证集。根据验证集上面的分数去挑选结果,再把这个结果上传到Kaggle上面得到的公开分数,然后用验证损失,直接挑最小的。可以用基线算法,但如果随机分验证集,可能会分到很奇怪的验证集,导致结果很差,至于担心的话,可以用 k 折交叉验证,找到最优。

不匹配

不匹配跟过拟合不同,大部分过拟合可以通过搜集更多的数据来克服,但不匹配是指训练集跟测试集的分布不同,训练集再增加其实也没有帮助。解决不匹配的问题需要有对数据本身的理解,也可能需要对训练集跟测试集的产生方式有一些理解,这样才能判断它是不是遇到了不匹配的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值