Я пытаюсь понять, как Keras на самом деле вычисляет градиенты пользовательских потерь в общих настройках.
Обычно потери определяются как сумма по выборкам независимых вкладов. Это позволяет в конечном итоге правильное распараллеливание в вычислении градиентов.
Тем не менее, если я добавлю глобальную нелинейность поверх нее, совмещая, таким образом, вклад отдельных выборок, сможет ли Keras правильно провести дифференцирование?
На практике, минимизирует ли он f (sum_i (x_i)) или вычисляет его по одной выборке за раз и, таким образом, уменьшает его до sum_i (f (x_i))?
Ниже приведен пример для функции журнала.
def custom_loss(y_true,y_pred):
return K.log(1+K.mean((y_pred-y_true)*(y_pred-y_true)))
Я проверил документацию, но не смог найти точного ответа.