Керас: пользовательская целевая функция, где поставить производную
Я пытаюсь немного изменить функцию потерь моего монастыря, и у меня есть несколько вопросов со стороны реализации.
Я уже знаю, как создать пользовательскую функцию потерь в 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