梯度下降

百度百科:梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。

梯度下降 类似于寻找下山的路,不断往下走直到来到山底。

线性回归梯度超参数 线性回归梯度下降_梯度下降算法

  

线性回归梯度超参数 线性回归梯度下降_线性回归梯度超参数_02

选取不同的点得到的路径不一致,不过都能得到局部最优解。

梯度下降算法:

线性回归梯度超参数 线性回归梯度下降_梯度下降_03

theta0和theta1需要同时更新。

alpha(a)表示学习速率,通俗说就是下山的步子,起止越大表示走的得越快,但并并不是越大越好。下面会举个栗子。

梯度下降算法 为了方便令theta0=0,如果选的点在最优解的右边,则求解的

线性回归梯度超参数 线性回归梯度下降_梯度下降算法_04

为正数,

线性回归梯度超参数 线性回归梯度下降_最优解_05

越来越小,最终会到达最小点得到最优解,反之在左边,

线性回归梯度超参数 线性回归梯度下降_梯度下降算法_04

为负数,

线性回归梯度超参数 线性回归梯度下降_最优解_05

越来越大,到达最小点。刚才提到,如果alpha(a)选的太大。

线性回归梯度超参数 线性回归梯度下降_最优解_08

可能会偏离最小点,进而越来越偏离最小点。

如果已经处在最小点呢?

梯度下降算法如你所愿,并不会做出错误地选择。

线性回归梯度超参数 线性回归梯度下降_梯度下降_09

此时的斜率

线性回归梯度超参数 线性回归梯度下降_线性回归梯度超参数_10

等于0,那么

线性回归梯度超参数 线性回归梯度下降_梯度下降_11

0     ,仍是最小点。

在找到一个点后,一般情况下,斜率会不断调整,离最小点远的话其值就会大,走大步,离最小点越近其值也就越小。

线性回归梯度超参数 线性回归梯度下降_梯度下降_12

 

梯度下降算法用于线性回归

线性回归梯度超参数 线性回归梯度下降_最优解_13

线性回归梯度超参数 线性回归梯度下降_最优解_14

上面的计算涉及到高等数学和线性代数方面的一些知识。

求偏导可验证上面的结果是否一致,下面以 j=0 为例。

线性回归梯度超参数 线性回归梯度下降_最优解_15

通过公式的计算,将假设函数和代价函数组合起来,便可以编写梯度下降算法。

线性回归梯度超参数 线性回归梯度下降_梯度下降算法_16

 

线性回归的代价函数总是呈现一个弓状函数,术语叫做凸函数(convex function),无局部最优解,只有全局最优解这又是一个很重要的领域。

刚才使用的梯度下降算法又可以叫做batch梯度下降,即每一步都是用整个训练样本。另外在高等代数中,可以正规方程组算法,而不必像梯度下降那样一步一步求解。相比来说,梯度下降适用于更大的数据集。

最后通过梯度下降求得代价函数所对应的假设函数最优解,拟合度最好。

线性回归梯度超参数 线性回归梯度下降_最优解_17