过拟合
本文将从数学的角度解释为何会出现过拟合,以及防止过拟合的两种方法:正则化与截断svd法
重现列一下最小二范数的最小二乘问题:
从上文中我们可知,最小二乘问题的最小二范数解满足如下的形式:
这里我们将矩阵拆开,用奇异值对应项的和对该解进行表示,则有:
过拟合顾名思义,就是过度的拟合了数据的规律,因此拟合的函数在训练集上表现的很好,但是缺少泛化性,在测试集中的性能不好。我们现在来分析对于最小二范数的最小二乘问题来说,什么时候会出现过拟合呢:观察解的形式,当矩阵A存在非常小的奇异值时,y前面的系数就会变得非常大,而这样就会造成,当给y的数据有微小波动时,其对应的解x(也就对应着系数,最终对应的是拟合出来的函数)波动会非常大。这也就意味着一件事,当给定的训练集所对应的矩阵A中,存在非常小奇异值的时候,训练出来的函数泛化性是极差的,因为只要在测试集,y有轻微的波动,则测试集对应出的函数将会和训练集有非常巨大的差距。
截断奇异值分解
我们刚刚已经分析了在最小二范数的最小二乘问题中,过拟合出现的情况为当矩阵A存在非常小的特征值时。显而易见的思路是,直接将小的奇异值所对应的项删去。如下所示:
其中R‘是截断后所剩余的奇异值个数。截断svd通过分析问题的源头,解决了问题,但这样做也同样会牺牲拟合函数在训练集上的性能。那么此时解的形式为:
正则化
正则化也被称之为脊回归,我们直接采用了另一种回归方式重构了最小二乘问题如下:
其中是一个常量,人为进行定义。同最小二乘的思路一样,我们对上述目标函数的x求梯度,则得到如下的等式:
这里因为有单位矩阵I的存在,因此 是一定可逆的。所以我们的解可以表示为:
进一步的我们对A进行SVD分解,则解可以表示为:
至此我们可以清晰的看到为何正则化可以防止过拟合了。当奇异值远大于时
而当奇异值远小于 时:
而这就很大程度的避免了奇异值过小所导致的系统不稳定以及过拟合