Minibatch梯度下降大致如下。假设B
为一组迷你批次,w
为网络权重,l
为学习率,g()
为梯度函数。 SGD算法为:
for b in B:
w = w - l * g(b, w)
在每个时期,g
都是对梯度的嘈杂观察。我想尝试的是一种“模型平均方法”,在该方法中,我会计算平均噪声梯度,然后在最后进行更新(我的问题是回归问题)。
g_m = np.zeros(w.shape)
i = 0
for b in B:
g_m = (g_m * i + g(b, w)) / (i + 1)
w = w - l * g_m
有没有办法仅在Keras中获得渐变?