从导数的物理意义理解梯度下降

机器学习中常会用随机梯度下降法求解一个目标函数 L(Θ) ,并且常是最小化的一个优化问题:

min L(Θ)

我们所追求的是目标函数能够快速收敛或到达一个极小值点。而随机梯度法操作起来也很简单,不过是求偏导数而已,但是为什么是这样呢?为什么算出偏导数就能说下降得最快?初期并不很明了,后来看过一些数学相关的知识才稍微明白了一点,以下内容算是一个理解梯度的渐进过程。如果不当之处,欢迎指正。

以下关于梯度下降法,导数,偏导数的内容可在维基百科中找到,关于方向导数与梯度的内容可在高等数学书中找到。

预备知识

既然是从导数的物理意义进行理解,必然要先了解其物理意义是什么。 在以下内容中, 导数与偏导数大多数人都很熟悉, 请重点关注方向导数与梯度

梯度下降法简介

梯度下降法(Gradient descent)是一个最优化算法,通常也称为最速下降法(Deepest gradient)。

梯度下降法,基于这样的观察:如果实值函数F(x)在点a处可微且有定义,那么函数F(x)在a点沿着梯度相反的方向 ??F(a) 下降最快

因而,如果b=a?γ?F(a)

对于γ>0为一个够小数值时成立,那么F(a)≥F(b)。

考虑到这一点,我们可以从函数F的局部极小值的初始估计 x0 出发,并考虑如下序列

x0, x1, x2, …

使得xn+1=xn?γn?F(xn), n≥0。

因此可得到

F(x0)≥F(x1)≥F(x2)≥?,

如果顺利的话序列(xn)收敛到期望的极值。注意每次迭代步长γ可以改变。

下面的图片示例了这一过程,这里假设F定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线(水平集),即函数F为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数F值最小的点。

求解机器学习中的min L(Θ)问题,可以选择采用梯度下降法。

梯度下降法的缺点如下,为何可能会有下面的缺点,可在梯度下降法的维基百科中看到更多内容。这里仅当一个搬运工而已:

  • 靠近极小值时速度减慢。
  • 直线搜索可能会产生一些问题。
  • 可能会’之字型’地下降。

导数

导数(Derivative)是微积分学中重要的基础概念。一个函数在某一点的导数描述了这个函数在这一点附近的变化率。导数的本质是通过极限的概念对函数进行局部的线性逼近。

当函数 f 的自变量在一点 x0 上产生一个增量 h 时,

函数输出值的增量与自变量增量h的比值在h趋于0时的极限如果存在,即为f在x0处的导数,记作f′(x0)、dfdx(x0)或dfdx∣∣x=x0.

物理意义上, 导数表示函数值在这一点的变化率。

偏导数

在数学中,一个多变量的函数的偏导数是它关于其中一个变量的导数,而保持其他变量恒定(相对于全导数,在其中所有变量都允许变化)。

假设?是一个多元函数。例如:

f(x,y)=x2+xy+y2

f=x2+xy+y2的图像。我们希望求出函数在点(1, 1, 3)的对x的偏导数;对应的切线与xOz平面平行。

因为曲面上的每一点都有无穷多条切线,描述这种函数的导数相当困难。偏导数就是选择其中一条切线,并求出它的斜率。通常,最感兴趣的是垂直于y轴(平行于xOz平面)的切线,以及垂直于x轴(平行于yOz平面)的切线。

一种求出这些切线的好办法是把其他变量视为常数。例如,欲求出以上的函数在点(1, 1, 3)的与xOz平面平行的切线。上图中显示了函数f=x2+xy+y2的图像以及这个平面。下图中显示了函数在平面y = 1上是什么样的。我们把变量y视为常数,通过对方程求导,我们发现?在点(x, y, z)的。我们把它记为:

?z?x=2x+y,于是在点(1, 1, 3)的与xOz平面平行的切线的斜率是3。?f?x=3 在点(1, 1, 3),或称“f在(1, 1, 3)的关于x的偏导数是3”。

在几何意义上偏导数即为函数在坐标轴方向上的变化率。

方向导数

方向导数是分析学特别是多元微积分中的概念。一个标量场在某点沿着某个向量方向上的方向导数,描绘了该点附近标量场沿着该向量方向变动时的瞬时变化率。方向导数是偏导数的概念的推广。

方向导数定义式:

方向导数计算公式(在推导方向导数与梯度关系时用到):

几何意义上方向导数为函数在某点沿着其他特定方向(也便是这里的l方向)上的变化率

梯度

在一个数量场中,函数在给定点处沿不同的方向,其方向导数一般是不相同的。那么沿着哪一个方向其方向导数最大,其最大值为多少? 这是我们所关心的问题, 为此引进一个很重要的概念 –> 梯度假设在点p0处, 函数值沿哪一方向增加的速度最快? 先说结论,沿着梯度方向增加的速度最快。

为什么沿着梯度方向,函数值增加最快

这里可以从方向导数与梯度的关系进行推导:

总结

函数在某一点处的方向导数在其梯度方向上达到最大值,此最大值即梯度的范数。

这就是说,沿梯度方向,函数值增加最快。同样可知,方向导数的最小值在梯度的相反方向取得,此最小值为最大值的相反数,从而沿梯度相反方向函数值的减少最快。详细内容:方向导数与梯度

在机器学习中往往是最小化一个目标函数, 最大化问题也可转换为最小化问题,min L(Θ),理解了上面的内容,便很容易理解在梯度下降中常用的更新公式:

θ=θ?γ?L?θ

γ 在机器学习中常被称为学习率 ( learning rate ) , 也就是上面梯度下降法中的步长。

通过算出目标函数的梯度并在其反方向更新完参数θ,在此过程完成后也便是达到了函数值减少最快的效果,那么经过迭代以后目标函数即可很快地到达一个极小值。

注:

本文如有后续更新内容可在我的github博客找到,欢迎访问。

时间: 2024-08-05 18:33:15

从导数的物理意义理解梯度下降的相关文章

神经网络系列之二 -- 反向传播与梯度下降

系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 第2章 神经网络中的三个基本概念 2.0 通俗地理解三大概念 这三大概念是:反向传播,梯度下降,损失函数. 神经网络训练的最基本的思想就是:先"猜"一个结果,我们叫预测结果a,看看这个预测结果和事先标记好的训练集中的真实结果y之间的差距,然后调整策略,再试一次,这一次就不是"猜"了,而是有依据地向正确的方向靠近.如此反复多次

【机器学习笔记二】回归分析 - 随机梯度下降

参考资料: [1]    Spark MLlib 机器学习实践 [2]    机器学习之梯度下降 http://www.cnblogs.com/rcfeng/p/3958926.html [3]   统计学习方法 1.回归分析概念 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析. 2.梯度下降的概念 梯度下降是一个寻找函数极值的过程,在低维度下非常容易理解.例如存在函数,则我们有导数. 假设当

神经网络基础-梯度下降和BP算法

https://blog.csdn.net/weixin_38206214/article/details/81143894 在深度学习的路上,从头开始了解一下各项技术.本人是DL小白,连续记录我自己看的一些东西,大家可以互相交流.本文参考:本文参考吴恩达老师的Coursera深度学习课程,很棒的课,推荐 本文默认你已经大致了解深度学习的简单概念,如果需要更简单的例子,可以参考吴恩达老师的入门课程:http://study.163.com/courses-search?keyword=%E5%9

猪猪机器学习笔记(六)梯度下降和拟牛顿

梯度下降和拟牛顿 作者:樱花猪   摘要:     本文为七月算法(julyedu.com)12月机器学习第六次次课在线笔记.本节课主要介绍了一种在机器学习需要经常使用到的计算方法——梯度下降法并在最后提出了另一种下降法的思路——拟牛顿法.梯度下降法是一个连接理论和计算机计算的桥梁,这种方法通过迭代来逐步完成对于目标函数的演化,将离散和连续有机的结合起来.实际上梯度下降法在许多有关偏微分方程算法中也有所用到,例如水平集.主动轮廓模型等.通过本次课程的学习,我们能够更加具体和感性的理解梯度下降,从

机器学习推导笔记1--机器学习的任务、步骤、线性回归、误差、梯度下降

前段时间放假在家的时候,总算是看完了斯坦福的机器学习公开课(Andrew NG)的监督学习,这项计划持续了将近一个学期.无监督学习和强化学习部分暂时还不太想看,目前来说监督学习与我现在的情况更契合一些.看完监督学习部分,对机器学习的了解又深了一些,加上之前帮师兄做实验,从工程角度和理论角度共同推进,感觉还是挺好的. 为了巩固学习成果,在刷题之余,准备写一系列笔记,自己推导一遍机器学习里比较重要的几个算法,并附上自己的理解.我一直认为能讲出来的东西,才是自己的.写笔记有助于我自己理清思路,当然也希

[LNU.Machine Learning.Question.1]梯度下降方法的一些理解

曾经学习machine learning,在regression这一节,对求解最优化问题的梯度下降方法,理解总是处于字面意义上的生吞活剥. 对梯度的概念感觉费解?到底是标量还是矢量?为什么沿着负梯度方向函数下降最快?想清楚的回答这些问题.还真须要点探究精神. 我查阅了一些经典的资料(包含wiki百科),另一些个人的博客,比方p=2573">http://www.codelast.com/?p=2573,http://blog.csdn.net/xmu_jupiter/article/det

卷积的本质及物理意义(全面理解卷积)

卷积的本质及物理意义(全面理解卷积) 卷积的本质及物理意义 提示:对卷积的理解分为三部分讲解1)信号的角度2)数学家的理解(外行)3)与多项式的关系 1 来源 卷积其实就是为冲击函数诞生的.“冲击函数”是狄拉克为了解决一些瞬间作用的物理现象而提出的符号.古人曰:“说一堆大道理不如举一个好例子”,冲量这一物理现象很能说明“冲击函数”.在t时间内对一物体作用F的力,倘若作用时间t很小,作用力F很大,但让Ft的乘积不变,即冲量不变.于是在用t做横坐标.F做纵坐标的坐标系中,就如同一个面积不变的长方形,

批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

https://www.cnblogs.com/lliuye/p/9451903.html 梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent).随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent).其中小批量梯度下降法也常用在深度学习中进行模型的训练.接下来,我们将对这三种不同的梯度下降法进行理解.  为了便于理解,这里我们将使

对卷积物理意义的理解

橘一个例子. 假设有一个人一直扇你巴掌,不考虑脸被扇麻痹了没感觉,不考虑你火大扇回去之类的干扰,求在t时刻感受到的疼痛程度Y(t)的值.这个Y(t)的值跟两个值有关. f(x)表示在x时刻扇巴掌的力度,x是某一时刻值 h(y)表示是某一巴掌在y分钟过分的疼痛程度(疼痛感会衰减) 在t时刻感受到的疼痛是包括之前所有巴掌的造成的疼痛感.因此要计算Y(t),就必须先算出在[0,t]这个时间内的任一时刻扇的一巴掌在t时刻能造成的疼痛. 也就是t时刻的巴掌力度 f(τ) 乘以 过了t-τ 分钟后的疼痛程度