马春杰杰 Exit Reader Mode

[mcj]正则化怎么防止过拟合?为什么会发生过拟合?不讲公式只讲原理!

我们知道,当数据量较小的时候,比较容易产生过拟合,为了防止这种情况的发生,我们一般是有两种思路,一种是随时观察验证集的性能,当性能停止提高的时候,我们就人为的停止训练。另一种是加入正则化方法。

当出现过拟合的时候,往往拟合函数的系数会非常大,因为这个拟合函数要顾及所有的点,这就导致拟合函数往往没有那么的“平滑”,如下图:

由于产生了过拟合,所以拟合曲线变得非常的“陡峭”,只有这样才能更好的顾及到每一个点,但这很明显不是我们想要的,我们只想要知道哪个是黑天鹅,哪个是白天鹅,不管哪种天鹅,我们知道都是天鹅,但一旦过拟合了,机器就会认为黑天鹅和白天鹅是两个物种!

为了防止这种情况的发生,就需要增加正则化机制。简单来说就是,由于过拟合导致拟合函数的系数会非常大,从图中也可以看出,在很小的范围内,导数非常大,这时我们加入正则化,相当于一种惩罚机制,当导数非常大的时候就对其进行惩罚,在一定程度上减少过拟合的情况发生。