神经网络的Mini-Batch梯度下降
发布时间
阅读量:
阅读量
传统的常规梯度下降算法中,首先计算整体损失函数值;随后计算各参数相对于损失函数的梯度;最终更新各参数的梯度值。这种采用批量处理的方式被称为Batch gradient descent (BGD)。我们知道,在训练模型时采用批量梯度下降的方法:必须处理整个训练数据集(即所有样本),才能进行下一步迭代操作。当训练数据量极大时,在每次更新参数之前都需要遍历整个训练数据集,并计算当前的整体损失值以及各参数对应的导数值;虽然这种优化方法能够保证较好的收敛效果(即能够较好地逼近最优解),但因为每次迭代都需要等待完成所有样本的数据处理工作(即完成一次完整的前向传播和反向传播过程),导致整体效率较低,并且会导致整体训练速度大幅降低。
该算法采用随机梯度下降方法(Stochastic Gradient Descent, SDG)实现模型训练目标,在每次迭代过程中仅基于单个样本数据计算相应的损失函数值及其梯度信息的基础上完成参数更新操作;相较于批量处理方法而言具有较高的计算效率;然而该算法存在显著缺陷即其难以保证全局最优解的收敛性;具体而言算法可能会在最优解附近反复震荡导致优化过程无法稳定收敛;此外由于相邻两次参数更新方向可能存在相互抵消的可能性因而会导致目标函数值波动较为剧烈。
因此,在解决两种方法各自局限性的基础上, 目前常用的一种折中方案叫做 mini-batch gradient
全部评论 (0)
还没有任何评论哟~
