Керас: пользовательская целевая функция, где поставить производную

Я пытаюсь немного изменить функцию потерь моего монастыря, и у меня есть несколько вопросов со стороны реализации.

Я уже знаю, как создать пользовательскую функцию потерь в Keras и как ее вызвать. Но я до сих пор не ясно, где включить производную функции.

Допустим, моя новая функция потерь:

Потеря = кросс-энтропия + f(x)

где f(x) = x**2.

Где я должен включить f'(x)=2x, чтобы он использовался на этапе обратной поддержки? Керас автоматически делает это? Или я должен определить это явно в какой-то части?

Спасибо за любой намек на это, так как я не знаю, как это сделать.

Chuan.

1 ответ

Потеря должна быть функцией а) вывода вашей сети и б) правильных меток. Потеря = Summ(a,b) заставляет вашу сеть минимизировать как a), так и b). минимизация х **2 приближает х к нулю; минимизация softmax().. поскольку softmax(x) не является функцией потерь, она определяется только для вектора X и помогает суммировать вектор до 1, вы не можете минимизировать ее. Я предполагаю, что вы смешиваете понятия здесь.

Softmax является функцией активации, и ее выход может использоваться для расчета потерь, например. logloss

Другие вопросы по тегам