Какую функцию потерь я должен использовать в моем LSTM и почему? - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь понять Keras и LSTMs шаг за шагом.Прямо сейчас я создаю LSTM там, где ввод - это предложение, а вывод - массив из пяти значений, каждое из которых может быть 0 или 1.

Пример: Входное предложение: «Я ненавижу куки» Пример вывода: [0, 0,1,0,1]

Для этого я использую библиотеку keras.

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

Двоичная кросс-энтропия: Хорошо, если у меня есть выход всего 0 или 1 Категориальная кросс-энтропия: Хорошоесли бы у меня был вывод массива с одним 1 и всеми другими значениями, равными 0.

Обе функции не имели бы никакого смысла для моего примера.Что бы вы использовали и почему?

Редактировать

Другой вопрос: Какую функцию активации вы бы использовали в Keras?

Ответы [ 4 ]

0 голосов
/ 25 февраля 2019

Я нашел действительно хорошую ссылку, объясняя, что лучший метод - использовать «binary_crossentropy».

Причина в том, что каждое значение в массиве может быть 0 или 1. Таким образом, у нас есть двоичный файлпроблема.

Я тоже пробовал.С моим набором данных я смог получить точность 92% с помощью двойной кросс-энтропии.С категориальной перекрестной энтропией я только что получил точность 81%.

Редактировать

Я забыл добавить ссылку.Хорошие объяснения для нескольких моделей ввода / вывода и какую функцию потерь использовать:

https://towardsdatascience.com/deep-learning-which-loss-and-activation-functions-should-i-use-ac02f1c56aa8

0 голосов
/ 23 февраля 2019

Вы захотите использовать logistic активацию.Это подталкивает каждый логит между 0 и 1, что представляет вероятность этой категории.

Затем используйте categorical cross entropy.Это не сделает вашу модель единым классификатором класса, поскольку вы используете логистическую активацию, а не активацию softmax.

Практическое правило:

  • логистическая активация сдвигает значения между 0 и 1
  • softmax сдвигает значения между 0 и 1 И делает их действительным распределением вероятности (сумма 1)
  • перекрестная энтропия вычисляет разницу между распределениями любого типа.
0 голосов
/ 24 февраля 2019

Праймером по кросс-энтропии может быть то, что кросс-энтропийная потеря, или логарифмическая потеря, измеряет производительность классификационной модели, выходной сигнал которой представляет собой значение вероятности в диапазоне от 0 до 1.

Кросс-энтропийная потеря увеличивается какпрогнозируемая вероятность отклоняется от фактической метки.Поэтому прогнозирование вероятности 0,012, когда фактическая метка наблюдения равна 1, будет плохим и приведет к высокой величине потерь.

У идеальной модели потеря логарифма равна 0. Для модели LSTM эта функция потерь может понадобиться или не понадобиться.Вот ссылка , чтобы ответить на ваш вопрос более подробно.

0 голосов
/ 23 февраля 2019

Эта ссылка должна дать вам представление о том, что делает кросс-энтропия и когда было бы подходящее время для ее использования.Функции активации используются на экспериментальной основе.В керасе есть довольно много функций активации, которые вы можете попробовать по своему сценарию.

Пожалуйста, ознакомьтесь с этим Стэнфордским видео на YouTube и этим блогом , оба они дадут вам базовое понимание того, как выбирается функция потерь.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...