丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能學(xué)術(shù) 正文
發(fā)私信給叢末
發(fā)送

0

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

本文作者: 叢末 2019-10-12 17:46
導(dǎo)語(yǔ):不同的深度學(xué)習(xí)任務(wù),要用到的損失函數(shù)也不盡相同。

雷鋒網(wǎng) AI 科技評(píng)論按:損失函數(shù)對(duì)于機(jī)器學(xué)習(xí)而言,是最基礎(chǔ)也最重要的環(huán)節(jié)之一,因此在損失函數(shù)上「做好文章」,是一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目順利進(jìn)行的前提之一。Deep Learning Demystified 編輯、數(shù)據(jù)科學(xué)家 Harsha Bommana 以淺顯易懂的文字介紹了在不同的深度學(xué)習(xí)任務(wù)中如何設(shè)置損失函數(shù),以期大家能夠?qū)p失函數(shù)有一個(gè)更加清晰的認(rèn)識(shí)。雷鋒網(wǎng) AI 科技評(píng)論編譯如下。

在所有的機(jī)器學(xué)習(xí)項(xiàng)目中,損失函數(shù)的設(shè)置是確保模型以預(yù)期的方式工作的最重要的步驟之一。損失函數(shù)能夠給神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用帶來(lái)很大的靈活性,并且能夠明確該神經(jīng)網(wǎng)絡(luò)的輸出究竟如何與其他的網(wǎng)絡(luò)連接。

從預(yù)測(cè)連續(xù)值如月度支出到劃分離散類(lèi)如對(duì)貓和狗進(jìn)行分類(lèi)等,都是神經(jīng)網(wǎng)絡(luò)能夠執(zhí)行的任務(wù)。各不相同的任務(wù)需要不同類(lèi)別的損失,因?yàn)檫@些任務(wù)的輸出格式各不相同。對(duì)于非常特定的任務(wù)而言,我們需要明確希望如何定義這一損失。

簡(jiǎn)單而言,損失函數(shù)(J)可以被定義為包含兩個(gè)參數(shù)的函數(shù):

  • 1. 預(yù)測(cè)的輸出

  • 2. 實(shí)際的輸出

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

神經(jīng)網(wǎng)絡(luò)損失可視化

該函數(shù)通過(guò)比較模型預(yù)測(cè)的值與其應(yīng)該輸出的實(shí)際值來(lái)計(jì)算出模型表現(xiàn)的糟糕程度。如果 Y_pred 與 Y 相差很大,損失值就會(huì)很高;如果兩個(gè)值幾乎一樣,損失值就會(huì)很低。因此,我們需要讓損失函數(shù)在數(shù)據(jù)集上訓(xùn)練時(shí),始終能夠有效地對(duì)模型進(jìn)行懲罰。

如果損失非常大,損失值在模型訓(xùn)練期間會(huì)傳遞到整個(gè)網(wǎng)絡(luò)中,同時(shí),權(quán)重的變化會(huì)比平時(shí)要大很多。如果損失較小,權(quán)重的變化就不會(huì)這么大了,因?yàn)榫W(wǎng)絡(luò)已經(jīng)能夠很好地執(zhí)行任務(wù)了。

這一情況某種程度上跟考生準(zhǔn)備考試差不多,如果考生考出的成績(jī)很糟,我們就可以說(shuō)損失非常大,那這位考生就需要對(duì)自己為下次考試所做的準(zhǔn)備工作進(jìn)行大改,以便在下次考試中取得更好的成績(jī)。然而,如果考生的考試成績(jī)還不錯(cuò)的話,他們就不會(huì)過(guò)多調(diào)整已經(jīng)為下次考試所做的準(zhǔn)備工作。

現(xiàn)在,讓我們以分類(lèi)任務(wù)為例,來(lái)了解損失函數(shù)在該示例中到底是如何表現(xiàn)的。

分類(lèi)損失

當(dāng)神經(jīng)網(wǎng)絡(luò)試圖預(yù)測(cè)一個(gè)離散值時(shí),我們可以將其視作一個(gè)分類(lèi)模型。該網(wǎng)絡(luò)會(huì)預(yù)測(cè)出圖像呈現(xiàn)的是什么動(dòng)物類(lèi)別,或郵件是否是垃圾郵件。首先,讓我們看下分類(lèi)任務(wù)中神經(jīng)網(wǎng)絡(luò)如何表示輸出。

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

分類(lèi)神經(jīng)網(wǎng)絡(luò)輸出格式

輸出層的節(jié)點(diǎn)數(shù)量取決于用數(shù)據(jù)表示的類(lèi)的數(shù)量。每一個(gè)節(jié)點(diǎn)都代表一個(gè)單類(lèi)。每個(gè)輸出節(jié)點(diǎn)的值基本上都表示模型將類(lèi)分類(lèi)正確的概率。

Pr(Class 1) = Probability of Class 1 being the correct class

一旦我們得到了所有不同類(lèi)的概率,我們將概率最高的類(lèi)視為該示例中預(yù)測(cè)的類(lèi)。讓我們從探索二元分類(lèi)如何實(shí)現(xiàn)開(kāi)始。

二元分類(lèi)(Binary Classification)

在二元分類(lèi)中,即便我們?cè)趦蓚€(gè)類(lèi)之間進(jìn)行預(yù)測(cè),輸出層中也僅有唯一的一個(gè)節(jié)點(diǎn)。為了得到概率格式的輸出,我們需要應(yīng)用一個(gè)激活函數(shù)。由于概率值在 0 和 1 之間,我們使用能夠?qū)⑷我鈱?shí)際值壓縮為 0 到 1 之間的值的 Sigmoid 函數(shù)。

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

 Sigmoid 函數(shù)圖可視化

當(dāng) Sigmoid 函數(shù)中的輸入變大并趨向于正無(wú)窮時(shí),該函數(shù)的輸出值會(huì)趨近于 1。與此同時(shí),當(dāng)輸入趨向于負(fù)無(wú)窮時(shí),該函數(shù)的輸出值會(huì)趨近于 0?,F(xiàn)在我們就總能夠得到一個(gè)在 0 到 1 之間的值,而這恰恰就是我們所需要的取值范圍,因?yàn)槲覀円玫礁怕省?/p>

如果輸出值大于 0.5(50% 的概率),我們將類(lèi)視為從屬于正類(lèi) (Positive class);如果輸出值低于 0.5,則將類(lèi)視為從屬于負(fù)類(lèi)(negative class)。例如,假如我們訓(xùn)練一個(gè)網(wǎng)絡(luò)來(lái)對(duì)貓和狗進(jìn)行分類(lèi),我們可以將狗分為正類(lèi),這樣的話,狗在數(shù)據(jù)集中的輸出值就是 1;同樣地,我們將貓分為負(fù)類(lèi),貓的輸出值就是 0。

我們?yōu)槎诸?lèi)使用的損失函數(shù)叫做二元交叉熵(Binary Cross Entropy,BCE)。該函數(shù)能夠?qū)Χ诸?lèi)任務(wù)的神經(jīng)網(wǎng)絡(luò)進(jìn)行有效地懲罰。下圖為該函數(shù)的表現(xiàn)形式:

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

二元交叉熵?fù)p失圖

我們可以看到,它有兩個(gè)分離的函數(shù),它們各自表示 Y 的取值。當(dāng)我們需要預(yù)測(cè)正類(lèi)(Y=1)時(shí),我們使用:

Loss = -log(Y_pred)

當(dāng)我們需要預(yù)測(cè)負(fù)類(lèi)(Y-=0)時(shí),我們使用:

Loss = -log(1-Y_pred)

如圖所示,在第一個(gè)函數(shù)中,當(dāng) Y_pred 等于 1 時(shí),損失值就等于 0,這就能夠起到作用,因?yàn)?Y_pred 恰好與 Y 相等。當(dāng) Y_pred 的值趨近于 0 時(shí),我們可以看到損失值會(huì)一路增加到一個(gè)非常高的概率,并且當(dāng) Y_pred 變成 0 時(shí),損失值會(huì)變成無(wú)窮大。這是因?yàn)閺姆诸?lèi)的角度而言,0 和 1 就是兩個(gè)極端——因?yàn)樗鼈兏髯员硎就耆煌念?lèi)。因此當(dāng) Y_pred 等于 0、Y 等于 1 時(shí),損失值就變得非常高,從而讓網(wǎng)絡(luò)更加有效地學(xué)習(xí)它的錯(cuò)誤。

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

二元分類(lèi)損失對(duì)比

我們可以用數(shù)學(xué)的方式,將整個(gè)損失函數(shù)表示為如下方程式:

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

二元交叉熵方程式

該損失函數(shù)也叫做對(duì)數(shù)損失(Log Loss),以上就是該損失函數(shù)者針對(duì)二元分類(lèi)神經(jīng)網(wǎng)絡(luò)任務(wù)的執(zhí)行方式。接下來(lái)讓我們來(lái)看看多類(lèi)分類(lèi)網(wǎng)絡(luò)中如何定義損失。

多類(lèi)分類(lèi)(Multiclass Classification)

當(dāng)我們每次都需要讓模型預(yù)測(cè)出一個(gè)可能的類(lèi)別時(shí),多類(lèi)分類(lèi)是比較合適的方式。由于我們依舊需要處理概率問(wèn)題,所以對(duì)所有輸出的節(jié)點(diǎn)使用 Sigmoid 函數(shù)會(huì)比較有用,這樣的話所有的輸出就都在 0 到 1 之間取值,不過(guò),這種方法也存在一個(gè)問(wèn)題:當(dāng)我們考慮多個(gè)類(lèi)別的概率時(shí),我們需要確保所有單個(gè)類(lèi)別的概率的總值等于 1,這也是由概率的屬性所決定的。然而,使用 Sigmoid 函數(shù)并不能確??傊刀嫉扔?1,因此我們需要用到另外的激活函數(shù)。

在該示例中,我們使用的激活函數(shù)是 Softmax 函數(shù)。該函數(shù)能夠確保所有的輸出節(jié)點(diǎn)的取值都在 0 到 1 之間,并且所有輸出節(jié)點(diǎn)的總值都等于 1。Softmax 的公式如下:

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

Softmax 公式

我們不妨用一個(gè)示例將 Softmax 可視化:

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

Softmax 示例可視化

如上圖所示,我們可以簡(jiǎn)單將所有的取值變成一個(gè)指數(shù)函數(shù)。之后,為了確保所有取值都在 0 到 1 的范圍內(nèi)以及所有輸出值的總值等于 1,我們還需要用所有指數(shù)的總和來(lái)除以單個(gè)指數(shù)。

所以為什么我們?cè)趯⒚總€(gè)值正則化之前,要先將每個(gè)值指數(shù)化?為什么不能僅僅正則化值本身?這是因?yàn)?,Softmax 函數(shù)的目標(biāo)是確保一個(gè)輸出值足夠大(趨近于 1)而另外所有的輸出值足夠?。ㄚ吔?0)。Softmax 函數(shù)采用指數(shù)的方式,就是為了確保能夠做到這一點(diǎn)。而之后我們對(duì)值進(jìn)行正則化處理則是因?yàn)槲覀冃枰玫礁怕省?/p>

既然現(xiàn)在輸出都能夠以合適的格式表示出來(lái)了,下面我們來(lái)看看如何針對(duì)該格式設(shè)置損失函數(shù)。好的一面是,這里用到的損失函數(shù)基本上與二元分類(lèi)中用到的損失函數(shù)差不多。我們僅僅需要根據(jù)每個(gè)輸出節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)值在每個(gè)輸出節(jié)點(diǎn)上使用損失函數(shù),然后我們就能夠得到所有輸出節(jié)點(diǎn)的對(duì)數(shù)損失總值。

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

多分類(lèi)交叉熵可視化

該損失就叫做多分類(lèi)交叉熵(Categorical Cross Entropy)。后續(xù)我們?cè)賮?lái)看看分類(lèi)任務(wù)中的一個(gè)特例——多標(biāo)簽分類(lèi)。

多標(biāo)簽分類(lèi)(Multilabel Classification)

當(dāng)你的模型需要預(yù)測(cè)多類(lèi)別作為輸出時(shí),就要用到多標(biāo)簽法分類(lèi)。例如,假設(shè)你在訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)一張食物圖片上顯示的食材,這時(shí),網(wǎng)絡(luò)就需要預(yù)測(cè)多種食材,因而 Y 中就可能出現(xiàn)多個(gè)取值為 1 的輸出。

對(duì)此,我們僅靠使用 Softmax 函數(shù)是無(wú)法完成該分類(lèi)任務(wù)的,因?yàn)?Softmax 函數(shù)往往只能讓一個(gè)類(lèi)別輸出為 1,而其他的所有類(lèi)別都輸出為 0。所以,在這個(gè)任務(wù)上,我們僅僅繼續(xù)對(duì)所有輸出節(jié)點(diǎn)值使用 Softmax 函數(shù),因?yàn)槲覀円琅f還需要預(yù)測(cè)出每個(gè)類(lèi)別的單個(gè)概率。

而針對(duì)該分類(lèi)任務(wù)的損失,我們可以直接對(duì)每個(gè)輸出節(jié)點(diǎn)使用對(duì)數(shù)損失函數(shù)并取總值,這跟我們?cè)诙囝?lèi)分類(lèi)任務(wù)中的工作一樣。

做好分類(lèi)以后,我們下面要做的是回歸。

回歸損失

在回歸中,我們的模型嘗試預(yù)測(cè)一個(gè)連續(xù)值。一些回歸模型的示例有:

  • 房?jī)r(jià)預(yù)測(cè)

  • 人的年齡預(yù)測(cè)

  • ......

在回歸模型中,神經(jīng)網(wǎng)絡(luò)會(huì)針對(duì)模型需要預(yù)測(cè)的每個(gè)連續(xù)值輸出一個(gè)節(jié)點(diǎn),之后直接通過(guò)比較輸出值和實(shí)際值來(lái)計(jì)算回歸損失。

回歸模型中最常用的損失函數(shù)是均方誤差(Mean-Square Erro)損失函數(shù)。我們通過(guò)使用該函數(shù),僅需要計(jì)算出 Y_pred 和 Y 的方差,然后再將所有取值得到的方差平均即可。我們假設(shè)有 n 個(gè)取值點(diǎn):

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

均方誤差損失函數(shù)

這里的 Y_i 和 Y_pred_i 指的是數(shù)據(jù)集中的第 i 個(gè) Y 值和神經(jīng)網(wǎng)絡(luò)對(duì)同一個(gè)取值所得出的對(duì)應(yīng)的 Y_pred。

以上是本文的全部?jī)?nèi)容。希望各位讀者通過(guò)閱讀此文,能夠?qū)ι疃葘W(xué)習(xí)的不同任務(wù)如何設(shè)置損失函數(shù)有一個(gè)更加清晰的認(rèn)識(shí)。  雷鋒網(wǎng)

via https://medium.com/deep-learning-demystified/loss-functions-explained-3098e8ff2b27

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

要做好深度學(xué)習(xí)任務(wù),不妨先在損失函數(shù)上「做好文章」

分享:
相關(guān)文章
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)