我已经交叉交叉。进行了验证,因为我不确定它最适合的地方

如果我选择迷你批次(即,采样训练集的子集),梯度下降如何用于训练神经网络?我想到了三种不同的可能性:

时代开始。我们仅对一个MiniBatch进行采样,并获取错误并进行反射,即更新权重。时代结束。

时代开始。我们采样并进食一个Minibatch,获取错误并进行反向处理,即更新权重。我们重复此操作,直到我们对完整的数据集进行了采样。时代结束。

时代开始。我们采样并进食minibatch,获取错误并将其存储。我们重复此操作,直到我们对完整的数据集进行了采样。我们以某种方式平均错误,并通过更新权重来反向它们。时代结束。

有帮助吗?

解决方案

让我们说一个神经网络的输出鉴于其参数为$$ f(x; w)$$让我们将损耗函数定义为平方L2损耗(在这种情况下)。 $$ l(x,y; w)= frac {1} {2n} sum_ {i = 0}^{n} [f(x_i; w)-y_i]^2 $$,在这种情况下,在这种情况下表示为$ n $。从本质上讲,这意味着我们在样品的有限子集上迭代,该样品的大小等于您的批量大小,并使用该批次下的梯度标准化。我们要这样做,直到我们用尽了数据集中的每个数据点为止。然后时代结束了。在这种情况下的梯度:$$ frac { partial l(x,y; w)} { partial w} = frac {1} {n} {n} sum_ {i = 0}^n} x_i; w)-y_i] frac { partial f(x_i; w)} { partial w} $$使用批处理梯度下降使您的梯度归一化,因此更新并不像使用了随机梯度下降那样零星。

其他提示

当您使用迷你批次训练时,您将获得第二个选项,每次迷你批次后都会更新网络,并且在展示所有样本后,Epoch结束了。

请查看这些 回应

许可以下: CC-BY-SA归因
scroll top