梯度下降

前面我们已经学习了假设函数以及成本函数(一种测量假设函数拟合训练集的好坏程度的方法)。
现在我们需要估计假设函数中的参数,此时,我们常用到梯度下降方法。

  • 归根结底我们是基于$\theta_0$和$\theta_1$来描绘我们的假设函数$h_θ(x)$的。
  • 而成本函数$J(θ_0,θ_1)$则被绘制为参数所预估的函数。

对于成本函数,我们可以这样描述:

  1. 成本函数不是绘制x和y本身,而是绘制假设函数的参数范围和选择特定参数集合的成本结果。
  2. 在成本函数当中,我们把$\theta_0$ 放在x轴上,把$\theta_1$放在y轴上,然后把成本函数放在z轴上。
  3. 在被绘制的图上的点则表示使用选择这些$\theta$参数的成本函数的情况。
  4. 当我们的成本函数处于图的曲线的底部时,即当其值最小时,则说明我们已经成功找到了最优的参数。

那么,如何得到这个最优的参数集合呢?

  1. 我们的方式是通过获取成本函数的导数(函数的切线)。
    切线的斜率是该点的导数,它会给我们一个走向的方向。
  2. 我们在下降得最陡的方向上降低成本函数,
    而每个下降的步长大小由参数α确定,也被称为学习率。
  3. 这里则涉及到了梯度下降算法如下:
    重复直到收敛:
    $θ_j := θ_j - α\frac{∂}{∂θ_j} J(θ_0,θ_1)$
    其中,j=0,1 表示特征索引号
    你可以这样理解:
    重复直到收敛:
    $θ_j := θ_j$ - α[j维上的斜率或者说导数]

线性回归中的梯度下降

当专门应用于线性回归的情况时,可以推导出一种新的梯度下降方程式。
我们可以用我们的实际成本函数和我们的实际的假设函数来代替,并修改公式 :

重复直到收敛: {
$θ_0 := θ_0 $ -$ α\frac{1}{m}\sum_{i=1}^m(h_θ(x_i) - y_i)$
$θ_0 := θ_0 $ -$ α\frac{1}{m}\sum_{i=1}^m((h_θ(x_i) - y_i)x_i)$
}

其中m是训练集的大小,$θ_0$是一个常数,且会和$θ_1$同时改变,而$x_i$和$y_i$是我们的训练集。

可以看到,我们把$θ_j$分成了$θ_0$和$θ_1$两个公式,且由于求导在$θ_1$的最后乘以了$x_i$

所有这一切的关键在于,如果我们从猜测一些假设函数的初始化参数开始,
然后重复应用这些梯度下降方程,我们的假设函数将变得越来越准确。

分享到