本文共 994 字,大约阅读时间需要 3 分钟。
批量训练是一种将大型训练集划分为多个小训练集进行优化的方法,主要原因在于大型训练集难以同时加载到显存中。这种方法虽然会导致损失函数值(loss)的波动,但总体趋势仍然是下降的,随着训练次数的增加,损失值会逐渐趋于稳定,最终达到一个收敛值。
在动量梯度下降(momentum gradient descent)中,参数更新规则为: w = w - dw_change 其中,dw_change是梯度更新的变化量。具体来说,dw_change可以通过以下公式计算: dw_c1 = a * dw_c0 + (1 - a) * dw1 dw_c2 = a * dw_c1 + (1 - a) * dw2 这个过程实际上是对单个训练集的影响进行了削弱,使得每次更新的梯度更为稳定。这样的处理不仅减少了loss值的波动幅度,还通过累加历史梯度,增强了参数更新的步伐,从而加速了训练过程。
在实际应用中,为了解决刚开始训练阶段参数更新较慢的问题,可以选择在前期不使用指数加权平均的方法,或者在训练一定数量的样本后再启用指数加权平均。这种方法可以有效克服前期训练缓慢的问题。
RMSProp(根均方差比例法)是一种改进的梯度下降方法,其更新规则为: s_dw = b * s_dw + (1 - b) * dw * dw w = w - a * (dw / sqrt(s_dw)) 通过动态调整梯度的模长(dw/sqrt(s_dw)),RMSProp可以在不同的训练阶段自动调节学习率,从而减小某些维度上的梯度波动,同时在其他维度上适当增大梯度更新的幅度,从而加速训练过程。
Adam(Adam优化器)结合了动量梯度下降和RMSProp方法,使用以下更新公式: w = w - a * (dw / sqrt(s_dw)) b = b - a * (db / sqrt(s_db)) 其中,s_dw = b * s_dw + (1 - b) * dw * dw,s_db同理。在每一步训练中,Adam不仅考虑了当前梯度的影响,还对历史梯度进行了加权平均,使得参数更新更加稳定和有效。Adam算法的超参数包括学习率(learning_rate)、动量参数a1、RMSProp参数a2和b。
总的来说,批量训练、动量梯度下降、RMSProp以及Adam优化器等方法相辅相成,共同推动了机器学习模型的高效训练。
转载地址:http://peqfk.baihongyu.com/