深度學習TensorFlow筆記——損失函數


1.損失函數---------經典損失函數--------交叉熵:交叉熵刻畫了兩個概率分布之間的距離,它是分類問題中使用比較廣的一種損失函數。通過q來表示p的交叉熵為:

 

Softmax將神經網絡前向傳播得到的結果變成概率分布,原始神經網絡的輸出被用作置信度來生成新的輸出,而新的輸出滿足概率分布的所有要求。

交叉熵函數不是對稱的,H(p,q)!=H(q,p),他刻畫的是通過概率分布q來表達概率分布p的困難程度。因為正確答案是希望得到的結果,所以當交叉熵作為神經網絡的損失函數是,p代表的是正確答案,q代表的是預測值。交叉熵刻畫的是兩個概率分布的距離,也就是說交叉熵值越小,兩個概率分布越接近。

tensorflow實現交叉熵代碼:

 

 其中y_代表正確結果,y代表預測結果。tf.clip_by_value()函數的意思是,小於1e-10的數全換成1e-10,大於1的數全換成1。tensorflow中*的意思是對應相同位置的數項乘,不是矩陣的乘法。

 因為交叉熵一般會與softmax回歸一起使用,所以tensorflow對這兩個功能進行了統一封裝:

 

 通過這個命令就可以得到使用了Softmax回歸之后的交叉熵。

在只有一個正確答案的分類問題中,tensorflow提供了tf.nn.sparse_softmax_cross_entropy_with_logits函數來進一步加速計算過程。

2.損失函數---------經典損失函數--------均方誤差(MSE,mean squared error):

 

 其中yi為一個batch中第i個數據的正確答案,而yi‘為神經網絡給出的預測值。tensorflow實現代碼:

 3.損失函數---------自定義函數-----

tf.greater(A,B)    返回A>B的結果,布爾值

tf.select(C,A,B)   C為真時(True),返回A值,為假(False)時返回B值。

這兩個函數都是在元素級別進行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM