【pytorch19】交叉熵

分類問題的loss

  • MSE
  • Cross Entropy Loss
  • Hinge Loss (SVN用的比較多)
    • ∑ i m a x ( 0 , 1 ? y i ? h θ ( x i ) ) \sum_imax(0,1-y_i*h_\theta(x_i)) i?max(0,1?yi??hθ?(xi?))

Entropy(熵)

  • Uncertainty(也叫不確定性)
  • measure of surprise(驚喜度)
  • higher entropy = less info
    • E n t r o p y = ? ∑ i P ( i ) log ? P ( i ) Entropy=-\sum_iP(i)\log P(i) Entropy=?i?P(i)logP(i)

Entropy就是熵,也叫做不確定性,從某種程度上講是驚喜度

比如你長得很帥,我說你很帥,這句話的內容就比較少,uncertainty就比較低,entropy比較高

比如某個人能力很差,但是有一天中了大獎,這個消息的Uncertainty就比較高,信息量就比較大,就是說沒有能力但是卻突然很有錢了,意味著這句話很驚喜,Uncertainty比較高,entropy比較低

entropy定義為每個i的probability再乘以log probability

具體的例子
在這里插入圖片描述

熵穩定效應是指在信息論中,熵越高的系統越不穩定,而熵越低的系統越穩定。

每個數字的中獎概率相同時,這個分布的熵比較高,因為不確定性大(不知道哪個數字會中獎)

a為[0.1,0.1,0.1,0.7]的時候,4這個數字的中獎率比較高,其他數字的中獎率只有0.1。此時的熵是比較低的。這是因為熵是衡量隨機變量不確定性的度量,而在這個分布中,數字4的中獎概率遠高于其他數字,這意味著結果的不確定性較低,因為數字4的中獎幾乎是確定的。

a為[0.001,0.001,0.001,0.999]的時候,非常極端的情況,前面都不可能中獎,這個熵非常低,因為幾乎可以確定第四個結果會發生

Cross Entropy (交叉熵)

Entropy:指的是一個分布,比如說p本身的一個穩定性
Cross Entropy (交叉熵):一般指的是兩個分布,衡量兩個分布的穩定性

在這里插入圖片描述

第一步可以推導為第二步 H ( p ) H(p) H(p)再加上 D k l ( p ∣ q ) D_{kl}(p|q) Dkl?(pq) D k l ( p ∣ q ) D_{kl}(p|q) Dkl?(pq)這一部分是kl divergence,也叫KL散度,是真正衡量兩個概率分布差異的方法

舉例,兩個高斯分布
在這里插入圖片描述
重疊部分比較少,因此它的kl散度比較高,假設是2

完全重合,kl散度就接近于0了

根據定義如果P和Q相等,cross Entropy = Entropy

如果采用01編碼比如說[0,1,0,0]只有第二項是1,所以是1log1,所以entropy是0 ,一般分類問題都是01編碼,對于01編碼來說,這個H§的entropy就等于0,然后根據H(p,q)推導之后的式子,如果H( p )等于0的話,H(p,q)就等于 D k l ( p ∣ q ) D_{kl}(p|q) Dkl?(pq),也就意味著當我們去優化P和Q的交叉熵的時候,如果是01編碼相當于直接優化P和Q的KL散度,KL散度剛好衡量的是兩個分布重疊的情況,如果用網絡預測出θ條件的分布,還有一個真實的分布,這兩個分布的kl散度接近于0的話,意味著P=Q,恰好是我們需要的情況

cross entropy 對于01編碼來說就是kl散度,而kl散度又說明了,如果交叉熵接近于0那kl散度就接近于0,意味著p和q的分布越來越近,恰好是我們要優化的目標

二分類問題

二分類問題的交叉熵如何運算
在這里插入圖片描述
首先H(P,Q)是P乘以log Q再求和的問題

在這里插入圖片描述

只有cat和dog兩種分類,所以只有兩種求和,但是由于P(dog)=1-P(cat),也就是說非貓即狗,這里假設P(cat)是y,Q(cat)是p,那式子就可以改寫為y和p的式子,因為PQ分布使用的是01編碼,所以y就是實際的值,p就是模型預測出的概率分布,由于二分類問題,非貓即狗,最后就會得出上圖中y和p的表達式

如何解釋這個y和p的表達式

如果y等于1的話,式子等于H(P,Q)=-log p,要最小化這個式子,有負號所以要最大化log p,即最大化p,最大化輸入x,y=1的概率
如果y等于0的話,式子等于H(P,Q)=-log(1-p),要最小化這個式子,有負號所以要最大化log(1-p),就是要最小化p,最小化輸入x,y=1的概率,即最大化輸入x,y=0的概率(切記這里是二分類,不是0就是1)

例子:
在這里插入圖片描述
當前的實例時一只小狗,P值就是真實分布,Q值就是模型預測分布,經過softmax預測是對的,但是可能性不高,看一下交叉熵約等于0.9

如果變成圖右下角的情況就非常理想,狗的概率就非常高,這時交叉熵是0.02,也就是說變好了,交叉熵也從0.9下降到了0.02,說明了 p θ p_{θ} pθ?越來越逼近 p r p_{r} pr?

可以看出與MSE一樣,都能夠很好的迫使我們的預測朝著我們想要的方向去進行

總結

在這里插入圖片描述
為什么分類問題不適用MSE,而使用Cross Entropy?

  1. 如果使用sigmoid和mse搭配的話,很容易出現sigmoid飽和的情況,會出現梯度彌散
  2. cross entropy概率的梯度信息更大,更容易收斂的更快,比如說當前label趨近于1,如果q的分布沒有靠近1的話,例如在左端,就會發現loss會非常大,所以梯度會很大,會收斂的很快,當接近于1的時候,梯度就開始慢慢變小
  3. 如果發現cross entropy不行也可以試mse,因為mse的梯度求導更加簡單

在這里插入圖片描述
神經網絡的結構,最后一層(可以橫著看)叫logit,后面經過softmax層再經過cross entropy做計算,對于pytorch來說灰色部分是由一個現成的網絡結構的,如果把softmax和cross entropy分開的話會出現一個數據不穩定的情況,所以一般不建議大家直接自己用softmax來處理,最好直接得到logit的輸出以后,用pytorch一次完成不要自己去處理,因為會出現數據不穩定的情況

實例
在這里插入圖片描述
F.cross_entropy函數中必須使用logits,因為pytorch中已經把softmax和log打包再一起了,如果傳入pred_log就意味著再做一遍softmax,會導致數據非常小

如果一定要自己計算的話用F.nll_loss就行,但是這里就必須傳入softmax之后的數據

F.cross_entropy函數等于softmax操作+log操作+F.nll_loss操作

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

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

相關文章

ESP32——物聯網小項目匯總

商品級ESP32智能手表 [文章鏈接] 用ESP32,做了個siri?!開源了! [文章鏈接]

IPsec連接 和 SSL連接

Psec和SSL連接是兩種用于保障網絡通信安全的技術 IPsec 通常用于連通兩個局域網,主要是網對網的連接,如分支機構與總部之間,或者本地IDC與云端VPC的子網連接。適合站點間的穩定通訊需求以及對網絡層安全有嚴格要求的場合。要求兩端有固定的網…

UDP協議:獨特之處及其在網絡通信中的應用

在網絡通信領域,UDP(用戶數據報協議,User Datagram Protocol)是一種廣泛使用的傳輸層協議。與TCP(傳輸控制協議,Transmission Control Protocol)相比,UDP具有其獨特的特點和適用場景…

對數據采集、數據存儲和數據處理流程

對數據采集、數據存儲和數據處理流程 數據采集是指從各種來源收集原始數據的過程,這通常包括傳感器、網站、社交媒體、API等。它涉及設置抓取工具、爬蟲技術或直接從數據庫獲取數據。數據存儲則涉及到將采集到的數據安全、高效地保存起來,常見的有關系型…

EDEM-FLUENT耦合報錯幾大原因總結(持續更新)

寫在前面,本篇內容主要是來源于自己做仿真時的個人總結,以及付費請教專業老師。每個人由于工況不一樣,所以報錯原因千奇百怪,不能一概而論,本篇內容主要是為本專欄讀者在報錯時提供大致的糾錯方向,從而達到少走彎路的效果,debug的過程需要大家一點點試算。問題解答在文 …

02STM32環境搭建新建工程

STM32環境搭建&新建工程 軟件安裝:開發方式&新建工程步驟&架構 個人心得 軟件安裝: 安裝Keil5 MDK 安裝器件支持包 軟件注冊 安裝STLINK驅動 安裝USB轉串口驅動 開發方式&新建工程步驟&架構 STM32開發方式: 1.寄存器 …

什么是倒退型自閉癥?

在星貝育園自閉癥兒童康復學校,作為一位致力于自閉癥兒童教育與康復的老師,我深知家長們面對“倒退型自閉癥”這一概念時的困惑與憂慮。今天,就讓我以專業的身份,為大家揭開倒退型自閉癥的神秘面紗,共同探討這一特殊現…

mysql中的遞歸函數recursive

遞歸部門 WITH recursive dept_tree AS (SELECTsd.mine_id AS mine_id,sd.dept_id AS dept_id,sd.tenant_id AS tenant_id,sd.order_num,sd.dept_name AS topName,sd.dept_id AS topIdFROMsys_dept sdWHERE<!-- 加上or后也會查詢出dept節點 sd.parent_id #{deptId} or sd.…

uniapp H5頁面設置跨域請求

記錄一下本地服務在uniapp H5頁面訪問請求報跨域的錯誤 這是我在本地起的服務端口號為8088 ip大家可打開cmd 輸入ipconfig 查看 第一種方法 在源碼視圖中配置 "devServer": {"https": false, // 是否啟用 https 協議&#xff0c;默認false"port&q…

跨界客戶服務:拓展服務邊界,創造更多價值

在當今這個日新月異的商業時代&#xff0c;跨界合作已不再是新鮮詞匯&#xff0c;它如同一股強勁的東風&#xff0c;吹散了行業間的壁壘&#xff0c;為企業服務創新開辟了前所未有的廣闊天地。特別是在客戶服務領域&#xff0c;跨界合作正以前所未有的深度和廣度&#xff0c;拓…

一文理解 Treelite,Treelite 為決策樹集成模型的部署和推理提供了高效、靈活的解決方案

&#x1f349; CSDN 葉庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、什么是 Treelite&#xff1f; Treelite 是一個專門用于將決策樹集成模型高效部署到生產環境中的機器學習模型編譯器&#xff0c;特別適合處理大批量數據的推理任務&#xff0c;能夠顯著提升推理性能…

[Vite]Vite插件生命周期了解

[Vite]Vite插件生命周期了解 Chunk和Bundle的概念 Chunk&#xff1a; 在 Vite 中&#xff0c;chunk 通常指的是應用程序中的一個代碼片段&#xff0c;它是通過 Rollup 或其他打包工具在構建過程中生成的。每個 chunk 通常包含應用程序的一部分邏輯&#xff0c;可能是一個路由視…

【刷題匯總--大數加法、 鏈表相加(二)、大數乘法】

C日常刷題積累 今日刷題匯總 - day0061、大數加法1.1、題目1.2、思路1.3、程序實現 2、 鏈表相加(二)2.1、題目2.2、思路2.3、程序實現 3、大數乘法3.1、題目3.2、思路3.3、程序實現 4、題目鏈接 今日刷題匯總 - day006 1、大數加法 1.1、題目 1.2、思路 讀完題,明白大數相加…

使用空指針訪問成員函數

#include<iostream> #include<ctime> using namespace std; class Person { public:void outPr(){cout << "outPr()被調用" << endl;} };void test02() {Person* p1 NULL;p1->outPr(); }int main() {test02();return 0; }

郭明錤:蘋果將為Vision Pro推出紅外攝像頭款AirPods

在科技界,蘋果公司的每一次創新都備受矚目。近日,著名蘋果分析師郭明錤透露了一個令人振奮的消息:蘋果計劃在2026年推出配備紅外攝像頭的新款AirPods,這款耳機將特別優化與Apple Vision Pro頭顯的空間體驗。這一消息不僅預示著蘋果在音頻設備領域的又一次技術飛躍,也進一步…

策略為王股票軟件源代碼-----如何修改為自己軟件62----資訊菜單修改-----舉例---------調用同花順F10資訊------

//char szInfoF10[] "http://www.f10.com.cn/ggzx/ggzl.asp?zqdm%s"; char szInfoF10[] "http://basic.10jqka.com.cn/601899/"; // MENUITEM "F10資訊(&F)", ID_INFO_F10 MENUITEM &…

Lua 錯誤處理

Lua 錯誤處理 Lua是一種輕量級的編程語言&#xff0c;廣泛用于游戲開發、腳本編寫和其他應用程序中。在編程過程中&#xff0c;錯誤處理是一個重要的方面&#xff0c;它可以幫助開發者創建更健壯和可靠的程序。本文將詳細介紹Lua中的錯誤處理機制。 錯誤類型 在Lua中&#x…

VueDraggable拖拽

import { VueDraggable } from ‘vue-draggable-plus’ <VueDraggable style“display: flex;flex-wrap: wrap;” v-model“fileListResourcesImgs” end“onEnd”> <div class“icon-container” click“changeResourcesImgsIndex(index)”> <span class“del…

多功能工具網站

江下科技在線應用-免費PDF轉換成Word-word轉pdf-無需下載安裝 (onlinedo.cn)https://www.onlinedo.cn/

【OnlyOffice】桌面應用編輯器,插件開發大賽,等你來挑戰

OnlyOffice&#xff0c;桌面應用編輯器&#xff0c;最近版本已從8.0升級到了8.1 從PDF、Word、Excel、PPT等全面進行了升級。隨著AI應用持續的火熱&#xff0c;OnlyOffice也在不斷推出AI相關插件。 因此&#xff0c;在此給大家推薦一下OnlyOffice本次的插件開發大賽。 詳細信息…