Они математически идентичны для 2 классов , следовательно, двоичные.Другими словами, категориальная кросс-энтропия 2-го класса такая же, как двоичная кросс-энтропия с одним выходом.Чтобы дать более реальный пример, они идентичны:
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', ...)
# is the same as
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', ...)
Какой использовать? Чтобы избежать однозначного кодирования категориальных выходных данных, если у вас есть только 2 класса, это проще - изперспектива кодирования - использовать двоичную кросс-энтропию.Двоичный регистр может быть вычислительно более эффективным в зависимости от реализации.