(三)Deep Learning笔记:单变量线性回归2

1 梯度下降

1.1概念

梯度下降可用来求解代价函数J(θ0,θ1)的最小值或局部最小值,其计算步骤如下:

1) 首先给θ0,θ1赋初值,一般设θ0=0,θ1 =0;

2)不断的改变θ0,θ1来减小J(θ0,θ1)的值,直至J(θ0,θ1)达到预期的最小值;

(三)Deep Learning笔记:单变量线性回归2

可通过3D图更直观的理解梯度下降的工作过程。图中所示即为代价函数J(θ0,θ1)的图像,x轴、y轴分别代表θ0、θ1。想象这是公园的两座小山,假设我就在山上的某一点处,我想尽快下山,环顾四周,应该向哪个方向迈出这一步才能尽快下山呢。梯度下降算法沿着图中所示的下山路径,很快就可以到达一个局部最低点。

(三)Deep Learning笔记:单变量线性回归2

假设我们的起点偏移了一些,如图所示,这次的路径也发生了变化,到达了另一个局部最低点,这也是梯度下降算法的一个特点。

(三)Deep Learning笔记:单变量线性回归2

1.2数学表示

梯度下降算法的数学表示如图所示。

    :=代表赋值assignmengt,a:=b的含义是将b的值赋给a。

    α代表学习效率learning rate,α越大,代表每次下山迈出的步子越大,α越小,代表每次下山迈出的步子越小。

    (三)Deep Learning笔记:单变量线性回归2代表偏导项。

梯度下降算法的计算过程如图,注意θ0,θ1的值需要同时更新,右侧错误的方法在于先更新了θ0的值,因此在计算θ1的偏导项时,θ0的值已经变了,出现了误差。

(三)Deep Learning笔记:单变量线性回归2

1.3数学意义

为了方便起见,假设θ0=0,θ1是实数,画出J(θ1)的图像,如下图所示。

假设θ1点在图上的红色标记处,根据梯度下降算法的定义,计算方框中的导数项,我们知道这个导数的数学意义是点θ1处曲线的斜率,因此它是一个正数。更新后的θ1是在原θ1值上减去一个正数,会得到一个更小的数,θ1点向左移动,到的新的位置。依次类推,θ1点继续向左移动,J(θ1)可收敛至最低点。

(三)Deep Learning笔记:单变量线性回归2

假设θ1点位置变了,在下图的红色标记处,类似的,J(θ1)也收敛于最低点。

   (三)Deep Learning笔记:单变量线性回归2

1.4学习效率α

学习效率α对梯度下降算法的影响:

如果α太小,θ1更新的间隔比较小,J(θ1)收敛也慢;如果α太大,θ1更新的间隔比较大,可能会跳过最低点,J(θ1)不收敛甚至是发散。

(三)Deep Learning笔记:单变量线性回归2

J(θ1)已经到达一个局部最优点时,下图所示的导数项为0,此时,θ1的值不再变化。因此,α设定为一个固定值,当θ1的值越来越接近最低点时,斜率的绝对值越来越小,因此每次迈出的步子越来越小,直至到达最低点,斜率为0收敛为止。

(三)Deep Learning笔记:单变量线性回归2

2梯度下降在线性回归中的应用

2.1模型建立

梯度下降和线性回归的数学表示:

(三)Deep Learning笔记:单变量线性回归2

J(θ0,θ1)求偏导可以推导出:

(三)Deep Learning笔记:单变量线性回归2

将上述等式带入梯度下降算法中,可得

(三)Deep Learning笔记:单变量线性回归2

2.2工作过程

用等高线图来描述剃度下降算法的工作过程。

初始值设为:θ0=900θ1=-0.1

(三)Deep Learning笔记:单变量线性回归2

执行梯度下降算法,同时更新θ0,θ1的值,得到:

(三)Deep Learning笔记:单变量线性回归2

继续执行,直至代价函数收敛,假设函数hθ(x)也很好的拟合了数据。

(三)Deep Learning笔记:单变量线性回归2