
深度學(xué)習(xí)之損失函數(shù)與激活函數(shù)的選擇
在深度神經(jīng)網(wǎng)絡(luò)(DNN)反向傳播算法(BP)中,我們對(duì)DNN的前向反向傳播算法的使用做了總結(jié)。其中使用的損失函數(shù)是均方差,而激活函數(shù)是Sigmoid。實(shí)際上DNN可以使用的損失函數(shù)和激活函數(shù)不少。這些損失函數(shù)和激活函數(shù)如何選擇呢?以下是本文的內(nèi)容。
MSE損失+Sigmoid激活函數(shù)的問題
先來看看均方差+Sigmoid的組合有什么問題?;仡櫹耂igmoid激活函數(shù)的表達(dá)式為:
函數(shù)圖像如下:
從圖上可以看出,對(duì)于Sigmoid,當(dāng)z的取值越來越大后,函數(shù)曲線變得越來越平緩,意味著此時(shí)的導(dǎo)數(shù)σ′(z)也越來越小。同樣的,當(dāng)z的取值越來越小時(shí),也有這個(gè)問題。僅僅在z取值為0附近時(shí),導(dǎo)數(shù)σ′(z)的取值較大。在均方差+Sigmoid的反向傳播算法中,每一層向前遞推都要乘以σ′(z),得到梯度變化值。Sigmoid的這個(gè)曲線意味著在大多數(shù)時(shí)候,我們的梯度變化值很小,導(dǎo)致我們的W,b更新到極值的速度較慢,也就是我們的算法收斂速度較慢。那么有什么什么辦法可以改進(jìn)呢?
交叉熵?fù)p失+Sigmoid改進(jìn)收斂速度
Sigmoid的函數(shù)特性導(dǎo)致反向傳播算法收斂速度慢的問題,那么如何改進(jìn)呢?換掉Sigmoid?這當(dāng)然是一種選擇。另一種常見的選擇是用交叉熵損失函數(shù)來代替均方差損失函數(shù)。每個(gè)樣本的交叉熵損失函數(shù)的形式:
其中,?為向量內(nèi)積。這個(gè)形式其實(shí)很熟悉,在邏輯回歸原理小結(jié)中其實(shí)我們就用到了類似的形式,只是當(dāng)時(shí)我們是用最大似然估計(jì)推導(dǎo)出來的,而這個(gè)損失函數(shù)的學(xué)名叫交叉熵。
使用了交叉熵損失函數(shù),就能解決Sigmoid函數(shù)導(dǎo)數(shù)變化大多數(shù)時(shí)候反向傳播算法慢的問題嗎?我們來看看當(dāng)使用交叉熵時(shí),我們輸出層δL的梯度情況。
對(duì)比一下均方差損失函數(shù)時(shí)在δL梯度
使用交叉熵,得到的的δl梯度表達(dá)式?jīng)]有了σ′(z),梯度為預(yù)測(cè)值和真實(shí)值的差距,這樣求得的Wl,bl的梯度也不包含σ′(z),因此避免了反向傳播收斂速度慢的問題。通常情況下,如果我們使用了sigmoid激活函數(shù),交叉熵損失函數(shù)肯定比均方差損失函數(shù)好用。
對(duì)數(shù)似然損失+softmax進(jìn)行分類輸出
在前面我們都假設(shè)輸出是連續(xù)可導(dǎo)的值,但是如果是分類問題,那么輸出是一個(gè)個(gè)的類別,那我們?cè)趺从?a href='/map/dnn/' style='color:#000;font-size:inherit;'>DNN來解決這個(gè)問題呢?
DNN分類模型要求是輸出層神經(jīng)元輸出的值在0到1之間,同時(shí)所有輸出值之和為1。很明顯,現(xiàn)有的普通DNN是無法滿足這個(gè)要求的。但是我們只需要對(duì)現(xiàn)有的全連接DNN稍作改良,即可用于解決分類問題。在現(xiàn)有的DNN模型中,我們可以將輸出層第i個(gè)神經(jīng)元的激活函數(shù)定義為如下形式:
這個(gè)方法很簡潔漂亮,僅僅只需要將輸出層的激活函數(shù)從Sigmoid之類的函數(shù)轉(zhuǎn)變?yōu)樯鲜降募せ詈瘮?shù)即可。上式這個(gè)激活函數(shù)就是我們的softmax激活函數(shù)。它在分類問題中有廣泛的應(yīng)用。將DNN用于分類問題,在輸出層用softmax激活函數(shù)也是最常見的了。
對(duì)于用于分類的softmax激活函數(shù),對(duì)應(yīng)的損失函數(shù)一般都是用對(duì)數(shù)似然函數(shù),即:
其中yk的取值為0或者1,如果某一訓(xùn)練樣本的輸出為第i類。則yi=1,其余的j≠i都有yj=0。由于每個(gè)樣本只屬于一個(gè)類別,所以這個(gè)對(duì)數(shù)似然函數(shù)可以簡化為:
可見損失函數(shù)只和真實(shí)類別對(duì)應(yīng)的輸出有關(guān),這樣假設(shè)真實(shí)類別是第i類,則其他不屬于第i類序號(hào)對(duì)應(yīng)的神經(jīng)元的梯度導(dǎo)數(shù)直接為0。對(duì)于真實(shí)類別第i類,它的WiL對(duì)應(yīng)的梯度計(jì)算為:
可見,梯度計(jì)算也很簡潔,也沒有第一節(jié)說的訓(xùn)練速度慢的問題。當(dāng)softmax輸出層的反向傳播計(jì)算完以后,后面的普通DNN層的反向傳播計(jì)算和之前講的普通DNN沒有區(qū)別。
梯度爆炸or消失與ReLU
學(xué)習(xí)DNN,大家一定聽說過梯度爆炸和梯度消失兩個(gè)詞。尤其是梯度消失,是限制DNN與深度學(xué)習(xí)的一個(gè)關(guān)鍵障礙,目前也沒有完全攻克。
什么是梯度爆炸和梯度消失呢?簡單理解,就是在反向傳播的算法過程中,由于我們使用了是矩陣求導(dǎo)的鏈?zhǔn)椒▌t,有一大串連乘,如果連乘的數(shù)字在每層都是小于1的,則梯度越往前乘越小,導(dǎo)致梯度消失,而如果連乘的數(shù)字在每層都是大于1的,則梯度越往前乘越大,導(dǎo)致梯度爆炸。
比如如下的梯度計(jì)算:
如果不巧我們的樣本導(dǎo)致每一層的梯度都小于1,則隨著反向傳播算法的進(jìn)行,我們的δl會(huì)隨著層數(shù)越來越小,甚至接近越0,導(dǎo)致梯度幾乎消失,進(jìn)而導(dǎo)致前面的隱藏層的W,b參數(shù)隨著迭代的進(jìn)行,幾乎沒有大的改變,更談不上收斂了。這個(gè)問題目前沒有完美的解決辦法。
而對(duì)于梯度爆炸,則一般可以通過調(diào)整我們DNN模型中的初始化參數(shù)得以解決。
對(duì)于無法完美解決的梯度消失問題,一個(gè)可能部分解決梯度消失問題的辦法是使用ReLU(Rectified Linear Unit)激活函數(shù),ReLU在卷積神經(jīng)網(wǎng)絡(luò)CNN中得到了廣泛的應(yīng)用,在CNN中梯度消失似乎不再是問題。那么它是什么樣子呢?其實(shí)很簡單,比我們前面提到的所有激活函數(shù)都簡單,表達(dá)式為:
也就是說大于等于0則不變,小于0則激活后為0。
其他激活函數(shù)
DNN常用的激活函數(shù)還有:
tanh
這個(gè)是sigmoid的變種,表達(dá)式為:
tanh激活函數(shù)和sigmoid激活函數(shù)的關(guān)系為:
tanh和sigmoid對(duì)比主要的特點(diǎn)是它的輸出落在了[-1,1],這樣輸出可以進(jìn)行標(biāo)準(zhǔn)化。同時(shí)tanh的曲線在較大時(shí)變得平坦的幅度沒有sigmoid那么大,這樣求梯度變化值有一些優(yōu)勢(shì)。當(dāng)然,要說tanh一定比sigmoid好倒不一定,還是要具體問題具體分析。
softplus
這個(gè)其實(shí)就是sigmoid函數(shù)的原函數(shù),表達(dá)式為:
它的導(dǎo)數(shù)就是sigmoid函數(shù)。softplus的函數(shù)圖像和ReLU有些類似。它出現(xiàn)的比ReLU早,可以視為ReLU的鼻祖。
PReLU
從名字就可以看出它是ReLU的變種,特點(diǎn)是如果未激活值小于0,不是簡單粗暴的直接變?yōu)?,而是進(jìn)行一定幅度的縮小。如下圖。
小結(jié)
上面我們對(duì)DNN損失函數(shù)和激活函數(shù)做了詳細(xì)的討論,重要的點(diǎn)有:
1)如果使用sigmoid激活函數(shù),則交叉熵損失函數(shù)一般肯定比均方差損失函數(shù)好;
2)如果是DNN用于分類,則一般在輸出層使用softmax激活函數(shù)和對(duì)數(shù)似然損失函數(shù);
3)ReLU激活函數(shù)對(duì)梯度消失問題有一定程度的解決,尤其是在CNN模型中。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03