深度学习——L0、L1及L2范数
在深度学习中,监督类学习问题其实就是在规则化参数同时最⼩化误差。最⼩化误差⽬的是让模型拟合训练数据,⽽规则化参数的⽬的是防⽌模型过分拟合训练数据。
参数太多,会导致模型复杂度上升,容易过拟合,也就是训练误差⼩,测试误差⼤。因此,我们需要保证模型⾜够简单,并在此基础上训练误差⼩,这样训练得到的参数才能保证测试误差也⼩,⽽模型简单就是通过规则函数来实现的。规则化项可以是模型参数向量的范数。如:L0、L1、L2等。
⼀、L0范数与L1范数
L0范数是指向量中⾮0的元素的个数。如果我们⽤L0范数来规则化⼀个参数矩阵W的话,就是希望W的⼤部分元素都是0。换句话说,让参数W是稀疏的。
L1范数是指向量中各个元素绝对值之和。L1范数是L0范数的最优凸近似。任何的规则化算⼦,如果他在Wi=0的地⽅不可微,并且可以分解为⼀个“求和”的形式,那么这个规则化算⼦就可以实现稀疏。W的L1范数是绝对值,|w|在w=0处是不可微。
虽然L0可以实现稀疏,但是实际中会使⽤L1取代L0。因为L0范数很难优化求解,L1范数是L0范数的最优凸近似,它⽐L0范数要容易优化求解。
⼆、L2范数
L2范数,⼜叫“岭回归”(Ridge Regression)、“权值衰减”(weight decay)。这⽤的很多吧,它的作⽤是改善过拟合。过拟合是:模型训练时候的误差很⼩,但是测试误差很⼤,也就是说模型复杂到可以拟合到所有训练数据,但在预测新的数据的时候,结果很差。
L2范数是指向量中各元素的平⽅和然后开根。我们让L2范数的规则项||W||2最⼩,可以使得W的每个元素都很⼩,都接近于0。⽽越⼩的参数说明模型越简单,越简单的模型则越不容易产⽣过拟合现象。
三、L1范数和L2范数的差别
⼀个是绝对值最⼩,⼀个是平⽅最⼩:
L1会趋向于产⽣少量的特征,⽽其他的特征都是0,⽽L2会选择更多的特征,这些特征都会接近于0。cs231n中的解释:
L1背后的含义是:它通常更加喜欢稀疏解⼀些,它倾向于让你的⼤部分W元素接近0,少量元素可以除外,它们可以被允许偏离0,L1度量复杂度的⽅式有可能是⾮零元素的个数。
⽽L2更多考虑的是W整体分布,所有的元素具有较⼩的复杂性。