#keras #neural-network #loss-function
#keras #нейронная сеть #функция потерь
Вопрос:
Различные функции потерь, используемые по умолчанию в Keras, используют среднее значение между всем образцом и всеми компонентами. В частности, я использовал:
model_cnn_dense.compile(loss='mae', optimizer=opt)
При этом я получаю, по-видимому, хорошие результаты 1 см ошибки mea в моем регрессионном тесте, но, глядя на данные, максимальная абсолютная ошибка в моей последовательности данных составляет около 20 см, что не подходит для моего приложения.
Есть способ не брать среднее значение абсолютной ошибки для всех выборок, а просто взять максимальную абсолютную ошибку для всех выборок?
Большое вам спасибо!
Добавлен пример (Редактировать):
Я хочу получить из NN значения:
1,2,3
…
4,5,6
Реконструкция из NN — это:
1,2,6
…
4,5,6
Таким образом, полученное значение является:
(ABS(1-1) ABS(2-2) ABS(3-6) ... ABS(4-4) ABS(5-5) ABS(6-6))/N
Если N состоит только из шести показанных элементов, конечное значение mae равно 0,5 (действительно низкое значение)
Вместо этого я хочу получить функцию потерь, которая дает мне не среднюю абсолютную ошибку, а максимальную абсолютную ошибку:
MAX(ABS(1-1),ABS(2-2),ABS(3-6), ..., ABS(4-4) ABS(5-5) ABS(6-6))
Если N состоит только из шести показанных элементов, конечное максимальное абсолютное значение равно 3 (действительно отличается от 0,5)
Это моя идеальная функция потерь.
Комментарии:
1. Можете ли вы добавить более подробную информацию о том, что именно вы хотите?
2. Я отредактировал вопрос, приведя простой пример
3. Вы можете сделать это, но тогда функция потерь не будет репрезентативной для всего пакета. Она будет представлять только один образец, а производная будет относиться только к этому образцу.
4. Мм, нет. Я просто хочу максимальную итоговую ошибку по всем выборкам, а не среднюю абсолютную ошибку по всем выборкам, чтобы она была репрезентативной для всех N элементов. Я отредактировал вопрос. Извините, если я не был ясен.