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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

机器学习常用损失函数

發布時間:2023/12/19 综合教程 45 生活家
生活随笔 收集整理的這篇文章主要介紹了 机器学习常用损失函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

信息熵

信息熵也被稱為熵,用來表示所有信息量的期望。
公式如下:

例如在一個三分類問題中,貓狗馬的概率如下:

label
predict 0.7 0.2 0.1
信息量 -log(0.7) -log(0.2) -log(0.1)

信息熵為:H = ?(0.5?log(0.5)+0.2?log(0.2)+0.3?log(0.3))

針對二分類問題可以簡寫如下:

相對熵(KL散度)

如果對于同一個隨機變量X,有兩個單獨的概率分布P(x)和Q(x),則我們可以使用KL散度來衡量這兩個概率分布之間的差異。
用來表示兩個概率分布的差異
公式如下:

# pytorch代碼
kl_loss = torch.nn.KLDivLoss()
kl_loss_output = klloss(logit1, logit2)

例如在一個三分類問題中,概率如下:

label 1 0 0
predict 0.7 0.2 0.1

則KL散度如下:

交叉熵(CE, Cross Entropy)

交叉熵 = KL散度 + 信息熵,常作為損失函數來最小化KL散度,且計算比KL散度簡單。
常用于計算label和概率之間的差異,計算量比KL散度小
公式如下(可以通過上文信息熵和KL散度推導):

# pytorch代碼
crossentropy_loss = torch.nn.CrossEntropyLoss()
crossentropy_loss_output = crossentropyloss(label, predict)

舉例如下:

label 1 0 0
predict 0.7 0.2 0.1

那么loss計算公式如下:

和MSE對比:當使用sigmoid作為激活函數的時候,常用交叉熵損失函數而不用均方誤差損失函數,因為它可以完美解決平方損失函數權重更新過慢的問題,具有“誤差大的時候,權重更新快;誤差小的時候,權重更新慢”的良好性質。

和方差(SSE)

和方差用來計算兩個概率分布之間的差異,計算公式如下:

均方差(MSE)

均方差也用來計算兩個概率分布之間的差異,計算公式如下:

# pytorch代碼
mse_loss = torch.nn.MSELoss(reduce=True, size_average=True)
mse_loss_output = mse_loss(logit1, logit2)

還是拿三分類問題舉例:

label 1 0 0
teacher_pre 0.7 0.2 0.1
student_pre 0.6 0.2 0.2

那么mse loss = [(0.7-0.6)^2 + (0.2-0.2)^2 + (0.1-0.2)^2] / 3

均方根誤差(RMSE)

也叫回歸系統的擬合標準差,是MSE的平方根,計算公式如下:

SSE、MSE、RMSE三者比較相似,其中MSE常用于模型蒸餾中,用于計算student和teacher的logit之間的概率分布差異

Hinge損失函數

專用于二分類的損失函數,公式如下:

SVM使用的損失函數,如果分類正確,則loss為0,否則損失為1-yf(x),其中1可以作為一個超參數設置為其他值
其中|f(x)|<=1,y是目標值1或者-1

時間會記錄下一切。

總結

以上是生活随笔為你收集整理的机器学习常用损失函数的全部內容,希望文章能夠幫你解決所遇到的問題。

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