机器学习优化思路图

如下图,机器学习优化思路:

Loss on training data

        large

           在训练集中训练出来的Loss 之所以 Large 是有两个原因组成:

           1、model的偏差(model bias) -- 偏差b取值的问题

             如果model过于简单,如下图所示:

         对于含有未知参数的function,由于model简单,它所表示的function set 所覆盖的范围较小。

        如果真正最佳 参数function不没在function set里面,就会造成 最小化Loss 得到的参数是局部解。

        解决方法:将model复杂化(如上图所示),从而增加model 的function set 弹性(即覆盖范围)

        2、优化方式的选择(Optimization Issue)

        在model所表示的function set所覆盖足够的范围下,如果优化方式选择不恰当,就会造成去的局部最优解,而非全局最优解。如下图所示:

      3、model bias vs Optimization Issue

        当Loss on the training data  过大,如何判断是由model bias 还是由 Optimization Issue 引起的呢?

        判断方式的思路来源---如下图所示:

        看右图,对比model 20-layer 与 56-layer 在Training Data 的表现

        首先,model 56-layer 相比 20-layer来说,所表示的function set范围更大

        其次,既然20-layer model在 training data中可以是loss表现如此低

        那么,在training data中,56-layer的loss表现理应也可以表现的和20-layer一样好

        然而,据图显示,情况并非如此

        因此,可以得知,对于model 56-layer的loss 在training data 过大的原因---Optimization Issue

          判断方式---如下图所示:

        首先,对于我们从没做过的问题,我们可以先跑比较小的简单的network,甚至用一些不是deep learning的方法(Linear model、support vector machine(SVM))

        因为,上述简单的model是比较容易做Optimization,不会有Optimize失败的问题。所以,先用简单的model 确定他到底会得到怎样的loss

        其次,我们再采用一个深的model,如果发现深的model 和 浅的model比起来,明明深的model弹性(所表示的function set范围)更大,但loss却没有比浅的model压得更低

        最后,这就代表Optimization有问题

        那么遇到Optimization问题时,怎么解决呢?

        (后期会讲解)

      small--考虑Loss on the testing data

Loss on testing data

        Large

        关于Loss on testing data 过大,由两个因素组成:

       1、 overfitting

         overfitting的前提条件是Loss on training data is small,所以,这告诉我们在训练时,应记录下 training data loss,目的是排除 loss on training data 过大的问题出现

        如上图,对于如何解决overfitting的问题,

        最简单的方法1增加training data。

        比如,在图像识别时,我们可以Data augmentation,扩大training data,对图片进行左右翻转等操作。ps:但对于图片变形要遵循显示要求,比如,对于站在雪地上的猫,不应倒立放置。

         方法2:不让model有太大的弹性,给model增加限制,那样即使training data数量少,也能学习到正确的参数,得到恰当的model。

         那么,有哪些方法可以限制model呢?

               1、 给model少些参数(如果是deep learning的话,就给他少的神经元数目)

                or 让model共用参数(可以让一些参数有一样的数值,)eg:CNN 他就是针对影像的特性来限制模型的弹性

                2、Less features

                3、Early stopping

                4、Regularization

                5、Dropout

        注意:针对限制model,不应过火,会出现如下图所示情况:

        由于model被过于限制,导致所以训练的model的loss过大,这就不是overfitting问题,而是model bias 问题。

         那么,针对model复杂程度,Loss在training data的变化和在testing data的变化如下图所示:

 通过图可以看出,对于model复杂化,有个最佳点,可以是testing loss 最小化,且不会overfitting

  那么,如何找到这样合理的model呢?--- 构建Cross Validation

  我们将三个可能的models放入到Training data中训练出当前最佳的models

  再将此mdels 在cross validation data 中计算出相应的loss来

   最后,根据最小的loss选择合理的model

 那么,如何划分出Cross Validation呢?

我们可以先将training data切分成N等分,

在下图中,假设将其拆分成3等分

切完后,将其中一份当成Cross Validation,另外两份当成training data,这样就有三种情况

具体情况如下图:

根据Avg Loss on the Cross validation 选择合适的model(从多个可能的models中选择)

    2、   mismatch

              mismatch相当于overfitting,唯一的区别在于

              overfitting可以用收集更多的资料来克服问题

              mismatch则是因为当前的training data 和 testing data 他的特征不一样,

 

                

           

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值