不管在机器学习还是深度学习中,我们都是通过对loss函数求偏导,来更新要学习的参数。一般用的比较多的就是梯度下降算法,当然了梯度下降算法有几个变种,刚好面试问到这个问题了,因此在此做个记录。
1、什么是梯度?
梯度的本意是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
1)梯度是一个向量,即有方向有大小;
2)梯度的方向是最大方向导数的方向;(函数沿梯度方向函数有最大的变化率。)
3)梯度的值是最大方向导数的值。
所以在优化过程中为了让我们的loss降低的话,必须去沿着负梯度方向进行优化、减小函数的值。
所以在一般的更新过程中,我们将梯度下降算法写成如下: