<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          簡單的交叉熵損失函數(shù),你真的懂了嗎?

          共 470字,需瀏覽 1分鐘

           ·

          2022-06-09 21:21

          點擊上方小白學視覺”,選擇加"星標"或“置頂

          重磅干貨,第一時間送達


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

          我們已經(jīng)對這個交叉熵函數(shù)非常熟悉,大多數(shù)情況下都是直接拿來使用就好。但是它是怎么來的?為什么它能表征真實樣本標簽和預測概率之間的差值?上面的交叉熵函數(shù)是否有其它變種?也許很多朋友還不是很清楚!沒關系,接下來我將盡可能以最通俗的語言回答上面這幾個問題。

          1

          交叉熵損失函數(shù)的數(shù)學原理

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

          Sigmoid 函數(shù)的表達式和圖形如下所示:

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

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

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

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

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

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

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

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

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

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

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

          這樣,我們已經(jīng)完整地實現(xiàn)了交叉熵損失函數(shù)的推導過程。

          2

          交叉熵損失函數(shù)的直觀理解

          可能會有讀者說,我已經(jīng)知道了交叉熵損失函數(shù)的推導過程。但是能不能從更直觀的角度去理解這個表達式呢?而不是僅僅記住這個公式。好問題!接下來,我們從圖形的角度,分析交叉熵函數(shù),加深大家的理解。

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

          我們知道,當 y = 1 時:

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

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

          當 y = 0 時:

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

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

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

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

          3

          交叉熵損失函數(shù)的其它形式

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

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

          這個性質(zhì)我們先放在這,待會有用。

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

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

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

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

          接下來,同樣引入 log 函數(shù),得到:

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

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

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

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

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

          橫坐標是 s,縱坐標是 L。顯然,s 越接近真實樣本標簽 1,損失函數(shù) L 越??;s 越接近 -1,L 越大。

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

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

          同樣,s 越接近真實樣本標簽 -1,損失函數(shù) L 越??;s 越接近 +1,L 越大。

          4

          總結

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

          簡單的幾點總結,是否對你有所幫助呢?喜歡的話,不妨點個贊吧~

          好消息!?

          小白學視覺知識星球

          開始面向外開放啦??????




          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 11
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天爱天天干天天操 | 东京热成人小说 | 操逼一大堆| 黄片无遮挡 | 色色色综合网 |