這是 Keras 模型的最后一層。model.add(Dense(3, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])我知道softmax層的輸出是一個數組,概率總和為1,比如[0.1, 0.4, 0.5].我有一個關于使用準確性作為指標的問題。例如,當真實類別為[0, 0, 1]且預測概率為 時[0.1, 0.4, 0.5],即使0.5是最大概率,此預測的準確度也應為0,因為0.5 != 1. 那是對的嗎?更一般地,當輸出層激活為 時softmax,我們通常會得到浮動概率預測,并且在極少數情況下我們會得到 [0, 0, 1]像 所以我們在使用as activation的時候不能用accuracyas metric softmax。那是對的嗎?
1 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
eg,當真實類別為[0, 0, 1],預測概率為[0.1, 0.4, 0.5]時,即使0.5是最大概率,這個預測的準確率也應該是0,因為0.5 != 1。是那對嗎?
不,您將具有最大值的索引視為模型的預測。因此,在您的示例中,此示例預測將有助于提高準確性。這通常稱為 Top-1 精度。在圖像分類中,也經常使用 Top-5 精度(softmax 層中的前 5 個最大值被視為 NN 的猜測,并考慮它們的精度)。
更一般地,當輸出層激活為 softmax 時,我們通常會得到浮動概率預測,并且在極少數情況下我們會得到像 [0, 0, 1] 這樣的整數概率預測。所以我們在使用 softmax 作為激活時不能使用準確性作為度量。那是對的嗎?
從技術上講,您永遠不會獲得 softmax 層輸出的整數值,因為類型是 float。但是,是的,獲得 [0.0, 0.0, 1.0] 的機會非常小。而你的這個假設是不正確的,因為前提不成立。然而,當使用 Softmax 作為神經網絡的分類層時,準確性是一個有效的指標。
添加回答
舉報
0/150
提交
取消