【问题标题】:I have used softmax function with loss='binary_crossentropy' for a two class classification problem我使用带有 loss=\'binary_crossentropy\' 的 softmax 函数来解决二分类问题
【发布时间】:2023-02-19 18:36:40
【问题描述】:
对于二分类问题,sigmoid + binary_crossentropy 很好,或者 softmax + categorical_crossentropy 很好。但在我的例子中,我使用了 softmax(2 dense layers) + binary_crossentropy 并训练了 DL 模型。这是正确的吗?产生的精度是真实的吗?
请让我知道 softmax(2 dense layers) + binary_crossentropy 是否正确。
【问题讨论】:
标签:
machine-learning
deep-learning
data-science
loss-function
image-classification
【解决方案1】:
层数在这个阶段无关紧要。如果您使用softmax,那么它要么是categorical_crossentropy,要么是sparse_categorical_crossentropy,具体取决于您是否对目标进行了单热编码。但是softmax输出层激活函数和loss='binary_crossentropy'之间没有一致性,输出很可能是古怪的。
model.add(Dense(2, activation='softmax')) #2 because it's a two class problem
model.compile(loss='categorical_crossentropy',
optimizer='adagrad', #optimizer can be whatever works best
metrics=['accuracy'])
使用softmax还是sigmoid取决于你的分类问题。是类似于“A vs NOT A”还是“A or B”之类的东西。绘制模型性能图,比较并得出结论。