本篇为第二讲的学习笔记:类神经网络训练不起来怎么办(1),视频链接,slides。
机器学习任务攻略-如何更好得进行预测?
任务攻略

攻略详解
检查 loss on training data,看 model 在 training data 上有没有学起来。如果发现在 training data 上的 loss 很大,需要找 loss 大的原因。
model bias (上节课所学的内容)
model is too simple. 类似于大海捞针,针不在海里。model不好的话,无论怎么训练都得不到好的结果。
solution: 重新设计model,给予model更大的弹性。例如,可以增加输入的feature,如果前一天的信息不够多,可以用前一周的信息;也可以用deep learning 来增加更多的弹性。

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的问题。
- Gaining the insights from comparison
如果 loss on training data 小,但是 loss on testing data 大,可能遇到overfitting的问题
Overfitting
出现的原因,一个极端的例子:
Solution:
- 增加训练集
- Data augmentation,用一些对于问题的理解创建资料,例如左右翻转,裁剪等等。
- 增加一些限制,例如限制为二次曲线。CNN会给定比较多的限制。但是限制多会产生model bias。需要做好 Bias-Complexity Trade-off
- Less parameters, sharing parameters。比较少的参数,让一些变量共用参数。
- Less features
- Early stopping
- Regularization
- Dropout