4

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

+0

В настоящее время я просто использую binary_corrsentropy как функцию потерь, и мне любопытно узнать, можно ли добавить вес для разных ярлыков классов. – user297850

ответ

2

Вы можете использовать параметр class_weightmodel.fit, чтобы весить свои классы и, как таковые, наказать по-разному в зависимости от класса.

class_weight: факультативные словарные индексы класса картирование (целые числа) к массе (флоат), чтобы применить к потере этой модели для образцов из этого класса во время обучения. Это может быть полезно, чтобы сказать модели «уделять больше внимания» образцам из недопредставленного класса.

Например:

out = Dense(2, activation='softmax') 
model = Model(input=..., output=out) 
model.fit(X, Y, class_weight={0: 1, 1: 0.5}) 

Это наказать второй класс меньше первого.

+0

Есть ли способ сделать этот элемент мудрым? Могу ли я просто взвешивать вывод энтропии binary_cross? Что делать, если истинные положительные результаты следует взвешивать иначе, чем истинные негативы (а не только положительные, как в вашем ответе)? – Nickpick

+0

В конце вы можете умножить любой термин, который вы хотите, на выход функции потери, но для этого вам нужно написать свою собственную функцию потерь (т.е. предоставить функцию, которая принимает 'y_pred' и' y_true', вычислить вашу потерю и умножьте свой вектор веса). – nemo

+0

Но не будет бинарной функцией кросс-энтропии всегда производить потерю между 0 и 1 (0,5 означает, что y_true == y_pred). Не будет ли масштабирование искажать функцию потерь? – Nickpick

 Смежные вопросы

  • Нет связанных вопросов^_^