各種分類問題的損失函式

2021-10-19 05:17:24 字數 1558 閱讀 6541

在tf.nn下帶有「cross_entropy」的損失函式,入參logits都是沒有sigmoid或softmax之前的資料,函式會自動來計算。

輸出是每個樣本的loss,一般需要配合tf.reduce_mean(loss)使用。

1 輸入的labels是需要one-hot之後的tensor的函式。

1.1 sigmoid_cross_entropy_with_logits

tf.nn.sigmoid_cross_entropy_with_logits(_sentinel=

none

,labels=

none

, logits=

none

, name=

none

)

可以實現multi-label的問題,即labels可以是[[1,0,1,0], [1,0,0,0],[0,0,0,1]]這種同乙個樣本對應了乙個或多個label的多分類問題。

1.2 softmax_cross_entropy_with_logits

tf.nn.softmax_cross_entropy_with_logits(labels=

none

, logits=

none

, dim=-1

, name=

none

)

不能解決multi-label的問題,只能是乙個樣本對應乙個分類的多分類問題。

2 輸入的labels是類別index的tensor的函式。

2.1 sparse_softmax_cross_entropy_with_logits

tf.nn.sparse_softmax_cross_entropy_with_logits(labels=

none

,logits=

none

, name=

none

)

和tf.nn.softmax_cross_entropy_with_logits的計算方式一致,結果也一樣,只是入參的labels不同。

2.2 weighted_cross_entropy_with_logits

tf.nn.weighted_cross_entropy_with_logits(labels, logits, pos_weight, name=

none

)

通過pos_weight對正樣本計算tf.nn.sigmoid_cross_entropy_with_logits時候進行加權,即從原來的targets * -log(sigmoid(logits)) + (1 - targets) * -log(1 - sigmoid(logits))變成了 targets * -log(sigmoid(logits)) * pos_weight +(1 - targets) * -log(1 - sigmoid(logits))

tf.nn.nce_loss的labels應該是index形式的,沒有onehot

tensorflow 分類損失函式問題(有點坑)

tf.nn.softmax cross entropy with logits 記為f1 和 tf.nn.sparse softmax cross entropy with logits 記為f3 以及 tf.nn.softmax cross entropy with logits v2 記為f2 ...

多分類器的損失函式

函式特性 在機器學習中,hinge loss是一種損失函式,它通常用於 maximum margin 的分類任務中,如支援向量機。數學表示式為 假設我們現在有三個類別 而得分函式計算某張 的得分為f x,w 13,7,11 而實際的結果是第一類 yi 0 假設 代爾塔 10 上面的公式會把所有錯誤類...

分類問題損失函式的資訊理論解釋

分類問題的優化過程是乙個損失函式最小化的過程,對應的損失函式一般稱為logloss,對於乙個多分類問題,其在n個樣本上的logloss損失函式具有以下形式 上面的損失函式,很容易從最大似然的角度來做理解,也就是說等號右邊的部分,去掉負號以後,對應著模型的乙個估計f在n個樣本上 取了log 的似然函式...