交叉熵損失函數,KL散度, Focal loss

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

交叉熵損失函數,涉及兩個概念,一個是損失函數,一個是交叉熵。

首先,對于損失函數。在機器學習中,損失函數就是用來衡量我們模型的預測結果與真實結果之間“差距”的函數。這個差距越小,說明模型的表現越好;差距越大,說明模型表現越差。我們訓練模型的目標,就是通過不斷調整模型的參數,來最小化這個損失函數。以一個生活化的例子舉例,想象一下你在教一個孩子識別貓和狗。孩子每次猜對或猜錯,你都會給他一個“評分”。如果他猜對了,評分就很高(損失很小);如果他猜錯了,評分就可能很低(損失很大)。

在明白完損失函數后,就要理解交叉熵了,在理解交叉熵之前我們又要了解何為。熵在信息論中是衡量一個隨機變量不確定性(或者說信息量)的度量。不確定性越大,熵就越大。根據信息論中的香農定理,我們可以得出熵的計算公式為:

其中,P(xi)是事件xi發生的概率。- log(P(xi))?表示信息量,根據公式我們可以知道信息量大小與概率成負相關,概率越小的時間其信息量越大,如飛機失事;概率越大的時間其信息量越小,如太陽從東邊升起。

談完熵之后,我們來開始理解何為交叉熵?

交叉熵是衡量兩個概率分布之間“相似性”的度量。更準確地說,它衡量的是,當我們使用一個非真實的概率分布 Q 來表示一個真實的概率分布 P 時,所需要付出的“代價”或“信息量”。交叉熵的計算公式為:

注意,這里的 P(xi?) 通常是one-hot編碼形式,即在分類問題中,只有真實類別對應的 P(xi?) 為1,其他為0。

二分類交叉熵

在二分類問題中,當你的模型需要判斷一個輸入是A類還是B類(比如是貓還是狗,是垃圾郵件還是正常郵件)時,你會使用二分類交叉熵

  • 真實標簽 (y) 通常用0或1表示。例如,貓是1,狗是0。
  • 模型預測概率 (\widehat{y}) 模型輸出的屬于類別1的概率,通常通過Sigmoid激活函數得到,范圍在0到1之間。

二分類交叉熵公式為:

直觀理解:

  • 如果真實標簽 y=1(比如是貓):損失函數變為 ?log(\widehat{y}?)。此時,如果 \widehat{y}? 接近1(模型預測是貓的概率很高),log(\widehat{y}) 就接近0,損失就小;如果 \widehat{y}? 接近0(模型預測是貓的概率很低),log(\widehat{y}?) 就變成一個很大的負數,損失就大。
  • 如果真實標簽 y=0(比如是狗):損失函數變為 ?log(1?\widehat{y})。此時,如果 \widehat{y} 接近0(模型預測是狗的概率很高),1?\widehat{y}? 接近1,log(1?\widehat{y}) 接近0,損失就小;如果 \widehat{y}? 接近1(模型預測是狗的概率很低),1?\widehat{y} 接近0,log(1?\widehat{y}?) 變成一個很大的負數,損失就大。

多分類交叉熵

當你的模型需要判斷一個輸入是N個類別中的哪一個(比如是貓、狗、還是鳥)時,你會使用多分類交叉熵。

  • 真實標簽 (y) 通常是one-hot編碼。例如,貓是 [1,0,0],狗是 [0,1,0],鳥是 [0,0,1]。
  • 模型預測概率 (\widehat{y}) 模型輸出的屬于每個類別的概率分布,通常通過Softmax激活函數得到,所有概率之和為1。

多分類交叉熵的公式為:

其中,N 是類別的數量,yi? 是真實標簽中第 i 個類別的指示(0或1),\widehat{y}?i? 是模型預測第 i 個類別的概率。

直觀理解:

  • 由于真實標簽 y 是one-hot編碼,只有真實類別 k 對應的 yk? 是1,其他 yi? 都是0。所以,這個求和公式實際上只計算了真實類別對應的預測概率的負對數。
  • 舉例:如果真實標簽是貓 [1,0,0],模型預測是 [0.8(貓),0.1(狗),0.1(鳥)]。 損失 =?(1?log(0.8)+0?log(0.1)+0?log(0.1))=?log(0.8)。 如果模型預測是 [0.1(貓),0.8(狗),0.1(鳥)]。 損失 =?(1?log(0.1)+0?log(0.8)+0?log(0.1))=?log(0.1)。 顯然,?log(0.1) 比 ?log(0.8) 要大很多,說明模型預測貓的概率很低時,損失會很大,這符合我們的直覺。

KL散度(Kullback-Leibler Divergence)

KL散度和交叉熵很像,只不過交叉熵是硬標簽,KL散度是軟標簽,因此KL散度也稱為相對熵,是衡量兩個概率分布 P 和 Q 之間差異的非對稱度量。它量化了當使用概率分布 Q 來近似概率分布 P 時所損失的信息量。KL散度主要用于拉近真實分布和近似分布的表達,去讓近似分布盡可能接近真實分布,因為越近似,其除法越近于1,log()越接近于0。其計算公式為:

其中,P為真實分布?,Q為近似分布 。我們將其展開,可得到以下公式:

可以看到當P(xi)為1時,這時就變成交叉熵了。

KL散度特性

  • 非負性(涉及數學的非負性證明):KL?(P∣∣Q)≥0(因為P和Q不相等的話,即P/Q>1),只有當 P 和 Q 是完全相同的分布時(此時P/Q = 1),KL?(P∣∣Q)=0。
  • 非對稱性:KL?(P∣∣Q)?不等于?KL?(Q∣∣P) 。KL?(P∣∣Q)是懲罰 Q 在 P 概率高的地方給出低概率。KL?(Q∣∣P)懲罰 Q 在 P 概率低的地方給出高概率。
  • 度量的是“信息損失” 它衡量的是當你用 Q 來編碼 P 時,額外需要多少比特的信息。

交叉熵損失函數和KL散度總結

  • 交叉熵損失函數適用于分類任務,基于硬標簽,目的是衡量模型預測的概率分布與真實標簽的概率分布之間的“距離”。它的目標是讓模型對真實類別的預測概率盡可能高。
  • KL散度適用于衡量兩個概率分布之間的差異,是非對稱的,多用于概率模型,用于強制模型學習到的分布與某個先驗分布接近,或衡量兩個復雜分布之間的相似性。

Focal loss?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80100.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80100.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80100.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

149.WEB滲透測試-MySQL基礎(四)

免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動! 內容參考于: 易錦網校會員專享課 上一個內容:148.WEB滲透測試-MySQL基礎(三) 非關系型數據庫: &a…

c/c++中程序內存區域的劃分

c/c程序內存分配的幾個區域: 1.棧區:在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放,棧內存分配運算內置于處理器的指令集中,效率很高但是分配的內存容量有…

構建穩定的金字塔模式生態:從自然法則到系統工程

在自然界中,金字塔結構廣泛存在于生態系統之中,表現為營養級能量金字塔、生物量金字塔和數量金字塔等形式。這種結構不僅形象地描述了生態能量流轉的規律,也體現出生態系統中“穩定性”與“層級性”的天然法則。在現代軟件架構、企業組織、平…

Vue 3.0雙向數據綁定實現原理

Vue3 的數據雙向綁定是通過響應式系統來實現的。相比于 Vue2,Vue3 在響應式系統上做了很多改進,主要使用了 Proxy 對象來替代原來的 Object.defineProperty。本文將介紹 Vue3 數據雙向綁定的主要特點和實現方式。 1. 響應式系統 1.1. Proxy對象 Vue3 …

TIP-2021《SRGAT: Single Image Super-Resolution With Graph Attention Network》

推薦深藍學院的《深度神經網絡加速:cuDNN 與 TensorRT》,課程面向就業,細致講解CUDA運算的理論支撐與實踐,學完可以系統化掌握CUDA基礎編程知識以及TensorRT實戰,并且能夠利用GPU開發高性能、高并發的軟件系統&#xf…

大語言模型與多模態模型比較

一、核心差異:輸入數據類型與模態融合 輸入數據類型 LLM:僅處理文本數據,例如文本分類、機器翻譯、問答等任務,通過大規模語料庫學習語言規律。 LMM:支持文本、圖像、音頻、視頻等多種模態輸入,例如根據圖…

Apache HttpClient 5 用法-Java調用http服務

Apache HttpClient 5 核心用法詳解 Apache HttpClient 5 是 Apache 基金會推出的新一代 HTTP 客戶端庫&#xff0c;相比 4.x 版本在性能、模塊化和易用性上有顯著提升。以下是其核心用法及最佳實踐&#xff1a; 一、添加依賴 Maven 項目&#xff1a; <dependency><…

基于 Spark 的流量統計

一、引言 在互聯網行業&#xff0c;流量統計是分析網站或應用用戶行為、評估業務表現、優化資源分配以及制定營銷策略的關鍵環節。借助 Apache Spark 強大的分布式數據處理能力&#xff0c;我們可以高效地對大規模的流量數據進行統計分析&#xff0c;獲取有價值的洞察。本文將…

Python模塊化編程進階指南:從基礎到工程化實踐

一、模塊化編程核心原理與最佳實踐 1.1 模塊化設計原則 根據企業級項目實踐&#xff0c;模塊化開發應遵循以下核心原則&#xff1a; ??單一職責原則??&#xff1a;每個模塊只承擔一個功能域的任務&#xff08;如用戶認證模塊獨立于日志模塊&#xff09;??接口隔離原則…

銳捷交換機STP環路日志信息解讀

因公司網絡組建使用銳捷全系列交換機&#xff0c;近期設備巡檢時發現部分日志提示信息&#xff0c; 接入交換機NBS3100-24GT4SFP-V2&#xff0c;設備頻繁打出STP Blocking的日志信息。 誤以為是環路導致&#xff0c;故進行實驗測試&#xff0c;來驗證環路情況下會如何報日志。…

使用Python調用DeepSeek的示例

使用Python調用DeepSeek API的示例代碼,包括API密鑰的獲取、基本請求的發送以及響應處理。請確保你已經注冊了DeepSeek賬號并獲取了API密鑰。 文章目錄 前言一、獲取API密鑰二、python示例代碼三、代碼說明四、注意事項五、擴展功能總結前言 提示:這里可以添加本文要記錄的大…

mysql的not exists走索引嗎

在MySQL中&#xff0c;?NOT EXISTS子句是否使用索引取決于子查詢中關聯字段是否建立了合適的索引。以下是關鍵點總結&#xff1a; ?索引的作用?&#xff1a; 當子查詢的關聯字段&#xff08;例如B.a_id&#xff09;存在索引&#xff08;如普通B-tree索引&#xff09;時&…

Python線性回歸:從理論到實踐的完整指南

Python線性回歸&#xff1a;從理論到實踐的完整指南 線性回歸是數據科學和機器學習中最基礎且最重要的算法之一。本文將深入探討如何使用Python實現線性回歸&#xff0c;從理論基礎到實際應用&#xff0c;幫助讀者全面理解這一重要的統計學和機器學習方法。 什么是線性回歸&a…

鴻蒙OSUniApp 實現的二維碼掃描與生成組件#三方框架 #Uniapp

UniApp 實現的二維碼掃描與生成組件 前言 最近在做一個電商小程序時&#xff0c;遇到了需要掃描和生成二維碼的需求。在移動應用開發中&#xff0c;二維碼功能已經成為標配&#xff0c;特別是在電商、社交和支付等場景下。UniApp作為一個跨平臺開發框架&#xff0c;為我們提供…

Westlake-Omni 情感端音頻生成式輸出模型

簡述 github地址在 GitHub - xinchen-ai/Westlake-OmniContribute to xinchen-ai/Westlake-Omni development by creating an account on GitHub.https://github.com/xinchen-ai/Westlake-Omni Westlake-Omni 是由西湖心辰&#xff08;xinchen-ai&#xff09;開發的一個開源…

uv python 卸載

又是查了半天 官網wiki沒有 網上一堆傻子胡說 uv提示也不對 AI還在這尼瑪胡編亂造 開始 我原來裝了這幾個環境 uv python list 現在python3.7.7不需要了&#xff0c;卸載&#xff0c;直接 uv python uninstall 3.7.7 去找你自己要卸載的版本號&#xff0c;不需要整個包名復制…

使用哈希表封裝myunordered_set和myunordered_map

文章目錄 使用哈希表封裝myunordered_set和myunordered_map實現出復用哈希表框架&#xff0c;并支持insert支持迭代器的實現constKey不能被修改unordered_map支持[ ]結語 我們今天又見面啦&#xff0c;給生活加點impetus&#xff01;&#xff01;開啟今天的編程之路&#xff01…

后端框架(2):Java的反射機制

什么是java反射機制&#xff1f; 回顧之前java程序如何使用類 1.分析&#xff0c;確定類名&#xff0c;屬性名&#xff0c;方法......創建類 2.創建類的對象 3.使用 一切都是已知的。 在程序開發中&#xff0c;在哪兒需要使用哪個類的對象&#xff0c;就在那兒創建這個類對象…

ch10 課堂參考代碼

ch10 最小生成樹 生成樹&#xff1a;對于 n 個結點 m 條邊的無向圖 G&#xff0c;由全部 n 個結點和其中 n - 1 條邊構成的無向連通子圖稱為 G 的一棵生成樹。 如果圖 G 原本就不連通&#xff0c;則不存在生成樹&#xff0c;只存在生成森林。 最小生成樹&#xff08;Minimum…

費曼技巧及提高計劃

費曼技巧及提高計劃 一、什么是費曼技巧&#xff1f; 費曼技巧&#xff08;Feynman Technique&#xff09;由諾貝爾物理學獎得主理查德費曼提出&#xff0c;是一種通過“以教代學”來徹底理解復雜概念的學習方法。其核心邏輯是&#xff1a; “如果你不能簡單解釋一件事&#x…