为什么要进行归一化和标准化?
因为特征间的单位尺度可能不同,可能会导致计算结果也不同,尺度大的会起决定性作用,为了消除特征间的单位和尺度差异和影响,以对每维特征同等看待,需要对特征进行归一化操作。
因尺度差异,其损失函数的等高线可能是椭圆形,梯度方向垂直于等高线,下降会走zigzag路线,而不是指向local minimum,通过对特征进行平均值为0方差为1的变换后,其损失函数的等高线更接近圆形,梯度下降的方向震荡更小,收敛更快。
rescaling(min-max normalization, range scaling)
将每一维特征映射到[a,b],常用目标范围为[0,1]和[-1,1]
x
′
=
a
+
(
x
−
m
i
n
(
x
)
)
(
b
−
a
)
m
a
x
(
x
)
−
m
i
n
(
x
)
x' = a +\frac {(x-min(x))(b-a)}{max(x)-min(x)}
x′=a+max(x)−min(x)(x−min(x))(b−a)
mean normalization
均值为0
x
′
=
a
+
(
x
−
x
‾
)
m
a
x
(
x
)
−
m
i
n
(
x
)
x' = a +\frac {(x-\overline{x})}{max(x)-min(x)}
x′=a+max(x)−min(x)(x−x)
标准化
均值为0标准差为1
x
′
=
a
+
(
x
−
x
‾
)
σ
x' = a +\frac {(x-\overline{x})}{\sigma}
x′=a+σ(x−x)
正则化
高bias往往意味着欠拟合,高variance往往意味着过拟合。
(1)高bias我们可以用以下几种方法来改进
更复杂更大的网络结构(增加单元数,增加层数,更改结构)
训练更长的时间(增加迭代次数)
(2)高variance我们可以用正则化来解决
给损失函数加一个正则项(一般采用L2正则化),增加dw,减小w,使模型变得更简单,泛化能力更强。
J
‾
(
θ
;
X
,
y
)
=
J
(
θ
;
X
,
y
)
+
α
Ω
(
θ
)
\overline{J}(\theta;X,y)=J(\theta;X,y)+\alpha\Omega(\theta)
J(θ;X,y)=J(θ;X,y)+αΩ(θ)
L2正则化:
J
‾
(
θ
;
X
,
y
)
=
J
(
θ
;
X
,
y
)
+
α
1
2
∣
∣
w
∣
∣
2
2
\overline{J}(\theta;X,y)=J(\theta;X,y)+\alpha\frac{1}{2}||w||^2_2
J(θ;X,y)=J(θ;X,y)+α21∣∣w∣∣22
小结深度学习中的正则化(超详细分析)
例如:
dropout:随机丢弃神经元,不敢给任何神经元过大的参数。
(暂时性失活)
early-stoping:减少训练时间,见好就收
深度学习中的正则化(Regularization)