在机器学习的背景下,我经常会遇到这样一个事实:在每个训练步骤之后,并不会出现纠正步骤,而只是每n个学习步骤。
引用了Python书中的深度学习:
这就是训练循环,它重复了足够的次数(通常在数千个例子中重复了几十次),得到了使损失函数最小化的权重值。
为什么我们不纠正每一步,但通常只有一次每100个学习样本?
我假设,但我不确定,这可能是因为效率,也是为了平滑校正“路径”(例如,整合一个校正步骤,这是最后100个损失函数值的平均值)。
提前谢谢你!
发布于 2019-03-04 11:56:08
这被称为批量更新,这是最流行的更新权值的方法。我们在SGD上下文中也称它为BatchSGD。是的,你说的是真的。如果我们有1000's的权重,我们通常在深层神经网络中。计算每个输入在每个权重下的部分皮肤病是不有效的。相反,我们将进行批处理更新,将最后100个输入的所有损失加在一起(在您的情况下),并且在第100次输入结束时,我们获取损失的平均值并更新网络的权重。请记住,计算偏导数是我们在神经网络中执行的最密集的计算任务之一。因此,对1进行100次更新就可以节省大量的计算量。希望它能帮上忙
https://datascience.stackexchange.com/questions/46630
复制相似问题