深度学习入门--标准化,归一化,零均值化

我们在训练模型之前,有一个可以加快训练速度的方法,那就是对训练数据集进行标准化处理。

为什么需要标准化

z-score标准化

假设数据集的每一个训练样本只有两个特征x1、x2,那么训练集:
X = [ x 1 ( 1 ) x 1 ( 2 ) . . . x 1 ( m ) x 2 ( 1 ) x 2 ( 2 ) . . . x 2 ( m ) ] X=\begin{bmatrix} x_{1}^{(1)} & x_{1}^{(2)} & ... & x_{1}^{(m)} \\ x_{2}^{(1)} & x_{2}^{(2)}& ... & x_{2}^{(m)} \end{bmatrix} X=[x1(1)x2(1)x1(2)x2(2)......x1(m)x2(m)]原始数据集

绘制出的图形如图所示,要对其进行标准化分为两步:

1、对训练集进行零均值化处理,顾名思义,也就是处理后的数据集的均值为零。
2、归一化方差。即使方差变为1。

#####分步讲解:
1、怎样来使均值变为0呢?首先我们需要算出数据集的平均值:

μ = ∑ i = 1 m ( X i ) \mu =\sum_{i=1}^{m}\left ( X^{i} \right ) μ=i=1m(Xi)

求得的均值是一个向量,这里的x1是所有训练样本x1的均值。x2同理:

μ = [ x 1 x 2 ] \mu =\begin{bmatrix}x_{1}\\ x_{2}\end{bmatrix} μ=[x1x2]

然后用数据集的每一项减去这个均值就可以使整个数据集的均值为0了。

X = X − μ X=X-\mu X=Xμ
所得X如下所示:
X = [ x 1 ( 1 ) − x 1 x 1 ( 2 ) − x 1 . . . x 1 ( m ) − x 1 x 2 ( 1 ) − x 2 x 2 ( 2 ) − x 2 . . . x 2 ( m ) − x 2 ] X=\begin{bmatrix} x_{1}^{(1)}-x_{1} & x_{1}^{(2)}-x_{1} & ... & x_{1}^{(m)}-x_{1} \\ x_{2}^{(1)}-x_{2} & x_{2}^{(2)}-x_{2}& ... & x_{2}^{(m)}-x_{2} \end{bmatrix} X=[x1(1)x1x2(1)x2x1(2)x1x2(2)x2......x1(m)x1x2(m)x2]去均值化后的数据集
2、要使方差为1,方差也就是数据偏离均值的程度,观察图(1)第二张图,这是经过零均值化处理后的数据集,现在x1和x2的均值都为0,我们看x1偏离原点(即均值)的程度是不是要大于x2。我们要对其处理以使x1、x2方差都为1。我们首先算出数据集的方差。然后用数据集除以方差即可。
σ 2 = 1 m ∑ i = 1 m ( X i ) 2 \sigma ^{2}=\frac{1}{m}\sum_{i=1}^{m}\left ( X^{i} \right )^{2} σ2=m1i=1m(Xi)2
X = X σ 2 X=\frac{X}{\sigma ^{2}} X=σ2X归一化方差后的数据集

####总结:
对数据集进行标准化处理,就是让数据集的均值为0,方差为1。把数据集映射到(-1,1)之间。
####总公式: X = X − μ σ 2 X=\frac{X-\mu }{\sigma ^{2}} X=σ2Xμ
除了z-score标准化还有另外的标准化、归一化形式,待更…标准化步骤

为什么标准化可以加快训练

图(2)
图(3)

reference:
1、吴恩达深度学习课程

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值