[Datawhale X 李宏毅苹果书 AI夏令营]跟李宏毅学深度学习(入门)笔记-task3

目录

0. task3任务:2. 机器学习框架&实践攻略

1.实践方法论

 1.1 模型偏差

1.2 优化问题

1.3 如何判断是模型偏差or优化问题

1.4 过拟合

1.5 交叉验证

 1.6 不匹配 mismatch

2. 实践思路整合(个人理解,有不对的地方欢迎留言指出)


0. task3任务:2. 机器学习框架&实践攻略

对应《深度学习详解》目录

第2章 实践方法论

2.1 模型偏差

2.2 优化问题

2.3 过拟合

2.4 交叉验证

2.5 不匹配

1.实践方法论

Training data :\left \{(x^{1},\hat{y}^{1}), (x^{2},\hat{y}^{2}),...,(x^{N},\hat{y}^{N}) \right \}

Training: step1 : function with unknown——y=f_{\theta }(x)

               step2 : define loss from training data——L(\theta )

               step3 : optimization——\theta =arg\textbf{min}L

Testing data : \left \{ x^{N+1},x^{N+2},...,x^{N+M} \right \}

Use y=f_{\theta^{*} }(x) to label the testing data ; \left \{ y^{N+1},y^{N+2},...,y^{N+M} \right \} to upload to Kaggle

优化思路:

 1.1 模型偏差

        在训练数据上误差大可能是:①模型偏差;②优化问题。

        模型太简单,损失低的函数能在这个设定模型里找到。

        对策:增加模型复杂度,如:增加输入的特征(用更长的时间建立模型)、deep learning

1.2 优化问题

        找到的θ不是最优解,损失不够低,但在所设模型内。

        

1.3 如何判断是模型偏差or优化问题

①先做较小的、浅层的网络,或非深度学习的方法,比较容易被成功优化的,得到损失值。比如:线性模型、支持向量机 SVM Support Vector Machine。

②再做深层的模型,使深的模型灵活性比前者大,得到损失值。

③比较两者的损失值,如果深的模型的损失不能比浅模型更低,即深的模型损失值更大,则说明是优化问题。换句话说,采用更深的层数时,如果损失值从下降迎来转折点上升,就是优化问题

模型偏差:在训练数据上误差大,深的模型的损失比浅模型更低,就是正常的模型偏差。

1.4 过拟合

在训练数据上损失小,在测试数据上损失大。

解决方法:

        ①最有效:增加训练资料(但在很多作业/比赛中用不了)

        ②数据增强 data augmentation :根据对问题的理解创造出新的合理的数据。比如:图像识别时,左右翻转,(但一般不会上下颠倒,这不合理)

         ③限制模型,减少灵活性:根据对问题的理解,做合理限制。比如:限制模型是二次曲线。

           (i)给模型更少的参数。a.深度学习时给模型更少的神经元数目; b.让模型公用参数(会在CNN里展开讲解)

                全连接网络 fully-connected network: 灵活性较大的架构。(之前讲的都属于这个)

                卷积神经网络 CNN Convolutional Neural Network :灵活性较低,有限制的架构,针对图像的特性来限制模型的灵活性。(浓缩的精华)

          (ii)更少的特征。(七天的周期数据减少到3天)

          (iii)早停 early stopping

          (ix)正则化 regularization

          (x)丢弃法 dropout

注意:①不能给太大的限制,而回到模型偏差问题。

           ②不要用公开测试数据拿到测试分数来判断一个模型的好坏,因为模型有可能出随机数绕开模拟(极端情况),最终可能会在私密测试数据中拿到较低分数。(这也是为什么paper上常有超越人类的例子,而实际并非如此)

1.5 交叉验证

把训练数据分成两部分,一部分训练集 training set ,一部分验证集 validation set。在验证集中拿到好结果后再上传到公开测试数据去测试。

理想上只关注验证集的分数去选择模型,尽量少关注公开测试数据的分数。如果过于关注公开测试数据,多次调整模型,可能会在公开测试数据上过拟合,导致在私密测试数据中拿到较低分数。

 k折交叉验证 k-fold cross validation : 把训练数据分成k等份,把其中一份做验证集,另外的做训练集,重复k次。

比如,当k=3时(采用三等分时):做三次测试,计算每个模型拿到的三次分数的平均值,选择平均值最好的模型。

 1.6 不匹配 mismatch

训练数据和测试数据有不同的分布,不能通过训练资料的增加来提高准确性。

如何判断:根据对数据的理解来判断。

2. 实践思路整合(个人理解,有不对的地方欢迎留言指出)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值