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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

损失函数|交叉熵损失函数

發布時間:2025/3/12 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 损失函数|交叉熵损失函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看完文章,希望你能順利回答以下題目:

? ? ? ? 題目1:這個任務,你會使用什么損失函數?
????????題目2:?交叉熵表達式?
????????題目3:為什么使用交叉熵?能不能用MSE?
????????題目4:如果讓你選擇提取圖片特征的模型,你會選擇什么模型?

這篇文章中,討論的Cross Entropy損失函數常用于分類問題中,但是為什么它會在分類問題中這么有效呢?我們先從一個簡單的分類例子來入手。

1. 圖像分類任務

我們希望根據圖片動物的輪廓、顏色等特征,來預測動物的類別,有三種可預測類別:貓、狗、豬。假設我們當前有兩個模型(參數不同),這兩個模型都是通過sigmoid/softmax的方式得到對于每個預測結果的概率值:

模型1

預測真實是否正確
0.3 0.3 0.40 0 1 (豬)正確
0.3 0.4 0.30 1 0 (狗)正確
0.1 0.2 0.71 0 0 (貓)錯誤

模型1對于樣本1和樣本2以非常微弱的優勢判斷正確,對于樣本3的判斷則徹底錯誤。

模型2

預測真實是否正確
0.1 0.2 0.70 0 1 (豬)正確
0.1 0.7 0.20 1 0 (狗)正確
0.3 0.4 0.31 0 0 (貓)錯誤

模型2對于樣本1和樣本2判斷非常準確,對于樣本3判斷錯誤,但是相對來說沒有錯得太離譜。

好了,有了模型之后,我們需要通過定義損失函數來判斷模型在樣本上的表現了,那么我們可以定義哪些損失函數呢?

1.1 Classification Error(分類錯誤率)

最為直接的損失函數定義為:?

模型1:?

模型2:?

我們知道,模型1模型2雖然都是預測錯了1個,但是相對來說模型2表現得更好,損失函數值照理來說應該更小,但是,很遺憾的是,classification error? 并不能判斷出來,所以這種損失函數雖然好理解,但表現不太好。

1.2 Mean Squared Error (均方誤差)

均方誤差損失也是一種比較常見的損失函數,其定義為:

模型1:

對所有樣本的loss求平均:

模型2:

對所有樣本的loss求平均:

我們發現,MSE能夠判斷出來模型2優于模型1,那為什么不采樣這種損失函數呢?主要原因是在分類問題中,使用sigmoid/softmx得到概率,配合MSE損失函數時,采用梯度下降法進行學習時,會出現模型一開始訓練時,學習速率非常慢的情況(MSE損失函數)。

有了上面的直觀分析,我們可以清楚的看到,對于分類問題的損失函數來說,分類錯誤率和均方誤差損失都不是很好的損失函數,下面我們來看一下交叉熵損失函數的表現情況。

1.3 Cross Entropy Loss Function(交叉熵損失函數)

1.3.1 表達式

(1) 二分類

在二分的情況下,模型最后需要預測的結果只有兩種情況,對于每個類別我們的預測得到的概率為???,此時表達式為:

其中:
—— 表示樣本??的label,正類為1??,負類為?

—— 表示樣本??預測為正類的概率

?

(2) 多分類

多分類的情況實際上就是對二分類的擴展:

其中:
?——類別的數量
?

??——符號函數(??或??),如果樣本??的真實類別等于??取??,否則取?

?

?

—觀測樣本??屬于類別??的預測概率

現在我們利用這個表達式計算上面例子中的損失函數值:

模型1

對所有樣本的loss求平均:

模型2:

對所有樣本的loss求平均:

可以發現,交叉熵損失函數可以捕捉到模型1模型2預測效果的差異。

2. 函數性質

可以看出,該函數是凸函數,求導時能夠得到全局最優值。

3. 學習過程

交叉熵損失函數經常用于分類問題中,特別是在神經網絡做分類問題時,也經常使用交叉熵作為損失函數,此外,由于交叉熵涉及到計算每個類別的概率,所以交叉熵幾乎每次都和sigmoid(或softmax)函數一起出現。

我們用神經網絡最后一層輸出的情況,來看一眼整個模型預測、獲得損失和學習的流程:

  • 神經網絡最后一層得到每個類別的得分scores(也叫logits)
  • 該得分經過sigmoid(或softmax)函數獲得概率輸出;
  • 模型預測的類別概率輸出與真實類別的one hot形式進行交叉熵損失函數的計算。
  • 學習任務分為二分類和多分類情況,我們分別討論這兩種情況的學習過程。

    3.1 二分類情況

    二分類交叉熵損失函數學習過程

    如上圖所示,求導過程可分成三個子過程,即拆成三項偏導的乘積:

    3.1.1 計算第一項:?

    ?表示樣本 ?預測為正類的概率


    為符號函數,樣本??為正類時取 1?,否則取 0

    3.1.2 計算第二項:?

    這一項要計算的是sigmoid函數對于score的導數,我們先回顧一下sigmoid函數和分數求導的公式:

    3.1.3 計算第三項:?

    一般來說,scores是輸入的線性函數作用的結果,所以有:

    3.1.4 計算結果?

    ?

    可以看到,我們得到了一個非常漂亮的結果,所以,使用交叉熵損失函數,不僅可以很好的衡量模型的效果,又可以很容易的的進行求導計算。

    3.2 多分類情況

    待整理

    4. 優缺點

    4.1 優點

    在用梯度下降法做參數更新的時候,模型學習的速度取決于兩個值:一、學習率;二、偏導值。其中,學習率是我們需要設置的超參數,所以我們重點關注偏導值。從上面的式子中,我們發現,偏導值的大小取決于??和??,我們重點關注后者,后者的大小值反映了我們模型的錯誤程度,該值越大,說明模型效果越差,但是該值越大同時也會使得偏導值越大,從而模型學習速度更快。所以,使用邏輯函數得到概率,并結合交叉熵當損失函數時,在模型效果差的時候學習速度比較快,在模型效果好的時候學習速度變慢。

    4.2 缺點

    Deng [4]在2019年提出了ArcFace Loss,并在論文里說了Softmax Loss的兩個缺點:1、隨著分類數目的增大,分類層的線性變化矩陣參數也隨著增大;2、對于封閉集分類問題,學習到的特征是可分離的,但對于開放集人臉識別問題,所學特征卻沒有足夠的區分性。對于人臉識別問題,首先人臉數目(對應分類數目)是很多的,而且會不斷有新的人臉進來,不是一個封閉集分類問題。

    另外,sigmoid(softmax)+cross-entropy loss 擅長于學習類間的信息,因為它采用了類間競爭機制,它只關心對于正確標簽預測概率的準確性,忽略了其他非正確標簽的差異,導致學習到的特征比較散。基于這個問題的優化有很多,比如對softmax進行改進,如L-Softmax、SM-Softmax、AM-Softmax等。

    5. 參考

    [1].?博客 - 神經網絡的分類模型 LOSS 函數為什么要用 CROSS ENTROPY

    [2].?博客 - Softmax as a Neural Networks Activation Function

    [3].?博客 - A Gentle Introduction to Cross-Entropy Loss Function

    [4]. Deng, Jiankang, et al. "Arcface: Additive angular margin loss for deep?face recognition." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.

    總結

    以上是生活随笔為你收集整理的损失函数|交叉熵损失函数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。