[斯坦福大学2014机器学习教程笔记]第四章-多元梯度降低法演练Ⅰ:特征缩放

    在本节和下一节中,咱们将介绍一下梯度降低运中的实用技巧。本节主要介绍一个称为特征缩放的方法。机器学习

    这个方法以下:若是你有一个机器学习问题,这个问题有多个特征。若是你能确保这些特征都处在一个类似的范围(即不一样特征的取值在相近的范围内),那么这样梯度降低法就能更快地收敛。具体来讲,假如如今有一个具备两个特征的问题,其中x1是房屋大小,取值为0-2000,x2是卧室的数量,取值为1-5。若是咱们画出代价函数J(θ)的等值线大概以下图所示。函数

    (J(θ)实际上是关于θ0,θ1,θ2的函数,可是咱们在这里暂时不考虑θ0,假设这个函数的变量只有θ1,θ2)咱们会发现,x1的取值范围要远大于x2的取值范围,那么它会呈现出一种很是歪斜并且椭圆的形状。实际上,2000:5的比例会让这个椭圆更加细长。学习

    若是咱们在这种代价函数上运行梯度降低的话,可能须要花很长的一段时间,而且可能会来回波动,最终才会收敛到全局最小值spa

    对于这种状况,咱们有一种有效的方法是进行特征缩放。具体来讲,咱们将x1定义为房屋大小/2000,x2定义为卧室的数量/5。那么代价函数J(θ)的等值线就不会像以前同样偏移得十分严重了。并且,在这种代价函数上运行梯度降低的话,咱们会找到一条更直接的路径3d

    所以,经过这些特征缩放,两个变量的取值范围变得十分相近。在上面的例子中x1和x2的取值都在0到1之间。这样咱们的梯度降低法就能更快地收敛。blog

    更通常地,咱们在执行特征缩放的时候,一般状况下咱们的目的都是将特征的取值约束在-1到1的范围内。根据上一节所设的x0=1,显然它已经在这个范围内了,但对于其余的特征,咱们可能须要经过除以不一样的数来让它们处于同一个范围内。其实-1到1这个范围并非严格去规定的,如0≤x1≤3,-2≤x2≤0.5这些也是能够的。可是,若是-100≤x3≤100,这个范围就有点大得太多了,因此这个多是一个范围不太合适的特征。一样的,若是-0.0001≤x4≤0.0001,这个范围就有点小得太多了,因此这个多是一个范围不太合适的特征。(能够接受的氛围:-1/3到1/3,-3到3)。变量

    除了将特征值除以最大值以外,在特征缩放中,有时咱们也会进行一个称为归一化的工做。若是咱们能够用xii来替换特征xi让特征值的平均值为0。可是,咱们并不须要将这一步应用到x0中,由于它老是等于1的。技巧

    在上面讲到的例子中,咱们进行归一化操做后,咱们会获得方法

    根据这个,咱们能够获得一个新的x1和x2的取值范围。im

  •     更通常的规律就是:咱们能够将xi替换为(xii)/si。其中μi是训练集中特征xi的平均值,si是该特征值的范围(最大值减去最小值),或者把si设为变量的标准差。

    根据这个,其实上面的x2中的s2应该为4,但其实并无太大的区别。特征缩放并不须要太精确,咱们只是为了让梯度降低运行地更快一点。

相关文章
相关标签/搜索