張琴
(福州職業(yè)技術(shù)學(xué)院信息技術(shù)工程系,福州 350108)
2012年Hinton教授小組在ImageNet視覺(jué)識(shí)別競(jìng)賽[1]中通過(guò)卷積神經(jīng)網(wǎng)絡(luò)(CNN)將錯(cuò)誤率從原來(lái)的25%降到了16%之后,CNN的應(yīng)用越來(lái)越廣泛,主要包括計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、語(yǔ)音識(shí)別等領(lǐng)域[2]。激活函數(shù)作為CNN中的一個(gè)重要模塊,不僅為卷積神經(jīng)網(wǎng)絡(luò)提供了學(xué)習(xí)復(fù)雜分布所必需的非線性,而且可以有效抑制殘差衰減并提高收斂速度,這也是CNN取得成功的關(guān)鍵[3]。研究者對(duì)CNN的研究工作高度重視,但其中存在一些困難和問(wèn)題仍然沒(méi)有很好的解決方法。例如,在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)和模型訓(xùn)練方面尚未形成通用的理論,需要依靠經(jīng)驗(yàn)并花費(fèi)大量時(shí)間進(jìn)行調(diào)試,不斷探索優(yōu)化算法和最佳的參數(shù);反向傳播算法中存在“梯度消失”、“神經(jīng)元壞死”等現(xiàn)象,導(dǎo)致模型無(wú)法進(jìn)行有效的訓(xùn)練。本文通過(guò)分析各種常用激活函數(shù)的優(yōu)缺點(diǎn),結(jié)合激活函數(shù)在訓(xùn)練過(guò)程中的作用,給出激活函數(shù)在設(shè)計(jì)時(shí)需要考慮的要點(diǎn),據(jù)此設(shè)計(jì)出了一種新的非線性非飽和的激活函數(shù)SReLU,該函數(shù)兼具Softplus函數(shù)和ReLU函數(shù)的優(yōu)點(diǎn),具有較強(qiáng)的表達(dá)能力和稀疏能力[4],且收斂速度快,識(shí)別率高。
Sigmoid函數(shù)及其導(dǎo)數(shù)的圖像如圖1所示,從函數(shù)圖像可以看出該函數(shù)能夠把輸入的連續(xù)實(shí)值變換為0和1之間的輸出,即輸出恒為正值,不是以零為中心的,這個(gè)特性會(huì)導(dǎo)致后面網(wǎng)絡(luò)層的輸入也不以零為中心,從而影響收斂速度。x為0附近的值時(shí),激活函數(shù)對(duì)信號(hào)增益效果明顯,但是當(dāng)|x|的取值越來(lái)越大時(shí),σ'(x)越來(lái)越小,容易導(dǎo)致梯度消失。Tanh函數(shù)也是一種常用的S型非線性激活函數(shù),函數(shù)及其導(dǎo)數(shù)的圖像如圖2所示,它是Sigmoid函數(shù)的改進(jìn)版。Tanh函數(shù)克服了Sigmoid非0均值輸出的缺點(diǎn),收斂速度較快,但是仍然無(wú)法解決梯度彌散的問(wèn)題。由于這兩個(gè)函數(shù)本身及其導(dǎo)數(shù)的計(jì)算都是指數(shù)級(jí)的,計(jì)算量相對(duì)較大。
圖1 Sigmoid函數(shù)及其導(dǎo)數(shù)
圖2 Tanh函數(shù)及其導(dǎo)數(shù)
ReLU函數(shù):σ(x)=max(0,x)
Softplus函數(shù):σ(x)=ln(ex+1)
ReLU函數(shù)及其導(dǎo)數(shù)的函數(shù)圖像如圖3所示,由圖可知ReLU函數(shù)具有分段線性性質(zhì),因此其前傳、后傳、求導(dǎo)都具有分段線性,相比于傳統(tǒng)的S型激活函數(shù),ReLU收斂速度更快。當(dāng)輸入值小于0時(shí),ReLU函數(shù)強(qiáng)制將輸出結(jié)果置為0,使訓(xùn)練后的網(wǎng)絡(luò)模型具有適度的稀疏性,降低了過(guò)擬合發(fā)生的概率,但是稀疏性使模型有效容量降低,從而產(chǎn)生“神經(jīng)元壞死”現(xiàn)象[5],導(dǎo)致模型無(wú)法學(xué)習(xí)到有效特征。Softplus是對(duì)ReLU近似光滑的一種表現(xiàn)形式,其函數(shù)圖像如圖4,它不僅可以把輸入的數(shù)據(jù)全部進(jìn)行非線性的映射,而且不會(huì)把一些有價(jià)值的信息隱藏掉,但是用Softplus函數(shù)作為激活函數(shù),收斂速度很慢。
圖3 ReLU函數(shù)及其導(dǎo)數(shù)
圖4 Softplus函數(shù)及其導(dǎo)數(shù)
前向傳播和反向傳播是卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的兩個(gè)主要步驟。前向傳播是指數(shù)據(jù)從低層向高層傳播,從輸出層輸出結(jié)果的過(guò)程。當(dāng)前向傳播得到的結(jié)果不符合預(yù)期的時(shí)侯,開始執(zhí)行將誤差從高層向低層傳播訓(xùn)練,推導(dǎo)參數(shù)的學(xué)習(xí)規(guī)則,迭代改變參數(shù),直到誤差損失滿足設(shè)定的精度的過(guò)程。通過(guò)對(duì)卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程進(jìn)行分析,可以更好的理解激活函數(shù)在模型訓(xùn)練中的作用,幫助我們選擇更加適合的激活函數(shù)。
(1)在前向傳播過(guò)程中,對(duì)卷積層每一種輸出的特征圖xj有:
式中Mj表示選擇輸入特征圖組合,σ是激活函數(shù),是卷積核,bj是第j種特征圖的偏置。由式(1)可知,在前向傳播過(guò)程中,激活函數(shù)對(duì)上一層卷積操作的結(jié)果進(jìn)行非線性變換,增強(qiáng)特征的表達(dá)能力。所以激活函數(shù)必須為非線性函數(shù),此外,為了模型的訓(xùn)練速度,激活函數(shù)的計(jì)算應(yīng)盡可能簡(jiǎn)便。
(2)反向傳播的主要任務(wù)是對(duì)卷積核參數(shù)k和偏置b進(jìn)行優(yōu)化。根據(jù)BP算法,將損失函數(shù)分別對(duì)卷積核參數(shù)k和偏置b求偏導(dǎo)然后乘以學(xué)習(xí)率,可以得到參數(shù)的變化量Δk和Δb。誤差代價(jià)函數(shù)對(duì)卷積核k求偏導(dǎo):
誤差代價(jià)函數(shù)對(duì)偏置b求偏導(dǎo):
由(1)到(3)式可知,激活函數(shù)在卷積神經(jīng)網(wǎng)絡(luò)前向傳播和反向傳播中均起到巨大作用。在選擇激活函數(shù)時(shí)應(yīng)綜合考慮激活函數(shù)自身及其導(dǎo)數(shù)的特點(diǎn),具體如下:①激活函數(shù)必須為非線性函數(shù)。②激活函數(shù)自身及其導(dǎo)數(shù)的計(jì)算不可過(guò)于復(fù)雜。③為了保證網(wǎng)絡(luò)參數(shù)能正常更新,應(yīng)盡量避免選擇軟飽和激活函數(shù),即具有性質(zhì)的激活函數(shù)。④為了加快模型的收斂速度,參數(shù)的更新方向不應(yīng)該被限制。選擇一個(gè)取值即可以為正數(shù)也可以為負(fù)數(shù)的激活函數(shù),可以加快收斂,參數(shù)更新也更加靈活。
改進(jìn)后的激活函數(shù)SReLU是一種非線性非飽和的激活函數(shù),兼具Softplus函數(shù)和ReLU函數(shù)的優(yōu)點(diǎn)。在大于0的部分使用ReLU激活函數(shù);為了激活負(fù)值,在小于0的部分,使用向下平移ln2個(gè)單位的Softplus激活函數(shù)。SReLU表達(dá)式為:f(x)=max(ln(1+ex)-ln2,x),函數(shù)圖像如圖5所示,SReLU激活函數(shù)保留了ReLU函數(shù)收斂快的優(yōu)勢(shì),同時(shí)激活了負(fù)值,向前一層傳播的信息也更多,緩解了“神經(jīng)元死亡”的現(xiàn)象。
為了驗(yàn)證提出的SReLU激活函數(shù)在不同數(shù)據(jù)集中的有效性,分別在數(shù)據(jù)集MINIST和CIFA-100中使用SReLU及其他常見的激活函數(shù)進(jìn)行訓(xùn)練分析。本試驗(yàn)基于Keras深度學(xué)習(xí)框架,通過(guò)損失函數(shù)下降曲線和在訓(xùn)練集、測(cè)試集、驗(yàn)證集上的準(zhǔn)確率分析實(shí)驗(yàn)的運(yùn)行狀態(tài)。最終的實(shí)驗(yàn)結(jié)果表明:在MINIST和CIFA-100這兩個(gè)數(shù)據(jù)集中使用SReLU激活函數(shù)均能夠達(dá)到比其他常用激活函數(shù)更快的收斂速度和更高的準(zhǔn)確率。
圖5 SReLU函數(shù)
MINIST數(shù)據(jù)集是一個(gè)簡(jiǎn)單的手寫數(shù)字?jǐn)?shù)據(jù)集,該數(shù)據(jù)集包含70000張28×28像素的灰度手寫數(shù)字圖片[7]。本次針對(duì)MINIST數(shù)據(jù)集的試驗(yàn)設(shè)計(jì)的網(wǎng)絡(luò)模型結(jié)構(gòu)由2個(gè)卷積層,1個(gè)池化層,1個(gè)全連接層和一個(gè)輸出層組成。第一個(gè)卷積層通道數(shù)為32,F(xiàn)ilter大小為3×3,,卷積步長(zhǎng)為1。第二個(gè)卷積層通道數(shù)為64,F(xiàn)ilter大小與卷積步長(zhǎng)與第一個(gè)卷積層相同。池化層Filter大小為2×2,全連接層神經(jīng)元個(gè)數(shù)為128,輸出層使用Softmax回歸,學(xué)習(xí)率設(shè)為0.001。實(shí)驗(yàn)結(jié)果準(zhǔn)確率如表1所示,由表1可知,相比于經(jīng)典的激活函數(shù),提出的激活函數(shù)SReLU在訓(xùn)練集、測(cè)試集和驗(yàn)證集上均具有最高的精度。實(shí)驗(yàn)損失函數(shù)下降曲線如圖6所示,在整個(gè)訓(xùn)練過(guò)程中Sigmoid函數(shù)的損失率最高,ReLU函數(shù)在前1000次迭代中損失下降最快,之后SReLU函數(shù)迭代損失下降速度逐漸高于ReLU,最終SReLU函數(shù)的損失最小,說(shuō)明在MINIST數(shù)據(jù)集上基于SReLU激活函數(shù)的模型分類性能最好。
表1 SReLU在MINIST數(shù)據(jù)集上的準(zhǔn)確率
圖6 SReLU在MINIST數(shù)據(jù)集上的損失率
CIFAR數(shù)據(jù)集是一組用于普通物體識(shí)別的數(shù)據(jù)集,該數(shù)據(jù)集由來(lái)自100個(gè)分類的60000張32×32像素的彩色圖片組成,每個(gè)分類包含500個(gè)訓(xùn)練樣本和100個(gè)測(cè)試樣本[8]。本次針對(duì)CIFAR-100數(shù)據(jù)集的試驗(yàn)設(shè)計(jì)的網(wǎng)絡(luò)模型結(jié)構(gòu)由4個(gè)卷積層,2個(gè)池化層,1個(gè)全連接層和一個(gè)輸出層組成。第一、二個(gè)卷積層通道數(shù)為64,第三、四個(gè)卷積層通道數(shù)為128,四個(gè)卷積層Filter大小均為3×3,卷積步長(zhǎng)均為1。2個(gè)池化層Filter大小均為2×2,全連接層神經(jīng)元個(gè)數(shù)為512,輸出層使用Softmax回歸,學(xué)習(xí)率設(shè)為0.001。實(shí)驗(yàn)結(jié)果準(zhǔn)確率如表2所示,由表2可知,在CIFA-100數(shù)據(jù)集上,相比于常見的激活函數(shù),提出的激活函數(shù)SReLU在訓(xùn)練集、測(cè)試集和驗(yàn)證集上均具有最高的精度。實(shí)驗(yàn)損失函數(shù)下降曲線如圖7所示,由圖可知,相比于其他激活函數(shù),SReLU函數(shù)在前2000次迭代中就達(dá)到了最快的收斂速度,最終SReLU函數(shù)的損失最小,說(shuō)明在CI?FA-100數(shù)據(jù)集上基于SReLU激活函數(shù)的模型分類性能最好。
表2 SReLU在CIFA-100數(shù)據(jù)集上的準(zhǔn)確率
圖7 SReLU在CIFA-100數(shù)據(jù)集上的損失率
激活函數(shù)是卷積神經(jīng)網(wǎng)絡(luò)模型的重要組成部分,“激活的神經(jīng)元”使卷積神經(jīng)網(wǎng)絡(luò)具備了分層的非線性特征學(xué)習(xí)能力。首先通過(guò)分析激活函數(shù)在前向傳播和反向傳播中的作用,給出了激活函數(shù)本身及其導(dǎo)數(shù)需要具備的一些特性,然后針對(duì)卷積神經(jīng)網(wǎng)絡(luò)中經(jīng)典激活函數(shù)存在“梯度消失”、“神經(jīng)元壞死”或不易收斂等缺陷,設(shè)計(jì)了一種新的非線性非飽和的激活函數(shù)SRe?LU,該函數(shù)保留了ReLU函數(shù)收斂快的優(yōu)勢(shì),同時(shí)激活了負(fù)值,緩解了“神經(jīng)元死亡”的現(xiàn)象。