Отрицательная биномиальная потеря в нейронной сети с использованием Tensorflow / Keras - PullRequest
0 голосов
/ 06 сентября 2018

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

Насколько мне известно, после просмотра доступных функций потерь такой функции не существует для керас или тензорного потока (хотя я надеюсь, что я ошибаюсь, и я что-то пропустил).

Я осмотрелся и увидел сообщения, в которых предлагается просто заменить потерю, чтобы включить отрицательный бином, но кажется, что создание настраиваемой потери в тензорном потоке - это больше, чем просто замена ее с помощью tf.contrib.distributions. NegativeBinomial

Есть несколько постов, в которых рассказывается о создании пользовательских функций потерь для Tensorflow / keras, например: https://datascience.stackexchange.com/questions/25029/custom-loss-function-with-additional-parameter-in-keras Посмотрев на это, я пытаюсь понять, как это кодировать.

Мне интересно, если 1) кто-то уже создал функцию потерь с использованием отрицательного бинома и хочет поделиться тем, как она была закодирована, или 2) советы о том, как это сделать.

Я работаю исключительно в Python над этим проектом.

Оцените всю помощь заранее.

1 Ответ

0 голосов
/ 12 октября 2018

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

def custom_loss(y_true, y_pred):
    ...
    loss = ...
    return loss

Рассматривайте y_true и y_pred как тензоры. (это означает, что вместо использования таких функций, как np.pow (y_true, 2), вам необходимо использовать функции из tenorflow или keras.backend)

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

model.compile(loss=custom_loss, optimizer='your favorite optimizer')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...