在 数学与计算机科学 中,尤其是在机器学习和逆问题领域中,正则化(regularization)是指为解决 适定性问题
或 过拟合
而加入额外信息的过程。1
先来从损失函数的角度引入,机器学习训练的过程,就是要找到一个足够好的函数 F∗ 用以在新的数据上进行推理。而为了定义这个好,我们引入了损失函数的概念。一般的,对于样本 (x,y) 和模型 F,有预测值 y^=F(x)。而损失函数是定义在 R×R→R 上的二元函数 ℓ(y,y^),用来描述 Ground Truth 和预测值之间的差距。一般来说,损失函数是一个有下确界的函数;当预测值和 Ground Truth 足够接近,损失函数的值也会接经该下确界。
当然,这里的损失函数是一种一般的描述,根据任务的不同,其函数也不同。
因此,机器学习训练的过程可以转化为训练集 D 上的最小化问题。我们的目标是在参数空间 (泛函空间) 内,找到使得全局损失 L(F)=i∈D∑ℓ(yi,y^i) 最小的模型 F∗。
F∗:=FargminL(F).
但是损失函数只考虑在训练集上的经验风险2,这种做法可能会导致过拟合 (overfitting)。为了对抗过拟合,我们需要向损失函数中加入描述模型复杂度的正则项 Ω(F),将经验风险最小化转化为结构风险最小化。
F∗:=FargminObj(F)=Fargmin(L(F)+γΩ(F)),γ>0.
其中,Obj(F) 称为目标函数,它描述模型的结构风险;L(F) 是训练集上的损失函数;Ω(F) 是正则项,它描述模型的复杂程度;γ 是用于控制正则项 重要程度的参数。正则项通常包括对光滑度及向量空间内范数上界的限制。
在另一章 极大似然估计 中提到过似然函数,其实就是一种经验风险。我们无法确切知道算法在实际中的运行情况(真正的 “ 风险 “),因为我们不知道算法将在何种分布上的数据运行,但借助经验风险最小化,我们可以在一组已知的训练数据(” 经验 “ 风险)上衡量其性能。
Lp 正则项
所谓范数便是长度的抽象的说法,通常满足三种性质:非负性
,齐次性
,三角不等式
。
从函数的观点来说,函数是定义在 Rn→R 的函数;它和损失函数类似,也有明确的下确界。
一个 Lp 范式可以被定义为:
∥x∥p=pΣi∣xi∣p
L0 和 L1 正则项
机器学习模型中的参数,可以形式化的表示为参数向量,记为 w。不失一般性,以线性模型为例:
F(x;ω):=ω⊤⋅x=i=1∑nωi⋅xi
在一般的线性模型中有偏置项 (Bias),其实可以使用下面方法,将 Bias 视为某种 w
w⊤x+b⇕[wb]⊤⋅[x1]⇔w⊤x另外,实际上正则不会影响偏置项
由于训练集 D 中统计噪声的存在,冗余的特征可能成为过拟合的一种来源。这是因为,对于统计噪声,模型无法从有效特征当中提取信息进行拟合,故而会转向冗余特征。为了对抗此类过拟合现象,人们希望 让尽可能多的 wi 为零。为此,最直观的,引入 L0- 正则项。
Ω(F(x;ω)):=γ0n∥ω∥0,γ0>0
严格来说 L0 并不是一个范数。前面我们提到范数是需要满足 齐次性
的,但是我们有 3:
∥λx∥0=∥x∥0,λ=0.另外根据 Lp 范数的定义,需要对 0 开根号,这是有问题的。所以可以称为 Pseudo-norm
4
所以一般我们使用的是
∥x∥0=♯(i∣xi=0)即,非零元素的个数
通过引入 L0- 正则项,人们实际上是向优化过程引入了一种 惩罚机制
:当优化算法希望增加模型复杂度(此处特指将原来为零的参数 wi 更新为非零的情形)以降低模型的经验风险(即降低全局损失)时,在结构风险上进行大小为 nγ0 的惩罚。于是,当增加模型复杂度在经验风险上的收益不足 nγ0 时,整个结构风险实际上会增大而非减小。因此优化算法会拒绝此类更新。
引入 L0- 正则项可以使模型参数稀疏化,以及使得模型易于解释。但是 L0 非连续
、非凸
、不可微
。
因此,我们转而考虑 L0- 范数的最紧凸放松——L1- 范数,令
Ω(F(x;ω)):=γ1n∥ω∥1,γ1>0L1 正则是在结构风险上进行大小为 nγ1∣ωi∣ 的惩罚,以达到稀疏化的目的。
L2 正则项
我们将 L2- 范数,作为 L2- 正则项。令
Ω(F(x;w)):=γ22n∥ω∥22,γ2>0
这里是 ∥ω∥22,而并非 ∥ω∥2
我们有目标函数
Obj(F)=L(F)+γ22n∥ω∥22