觉得有用的话,欢迎一起讨论相互学习~Follow Me

1.9 归一化Normaliation

训练神经网络,其中一个加速训练的方法就是归一化输入(normalize inputs).

假设我们有一个训练集,它有两个输入特征,所以输入特征x是二维的,这是数据集的散点图.

归一化输入需要两个步骤

第一步-零均值化

subtract out or to zero out the mean 计算出u即x(i)的均值

\[u=\frac{1}{m}\sum^{m}_{i=1}x^{(i)}\]

u是一个向量,\(x=x-u\)每个训练数据\(x\)都是\(x-u\)的新值

意思是移动训练集,直到它完成零均值化

第二步-归一化方差

如上图所示:特征x1的方差比特征x2的方差要大得多,我们要做的是给\(\sigma\)赋值.\(\sigma\)是一个方差,它的每个特征都是方差.其中\(\sigma^2=\frac{1}{m}\sum^{m}_{i=1}x^{(i)}\).元素\(x^{(i)}\)表示每个特征的方差.我们已经对数据完成了零均值化,现在只需要将所有数据都除以向量\(\sigma^{2}\)

经过方差的归一化,数据分布变为:

特征x1和特征x2的方差都等于1

注意:如果你要用它来调整数据,那么要用相同的\(u和\sigma^2\)来归一化测试集和训练集.这个数据集都是通过相同的\(u和\sigma定义的相同的数据转换\)其中\(u和\sigma都是通过训练数据集得来的\)

为什么要归一化输入特征

如果不使用归一化,则这是个非常细长狭窄的代价函数,你要找的代价函数的最小值点应该在这里.(如图中箭头标示)

但是特征值在不同的取值范围内,例如x1取值范围从1到1000,特征x2的取值范围从0到1,结果是参数w1和w2值的范围或者比率完全不同,这些数据轴应该是w1和w2,为了直观理解,我标记为w和b,该函数的轮廓十分狭窄.

如果使用了归一化方法,代价函数更加对称

如果在不使用归一化方法且特征分布十分不均匀的数据集上的代价函数上运行梯度下降法,必须使用一个非常小的学习比率,因为如果是在这个位置,梯度下降法可能需要更多次迭代过程.

直到最后找到最小值.

但是如果函数是经过归一化的特征分布,那么会是一个更圆的轮廓,那么无论从哪个位置开始,梯度下降法都能够更直接地找到最小值,并且可以使用较大步长,而不是需要以较小步长反复执行.

这只是一个二维特征的例子,实际上w是一个高维向量,因此用二维绘制w并不能正确的传达直观理解,但总的直观理解是代价函数会更圆一些,并且更加荣艺油画,前提是特征都在相似范围内,而不是从1到1000,0到1的差别很大的范围内,而是都在-1到1的范围内,或者相似偏差,这使得优化代价函数变的更简单更快捷.

实际上,如果特征x1范围在0~1之间,x2在-1~1之间,x3在1~2之间,它们是相似范围,所以会表现的很好,如果在不同的取值范围内,如其中一个从1到1000,另一个从0到1,这对优化算法十分不利,但是仅将它们设置为均化零值,假设方差为1,确保特征都在相似范围内,通常可以使算法运算得更快.

如果数据的不同特征值取值范围差异很大,那么归一化就很重要了,如果特征值处于相似范围,那么归一化就变得不那么重要了.

[DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.9_归一化normalization的更多相关文章

  1. [DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.10_1.12/梯度消失/梯度爆炸/权重初始化

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.10 梯度消失和梯度爆炸 当训练神经网络,尤其是深度神经网络时,经常会出现的问题是梯度消失或者梯度爆炸,也就是说当你训练深度网络时,导数或坡 ...

  2. deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面 听课笔记

    1. 应用机器学习是高度依赖迭代尝试的,不要指望一蹴而就,必须不断调参数看结果,根据结果再继续调参数. 2. 数据集分成训练集(training set).验证集(validation/develop ...

  3. deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面

    1. 应用机器学习是高度依赖迭代尝试的,不要指望一蹴而就,必须不断调参数看结果,根据结果再继续调参数. 2. 数据集分成训练集(training set).验证集(validation/develop ...

  4. [DeeplearningAI笔记]改善深层神经网络_优化算法2.3_2.5_带修正偏差的指数加权平均

    Optimization Algorithms优化算法 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.3 指数加权平均 举个例子,对于图中英国的温度数据计算移动平均值或者说是移动平均值( ...

  5. [DeeplearningAI笔记]改善深层神经网络_优化算法2.6_2.9Momentum/RMSprop/Adam优化算法

    Optimization Algorithms优化算法 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.6 动量梯度下降法(Momentum) 另一种成本函数优化算法,优化速度一般快于标准 ...

  6. [DeeplearningAI笔记]改善深层神经网络_优化算法2.1_2.2_mini-batch梯度下降法

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 mini-batch gradient descent mini-batch梯度下降法 我们将训练数据组合到一个大的矩阵中 \(X=\b ...

  7. [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...

  8. [DeeplearningAI笔记]改善深层神经网络1.4_1.8深度学习实用层面_正则化Regularization与改善过拟合

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 正则化(regularization) 如果你的神经网络出现了过拟合(训练集与验证集得到的结果方差较大),最先想到的方法就是正则化(re ...

  9. 改善深层神经网络_优化算法_mini-batch梯度下降、指数加权平均、动量梯度下降、RMSprop、Adam优化、学习率衰减

    1.mini-batch梯度下降 在前面学习向量化时,知道了可以将训练样本横向堆叠,形成一个输入矩阵和对应的输出矩阵: 当数据量不是太大时,这样做当然会充分利用向量化的优点,一次训练中就可以将所有训练 ...

随机推荐

  1. WebService服务(转)

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...

  2. 1c19b35b005744d55261682b361804fa 这个是MD5

    1c19b35b005744d55261682b361804fa   这个是MD51c19b35b005744d55261682b361804fa   这个是MD51c19b35b005744d552 ...

  3. webpack学习之路

    当自己在学习webpack的时候,在网上发现中文的很详细的教程很少,于是便想将自己学习webpack的笔记记录整理下来,便有了这篇文章,希望对大家有所帮助,如果有错误,欢迎大家指出. 在我们开始之前 ...

  4. codechef [snackdown2017 Onsite Final] AND Graph

    传送门 题解给出了一个很强势的dp: i<K $$dp[i][len]*Fib[len+2-(t[i]==1)] -> dp[i+1][len]$$ $$dp[i][len]*Fib[le ...

  5. LibreOJ β Round #2 E. 数论只会 GCD

    传送门 题解 题解里面说得很清楚了. 大约就是单独考虑每个数的贡献,然后看一下每个序列里有多少区间是没有这个数的,乘起来就好了. 为了处理修改我们需要每个值建一棵线段树来搞,但是窝zz了,写了线段树套 ...

  6. HDU 2438 Turn the corner(三分查找)

    托一个学弟的福,学了一下他的最简便三分写法,然后找了一道三分的题验证了下,AC了一题,写法确实方便,还是我太弱了,漫漫AC路!各路大神,以后你们有啥好的简便写法可以在博客下方留个言或私信我,谢谢了! ...

  7. [51nod1462]树据结构

    题面: 给一颗以1为根的树. 每个点有两个权值:vi, ti,一开始全部是零. Q次操作: 读入o, u, d o = 1 对u到根上所有点的vi += d  o = 2 对u到根上所有点的ti += ...

  8. chorme调试Paused in debugger问题解决

    最近出现的问题,使用chorme调试代码总是这个状态(Paused in debugger[debug的时候暂停了]): 一刷新就这样,非常的不舒服.当然你可以选择多按几次F8跳出,下面提供几种方式解 ...

  9. MVC编程实例----简易电子商务网站(一)

    一.总体概览.规划 本文将会创建一个基本的电子商务网站.由于电子商务网站的基本功能都是差不多的,此处省去了需求分析等工作,直接总结出结论.分为4个基本功能: 商品浏览 会员功能 购物车 订单结账 其中 ...

  10. 如何开发由Create-React-App 引导的应用(三)

    此文章是翻译How to develop apps bootstrapped with Create React App 官方文档 系列文章 如何开发由Create-React-App 引导的应用 如 ...