1.梯度下降原理
梯度下降的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。最常用的例子就是下山,例如每1步算是一次步长,每次向下走都找最陡峭的地方(不考虑摔死的情况...)。假设山体是近似光滑没有山谷的,那么最终会找到一条最短最快的下山路径,这个路径也是梯度最陡的地方。
公式: x1 = x0 + λ▽J(x) (1)
J是关于x的一个函数,我们当前所处的位置为x0点,要从这个点走到J的最小值点。首先确定前进的方向,也就是梯度的反向,然后λ的步长,就到达了x1这个点。以上就是梯度下降的直观解释。
2.深度学习中的梯度下降
2.1 sgd
深度学习一般都用小批量梯度下降算法(Mini-batch gradient descent)。下面再说sgd算法,实际上指的就是mini-batch gradient descent算法,没有人会去一次拿整个数据集或者一个样本进行优化。核心原理还是公式1。
优缺点;
(1) 学习率大小和策略选择困难。使用mini-batch的时候,可以收敛得很快.
(2) 学习率不够智能,对参数的各个维度一视同仁。
(3) 同时面临局部极值和鞍点的问题。不能解决局部最优解的问题
(4) 在随机选择梯度的同时会引入噪声,使得权值更新