首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BAT面试题12:机器学习为何要经常对数据做归一化?

维基百科给出的解释:1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度。下面我简单扩展解释下这两点。 1 归一化为什么能提高梯度下降法求解最优解的速度?...当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛; 而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。...因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。 ? 2 归一化有可能提高精度 一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。...如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。 3 归一化的类型 1)线性归一化 ?...3)非线性归一化 经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。

60020

机器学习中为什么需要对数据进行归一化?

当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛; 而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛...比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。 (1)某些模型求解需要   1)在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。...而如右图对两个特征进行了归一化,对应的等高线就会变圆,在梯度下降进行求解时能较快的收敛。 ? 椭圆等高线和圆形等高线 ?...2) 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。...学习率:由(2)中,知道梯度非常大,学习率就必须非常小,因此,学习率(学习率初始值)的选择需要参考输入的范围,不如直接将数据归一化,这样学习率就不必再根据数据范围作调整。

11.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文看懂常用的梯度下降算法

    采用数据量的不同,梯度下降算法又可以分为批量梯度下降算法(Batch Gradient Descent),随机梯度下降算法(Stochastic GradientDescent)和小批量梯度下降算法(Mini-batch...对于批量梯度下降算法,其 ? 是在整个训练集上计算的,如果数据集比较大,可能会面临内存不足问题,而且其收敛速度一般比较慢。随机梯度下降算法是另外一个极端, ?...小批量梯度下降算法是折中方案,选取训练集中一个小批量样本计算 ? ,这样可以保证训练过程更稳定,而且采用批量训练方法也可以利用矩阵计算的优势。这是目前最常用的梯度下降算法。...对于神经网络模型,借助于BP算法可以高效地计算梯度,从而实施梯度下降算法。但梯度下降算法一个老大难的问题是:不能保证全局收敛。如果这个问题解决了,深度学习的世界会和谐很多。...对于冲量梯度下降算法,其更新方程如下: ? 可以看到,参数更新时不仅考虑当前梯度值,而且加上了一个积累项(冲量),但多了一个超参 ? ,一般取接近1的值如0.9。

    2.1K100

    机器学习入门 6-5 梯度下降的向量化和数据标准化

    本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍梯度下降法的向量化,并引入对使用梯度下降法非常重要的数据归一化。...此时在使用梯度下降法求解线性回归的时候,向量化处理主要集中在求梯度的过程,相对应的就是前面使用for循环一项一项的把梯度求出来的部分。 ?...二 梯度下降与数据归一化 通过前一小节的分析,知道了数据中各个特征的数据规模不同,可能会导致计算的梯度值非常大,虽然可以通过将eta步长值设置非常小来缓解这种问题,但是相应的就必须要增加迭达次数,而增加迭达次数显然会非常耗时...同理,如果想要更好的解决梯度下降法中数据规模不同导致的收敛问题,同样可以使用数据归一化来处理。...对于正规方程来说,对矩阵进行非常多的乘法运算,所以当矩阵维度比较大的时候,正规方法相应的耗时就会更高。

    1.3K00

    一文搞定面试中的优化算法

    由此可见优化器对于深度学习来说是多么重要了,那么今天小编就带大家了解一些常见的优化器。...图 更新时的梯度变化 优点: 1、虽然看起来在更新过程中 的 波动非常大,会走很多弯路,但是对梯度的要求很低(计算梯度快),而且对于引入噪声,大量的理论和实践工作证明,只要噪声不是特别大...缺点: 1、不能保证很好的收敛性; - 每次仅使用数据集中的一部分进行梯度下降,所以每次下降并不是严格按照朝最小方向下降,只是总体下降趋势是朝着最小方向,极度容易陷于局部最小值。...1、 其实是对学习率进行了一个约束,对于经常更新的参数,我们已经积累了大量关于它的知识,不希望被单个样本影响太大,希望学习速率慢一些;对于偶尔更新的参数,我们了解的信息太少,希望能从每个偶然出现的样本身上多学一些...2、 等自适应学习率算法对于稀疏数据具有优势,且收敛速度很快;但精调参数的 往往能够取得更好的最终结果。

    79740

    【深度学习】一文搞定面试中的优化算法

    由此可见优化器对于深度学习来说是多么重要了,那么今天小编就带大家了解一些常见的优化器。...图 更新时的梯度变化 优点: 1、虽然看起来在更新过程中 的 波动非常大,会走很多弯路,但是对梯度的要求很低(计算梯度快),而且对于引入噪声,大量的理论和实践工作证明,只要噪声不是特别大...缺点: 1、不能保证很好的收敛性; - 每次仅使用数据集中的一部分进行梯度下降,所以每次下降并不是严格按照朝最小方向下降,只是总体下降趋势是朝着最小方向,极度容易陷于局部最小值。...1、 其实是对学习率进行了一个约束,对于经常更新的参数,我们已经积累了大量关于它的知识,不希望被单个样本影响太大,希望学习速率慢一些;对于偶尔更新的参数,我们了解的信息太少,希望能从每个偶然出现的样本身上多学一些...2、 等自适应学习率算法对于稀疏数据具有优势,且收敛速度很快;但精调参数的 往往能够取得更好的最终结果。

    37830

    【干货】机器学习最常用优化之一——梯度下降优化算法综述

    梯度下降算法是通过沿着目标函数J(θ)参数θ∈R的梯度(一阶导数)相反方向−∇θJ(θ)来不断更新模型参数来到达目标函数的极小值点(收敛),更新步长为η。...图1 SGD扰动 不过从另一个方面来看,随机梯度下降所带来的波动有个好处就是,对于类似盆地区域(即很多局部极小值点)那么这个波动的特点可能会使得优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点...相对于随机梯度下降,Mini-batch梯度下降降低了收敛波动性,即降低了参数更新的方差,使得更新更加稳定。相对于全量梯度下降,其提高了每次学习的速度。...现有的已经表明:SGD能够收敛于最小值点,但是相对于其他的SGD,它可能花费的时间更长,并且依赖于鲁棒的初始值以及学习速率退火调整策略,并且容易陷入局部极小值点,甚至鞍点。...并行与分布式SGD 如果你处理的数据集非常大,并且有机器集群可以利用,那么并行或分布式SGD是一个非常好的选择,因为可以大大地提高速度。SGD算法的本质决定其是串行的(step-by-step)。

    1.9K90

    【机器学习基础】 | 各种梯度下降优化算法回顾和总结

    基本策略可以理解为”在有限视距内寻找最快路径下山“,因此每走一步,参考当前位置最陡的方向(即梯度)进而迈出下一步,更形象的如下图: 标准的梯度下降主要有两个缺点: 训练速度慢:在应用于大型数据集中,每输入一个样本都要更新一次参数...,导致梯度下降的波动非常大(如下图),更容易从一个局部最优跳到另一个局部最优,准确度下降。...SGD的优点: 虽然看起来SGD波动非常大,会走很多弯路,但是对梯度的要求很低(计算梯度快),而且对于引入噪声,大量的理论和实践工作证明,只要噪声不是特别大,SGD都能很好地收敛。...)$ 的mini-batch数据样本计算其梯度,其参数更新公式如下: 小批量梯度下降法即保证了训练的速度,又能保证最后收敛的准确率,目前的SGD默认是小批量梯度下降算法。...对于稀疏数据,尽量使用学习率可自适应的优化方法,不用手动调节,而且最好采用默认值 SGD通常训练时间更长,但是在好的初始化和学习率调度方案的情况下,结果更可靠 如果在意更快的收敛,并且需要训练较深较复杂的网络时

    1.6K20

    【干货】深度学习必备:随机梯度下降(SGD)优化算法及可视化

    梯度下降算法是通过沿着目标函数J(θ)参数θ∈R的梯度(一阶导数)相反方向−∇θJ(θ)来不断更新模型参数来到达目标函数的极小值点(收敛),更新步长为η。...图1 SGD扰动 不过从另一个方面来看,随机梯度下降所带来的波动有个好处就是,对于类似盆地区域(即很多局部极小值点)那么这个波动的特点可能会使得优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点...相对于随机梯度下降,Mini-batch梯度下降降低了收敛波动性,即降低了参数更新的方差,使得更新更加稳定。相对于全量梯度下降,其提高了每次学习的速度。...现有的已经表明:SGD能够收敛于最小值点,但是相对于其他的SGD,它可能花费的时间更长,并且依赖于鲁棒的初始值以及学习速率退火调整策略,并且容易陷入局部极小值点,甚至鞍点。...并行与分布式SGD 如果你处理的数据集非常大,并且有机器集群可以利用,那么并行或分布式SGD是一个非常好的选择,因为可以大大地提高速度。SGD算法的本质决定其是串行的(step-by-step)。

    3.4K80

    深度|梯度下降优化算法综述

    最后,指出一些有利于梯度下降的策略。 梯度下降算法是通过沿着目标函数J(θ)参数θ∈R的梯度(一阶导数)相反方向−∇θJ(θ)来不断更新模型参数来到达目标函数的极小值点(收敛),更新步长为η。...图1 SGD扰动来源 不过从另一个方面来看,随机梯度下降所带来的波动有个好处就是,对于类似盆地区域(即很多局部极小值点)那么这个波动的特点可能会使得优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点...同时其缺点在于需要计算参数梯度序列平方和,并且学习速率趋势是不断衰减最终达到一个非常小的值。下文中的Adadelta便是用来解决该问题的。...现有的已经表明:SGD能够收敛于最小值点,但是相对于其他的SGD,它可能花费的时间更长,并且依赖于鲁棒的初始值以及学习速率退火调整策略,并且容易陷入局部极小值点,甚至鞍点。...并行与分布式SGD 如果你处理的数据集非常大,并且有机器集群可以利用,那么并行或分布式SGD是一个非常好的选择,因为可以大大地提高速度。SGD算法的本质决定其是串行的(step-by-step)。

    69160

    梯度下降法与优化算法

    在机器学习中,目标函数通常是模型预测值与实际值之间的差异(如均方误差或交叉熵)。梯度下降的核心思想是通过计算损失函数相对于参数的梯度(即偏导数),然后沿着梯度的反方向调整参数,直到找到最小的损失值。...1.1 梯度下降法的基本步骤每次迭代中,梯度下降算法都会通过梯度来更新模型参数,从而减少损失函数的值。2....梯度下降法的变种虽然基础的梯度下降法具有很好的理论性质,但在实际应用中,基础的梯度下降法存在一些缺点,如收敛速度慢和容易陷入局部最优解。...SGD的计算开销较小,更新速度较快,但它的梯度方向会有较大波动,可能导致收敛速度变慢。优点:计算开销小,能够处理大规模数据集。更新较快,可以实现快速迭代。缺点:梯度方向波动较大,收敛较慢。...缺点: 对于某些任务,Adam可能会在达到最优点之前提前收敛,导致过早停止。在某些特定问题上,Adam可能不如SGD表现得更好,尤其是当训练数据量非常大时。4.

    18110

    90题细品吴恩达《机器学习》,感受被刷题支配的恐惧

    梯度下降,因为它总是收敛到最优 image.png D. 正规方程,因为梯度下降可能无法找到最优 image.png 第 20 题 以下哪些是使用特征缩放的原因? A....在的最佳值(例如,由fminunc找到)处, image.png C.添加多项式特征(例如,使用 image.png 将增加,因为我们现在正在对更多项进行求和 D.如果我们训练梯度下降迭代足够多次,对于训练集中的一些例子...对于逻辑回归,梯度下降有时会收敛到一个局部最小值(并且无法找到全局最小值)。...然而,对于神经网络, image.png 可能不是凸的,因此选择一个非常大的 image.png 值只能加快收敛速度。 D....在为异常检测系统选择特征时,最好为异常示例寻找具有异常大值或小值的特征。 第 75 题 您有一个一维数据集 image.png ,并且希望检测数据集中的异常值。

    97120

    深度学习优化器一览

    梯度下降法是迭代法的一种,在求解机器学习算法的模型参数 θ 时,即无约束问题时,梯度下降是最常采用的方法之一。 我们可以把模型的参数空间想象成是一个曲面,曲面的高度是整体上模型预测值与真实值的误差。...批量梯度下降法BGD 第一种很天然的想法是批量梯度下降法BGD(Batch Gradient Descent),其实就是每次用全量的数据对参数进行梯度下降。...由上式可以看出,每进行一次参数更新,需要计算整个数据样本集,因此导致批量梯度下降法的速度会比较慢,尤其是数据集非常大的情况下,收敛速度就会非常慢,但是由于每次的下降方向为总体平均梯度,它可能得到的会是一个全局最优解...,导致梯度下降的波动非常大,更容易从一个局部最优跳到另一个局部最优,准确度下降。...小批量梯度下降法 小批量梯度下降法就是结合BGD和SGD的折中,对于含有n个训练样本的数据集,每次参数更新,选择一个大小为m (m 的mini-batch数据样本计算其梯度,其参数更新公式如下

    83410

    训练神经网络的7个技巧

    二、技巧1:随机梯度下降与批量学习 随机梯度下降,也称为在线梯度下降,是指从训练数据集中随机选择一个示例,估算误差梯度,然后更新模型参数(权重)的算法版本。...批量梯度下降涉及使用训练数据集中所有示例的平均值来估算误差梯度。它执行更快,从理论上更容易理解,但导致学习速度较慢。 尽管随机学习具有诸多优势,仍有理由考虑使用批量学习: 收敛条件是众所周知的。...许多加速技术(例如共轭梯度)仅在批量学习中操作。 对权重动态和收敛速率的理论分析更简单。 尽管批量更新具有优势,但在处理非常大的数据集时,随机学习仍然通常是首选方法,因为它更简单更快。...四、技巧3:标准化输入 当训练数据集中的示例总和为零时,神经网络通常学得更快。这可以通过从每个输入变量中减去平均值(称为居中)来实现。通常,如果训练集上每个输入变量的平均值接近零,收敛速度会更快。...最后一层一般用Tanh激活函数,产生一个问题就是梯度在-1或1附近非常小,神经元饱和学习很慢,容易产生梯度消息,模型产生更多接近-1或1的值。

    12410

    机器学习(二十三) —— 大数据机器学习(随机梯度下降与map reduce)

    机器学习(二十三)——大数据机器学习(随机梯度下降与map reduce) (原创内容,转载请注明来源,谢谢) 一、概述 1、存在问题 当样本集非常大的时候,例如m=1亿,此时如果使用原来的梯度下降算法...3、说明 本文下面用到的方法,都是在当数据量非常大(如1亿以上)的时候,才会考虑的方法,当数据量不大时,使用批量梯度下降最好,用下面的方法反而会有问题。...2、原理 对于每个样本,计算出来的θ,实际上是一个小范围内的最优梯度。所以用这个来更新,不会直接逼近最优值,而是逼近区域的最优值,因此可能会非常的波动,蜿蜒曲折的靠近最优值,就像上图的粉色的线那样。...七、总结 这一章主要提到大数据情况下的处理方式,数据量非常大时,很多平时很好用的算法会慢慢无法适应,这也是上面提到的一些改版的梯度下降的起源。...对于数据量小时,如果使用随机梯度下降或者微型梯度下降,反而无法很好的收敛,因为数据量不足会导致训练次数不够。

    1.3K30

    深度学习基础知识点归纳总结

    Sigmoid函数 特点:它能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1....δ为小常数,为了数值稳定大约设置为10^-7 8. 优化算法的选择 如果输入数据是稀疏的,选择任一自适应学习率算法可能会得到最好的结果。无需调整学习率,选用默认值就可能达到最好的结果。...判别式:由数据直接学习决策函数Y=f(X)或条件概率分布P(Y|X)作为预测模型,关心的是对于给定的输入X,应该预测什么样的输出Y。寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。...梯度下降法的计算过程就是沿梯度下降的方向求解极小值,也可以沿梯度上升方向求解最大值 简述和讨论“随机梯度下降算法” 1、随机梯度下降是每次迭代使用一个样本来对参数进行更新,使得训练速度加快。...3、每次迭代并不是都向着整体最优化方向,导致梯度下降的波动非常大,更容易从一个局部最优跳到另一个局部最优,准确度下降 随机梯度下降算法终止条件 当前后两次迭代的差值小于某一值时,即收敛,迭代结束 Momentum

    65630

    第十八章 大规模机器学习

    18.2 随机梯度下降 当我们的数据集很大时,梯度下降算法的计算量会变得非常大。这里我们将讨论对普通梯度下降算法的改进,称之为“随机梯度下降法”。这将使我们的算法能应用于更大的训练集中。...因为你可能不知道数据是否已经随机排列过,但对于随机梯度下降的更重要的一点是与批量梯度下降不同。随机梯度下降不需要对全部m个样本求和来得到梯度项。...实际上,当你运行随机梯度下降时,和批量梯度下降相比收敛的形式是不同的。随机梯度下降所做的就是连续不断地在某个区域中朝着全局最小值的方向徘徊,而不是直接达到全局最小值。...因为学习速率更小了,所以下降的更慢了,但也得到了一个很好的收敛结果。这是因为,随机梯度下降算法不是直接收敛到全局最小值,而是在一个范围内反复震荡,最后逐渐接近全局最小值。...如果,你想让随机梯度下降更好地收敛到全局最小值,你可以做的就是让学习速率α 的值随时间变化逐渐减小。所以,一种典型的方法就是,让 α 等于: ?

    49420

    线性回归、代价函数和梯度下降

    1.2 梯度下降(迭代求最优值) 步长(学习率\alpha)决定了梯度下降的速度,梯度会下降到直至收敛convergence(也就是到局部最小值才停止),所以太大的步长会导致在坡底(局部最小值)震荡 初始化起点也能影响梯度下降的速度和得到的局部最小值...,在线性回归中使用的MSE即均方差即是考虑了所有数据的一种BGD 1.2.4 特征缩放/归一化 ==归一化可以加快梯度下降的速度,也就是更快地收敛== 1.2.4.1 均值归一化Mean Normalization...1.2.5 小技巧 如何能够快速判断梯度下降是否正在有效工作/收敛呢?...正确的学习率: 错误的学习率: 方法1:(推荐)运行过程中,根据迭代次数和代价函数的值/导数(下降速度)来判断梯度是否有效下降/收敛,也就是上述绘制曲线,通过看曲线的方式 方法2:设定一个阈值,当代价函数变化值小于该阈值则停止训练...时,速度会较梯度下降法快;对于一些复杂的学习算法,我们不得不使用梯度下降法来替代正规方程 优点 当参数非常大时依然能非常好地工作;在一些复杂算法中仍然适用,而正规方程只使用于特定的一些算法中,如线性回归等

    1.3K10

    机器学习 学习笔记(22) 深度模型中的优化

    小批量随机梯度下降的一个有趣动机是,只要没有重复使用样本,它将遵循着真实泛化误差的梯度。很多小批量随机梯度下降方法的实现都会打乱数据顺序一次,然后多次遍历数据来更新参数。...真实的神经网络也存在包含很多高代价鞍点的损失函数。 鞍点激增对训练算法来说有哪些影响呢?对于只使用梯度信息的一阶优化算法而言,目前情况还不清楚,鞍点附近的梯度通常会非常小。...基本算法 随机梯度下降 动量 随机梯度下降是非常受欢迎的优化方法,但是其学习过程有时会很慢,动量方法旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。...在循环网络中很大的权重也可能导致混沌(对于输出中很小的扰动非常敏感,导致确定性前向传播过程表现随机)。在一定程度上,梯度爆炸问题可以通过梯度截断来缓解(指定梯度下降不走之前设置梯度的阈值)。...我们可以手动搜索最优初始范围,一个好的挑选初始数值范围的经验法则是观测单个小批量数据上的激活或梯度的幅度或标准差,如果权重太小,那么激活值在小批量上前向传播于网络时,激活之的幅度会缩小,通过重复识别具有小的不可接受的激活值得第一层

    1.7K30

    Machine Learning笔记——多变量线性回归

    特征x_0总是等于1,也总是在此范围之内,但对于其他的特征而言,可以通过其他的分数使得它处于同一范围内,特征的值要控制在非常小的范围内。但是不能太小,也不能太大。...例如 当α很小的时候,我们可以看到曲线达到一定的迭代次数之后就收敛,或者说找到一个合适的阈值ε也是很困难的,为了检查梯度下降算法是否收敛,可以从图中直接看得出收敛。而不是依靠自动收敛测试。...54.png 对于这样子的多元线性回归,做一下简单的修改来实现: 55.png 但是除了三次函数的拟合之外,采用二次函数,我们不希望说因为房子的面积的增加而导致房子的价格还下降。...在之前优质使用的方法——梯度下降法中,为了得到最小化代价函数T(θ),会使用迭代算法。通过梯度下降的多次迭代来收敛到全局最小值。...实例: 57.png 例如:假设我们有四个训练样本,这四个训练样本就是所有的数据。我们所要做的是在数据集中,加入一列来对应额外的特征变量x_0,取值永远都是1。

    98400
    领券