В настоящее время я обучаю модель бинарной классификации. Мне понравилась идея иметь две вероятности (по одной для каждого из существующих классов), которые в сумме дают 1. Поэтому я использовал softmax в моем выходном слое и получил очень высокую точность (до 99,5%) с очень низкими потерями. 0,007. Немного исследуя, я обнаружил, что двоичная кроссентропия - единственный реальный выбор при обучении проблеме двухмерной классификации. Не могли бы вы помочь мне понять, что следует использовать в качестве функции потерь и функции активации в задаче двоичной классификации и почему?
Вот мой код:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(10, input_dim=input_dim, activation='sigmoid'))
model.add(tf.keras.layers.Dense(10, activation='sigmoid'))
model.add(tf.keras.layers.Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])