Keras深度学习:入门、实战与进阶
上QQ阅读APP看书,第一时间看更新

2.3.2 正则化的方法

当我们使用数据训练模型的时候,很重要的一点就是要在欠拟合和过拟合之间达到一个平衡。对于欠拟合问题,可以不断尝试各种合适的算法,优化算法中的参数调整,以及通过数据预处理等特征工程找到模型拟合效果最优化的结果。而当模型过拟合的情况发生时,可以通过添加更多的数据、模型加入提前终止条件、控制解释变量等手段降低模型的拟合能力,提高模型的泛化能力。

控制解释变量个数的方法有很多,例如变量选择(feature selection),即用filter或wrapper方法提取解释变量的最佳子集,或者进行变量构造(feature construction),即将原始变量进行某种映射或转换,如主成分方法和因子分析。变量选择的方法是比较“硬”的方法,变量要么进入模型,要么不进入模型,只有0、1两种选择。但也有“软”的方法,也就是正则化,即可以保留全部解释变量,且每一个解释变量或多或少都对模型预测有些许影响,例如岭回归(ridge regression)和套索方法(Least Absolute Shrinkage and Selection Operator,LASSO)。

岭回归和LASSO回归是线性回归算法正则化的两种常用方法。两者的区别在于:引入正则化的形式不同。

岭回归是在模型的目标函数上添加L2正则化(也称为惩罚项),故岭回归模型的目标函数可以表示成:

054-1

LASSO回归采用了L1正则的惩罚项。LASSO是在目标函数Jβ)中增加参数绝对值和的正则项,如下所示:

054-2

Keras内置了regularizer_l1(l = 0.01)函数实现L1正则化;regularizer_l2(l = 0.01)函数实现L2正则化;regularizer_l1_l2(l1 = 0.01, l2 = 0.01)函数实现介于L1和L2之间的弹性网络正则化。