Керас: Почему функции потерь должны возвращать один скаляр для каждого элемента партии, а не только один скаляр?

Я пишу пользовательскую функцию потерь в Keras и только что споткнулся о следующее:

Почему функции потерь Keras должны возвращать один скаляр на элемент партии, а не только один скаляр?

Меня волнуют совокупные потери для всей партии, а не потери на единицу продукции, не так ли?


person Alex    schedule 20.03.2017    source источник
comment
Потому что это чище. Пакет — это просто абстракция, используемая алгоритмом оптимизации. Они построили функции потерь так, чтобы они были наиболее интуитивно понятными для пользователей.   -  person Nassim Ben    schedule 20.03.2017
comment
@NassimBen На самом деле я бы утверждал прямо противоположное. Целевая функция по своему определению имеет скалярное выходное значение, поэтому было бы чище, если бы Керас поступал именно так. И, конечно же, пакет — это просто абстракция, но смысл функции стоимости состоит в том, чтобы минимизировать стоимость для всех обучающих примеров (независимо от того, относятся ли все к мини-пакету, как в SGD, или ко всему обучающему набору для детерминированного градиентного спуска) одновременно.   -  person Alex    schedule 20.03.2017
comment
Кажется, я разобрался: fit() имеет аргумент sample_weight, с помощью которого можно присваивать разные веса разным образцам в пакете. Для того, чтобы это работало, вам нужна функция потерь, чтобы возвращать потери на единицу партии.   -  person Alex    schedule 20.03.2017
comment
Действительно ... он более гибкий, как есть. мне нравится вот так   -  person Nassim Ben    schedule 20.03.2017


Ответы (1)


Кажется, я разобрался: fit() имеет аргумент sample_weight, с помощью которого можно присваивать разные веса разным образцам в пакете. Для того, чтобы это работало, вам нужна функция потерь, чтобы возвращать потери на единицу партии.

person Alex    schedule 20.03.2017