【Andrew Ng机器学习】单变量线性回归-梯度下降

课程:吴恩达机器学习


此篇我们将学习梯度下降算法,我们之前已经定义了代价函数J,梯度下降法可以将代价函数J最小化。
梯度下降是很常用的算法,他不仅被用在线性回归上,还被广泛应用与机器学习的众多领域。
之后,我们也会用到梯度下降法最小化其他函数,而不仅仅是最小化线性回归的额代价函数J。


我们的问题

  • 我们有一个代价函数J(\theta_0|theta_1$),可能是线性回归的代价函数,也可能是其他需要最小化的函数。
  • 我们需要用一个算法,来最小化代价函数J(\theta_0|theta_1$)。
  • 实际上梯度下降算法可应用于更一般的函数

J(\theta_0,\theta_1,\theta_2,\theta_3,...,\theta_n)
Goal:


但为了简化符号,接下来我们只使用两个参数。

梯度下降的思路

图像分析梯度下降
  • 开始给定\theta_0\theta_1的初始值。(设为什么值并不重要,但通常选择的是将\theta_0\theta_1都初始化为0)
  • 我们在梯度下降算法中要做的是不停地一点点地改变\theta_0\theta_1使J(\theta_0,\theta_1)变小,直到我们找到J的最小值或者局部最小值。
  1. 假设我们初始化\theta_0\theta_1在山腰上的这一点,那么我们应该朝什么方向迈步?
  2. 如果你看一下周围发现最佳的下山方向是如果方向那么:
  3. 此时又到了新的一点,那么同样的问题,我们应该往什么方向迈步?接着同样的步骤,按照自己的思路,并确定从哪个方向下山,然后又迈进了一小步又一小步,直到收敛至局部最低点。


  4. 梯度下降有一个有趣的特点, 如果初始点不同,重复上述动作,所得到的可能是不同的局部最优处。
  • 起始点偏移了一些, 就得到了完全不同的局部最优解
梯度下降的数学原理
  • 在视频中:
    赋值符合是":=",判断是否相等是"="。
  • a称为学习效率(迈步子的大小)
  • 求J(\theta_0,\theta_1)偏导我的理解是迈步子的方向,视频说后面会解释。
  • 注意\theta_0\theta_1需要同步更新
    用临时变量存储所有计算的结果,等所有的计算完了再赋值给参数。以下是错误的赋值方法:

这里先不解释为什么要同时更新,事实上使用梯度下降方法,同步更新是更自然的实现方法,当人们谈到梯度下降时,他们指的就是同步更新。
如果用非同步更新去实现算法,可能也会正确工作,但是这种方法并不是人们所指的那个梯度下降算法,而是具有不同性质的其他算法,这其中会表现出微小的差别,你应该做的是在梯度下降中真正实现同时更新。


下一篇,我们将详细讲一下导数项,如果已经学过微积分了,已经熟悉偏导数和导数,这其实就是这个导数项。通过下一篇,就能知道如何利用梯度下降算法了。
【Andrew Ng机器学习】单变量线性回归-梯度下降知识点总结

你可能感兴趣的:(【Andrew Ng机器学习】单变量线性回归-梯度下降)