Путаница между Binary_crossentropy и категориальным_crossentropy

Я делаю классификацию двоичного класса, используя глубокую нейронную сеть. Всякий раз, когда я использую binary_crossentropy, моя модель не дает хорошей точности (она ближе к случайному предсказанию). Но если я использую категоричную кроссентропию, делая размер выходного слоя 2, я получаю хорошую точность всего за 1 эпоху, которая близка к 0,90. Может кто-нибудь объяснить, что здесь происходит?

Ответ 1

У меня также есть эта проблема, пытаясь использовать binary_crossentropy с активацией softmax в выходном слое. Насколько я знаю, softmax дает вероятность каждого класса, поэтому, если ваш выходной слой имеет 2 узла, это будет что-то вроде p(x1), p(x2) и x1 + x2 = X. Поэтому, если у вас есть только 1 выход node, он всегда будет равен 1.0 (100%), поэтому у вас есть близкое к случайному предсказанию (честно говоря, оно будет близко к вашему распределению категории в наборе оценки).

Попробуйте изменить его на другой способ активации, например sigmoid или relu.