1. 梯度
在微积分中,梯度的概念是:对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来。比如函数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)增加最快的地方,或者说,沿着梯度向量的方向,更加容易找到函数的最大值,相反 沿着梯度相反的方向也就更加容易找到函数的最小值。
2. 梯度下降与梯度上升
在机器学习算法中,我们想要最小化损失函数,从而得到最鲁棒的model,那么我们就可以通过梯度下降法来一步步迭代求解,得到最小化的损失函数和对应的模型参数。反过来如果我们想要求解损失函数的最大值,也只需要使用梯度上升法来迭代就可以了。
梯度下降法和梯度上升法是可以相互转换的,
3. 梯度下降
所谓梯度下降的目的就是在一个高维平面上,尽可能地去找到最小值(损失函数的最小值),但实际情况下往往找到一个相对最优的极小值就可以满足我们的需求了,是因为只有在损失函数为一个凸函数时,才能够保证梯度下降一定能够找到全局的最小值,而实际条件往往无法满足。如下图:
为了找到上图中的最小值or极小值,最优的解法即从初始点出发,每次沿着梯度相反的方向往下走(这样可以保证高度下降的速度最快),最终可以得到一个最小值(极小值).