如果大家有过高数的学习经历,就一定对梯度有过一定的学习。接下来,人邮君带着大家简单复习一下梯度的概念和意义。
梯度(gradient) 的概念在空间的每一个点都可以确定无限多个方向,一个多元函数在某个点也必然有无限多个方向。因此,导数在这无限多个方向导数中最大的一个(它直接反映了函数在这个点的变化率的数量级)等于多少?它是沿什么方向达到的?描述这个最大方向导数及其所沿方向的矢量,就是我们所说的梯度。
梯度是场论里的一个基本概念。所谓“场”, 它表示空间区域上某种物理量的一种分布。从数学上看,这种分布常常表示为 2 上的一种数值函数或向量函数。能表示为数值函数u=u (x,y,z) 的场,称为数量场,如温度场、密度场等。
梯度的本意是一个向量(矢量), 表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
梯度是雅可比矩阵的一种特殊形式,当m=1时函数的雅可比矩阵就是梯度,这个概念原是为场论设定的,任何场都可以用来理解梯度,后来被引用到数学中用来指明函数在指定点的变量率最快的方向和大小,是一种变化效率的数字抽象。
举一个降维的例子,在修建一个通向山顶的缆车时,缆车的路线怎么修建效率最高呢?从山顶到山底一条直线中间可能有山峰阻拦,一昧的修高山顶的到达站不仅不安全还会增加施工效率,在调整修建缆车的角度时的角度变化率就是梯度,角度太低了通不到山顶这个梯度方向角度就是零,方向导数就也是零。
梯度的物理及数学意义参考资料:[图文]方向梯度与导数 - 百度文库
我们可以理解物理中梯度是一个用来做用空间中纯量场的一个数学运算,可以用来了解纯量场随空间的变化。而数学中单从梯度的下降算法而言能够帮我们找到函数的极小值点。
梯度的使用(之一):梯度下降类比之前的修缆车的概念,从山顶向山底修缆车就是一个梯度下降的基本过程。修建梯度的山峰就是一个可微分的函数。目标是最有效率的修建到山底的缆车上车点(函数的最小值)最快修建的方式就是找到当前位置最陡峭的方向,沿着此方向向下探索,对应到函数中,就是找到给定点的梯度 ,沿着梯度相反的方向,就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向。在《百面机器学习》中进行很详细的介绍。
梯度下降算法,图源《深度学习原理与实践》
这种算法在机器学习中,优化问题的目标函数通常可以表示成:
经典的梯度下降法采用所有训练数据的平均损失来近似目标函数,即