【问题标题】:Neural Network Mini Batch Gradient Descent神经网络小批量梯度下降
【发布时间】:2014-10-10 04:15:19
【问题描述】:

我正在使用多层神经网络。我打算做小批量梯度下降。假设我有 100 个超过 100 万个数据点的小批量。我不明白我必须更新整个网络的权重的部分。当我对这 100 个样本进行前向传递时,我会将这 100 个样本的所有错误相加。除了这个我还能做什么?我是否也必须并排计算隐藏层错误?什么时候计算?

【问题讨论】:

    标签: machine-learning neural-network gradient-descent


    【解决方案1】:

    神经网络中的批量学习

    您必须为(选择的)数据集中的每个数据实例计算网络中所有层中每个神经元的权重增量。这与反向传播中的过程相同。

    由于您希望使用批量学习,您将延迟权重更新步骤。相反,您应该存储这些增量并在批处理完成后将批处理中不同实例的增量相加。然后使用这些新操作的增量来更新网络中的权重。

    【讨论】:

    • 我可以只存储所有错误并在最后计算累积的重量增量吗?会一样吗?
    • 是的,这在计算上会更好!
    • 我认为批处理的大小是一个需要以某种方式调整的超参数?
    • 批次中包含的样本越多,更新增量就越“平滑”。这意味着权重更有可能避免局部最优,代价是收敛速度较慢。使用批量学习往往会加快训练过程。例如,使用批量学习将网络拟合到 MNIST 会更快。
    猜你喜欢
    • 1970-01-01
    • 2022-09-28
    • 2017-01-13
    • 2015-07-11
    • 2011-08-24
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多