梯度下降(Gradient Descent)算法是机器学习中使用非常广泛的优化算法。当前流行的机器学习库或者深度学习库都会包括梯度下降算法的不同变种实现。
接下来我将介绍三种梯度下降算法:随机梯度下降算法、批量梯度下降算法、小批量梯度下降算法
- 梯度下降
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快,很明显从起始点出发最陡的地方下降最快,这就是我们的负梯度方向(此处讨论求最小值解,若求最大值则用正梯度方向)。
这是线性回归中的损失函数,类似于最小二乘法进行拟合,这也是迭代评判的标准。
梯度下降法的关键是搜索方向和步长,步长太大容易导致振荡,步长太小迭代时间太长,搜索方向要寻找速度最快的方向。
使用梯度下降算法的步骤:
1)对θ赋初始值,这个值可以是随机的,也可以让θ是一个全零的向量。
2)改变θ的值,使得目标损失函数J(θ)按梯度下降的方向进行减少。
3)当下降的高度小于某个定义的值,则停止下降,否则继续迭代,直至到达循环最大次数。
这是梯度方向的推导过程:
收敛条件:
随机梯度下降算法(Stochastic Gradient Descent<