机器学习标准化化输入笔记

归一化输入

在训练神经网络中,一个加速训练的方法就是标准化输入,标准化输入总共需要两个步骤:

  1. 零均值化,过程如下:
    μ = 1 m ∑ i = 1 m x ( i ) \mu = \frac{1}{m}\sum_{i=1}{m}x^{(i)} μ=m1i=1mx(i)
    x = x − μ x=x-\mu x=xμ
    此时样本的均值为0。
  2. 归一化方差,公式如下
    σ 2 = 1 m ∑ i = 1 m x ( i ) ∗ ∗ 2 \sigma ^ {2} = \frac{1}{m}\sum_{i=1}{m}x^{(i)}**2 σ2=m1i=1mx(i)2
    x / = σ x/=\sigma x/=σ
    假设当前样本为二位的输入,如下图:
    在这里插入图片描述
    样本经过零均值化后,样本在两个坐标轴的均值都为0,变为下图所示:
    在这里插入图片描述
    再经过归一化方差后,样本的两个维度的方差都变为了1,两个特征的离散程度相同,变为如下所示:
    在这里插入图片描述

为什么进行标准化输入

对于代价函数J来说,如果使用非标准化的数据,代价函数如下所示:
在这里插入图片描述
在这里插入图片描述
平面图如下:
在这里插入图片描述
而使用标准化的数据,代价函数如下:
在这里插入图片描述
平面图如下:
在这里插入图片描述
很明显,在标准化的代价函数上运行梯度下降会比非标准化数据的代价函数上简单,快速,因为标准的无论初始点在哪里,都能很快的找到代价函数最小值,而非标准的在不同起始点学习速率可能需要设置不同值。

何时使用

在输入特征范围相近时,比如x1取值[0, 1],x2区值[-1,1],此时不使用标准化同样表现得很好。而对于x1取值[0, 1],x2区值[1,1000],使用标准化能加速神经网络训练。通常无论数据特征取值范围是否相似,都可以直接做一个标准化,不一定要有用,但是肯定不会有坏处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值