【原创】梯度下降(Gradient Descent)小结

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。

梯度

在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。对于在点(x0,y0)的具体梯度向量就是(∂f/∂x0, ∂f/∂y0)T.或者▽f(x0,y0),如果是3个参数的向量梯度,就是(∂f/∂x, ∂f/∂y,∂f/∂z)T,以此类推。
那么这个梯度向量求出来有什么意义呢?他的意义从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。

梯度下降与梯度上升

在机器学习算法中,在最小化损失函数时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数,和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。

梯度下降法和梯度上升法是可以互相转化的。比如我们需要求解损失函数f(θ)的最小值,这时我们需要用梯度下降法来迭代求解。但是实际上,我们可以反过来求解损失函数 -f(θ)的最大值,这时梯度上升法就派上用场了。

下面来详细总结下梯度下降法。

梯度下降法算法详解

梯度下降的直观解释

首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。

从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。

梯度下降的相关概念

在详细了解梯度下降的算法之前,我们先看看相关的一些概念。

1. 步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。

2.特征(feature):指的是样本中输入部分,比如2个单特征的样本(x(0),y(0)),(x(1),y(1))(x(0),y(0)),(x(1),y(1)),则第一个样本特征为x(0)x(0),第一个样本输出为y(0)y(0)。

3. 假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为hθ(x)hθ(x)。比如对于单个特征的m个样本(x(i),y(i))(i=1,2,...m)(x(i),y(i))(i=1,2,...m),可以采用拟合函数如下:hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x。

4. 损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。比如对于m个样本(xi,yi)(i=1,2,...m)(xi,yi)(i=1,2,...m),采用线性回归,损失函数为:

J(θ0,θ1)=∑i=1m(hθ(xi)−yi)2J(θ0,θ1)=∑i=1m(hθ(xi)−yi)2

    

其中xixi表示第i个样本特征,yiyi表示第i个样本对应的输出,hθ(xi)hθ(xi)为假设函数。



1.机器学习原来这么有趣!【第一章】

2.机器学习原来这么有趣!【第二章】:用机器学习制作超级马里奥的关卡

3.机器学习从零开始系列连载(1)——基本概念

4.机器学习从零开始系列连载(2)——线性回归

5.机器学习从零开始系列连载(3)——支持向量机

6.机器学习从零开始系列连载(4)——逻辑回归

7.机器学习从零开始系列连载(5)——Bagging and Boosting框架

扫描个人微信号,

拉你进机器学习大牛群。

福利满满,名额已不多…

(0)

相关推荐

  • DL一(ML基础知识)

    基础知识ML 在进行深度学习前,根据学习网站的建议,首先学习机器学习的基础课程,学习资料主要是Andrew讲的ShortVideo,网址:http://openclassroom.stanford.e ...

  • 最优化算法之牛顿法、高斯-牛顿法、LM算法

    上一篇文章中主要讲解了最优化算法中的梯度下降法,类似的算法还有牛顿法.高斯-牛顿法以及LM算法等,都属于多轮迭代中一步一步逼近最优解的算法,本文首先从数学的角度解释这些算法的原理与联系,然后使用Ope ...

  • ICML2019论文 | 炼丹?找到神经网络的全局最优解

    训练好神经网络是个老大难问题.其中一个难点,就在调参以使训练数据上的损失(loss)收敛.领域中流传有各类调参技巧.然而,很多技巧并无理论支持,时灵时不灵,以致调参被称为炼丹,是成不成全靠天的玄学.这 ...

  • 树模型奠基性论文解读| GBM: Gradient Boosting Machine

    树模型奠基性论文解读| GBM: Gradient Boosting Machine

  • 深度神经网络(DNN)反向传播算法(BP)

    在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...

  • 梯度下降(Gradient Descent)小结

    在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法.这里就对梯度下降法做一个完整的总结. 1. 梯度 在微 ...

  • 浅谈随机梯度下降&小批量梯度下降

    机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...

  • 梯度下降直觉 - 机器是如何学习的

    梯度下降法是一种求函数最小值的算法.在机器学习中,预测值和实际值之间的差称为误差.将所有数据点上的所有误差加在一起时称为成本. 当然,我们希望最小化代表此成本的函数 - 成本函数. 在机器学习中梯度下 ...

  • 原创|增值税率下降对产品价格的影响分析及发票开具

    文章导读 4月1日起增值税最新政策:由目前的16%降至13%.10%降至9%.其它保持不变.这个减税政策对产品价格有什么影响?发票如何开具更有利呢?让我们以案例方式,一起来探讨减税政策下都有哪些改变? ...

  • 梯度下降方法的视觉解释(动量,AdaGrad,RMSProp,Adam)

    > Animation of 5 gradient descent methods on a surface: gradient descent (cyan), momentum (magent ...

  • 理解凸性:为什么梯度下降适用于线性回归

    在机器学习中我们总会遇到线性回归问题,但是为什么我们可以用梯度下降算法来求解线性回归成本函数呢?凸性理论可以让我们更容易理解这个问题. 凸性 首先,通过凸集和凸函数定义凸度.凸集的定义如下: 在二维中 ...

  • 梯度下降[梯度下降]

    %% 最速下降法图示% 设置步长为0.1,f_change为改变前后的y值变化,仅设置了一个退出条件.syms x;f=x^2;step=0.1;x=2;k=0;         %设置步长,初始值, ...

  • 不能兼顾速度与精度,利物浦大学、牛津大学揭示梯度下降复杂度理论,获STOC 2021最佳论文

    机器之心报道 机器之心编辑部 梯度下降算法具有广泛的用途,但是关于它的计算复杂度的理论研究却非常少.最近,来自利物浦大学.牛津大学的研究者从数学的角度证明了梯度下降的计算复杂度,这项研究也入选 STO ...

  • 梯度下降—Python实现

    梯度下降是数据科学的基础,无论是深度学习还是机器学习.深入了解梯度下降原理一定会对你今后的工作有所帮助. 你将真正了解这些超参数的作用以及处理使用此算法可能遇到的问题. 然而,梯度下降并不局限于一种算 ...