机器学习笔记(三)梯度下降法 Gradient-Descent 与 数据归一化

目录

    • 1、梯度下降法 Gradient-Descent
      • 1.1、批量梯度下降法Batch Gradient Descent
      • 1.2、随机梯度下降法Stochastic Gradient Descent
      • 1.3、小批量梯度下降法Mini-Batch Gradient Descent
    • 2、数据归一化
      • 2.1、最值归一化 normalization
      • 2.2、均值反方差归一化 standardization

1、梯度下降法 Gradient-Descent

梯度下降法在机器学习中常常用来优化损失函数 J J J,是一种基于搜索的优化的最优化方法。与它相反的是梯度上升法,是用来最大化一个效用函数的。

「梯度的概念」:梯度就是函数对它的各个自变量求偏导( ∂ J ∂ θ \frac{\partial{J}}{\partial\theta} θJ)后,由偏导数组成的一个向量 Δ J = ( ∂ J ∂ θ 0 , ∂ J ∂ θ 1 , ⋯   , ∂ J ∂ θ n ) \Delta J=(\frac{\partial J}{\partial\theta_0}, \frac{\partial J}{\partial\theta_1},\cdots,\frac{\partial J}{\partial\theta_n}) ΔJ=(θ0J,θ1J,,θnJ)
在直线方程中,梯度是一个导数( d J d θ \frac{dJ}{d\theta} dθdJ),导数代表斜率。而在曲线方程中,导数代表切线斜率。
机器学习笔记(三)梯度下降法 Gradient-Descent 与 数据归一化_第1张图片
梯度代表 θ \theta θ单位变化时, J J J相应的变化。梯度可以代表方向,对于J增大的方向。
机器学习笔记(三)梯度下降法 Gradient-Descent 与 数据归一化_第2张图片
上图中有一个蓝点(梯度 > 0),现在用梯度值的 「正负来表示方向」,如果导数的值是正数,那么就代表 θ \theta θ轴的正方向,如果梯度的值是负数,那么就代表是 θ \theta θ 轴的负方向。那么你会发现,知道了这个方向之后也就知道了应该让 θ \theta θ 往哪个方向变化 J J J 的值才会增大。如果想要让 J J J 的值减小,那么就让 θ \theta θ朝着梯度告诉我们的方向的反方向变化就好啦。用「红色」箭头代表梯度告诉我们的方向,用「蓝色」箭头代表梯度指向的方向的反方向。「梯度下降法」 的目标是搜索出来一个能够让函数的值尽可能小的位置,所以应该让 θ \theta θ朝着蓝色箭头的方向走。那么怎么完成这个操作呢?公式如下: θ = θ − η ∇ J ∇ J = ( ∂ J ∂ θ 0 , ∂ J ∂ θ 1 , ⋯   , ∂ J ∂ θ n ) \theta=\theta-\eta\nabla J\qquad \nabla J=(\frac{\partial J}{\partial\theta_0}, \frac{\partial J}{\partial\theta_1},\cdots,\frac{\partial J}{\partial\theta_n}) θ=θηJJ=(θ0J,θ1J,,θnJ),其中:

  • η \eta η 称为学习率(learning rate)
  • η \eta η 的取值影响获得最优解的速度
  • η \eta η 取值不合适,甚至得不到最优解
  • η \eta η 是梯度下降法的一个超参数

1.1、批量梯度下降法Batch Gradient Descent

计算梯度时候用所有的数据来计算,但是要取平均(不平均就没有意义了),好处在于收敛次数少,坏处就是每次迭代需要用到所有数据,占用内存大耗时大。

1.2、随机梯度下降法Stochastic Gradient Descent

每次只用一个样本求梯度,优点是速度快,缺点是可能陷入局部最优,搜索起来比较盲目,并不是每次都朝着最优的方向(因为单个样本可能噪音比较多)

1.3、小批量梯度下降法Mini-Batch Gradient Descent

SGD和BGD是两个极端, 而MBGD是两种方法的折衷,每次选择一批数据来求梯度。
该方法也容易陷入局部最优
现在说SGD一般都指MBGD

2、数据归一化

归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]),从而消除奇异样本数据导致的不良影响,使模型更容易收敛。

2.1、最值归一化 normalization

最值归一化:把所有数据映射到0-1之间 x s c a l e = x − x m i n x m a x − x m i n x_{scale}=\frac{x-x_{min}}{x_{max}-x_{min}} xscale=xmaxxminxxmin

适用于分布有明显边界的情况,如:图像0-255;受outlier影响较大

2.2、均值反方差归一化 standardization

数据分布没有明显的边界;有可能存在极端数据值
均值方差归一化:把所有数据归一化到均值为0反差为1的分布中
x s c a l e = x − x m e a n S x_{scale}=\frac{x-x_{mean}}{S} xscale=Sxxmean

你可能感兴趣的:(机器学习,学习笔记,机器学习)