1.全梯度下降法 FG
定义:
计算训练集所有样本误差,对其在求取平均值作为目标函数
缺点:
计算整个数据集,梯度下降慢
计算量有限
不能在线更新模型,即在运行过程中,不能增加新的样本
容易陷入局部最优解
2.随机梯度下降算法 SG
定义:
计算单个样本的误差,每次只带入计算一个样本函数的梯度来更新权重,再取下一个样本重复此过程,知道损失函数值停止下降或者函数值小于某个可以容忍的阈值.
缺点:
每次只使用一个样本进行迭代,遇上噪声容易陷入局部最优解
3.小批量梯度下降算法 SG
定义:
是FG 和SG 的折中方案
每从训练集随机抽取小样本集,在小样本机上采用FG迭代更新权重
公式:
4.随机平均梯度下降法 SAG
算法比较:
(1)FG方法由于它每轮更新都要使用全体数据集,故花费的时间成本最多,内存存储最大。
(2)SAG在训练初期表现不佳,优化速度较慢。这是因为我们常将初始梯度设为0,而SAG每轮梯度更新都结合了上一轮梯度值。
(3)综合考虑迭代次数和运行时间,SG表现性能都很好,能在训练初期快速摆脱初始梯度值,快速将平均损失函数降到很低。但要注意,在使用SG方法时要慎重选择步长,否则容易错过最优解。
(4)mini-batch结合了SG的“胆大”和FG的“心细”,从6幅图像来看,它的表现也正好居于SG和FG二者之间。在目前的机器学习领域,mini-batch是使用最多的梯度下降算法,正是因为它避开了FG运算效率低成本大和SG收敛效果不稳定的缺点。