python編寫softmax函數(shù)、交叉熵函數(shù)實(shí)例

python代碼如下:
import numpy as np # Write a function that takes as input a list of numbers, and returns # the list of values given by the softmax function. def softmax(L): pass expL = np.exp(L) sumExpL = sum(expL) result = [] for i in expL: result.append(i*1.0/sumExpL) return result
python編寫交叉熵公式:
import numpy as np def cross_entropy(Y, P): Y = np.float_(Y) P = np.float_(P) return -np.sum(Y * np.log(P) + (1 - Y) * np.log(1 - P))
補(bǔ)充知識:分類時,為什么不使用均方誤差而是使用交叉熵作為損失函數(shù)
MSE(均方誤差)對于每一個輸出的結(jié)果都非??粗?,而交叉熵只對正確分類的結(jié)果看重。
例如:在一個三分類模型中,模型的輸出結(jié)果為(a,b,c),而真實(shí)的輸出結(jié)果為(1,0,0),那么MSE與cross-entropy相對應(yīng)的損失函數(shù)的值如下:
MSE:

cross-entropy:

從上述的公式可以看出,交叉熵的損失函數(shù)只和分類正確的預(yù)測結(jié)果有關(guān)系,而MSE的損失函數(shù)還和錯誤的分類有關(guān)系,該分類函數(shù)除了讓正確的分類盡量變大,還會讓錯誤的分類變得平均,但實(shí)際在分類問題中這個調(diào)整是沒有必要的。
但是對于回歸問題來說,這樣的考慮就顯得很重要了。所以,回歸問題熵使用交叉上并不合適。
以上這篇python編寫softmax函數(shù)、交叉熵函數(shù)實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用全連接神經(jīng)網(wǎng)絡(luò)求解MNIST問題詳解
這篇文章主要介紹了Python利用全連接神經(jīng)網(wǎng)絡(luò)求解MNIST問題,結(jié)合實(shí)例形式詳細(xì)分析了單隱藏層神經(jīng)網(wǎng)絡(luò)與多層神經(jīng)網(wǎng)絡(luò),以及Python全連接神經(jīng)網(wǎng)絡(luò)求解MNIST問題相關(guān)操作技巧,需要的朋友可以參考下2020-01-01
Python實(shí)現(xiàn)發(fā)送郵件到自己郵箱
在日常開發(fā)中,我們經(jīng)常需要監(jiān)控應(yīng)用程序的狀態(tài),及時發(fā)現(xiàn)問題并采取措施解決。而通過郵件發(fā)送報(bào)警信息則是一種常見的實(shí)現(xiàn)方式。本文就來介紹一下Python實(shí)現(xiàn)發(fā)送郵件到自己郵箱的方法2023-04-04
使用NumPy讀取MNIST數(shù)據(jù)的實(shí)現(xiàn)代碼示例
這篇文章主要介紹了使用NumPy讀取MNIST數(shù)據(jù)的實(shí)現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Django 解決阿里云部署同步數(shù)據(jù)庫報(bào)錯的問題
這篇文章主要介紹了Django 解決阿里云部署同步數(shù)據(jù)庫報(bào)錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
pytorch查看通道數(shù) 維數(shù) 尺寸大小方式
這篇文章主要介紹了pytorch查看通道數(shù) 維數(shù) 尺寸大小方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05

