目录
1. 随机梯度下降算法
在深度学习网络中,通常需要设计一个模型的损失函数来约束训练过程,如针对分类问题可以使用交叉熵损失,针对回归问题可以使用均方根误差损失等。模型的训练并不是漫无目的的,而是朝着最小化损失函数的方向去训练,这时就会用到梯度下降类的算法。
梯度下降法(gradient descent)是一个一阶最优化算法,通常也称为最速下降法,是通过函数当前点对应梯度(或者是近似梯度)的反方向,使用规定步长距离进行迭代搜索,从而找到一个函数的局部极小值的算法,最好的情况是希望找到全局极小值。但是在使用梯度下降算法时,每次更新参数都需要使用所有的样本。如果对所有的样本均计算一次,当样本总量特别大时,对算法的速度影响非常大,所以就有了随机梯度下降( stochastic gradient descent,SGD)算法。它是对梯度下降法算法的一种改进,且每次只随机取一部分样本进行优化,样本的数量一般是2的整数次幂,取值范围是32~256,以保证计算精度的同时提升计算速度,是优化深度学习网络中最常用的一类算法。
SGD算法及其一些变种,是深度学习中应用最多的一类算法。在深度学习中SGD通常指小批随机梯度下降( mini-batch gradient descent )算法,其在训练过程中,通常会使用一个固定的学习率进行训练。即