日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

交叉熵(cross_entropy)作为损失函数在神经网络中的作用

發(fā)布時間:2023/12/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 交叉熵(cross_entropy)作为损失函数在神经网络中的作用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

交叉熵的作用

通過神經(jīng)網(wǎng)絡(luò)解決多分類問題時,最常用的一種方式就是在最后一層設(shè)置n個輸出節(jié)點

神經(jīng)網(wǎng)絡(luò)解決多分類問題最常用的方法是設(shè)置n個輸出節(jié)點,其中n為類別的個數(shù)。對于每一個樣例,神經(jīng)網(wǎng)絡(luò)可以得到的一個n維數(shù)組作為輸出結(jié)果。數(shù)組中的每一個維度(也就是每一個輸出節(jié)點)對應(yīng)一個類別。在理想情況下,如果一個樣本屬于類別k,那么這個類別所對應(yīng)的輸出節(jié)點的輸出值應(yīng)該為1,而其他節(jié)點的輸出都為0。

無論在淺層神經(jīng)網(wǎng)絡(luò)還是在CNN中都是如此,比如,在AlexNet中最后的輸出層有1000個節(jié)點:

而即便是ResNet取消了全連接層,也會在最后有一個1000個節(jié)點的輸出層:

一般情況下,最后一個輸出層的節(jié)點個數(shù)與分類任務(wù)的目標數(shù)相等。假設(shè)最后的節(jié)點數(shù)為N,那么對于每一個樣例,神經(jīng)網(wǎng)絡(luò)可以得到一個N維的數(shù)組作為輸出結(jié)果,數(shù)組中每一個維度會對應(yīng)一個類別。在最理想的情況下,如果一個樣本屬于k,那么這個類別所對應(yīng)的的輸出節(jié)點的輸出值應(yīng)該為1,而其他節(jié)點的輸出都為0,即[0,0,1,0,….0,0],這個數(shù)組也就是樣本的Label,是神經(jīng)網(wǎng)絡(luò)最期望的輸出結(jié)果,交叉熵就是用來判定實際的輸出與期望的輸出的接近程度!

Softmax回歸處理

神經(jīng)網(wǎng)絡(luò)的原始輸出不是一個概率值,實質(zhì)上只是輸入的數(shù)值做了復(fù)雜的加權(quán)和與非線性處理之后的一個值而已,那么如何將這個輸出變?yōu)楦怕史植?#xff1f;
這就是Softmax層的作用,假設(shè)神經(jīng)網(wǎng)絡(luò)的原始輸出為y1,y2,….,yn,那么經(jīng)過Softmax回歸處理之后的輸出為:

很顯然的是:

而單個節(jié)點的輸出變成的一個概率值,經(jīng)過Softmax處理后結(jié)果作為神經(jīng)網(wǎng)絡(luò)最后的輸出。

交叉熵的原理

交叉熵刻畫的是實際輸出(概率)與期望輸出(概率)的距離,也就是交叉熵的值越小,兩個概率分布就越接近。假設(shè)概率分布p為期望輸出,概率分布q為實際輸出,H(p,q)為交叉熵,則:

這個公式如何表征距離呢,舉個例子:
假設(shè)N=3,期望輸出為p=(1,0,0),實際輸出q1=(0.5,0.2,0.3),q2=(0.8,0.1,0.1),那么:

很顯然,q2與p更為接近,它的交叉熵也更小。
除此之外,交叉熵還有另一種表達形式,還是使用上面的假設(shè)條件:

其結(jié)果為:

以上的所有說明針對的都是單個樣例的情況,而在實際的使用訓(xùn)練過程中,數(shù)據(jù)往往是組合成為一個batch來使用,所以對用的神經(jīng)網(wǎng)絡(luò)的輸出應(yīng)該是一個m*n的二維矩陣,其中m為batch的個數(shù),n為分類數(shù)目,而對應(yīng)的Label也是一個二維矩陣,還是拿上面的數(shù)據(jù),組合成一個batch=2的矩陣:


所以交叉熵的結(jié)果應(yīng)該是一個列向量(根據(jù)第一種方法):

而對于一個batch,最后取平均為0.2。

在TensorFlow中實現(xiàn)交叉熵

tensorflow交叉熵計算函數(shù)輸入中的logits都不是softmax或sigmoid的輸出,而是softmax或sigmoid函數(shù)的輸入,因為它在函數(shù)內(nèi)部進行sigmoid或softmax操作

TensorFlow針對分類問題,實現(xiàn)了四個交叉熵函數(shù),分別是

  • tf.nn.sigmoid_cross_entropy_with_logits
  • tf.nn.softmax_cross_entropy_with_logits
  • tf.nn.sparse_softmax_cross_entropy_with_logits
  • tf.nn.weighted_cross_entropy_with_logits

sigmoid_cross_entropy_with_logits

tf.nn.sigmoid_cross_entropy_with_logits(logits=logits, labels=labels)
  • 計算方式:對輸入的logits先通過sigmoid函數(shù)計算,再計算它們的交叉熵,但是它對交叉熵的計算方式進行了優(yōu)化,使得的結(jié)果不至于溢出。
  • 適用:每個類別相互獨立但互不排斥的情況:例如一幅圖可以同時包含一條狗和一只大象。
  • output不是一個數(shù),而是一個batch中每個樣本的loss,所以一般配合tf.reduce_mean(loss)使用。
  • 計算公式:

    ?

    ?

softmax_cross_entropy_with_logits

tf.nn.softmax_cross_entropy_with_logits(_sentinel=None, labels=None, logits=None, dim=-1, name=None)
  • labels:和logits具有相同type和shape的張量(tensor),,是一個有效的概率,sum(labels)=1, one_hot=True(向量中只有一個值為1.0,其他值為0.0)。
  • 計算方式:對輸入的logits先通過softmax函數(shù)計算,再計算它們的交叉熵,但是它對交叉熵的計算方式進行了優(yōu)化,使得結(jié)果不至于溢出。
  • 適用:每個類別相互獨立且排斥的情況,一幅圖只能屬于一類,而不能同時包含一條狗和一只大象。
  • output:不是一個數(shù),而是一個batch中每個樣本的loss,所以一般配合tf.reduce_mean(loss)使用。
  • 計算公式:

    ?

    ?

sparse_softmax_cross_entropy_with_logits

tf.nn.sparse_softmax_cross_entropy_with_logits(_sentinel=None,labels=None,logits=None, name=None)
  • labels:shape為[batch_size],labels[i]是{0,1,2,……,num_classes-1}的一個索引, type為int32或int64
  • 計算方式:對輸入的logits先通過softmax函數(shù)計算,再計算它們的交叉熵,但是它對交叉熵的計算方式進行了優(yōu)化,使得結(jié)果不至于溢出。
  • 適用:每個類別相互獨立且排斥的情況,一幅圖只能屬于一類,而不能同時包含一條狗和一只大象 。
  • output不是一個數(shù),而是一個batch中每個樣本的loss,所以一般配合tf.reduce_mean(loss)使用。
  • 計算公式:
    和tf.nn.softmax_cross_entropy_with_logits()的計算公式一樣,只是要將labels轉(zhuǎn)換成tf.nn.softmax_cross_entropy_with_logits()中l(wèi)abels的形式

?

weighted_cross_entropy_with_logits

tf.nn.weighted_cross_entropy_with_logits(labels,logits, pos_weight, name=None)
  • 計算具有權(quán)重的sigmoid交叉熵sigmoid_cross_entropy_with_logits()
  • 計算公式:

    ?

?

?

https://www.jianshu.com/p/cf235861311b

總結(jié)

以上是生活随笔為你收集整理的交叉熵(cross_entropy)作为损失函数在神经网络中的作用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。