【机器学习(三)】线性回归的梯度下降法

声明:本文是以吴恩达机器学习系列课程为学习对象而作的学习笔记。

梯度下降法

梯度下降法可以最小化任意函数J

问题描述

【机器学习(三)】线性回归的梯度下降法_第1张图片
我们有一个函数J(θ_0,θ_1),现在需要用一个算法来最小化该函数J。

思路如下:

  1. 给定θ_0和θ_1的初始值
    通常选择是将θ_0和θ_1都初始化,设为0
  2. 不停地一点点改变θ_0和θ_1,来使J(θ_0,θ_1)变小,直到我们找到J的最小值,或者局部最小值。

【机器学习(三)】线性回归的梯度下降法_第2张图片
如图,两个轴分别为θ_0和θ_1,图形表面高度则是J的值。我们希望最小化该函数,则可以把这个图像想象为一座山:我们想要尽快地走下山,在迈出每一步的时刻,环顾四周,思考哪一个方向下降最快,即坡度最陡。如此一步步走下去,直到收敛至局部最低点。
【机器学习(三)】线性回归的梯度下降法_第3张图片

数学原理

【机器学习(三)】线性回归的梯度下降法_第4张图片
在算法的过程中,我们会一直重复第一行的式子直到收敛

公式符号解释

  • = 表示赋值,这是一个赋值运算符

  • α 学习率,用来控制梯度下降时,我们迈出多大的步子
    【机器学习(三)】线性回归的梯度下降法_第5张图片
    如果学习率太小,则需要花很多步才能到达局部最低点;如果学习率太大,则步伐过大,容易越过最低点,甚至越离越远。

  • α之后的东西 一个导数项
    【机器学习(三)】线性回归的梯度下降法_第6张图片
    假设现有函数J(θ_1),其图像如上图所示。
    则该导数项即为这段图像某一点上的切线斜率。
    值得一提的是,随着梯度下降法的运行,切线的斜率会越来越小,导数值会越来越小,移动的幅度会越来越小,直至收敛至局部最小值。因此没有必要更改学习率。

正确的运算过程:同步更新
先通过将θ_0和θ_1依次代入上述公式,将得到的值存入temp里,再用temp给下一轮的θ_0和θ_1赋值。
错误的运算过程:未做到同步更新
在算出θ_0后立刻更新,导致计算θ_1的时候,θ_0已经不是上一轮的值。

线性回归的梯度下降法

【机器学习(三)】线性回归的梯度下降法_第7张图片
现在,我们要运用梯度下降法来最小化平方差代价函数:
【机器学习(三)】线性回归的梯度下降法_第8张图片
将平方差代价函数代入后所得到的θ_0和θ_1结果如下:
【机器学习(三)】线性回归的梯度下降法_第9张图片
其中两个参数θ_0和θ_1不断重复该过程直到收敛。
先前提到,平方差代价函数所得到的图像为一个凸函数:
【机器学习(三)】线性回归的梯度下降法_第10张图片
如此,经过梯度下降所得到的结果即为全局最优解。
接下来,将该图转化为等高线图,并取点:
【机器学习(三)】线性回归的梯度下降法_第11张图片
最终取到最低点时,得到一条拟合度最好的直线。

你可能感兴趣的:(线性回归,人工智能)