防止过拟合的一些方法
L1 loss
- 在loss function中添加模型权重参数的绝对值和,用超参数
α
α
调节L1 loss在整体loss function中占的比例。
Lnew=Lold+α∑|w| L n e w = L o l d + α ∑ | w |
L2 loss
- 在loss function中添加模型权重参数的平方和,用超参数
β
β
调节L2 loss在整体loss function中占的比例。
Lnew=Lold+β∑∥w∥2 L n e w = L o l d + β ∑ ‖ w ‖ 2
early stopping
- 当验证集的误差不再下降时,停止训练,防止过拟合。
数据增强
- 使用一些数据增强的方法(resize,crop,warp….),增加数据量,增加模型训练结果的泛化能力
dropout
- 在神经网络训练中,随机抑制特定网络层的一些神经元,相当于引入随机性,这可以增加系统的鲁棒性。
集成方法
- 在机器学习中常用,将不同的模型进行融合,bagging,boosting等方法。
batch normalization
- 这个操作主要是为了使所有数据的分布都是
N(0,1)
N
(
0
,
1
)
分布的,减少了
Internal convariate shift
,可以加快训练过程;但是这种方法会导致网络学到的特征被破坏,因此在BN中,又通过学习的方法引入两个参数,对归一化的数据进行变换,得到最终的输出。具体的公式变换如下
μB=1m∑i=1mxiσ2B=1m∑i=1m(xi−μB)2x^i=xi−μBσ2B+ε√yi=γx^i+β=BNγ,β(xi)
μ
B
=
1
m
∑
i
=
1
m
x
i
σ
B
2
=
1
m
∑
i
=
1
m
(
x
i
−
μ
B
)
2
x
^
i
=
x
i
−
μ
B
σ
B
2
+
ε
y
i
=
γ
x
^
i
+
β
=
B
N
γ
,
β
(
x
i
)