减少过拟合的方法—正则化及其原理

  成本函数J(w,b)=((1/m)\sumL(y_hati,yi))+(\lambda/2m)||w||_{2}^{2},其中\lambda是正则化参数,||w||_{2}^{2}是w平方的范数即欧几里得范数的平方,其中||w||_{2}^{2}等于wj(j值从1到n)平方的和。此方法称为L2正则化。对于b也可以这样操作,但是w通常是高维向量,已经可以表达高偏差问题,而b只是单个参数,w中包含了很多参数,如果加了b,也没有什么太大影响。

  使用验证集来配置正则化参数\lambda,尝试各种数据,来寻找最好的参数。

造成过拟合的原因一个是权重矩阵W中的值太大了,一个是W中的值太多了即神经网络节点的个数太多了。解决办法就是要么将W值变小,要么将节点个数变少。这样做的后果就是使得神经网络更加接近线性,这样就会在过拟合和欠拟合之间取得一个合适的情况即适度拟合。

还有一种减少过拟合的正则化方法叫做dropout(随机失活):对于每一个样本,首先复制整个神经网络,接着遍历每一层,并设置消除神经网络节点的概率,之后再根据概率来消除一些节点以及与之相连的线,这样就可以得到一个节点更少、规模更小的网络。就可以对这个网络进行常规计算了。

实现随机失活的方法是反向随机失活,即将简化过后的激活函数a等于a除以每个节点保留下来的概率,不同层的概率不同,同一层的概率相同。这样就会保持a的期望值不变。

在测试阶段,不使用随机失活,这是由于在反向随机失活中a除以了每个节点保留下来的概率,这样就会记住该层的特征。

神经网络要做的就是减少J,因此我们在选择工具来优化J时,只要关注w和b使得J(w,b)更小即可,然后预防过拟合还有其他任务即换句话说就是减少方差,这一步就使用另一套工具来实现。这种思想叫做“正交化”,就是在一个时间做一个任务。

猜你喜欢

转载自blog.csdn.net/qq_26593465/article/details/81128684
今日推荐