文章目录
如何做的更好?
![image-20210311205104719](https://gitee.com/unclestrong/deep-learning21_note/raw/master/imgbed/image-20210311205104719.png)
如果在Kaggle上的结果不满意的话,第一件事情就是检查你的training data的loss。如果你发现你的模型在training data的loss很大,说明它在训练集上面也没有训练好,这边有两个可能的原因,第一个是model的bias。
Model bias
![image-20210311205956634](https://gitee.com/unclestrong/deep-learning21_note/raw/master/imgbed/image-20210311205956634.png)
问题原因:你的model太过简单,function的set太小了,这个function的set中没有包含任何一个function,可以让我们的loss变低,即可以让loss变低的function,不在你的model可以描述的范围内。
用个比喻来说:这就好像是我们想大海捞针,但针根本就不在海里,所以任何努力都是徒劳。
![image-20210311212242288](https://gitee.com/unclestrong/deep-learning21_note/raw/master/imgbed/image-20210311212242288.png)
解决方法:重新设计一个model,给你的model更大的弹性,举例来说,你可以增加你输入的features,也可以使用Deep Learning,增加网络的层数和复杂度。
但是并不是training的时候,loss大就代表一定是model bias,你可能会遇到另外一个问题,还有可能是optimization做得不好。
Optimization Issue
![image-20210311213108040](https://gitee.com/unclestrong/deep-learning21_note/raw/master/imgbed/image-20210311213108040.png)
问题原因:你可能会卡在local minima的地方,没有办法找到一个真的可以让loss很低的参数就停下了。
用个比喻来说:这就好像是我们想大海捞针,针确实在海里,但是我们却没有办法把针捞起来。
那么training data的loss不够低的时候,到底是model bias,还是optimization的问题呢?
一个建议判断的方法,就是你可以通过比较不同的模型,来得知你的model现在到底够不够大