梯度下降的单次迭代可以在许多工作节点上并行化。我们简单地将训练集拆分到工作节点上,将参数传递给每个工作人员,每个工作人员计算其训练集子集的梯度,然后将其传回主节点进行平均。通过一些努力,我们甚至可以使用模型并行性。
然而,随机梯度下降本质上是一个串行过程。每次更新都必须按顺序执行。每次迭代,我们必须执行广播并收集所有参数。这对性能不利。最终,更新次数是深度模型训练速度的限制因素。
为什么我们必须执行许多更新?通过多少次更新,我们可以达到良好的准确性?
哪些因素会影响达到某种准确性所需的最小更新次数?