如何使用小批量梯度下降更新神经网络中的权重?

机器算法验证 机器学习 神经网络 梯度下降 反向传播
2022-03-29 16:08:27

如果我选择小批量(即,对训练集的一个子集进行采样),梯度下降如何训练神经网络?我想到了三种不同的可能性:

  1. 纪元开始。我们只对一个小批量进行采样和前馈,得到错误并对其进行反向传播,即更新权重。时代结束。

  2. 纪元开始。我们对一个小批量进行采样和前馈,得到错误并对其进行反向传播,即更新权重。我们重复此操作,直到我们对完整的数据集进行了采样。时代结束。

  3. 纪元开始。我们采样并前馈一个小批量,得到错误并存储它。我们重复此操作,直到我们对完整的数据集进行了采样。我们以某种方式平均误差并通过更新权重来支持它们。时代结束。

1个回答

Mini-batch 基本上按照您在 2 中的描述实现。

  1. 纪元开始。我们对一个小批量进行采样和前馈,得到错误并对其进行反向传播,即更新权重。我们重复此操作,直到我们对完整的数据集进行了采样。时代结束。

假设网络正在最小化以下目标函数:

λ2||θ||2+1ni=1nE(x(i),y(i),θ)

这本质上是权重更新步骤

θ=(1αλ)θα1bk=ii+b1Eθ(x(k),y(k),θ)

其中以下符号表示:

E= 误差度量(有时也表示为成本度量J)

θ= 权重

α= 学习率

1αλ= 重量衰减

b= 批量大小

x= 变量

您循环连续批次(即递增b) 并更新权重。这种更频繁的权重更新与向量化相结合,使得小批量梯度下降比任何一种通用方法收敛得batch更快stochastic