正则化方法
在机器学习和深度学习中,正则化的最大作用就是防止过拟合,提高模型的泛化性能,具体的方式就是在原来的损失函数中加入惩罚因子。
解决方式:
- 增加数据集
- 减少特征,留下重要的,具有普遍的特征
- 惩罚不重要的特征。
具体的一些实现方式
- 数据增强
- 正则化技术
- Dropout
- Early Stopping
正则化
L2正则化
L2 正则化就是在损失函数后面加上L2 正则化项:
λ
2
n
∑
i
=
1
n
w
i
2
\frac{\lambda}{2n}\sum_{i=1}^nw^2_i
2nλi=1∑nwi2
L2的正则化公式:
L
=
L
0
+
λ
2
n
∑
i
=
1
n
w
i
2
L = L_0 + \frac{\lambda}{2n}\sum_{i=1}^nw^2_i
L=L0+2nλi=1∑nwi2
其中
L
0
L_0
L0是原始损失函数,
λ
\lambda
λ是正则项系数,其中加入
1
2
\frac 12
21是为了便于求导简化。
最终得到权值的更新公式:
w
=
(
1
−
η
λ
n
)
w
−
η
∂
L
0
∂
w
w = (1 - \eta \frac\lambda n)w-\eta\frac{\partial L_0}{\partial w}
w=(1−ηnλ)w−η∂w∂L0
其中
η
,
λ
,
n
\eta,\lambda ,n
η,λ,n分别为学习率,正则系数,样本大小,均为正数,所以
w
w
w的系数是恒小于1的,
可以看出,L2正则化就是用来惩罚特征权值
w
w
w的,也就是所谓的 权值衰减。
更小的
w
w
w 作用在原来的模型函数上,相当于降低了模型的复杂度,所以可以防止过拟合。
L1正则化
L1正则化公式:
L
=
L
0
+
λ
n
∑
i
=
1
n
∣
w
i
∣
L = L_0 + \frac{\lambda}{n}\sum_{i=1}^n \left|w_i \right|
L=L0+nλi=1∑n∣wi∣
L1正则化的目的也是为了让权值趋于0,减少模型复杂度。
在实际应用中一般使用L2正则化,L1范式会产生稀疏解,具有一定特征选择能力,对求解高维特征空间比较有用
L1范式会产生稀疏解的理解:L1范式会产生稀疏解的理解
最大约束范式
本质 就是约束权值,对每个神经元的权重绝对值给予限制。实际操作就是先正常更新,然后进行限制公式如下:
∣
∣
w
‾
∣
∣
2
<
c
\left|\left|\overline w\right|\right|_2<c
∣∣w∣∣2<c
c一般取值为3或者4.这样即使学习率很大,也不会因为网络参数发生膨胀导致过拟合。