【问题标题】: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”之类的东西。绘制模型性能图,比较并得出结论。

【讨论】:

    猜你喜欢
    • 2020-10-31
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2018-01-29
    • 2021-08-02
    相关资源
    最近更新 更多