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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【AI初识境】深度学习中常用的损失函数有哪些?

發(fā)布時(shí)間:2025/3/20 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【AI初识境】深度学习中常用的损失函数有哪些? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這是專欄《AI初識(shí)境》的第11篇文章。所謂初識(shí),就是對(duì)相關(guān)技術(shù)有基本了解,掌握了基本的使用方法。

今天來說說深度學(xué)習(xí)中常見的損失函數(shù)(loss),覆蓋分類,回歸任務(wù)以及生成對(duì)抗網(wǎng)絡(luò),有了目標(biāo)才能去優(yōu)化一個(gè)模型。

作者&編輯 | 言有三

?

1 什么是損失函數(shù)

在機(jī)器學(xué)習(xí)中,損失函數(shù)(loss function)是用來估量模型的預(yù)測值f(x)與真實(shí)值Y的不一致程度,損失函數(shù)越小,一般就代表模型的魯棒性越好,正是損失函數(shù)指導(dǎo)了模型的學(xué)習(xí)。

機(jī)器學(xué)習(xí)的任務(wù)本質(zhì)上是兩大類,分類問題與回歸問題,再加上綜合了判別模型和生成模型后在各類圖像任務(wù)中大展拳腳的生成對(duì)抗網(wǎng)絡(luò),這一次我們就重點(diǎn)講述這些內(nèi)容。

?

2 分類任務(wù)損失

2.1、0-1 loss

0-1 loss是最原始的loss,它直接比較輸出值與輸入值是否相等,對(duì)于樣本i,它的loss等于:

當(dāng)標(biāo)簽與預(yù)測類別相等時(shí),loss為0,否則為1。可以看出,0-1 loss無法對(duì)x進(jìn)行求導(dǎo),這在依賴于反向傳播的深度學(xué)習(xí)任務(wù)中,無法被使用,0-1 loss更多的是啟發(fā)新的loss的產(chǎn)生。

2.2、熵與交叉熵loss

在物理學(xué)有一個(gè)概念,就是熵,它表示一個(gè)熱力學(xué)系統(tǒng)的無序程度。為了解決對(duì)信息的量化度量問題,香農(nóng)在1948年提出了“信息熵”的概念,它使用對(duì)數(shù)函數(shù)表示對(duì)不確定性的測量。熵越高,表示能傳輸?shù)男畔⒃蕉?#xff0c;熵越少,表示傳輸?shù)男畔⒃缴?#xff0c;我們可以直接將熵理解為信息量

按照香農(nóng)的理論,熵背后的原理是任何信息都存在冗余,并且冗余大小與信息中每個(gè)符號(hào)(數(shù)字、字母或單詞)的出現(xiàn)概率或者說不確定性有關(guān)。概率大,出現(xiàn)機(jī)會(huì)多,則不確定性小,這個(gè)關(guān)系就用對(duì)數(shù)函數(shù)來表征。

為什么選擇對(duì)數(shù)函數(shù)而不是其他函數(shù)呢?首先,不確定性必須是概率P的單調(diào)遞降函數(shù),假設(shè)一個(gè)系統(tǒng)中各個(gè)離散事件互不相關(guān),要求其總的不確定性等于各自不確定性之和,對(duì)數(shù)函數(shù)是滿足這個(gè)要求的。將不確定性f定義為log(1/p)=-log(p),其中p是概率。

對(duì)于單個(gè)的信息源,信源的平均不確定性就是單個(gè)符號(hào)不確定性-logpi的統(tǒng)計(jì)平均值,信息熵的定義如下。

假設(shè)有兩個(gè)概率分布p(x)和q(x),其中p是已知的分布,q是未知的分布,則其交叉熵函數(shù)是兩個(gè)分布的互信息,可以反應(yīng)其相關(guān)程度。

從這里,就引出了分類任務(wù)中最常用的loss,即log loss,又名交叉熵loss,后面我們統(tǒng)一稱為交叉熵:

n對(duì)應(yīng)于樣本數(shù)量,m是類別數(shù)量,yij 表示第i個(gè)樣本屬于分類j的標(biāo)簽,它是0或者1。對(duì)于單分類任務(wù),只有一個(gè)分類的標(biāo)簽非零。f(xij) 表示的是樣本i預(yù)測為j分類的概率。loss的大小完全取決于分類為正確標(biāo)簽?zāi)且活惖母怕?#xff0c;當(dāng)所有的樣本都分類正確時(shí),loss=0,否則大于0。

2.3、softmax loss及其變種

假如log loss中的f(xij)的表現(xiàn)形式是softmax概率的形式,那么交叉熵loss就是我們熟知的softmax with cross-entropy loss,簡稱softmax loss,所以說softmax loss只是交叉熵的一個(gè)特例。

softmax loss被廣泛用于分類分割等任務(wù),而且發(fā)展出了很多的變種,有針對(duì)不平衡樣本問題的weighted softmax loss, focal loss,針對(duì)蒸餾學(xué)習(xí)的soft softmax loss,促進(jìn)類內(nèi)更加緊湊的L-softmax Loss等一系列改進(jìn),早在一年前就撰寫過綜述如下:

【技術(shù)綜述】一文道盡softmax loss及其變種

2.4、KL散度

Kullback和Leibler定義了KL散度用于估計(jì)兩個(gè)分布的相似性,定義如下;

Dkl是非負(fù)的,只有當(dāng)p與q處處相等時(shí),才會(huì)等于0。上面的式子也等價(jià)于

其中l(wèi)(p,p)是分布p的熵,而l(p,q)就是p和q的交叉熵。假如p是一個(gè)已知的分布,則熵是一個(gè)常數(shù),此時(shí)dkl(p|q)與l(p,q)也就是交叉熵只有一個(gè)常數(shù)的差異,兩者是等價(jià)的。

?

同時(shí)值得注意的是,KL散度并不是一個(gè)對(duì)稱的loss,即dkl(p|q) != dkl(q|p),KL散度常被用于生成式模型。

2.5、Hinge loss

Hinge loss主要用于支持向量機(jī)中,它的稱呼來源于損失的形狀,定義如下:

如果分類正確,loss=0,如果錯(cuò)誤則為1-f(x),所以它是一個(gè)分段不光滑的曲線。Hinge loss被用來解SVM問題中的間距最大化問題。

2.6、Exponential loss與Logistic loss

Exponential loss是一個(gè)指數(shù)形式的loss,它的特點(diǎn)就是梯度比較大,主要用于Adaboost集成學(xué)習(xí)算法中,定義如下:

logistic loss取了Exponential loss的對(duì)數(shù)形式,它的定義如下:

logistic loss 梯度相對(duì)變化更加平緩。

此外還有sigmoid cross_entropy_loss,可以被用于多標(biāo)簽分類任務(wù)或者不需要?jiǎng)?chuàng)建類間競爭機(jī)制的分類任務(wù),在Mask RCNN中就被用了。

以上就涵蓋了大部分常用的分類任務(wù)損失,多半都是對(duì)數(shù)的形式,這是由信息熵的定義,參數(shù)似然估計(jì)的本質(zhì)決定的。

?

3 回歸任務(wù)損失

在回歸任務(wù)中,回歸的結(jié)果是一些整數(shù)或者實(shí)數(shù),并沒有先驗(yàn)的概率密度分布,常使用的loss是L1 loss和L2 loss。

3.1、L1 loss

Mean absolute loss(MAE)也被稱為L1 Loss,是以絕對(duì)誤差作為距離:

由于L1 loss具有稀疏性,為了懲罰較大的值,因此常常將其作為正則項(xiàng)添加到其他loss中作為約束。L1 loss的最大問題是梯度在零點(diǎn)不平滑,導(dǎo)致會(huì)跳過極小值。

3.2、L2 loss

Mean Squared Loss/ Quadratic Loss(MSE loss)也被稱為L2 loss,或歐氏距離,它以誤差的平方和作為距離:

L2 loss也常常作為正則項(xiàng)。當(dāng)預(yù)測值與目標(biāo)值相差很大時(shí), 梯度容易爆炸,因?yàn)樘荻壤锇藊?t。

3.3、L1 loss與L2 loss的改進(jìn)

原始的L1 loss和L2 loss都有缺陷,比如L1 loss的最大問題是梯度不平滑,而L2 loss的最大問題是容易梯度爆炸,所以研究者們對(duì)其提出了很多的改進(jìn)。

在faster rcnn框架中,使用了smooth L1 loss來綜合L1與L2 loss的優(yōu)點(diǎn),定義如下:

在x比較小時(shí),上式等價(jià)于L2 loss,保持平滑。在x比較大時(shí),上式等價(jià)于L1 loss,可以限制數(shù)值的大小。

為了增強(qiáng)L2 loss對(duì)噪聲(離群點(diǎn))的魯棒性,研究者提出了Huber loss,定義如下:

Huber對(duì)于離群點(diǎn)非常的有效,它同時(shí)結(jié)合了L1與L2的優(yōu)點(diǎn),不過多出來了一個(gè)delta參數(shù)需要進(jìn)行訓(xùn)練。

除此之外還有Log-Cosh Loss等損失,大家可以自己了解,也歡迎補(bǔ)充。

從上面可以看出,L1/L2各有優(yōu)劣,設(shè)計(jì)一個(gè)通用的框架同時(shí)滿足L1/L2損失的優(yōu)點(diǎn)是研究重點(diǎn),我見過的最夸張的是這樣的。

3.4、perceptual loss

對(duì)于圖像風(fēng)格化,圖像超分辨率重建等任務(wù)來說,早期都使用了圖像像素空間的L2 loss,但是L2 loss與人眼感知的圖像質(zhì)量并不匹配,恢復(fù)出來的圖像往往細(xì)節(jié)表現(xiàn)不好。

現(xiàn)在的研究中,L2 loss逐步被人眼感知loss所取代。人眼感知loss也被稱為perceptual loss(感知損失),它與MSE采用圖像像素進(jìn)行求差的不同之處在于所計(jì)算的空間不再是圖像空間。

研究者們常使用VGG等網(wǎng)絡(luò)的特征,令φ來表示損失網(wǎng)絡(luò),Cj表示網(wǎng)絡(luò)的第j層,CjHjWj表示第j層的特征圖的大小,感知損失的定義如下:

可以看出,它有與L2 loss同樣的形式,只是計(jì)算的空間被轉(zhuǎn)換到了特征空間。

?

4 生成對(duì)抗網(wǎng)絡(luò)損失

生成對(duì)抗網(wǎng)絡(luò)即Generative Adversarial Networks,簡稱GAN,它是2014年以后興起的無監(jiān)督學(xué)習(xí)網(wǎng)絡(luò),現(xiàn)在有非常多的解讀了,我們一年前也解讀過,歡迎移步,適合初學(xué)者。

【技術(shù)綜述】有三說GANs(上)

原始的用于生成圖片的GAN的損失函數(shù)包括了生成式模型和判別式模型兩部分,如今GAN被用于各類任務(wù),其他的各種損失也加入了進(jìn)來,不過我們這里還是專門針對(duì)GAN的基本損失進(jìn)行講述。

4.1、GAN的基本損失

GAN是在生成模型和判別模型的相互博弈中進(jìn)行迭代優(yōu)化,它的優(yōu)化目標(biāo)如下:

從中可以看出,包括兩個(gè)部分,Ex~pdata(x)[logD(x)]和Ez~pz(z)[log(1?D(G(z)))]要求最大化判別模型對(duì)真實(shí)樣本的概率估計(jì),最小化判別模型對(duì)生成的樣本的概率估計(jì),生成器則要求最大化D(G(z)),即最大化判別模型對(duì)生成樣本的誤判,這個(gè)loss是對(duì)數(shù)log的形式。

原始的GAN的損失使用了JS散度,兩個(gè)分布之間越接近,它們的JS散度越小,但實(shí)際上這并不適合衡量生成數(shù)據(jù)分布和真實(shí)數(shù)據(jù)分布的距離,相關(guān)的分析已經(jīng)非常的多了,本文如果展開就太長了,因此直接給解決方案。

4.2、-log D trick

Ian Goodfellow提出了-log D trick,即把生成器loss改成如下,使得生成器的損失不依賴于生成器G

這個(gè)等價(jià)最小化目標(biāo)存在兩個(gè)嚴(yán)重的問題。第一是它同時(shí)要最小化生成分布與真實(shí)分布的KL散度,卻又要最大化兩者的JS散度,這是矛盾的會(huì)導(dǎo)致梯度不穩(wěn)定。第二,因?yàn)镵L散度不是對(duì)稱的,導(dǎo)致此時(shí)loss不對(duì)稱,對(duì)于正確樣本誤分和錯(cuò)誤樣本誤分的懲罰是不一樣的。第一種錯(cuò)誤對(duì)應(yīng)的是“生成器沒能生成真實(shí)的樣本”,即多樣性差,懲罰微小;第二種錯(cuò)誤對(duì)應(yīng)的是“生成器生成了不真實(shí)的樣本”,即準(zhǔn)確性低,懲罰巨大。這樣造成生成器生成多樣性很差的樣本,出現(xiàn)了常說的模式崩塌(collapse mode)問題。

4.3、Wasserstein GAN(簡稱wgan)等改進(jìn)方案

wgan采用了Earth-Mover距離(EM距離)作為loss,它是在最優(yōu)路徑規(guī)劃下的最小消耗,計(jì)算的是在聯(lián)合分布γ下,樣本對(duì)距離的期望值:

與原始的GAN的loss形式相比,其實(shí)wgan就是生成器和判別器的loss不取log。wessertein距離相比KL散度和JS散度的優(yōu)勢在于,即使兩個(gè)分布的支撐集沒有重疊或者重疊非常少,仍然能反映兩個(gè)分布的遠(yuǎn)近。而JS散度在此情況下是常量,KL散度可能無意義。

wgan有一些問題,wgan-gp改進(jìn)了wgan連續(xù)性限制的條件,后面還有一些研究,大家可以自行跟進(jìn),我們后面也會(huì)講述。

4.4、LS-GAN

LS-GAN即Least Squares Generative Adversarial Networks。它的原理部分可以一句話概括,即使用了最小二乘損失函數(shù)代替了GAN的損失函數(shù),相當(dāng)于最小化P和Q之間的Pearson卡方散度(divergence),這屬于f-divergence的一種,有效地緩解了GAN訓(xùn)練不穩(wěn)定和生成圖像質(zhì)量差多樣性不足的問題。作者認(rèn)為使用JS散度并不能拉近真實(shí)分布和生成分布之間的距離,使用最小二乘可以將圖像的分布盡可能的接近決策邊界,其損失函數(shù)定義如下:

以交叉熵作為損失,它的特點(diǎn)是會(huì)使得生成器不會(huì)再優(yōu)化那些被判別器識(shí)別為真實(shí)圖片的生成圖片,即使這些生成圖片距離判別器的決策邊界仍然很遠(yuǎn),也就是距真實(shí)數(shù)據(jù)比較遠(yuǎn),這意味著生成器的生成圖片質(zhì)量并不高。而要想最小二乘損失比較小,則在混淆判別器的前提下還得讓生成器把距離決策邊界比較遠(yuǎn)的生成圖片拉向決策邊界,這就是LS-GAN的優(yōu)勢。

4.5、Loss-sensitive-GAN

在原始的GAN的損失函數(shù)后添加了一個(gè)約束項(xiàng)來直接限定GAN的建模能力,它的損失函數(shù)如下:

優(yōu)化將通過最小化這個(gè)目標(biāo)來得到一個(gè)“損失函數(shù)" (下文稱之為L函數(shù))。L函數(shù)在真實(shí)樣本上越小越好,在生成的樣本上越大越好。它是以真實(shí)樣本x和生成樣本的一個(gè)度量為各自L函數(shù)的目標(biāo)間隔,把x和生成樣本分開。好處是如果生成的樣本和真實(shí)樣本已經(jīng)很接近,就不必要求他們的L函數(shù)有個(gè)固定間隔,因?yàn)樯傻臉颖疽呀?jīng)很好。這樣就可以集中力量提高那些距離真實(shí)樣本還很遠(yuǎn),真實(shí)度不那么高的樣本,能更合理地使用LS-GAN的建模能力,被稱為“按需分配”。

關(guān)于GAN的損失優(yōu)化,這是一個(gè)不小的研究領(lǐng)域,下面是一個(gè)簡單的匯總。

如果你對(duì)GAN還有更多興趣,那就看這個(gè)參考網(wǎng)址吧,https://hollobit.github.io/All-About-the-GAN/,不多不多,也就幾千篇文章,我大概看了1000篇的摘要,等閑下來再跟大家搞GAN,是Generative Adversarial Networks噢。

本文講述了深度學(xué)習(xí)領(lǐng)域中常見的損失,學(xué)習(xí)靈活運(yùn)用和設(shè)計(jì)損失本來不是初識(shí)境界的要求,不過還是讓大家先有個(gè)基本感知吧。

下一期預(yù)告:如何晉級(jí)為合格的初階深度學(xué)習(xí)模型訓(xùn)練師。

?

比如網(wǎng)絡(luò)loss不正常,怎么調(diào)都不管用。

比如訓(xùn)練好好的,測試就是結(jié)果不對(duì)。

bug天天有,深度學(xué)習(xí)算法工程師遇到的特別多,如果你想交流更多,就來有三AI知識(shí)星球?qū)崟r(shí)提問交流吧,大咖眾多,總有能解決你問題的。

初識(shí)境界到此基本就結(jié)束了,這一系列是為大家奠定扎實(shí)的深度學(xué)習(xí)基礎(chǔ),希望學(xué)習(xí)完后大家能有收獲。

AI白身境系列完整閱讀:

第一期:【AI白身境】深度學(xué)習(xí)從棄用windows開始

第二期:【AI白身境】Linux干活三板斧,shell、vim和git

第三期:【AI白身境】學(xué)AI必備的python基礎(chǔ)

第四期:【AI白身境】深度學(xué)習(xí)必備圖像基礎(chǔ)

第五期:【AI白身境】搞計(jì)算機(jī)視覺必備的OpenCV入門基礎(chǔ)

第六期:【AI白身境】只會(huì)用Python?g++,CMake和Makefile了解一下

第七期:【AI白身境】學(xué)深度學(xué)習(xí)你不得不知的爬蟲基礎(chǔ)

第八期:?【AI白身境】深度學(xué)習(xí)中的數(shù)據(jù)可視化

第九期:【AI白身境】入行AI需要什么數(shù)學(xué)基礎(chǔ):左手矩陣論,右手微積分

第十期:【AI白身境】一文覽盡計(jì)算機(jī)視覺研究方向

第十一期:【AI白身境】AI+,都加在哪些應(yīng)用領(lǐng)域了

第十二期:【AI白身境】究竟誰是paper之王,全球前10的計(jì)算機(jī)科學(xué)家

AI初識(shí)境系列完整閱讀

第一期:【AI初識(shí)境】從3次人工智能潮起潮落說起

第二期:【AI初識(shí)境】從頭理解神經(jīng)網(wǎng)絡(luò)-內(nèi)行與外行的分水嶺

第三期:【AI初識(shí)境】近20年深度學(xué)習(xí)在圖像領(lǐng)域的重要進(jìn)展節(jié)點(diǎn)

第四期:【AI初識(shí)境】激活函數(shù):從人工設(shè)計(jì)到自動(dòng)搜索

第五期:【AI初識(shí)境】什么是深度學(xué)習(xí)成功的開始?參數(shù)初始化

第六期:【AI初識(shí)境】深度學(xué)習(xí)模型中的Normalization,你懂了多少?

第七期:【AI初識(shí)境】為了圍剿SGD大家這些年想過的那十幾招

第八期:【AI初識(shí)境】被Hinton,DeepMind和斯坦福嫌棄的池化,到底是什么?

第九期:【AI初識(shí)境】如何增加深度學(xué)習(xí)模型的泛化能力

第十期:【AI初識(shí)境】深度學(xué)習(xí)模型評(píng)估,從圖像分類到生成模型

第十一期:【AI初識(shí)境】深度學(xué)習(xí)中常用的損失函數(shù)有哪些?

第十二期:【AI初識(shí)境】給深度學(xué)習(xí)新手開始項(xiàng)目時(shí)的10條建議

感謝各位看官的耐心閱讀,不足之處希望多多指教。后續(xù)內(nèi)容將會(huì)不定期奉上,歡迎大家關(guān)注有三公眾號(hào) 有三AI

總結(jié)

以上是生活随笔為你收集整理的【AI初识境】深度学习中常用的损失函数有哪些?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。