首先,梯度下降最直观就是方向的选择问题,从山顶往山底,每次沿着梯度的方向(最抖的方向)往下,路程是最短的。
梯度下降的目的是最小化损失函数。
梯度下降的三种方法:
Batch gradient descent: 每一步的梯度下降都使用了所有的训练样本,所有样本梯度的平均值。缺点是计算量大,内存消耗大。优点:全局最优解;易于并行实现。
SGD 随机梯度下降,每个样本都计算一次梯度并下降。训练速度快,可能局部最小。
Mini-batch:综合了上述两者的优点。把数据集分成多个子集,然后每次对子集里的样本进行梯度下降。
附:样本特征的缩放以及标准化可以使得梯度下降更快!
梯度下降的推导流程和向量化例子:
假设函数如下
损失函数是平方误差的形式:
要使损失函数达到最小,依次更新 delta0,delta1……