L1,L2 正则化与过拟合问题

参考:http://blog.csdn.net/u012162613/article/details/44261657

在学习L1,L2正则化之前,首先应该了解过拟合的概念。

在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。随着训练过程,网络在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。

在机器学习算法中,我们常常将原始数据集分为三部分:training data、validation data,testing data。这个validation data是什么?它其实就是用 来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小、根据 validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?因为如果在testing data做这些,那么随着训练的进行,我们的网 络实际上就是在一点一点地overfitting我们的testing data,导致最后得到的testing accuracy没有任何参考意义。因此,training data的作用是计算梯 度更新权重,validation data如上所述,testing data则给出一个accuracy以判断网络的好坏。

避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。



猜你喜欢

转载自blog.csdn.net/Michelexie/article/details/77970444