0%

李宏毅-机器学习课程-2.1

本篇为第二讲的学习笔记:类神经网络训练不起来怎么办(1),视频链接slides

机器学习任务攻略-如何更好得进行预测?

任务攻略

image-20220507130047612

攻略详解

  1. 检查 loss on training data,看 model 在 training data 上有没有学起来。如果发现在 training data 上的 loss 很大,需要找 loss 大的原因。

    • model bias (上节课所学的内容)

      • model is too simple. 类似于大海捞针,针不在海里。model不好的话,无论怎么训练都得不到好的结果。

      • solution: 重新设计model,给予model更大的弹性。例如,可以增加输入的feature,如果前一天的信息不够多,可以用前一周的信息;也可以用deep learning 来增加更多的弹性。

        image-20220507130047612
    • optimization

      • 例如 gradient descent 方法的不足,使得不能帮我们找到 loss 低的model。大海捞针,针在海里,但是我们并没有办法把它捞上来。
      • solution:More powerful optimization technology (next lecture)
    • 如何判断是因为 model bias 还是因为 optimization?

      • Gaining the insights from comparison
        • 建议先跑一些比较小的比较浅的network,甚至用一些不是deep learning的方法,比如说linear model,support vector machine。support vector machine 可能比较容易做optimize。
        • 如果深的model和浅的model比起来,明明弹性更大,但是在训练集上表现效果更差,则说明是optimization的问题。
  2. 如果 loss on training data 小,但是 loss on testing data 大,可能遇到overfitting的问题

    • Overfitting

      • 出现的原因,一个极端的例子:

        image-20220507130047612
      • Solution:

        • 增加训练集
        • Data augmentation,用一些对于问题的理解创建资料,例如左右翻转,裁剪等等。
        • 增加一些限制,例如限制为二次曲线。CNN会给定比较多的限制。但是限制多会产生model bias。需要做好 Bias-Complexity Trade-off
          • Less parameters, sharing parameters。比较少的参数,让一些变量共用参数。
          • Less features
          • Early stopping
          • Regularization
          • Dropout