一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python機器學習pytorch交叉熵損失函數的深刻理解

Python機器學習pytorch交叉熵損失函數的深刻理解

2022-01-23 22:20Ezail_xdu Python

這篇文章主要為大家介紹了Python機器學習中對交叉熵損失函數的深刻理解,文中作出了詳細易懂的講解,有需要的朋友可以借鑒參考下希望能夠有所幫助

說起交叉熵損失函數「Cross Entropy Loss」,腦海中立馬浮現出它的公式:

Python機器學習pytorch交叉熵損失函數的深刻理解

我們已經對這個交叉熵函數非常熟悉,大多數情況下都是直接拿來使用就好。但是它是怎么來的?為什么它能表征真實樣本標簽和預測概率之間的差值?上面的交叉熵函數是否有其它變種?

 

1.交叉熵損失函數的推導

我們知道,在二分類問題模型:例如邏輯回歸「Logistic Regression」、神經網絡「Neural Network」等,真實樣本的標簽為 [0,1],分別表示負類和正類。模型的最后通常會經過一個 Sigmoid 函數,輸出一個概率值,這個概率值反映了預測為正類的可能性:概率越大,可能性越大。
Sigmoid 函數的表達式和圖形如下所示:

Python機器學習pytorch交叉熵損失函數的深刻理解

Python機器學習pytorch交叉熵損失函數的深刻理解

其中 s 是模型上一層的輸出,Sigmoid 函數有這樣的特點:s = 0 時,g(s) = 0.5;s >> 0 時, g ≈ 1,s << 0 時,g ≈ 0。顯然,g(s) 將前一級的線性輸出映射到 [0,1] 之間的數值概率上。這里的 g(s) 就是交叉熵公式中的模型預測輸出 。

我們說了,預測輸出即 Sigmoid 函數的輸出表征了當前樣本標簽為 1 的概率:

Python機器學習pytorch交叉熵損失函數的深刻理解

很明顯,當前樣本標簽為 0 的概率就可以表達成:

Python機器學習pytorch交叉熵損失函數的深刻理解

重點來了,如果我們從極大似然性的角度出發,把上面兩種情況整合到一起:

Python機器學習pytorch交叉熵損失函數的深刻理解

不懂極大似然估計也沒關系。我們可以這么來看:

當真實樣本標簽 y = 0 時,上面式子第一項就為 1,概率等式轉化為:

Python機器學習pytorch交叉熵損失函數的深刻理解

當真實樣本標簽 y = 1 時,上面式子第二項就為 1,概率等式轉化為:

Python機器學習pytorch交叉熵損失函數的深刻理解

兩種情況下概率表達式跟之前的完全一致,只不過我們把兩種情況整合在一起了。

重點看一下整合之后的概率表達式,我們希望的是概率 P(y|x) 越大越好。首先,我們對 P(y|x) 引入 log 函數,因為 log 運算并不會影響函數本身的單調性。則有:

Python機器學習pytorch交叉熵損失函數的深刻理解

我們希望 log P(y|x) 越大越好,反過來,只要 log P(y|x) 的負值 -log P(y|x) 越小就行了。那我們就可以引入損失函數,且令 Loss = -log P(y|x)即可。則得到損失函數為:

Python機器學習pytorch交叉熵損失函數的深刻理解

非常簡單,我們已經推導出了單個樣本的損失函數,是如果是計算 N 個樣本的總的損失函數,只要將 N 個 Loss 疊加起來就可以了:

Python機器學習pytorch交叉熵損失函數的深刻理解

這樣,我們已經完整地實現了交叉熵損失函數的推導過程。

 

2. 交叉熵損失函數的直觀理解

我已經知道了交叉熵損失函數的推導過程。但是能不能從更直觀的角度去理解這個表達式呢?而不是僅僅記住這個公式。好問題!接下來,我們從圖形的角度,分析交叉熵函數,加深理解。

首先,還是寫出單個樣本的交叉熵損失函數:

Python機器學習pytorch交叉熵損失函數的深刻理解

我們知道,當 y = 1 時

Python機器學習pytorch交叉熵損失函數的深刻理解

這時候,L 與預測輸出的關系如下圖所示:

Python機器學習pytorch交叉熵損失函數的深刻理解

看了 L 的圖形,簡單明了!橫坐標是預測輸出,縱坐標是交叉熵損失函數 L。顯然,預測輸出越接近真實樣本標簽 1,損失函數 L 越小;預測輸出越接近 0,L 越大。因此,函數的變化趨勢完全符合實際需要的情況。

當 y = 0 時:

Python機器學習pytorch交叉熵損失函數的深刻理解

這時候,L 與預測輸出的關系如下圖所示:

Python機器學習pytorch交叉熵損失函數的深刻理解

同樣,預測輸出越接近真實樣本標簽 0,損失函數 L 越小;預測函數越接近 1,L 越大。函數的變化趨勢也完全符合實際需要的情況。

從上面兩種圖,可以幫助我們對交叉熵損失函數有更直觀的理解。無論真實樣本標簽 y 是 0 還是 1,L 都表征了預測輸出與 y 的差距。

另外,重點提一點的是,從圖形中我們可以發現:預測輸出與 y 差得越多,L 的值越大,也就是說對當前模型的 “ 懲罰 ” 越大,而且是非線性增大,是一種類似指數增長的級別。這是由 log 函數本身的特性所決定的。這樣的好處是模型會傾向于讓預測輸出更接近真實樣本標簽 y。

 

3. 交叉熵損失函數的其它形式

什么?交叉熵損失函數還有其它形式?沒錯!我剛才介紹的是一個典型的形式。接下來我將從另一個角度推導新的交叉熵損失函數。

這種形式下假設真實樣本的標簽為 +1 和 -1,分別表示正類和負類。有個已知的知識點是Sigmoid 函數具有如下性質:

Python機器學習pytorch交叉熵損失函數的深刻理解

這個性質我們先放在這,待會有用。

好了,我們之前說了 y = +1 時,下列等式成立:

Python機器學習pytorch交叉熵損失函數的深刻理解

如果 y = -1 時,并引入 Sigmoid 函數的性質,下列等式成立:

Python機器學習pytorch交叉熵損失函數的深刻理解

重點來了,因為 y 取值為 +1 或 -1,可以把 y 值帶入,將上面兩個式子整合到一起:

Python機器學習pytorch交叉熵損失函數的深刻理解

這個比較好理解,分別令 y = +1 和 y = -1 就能得到上面兩個式子。

接下來,同樣引入 log 函數,得到:

Python機器學習pytorch交叉熵損失函數的深刻理解

要讓概率最大,反過來,只要其負數最小即可。那么就可以定義相應的損失函數為:

Python機器學習pytorch交叉熵損失函數的深刻理解

還記得 Sigmoid 函數的表達式吧?將 g(ys) 帶入:

Python機器學習pytorch交叉熵損失函數的深刻理解

好咯,L 就是我要推導的交叉熵損失函數。如果是 N 個樣本,其交叉熵損失函數為:

Python機器學習pytorch交叉熵損失函數的深刻理解

接下來,我們從圖形化直觀角度來看。當 y = +1 時:

Python機器學習pytorch交叉熵損失函數的深刻理解

這時候,L 與上一層得分函數 s 的關系如下圖所示:

Python機器學習pytorch交叉熵損失函數的深刻理解

橫坐標是 s,縱坐標是 L。顯然,s 越接近正無窮,損失函數 L 越小;s 越接近負無窮,L 越大。

另一方面,當 y = -1 時:

Python機器學習pytorch交叉熵損失函數的深刻理解

這時候,L 與上一層得分函數 s 的關系如下圖所示:

Python機器學習pytorch交叉熵損失函數的深刻理解

同樣,s 越接近負無窮,損失函數 L 越小;s 越接近正無窮,L 越大。

 

4.總結

本文主要介紹了交叉熵損失函數的數學原理和推導過程,也從不同角度介紹了交叉熵損失函數的兩種形式。第一種形式在實際應用中更加常見,例如神經網絡等復雜模型;第二種多用于簡單的邏輯回歸模型。

需要注意的是:第一個公式中的變量是sigmoid輸出的值,第二個公式中的變量是sigmoid輸入的值。

以上就是Python機器學習交叉熵損失函數的深刻理解的詳細內容,更多關于pytorch交叉熵損失函數的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/weixin_38526306/article/details/87831201

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲第一男人天堂 | 精品视频免费 | 国产精品原创永久在线观看 | 亚洲男gay同性同志 亚洲免费在线看 | 国产主播99 | 不卡一区二区三区 | 午夜在线观看免费观看 视频 | vod国产成人精品视频 | 99热在线获取最新地址 | 国产精品视频第一页 | 恩不要好大好硬好爽3p | 国产黄色大片网站 | bl双性肉文 | 久久精品午夜一区二区福利 | 亚州综合网 | 黄瓜视频导航 | 99手机在线视频 | 秋霞鲁丝影院久久人人综合 | 亚洲精品乱码久久久久久蜜桃图片 | 日韩欧美中文字幕一区 | 女人和拘做受全过程免费 | 亚洲免费高清视频 | 色就色欧美综合偷拍区a | 欧美日韩视频在线第一区二区三区 | 国产欧美va欧美va香蕉在线观 | 色佬头| 国产福利在线观看91精品 | 四虎影院在线免费观看视频 | 天天做日日爱 | 99精品网站| 成年人免费观看的视频 | 亚洲午夜精品久久久久 | 精品一区二区三区免费站 | 女子张腿让男人桶免费 | 天天操免费视频 | 亚洲成aⅴ人片在线 | 免费免费啪视频在线观播放 | 日本免费v片一二三区 | 国产伦精品一区二区三区女 | 亚洲精品视频专区 | 性欧美f|