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
Есть ли способ получитьградиент только в керасе?