Я делаю классификацию двоичного класса, используя глубокую нейронную сеть. Всякий раз, когда я использую binary_crossentropy, моя модель не дает хорошей точности (она ближе к случайному предсказанию). Но если я использую категоричную кроссентропию, делая размер выходного слоя 2, я получаю хорошую точность всего за 1 эпоху, которая близка к 0,90. Может кто-нибудь объяснить, что здесь происходит?
Путаница между Binary_crossentropy и категориальным_crossentropy
Ответ 1
У меня также есть эта проблема, пытаясь использовать binary_crossentropy с активацией softmax
в выходном слое. Насколько я знаю, softmax
дает вероятность каждого класса, поэтому, если ваш выходной слой имеет 2 узла, это будет что-то вроде p(x1)
, p(x2)
и x1 + x2 = X
. Поэтому, если у вас есть только 1 выход node, он всегда будет равен 1.0 (100%), поэтому у вас есть близкое к случайному предсказанию (честно говоря, оно будет близко к вашему распределению категории в наборе оценки).
Попробуйте изменить его на другой способ активации, например sigmoid
или relu
.