夏正新,蘇 翀
(1.南京郵電大學繼續(xù)教育學院,江蘇 南京 210042 2.南京郵電大學管理學院,江蘇 南京 210003 3.南京郵電大學醫(yī)療信息工程研究中心,江蘇 南京 210042)
深度神經(jīng)網(wǎng)絡(luò)的出現(xiàn),對實際應(yīng)用產(chǎn)生了深遠的影響,其已被廣泛應(yīng)用于網(wǎng)絡(luò)流量監(jiān)控[1]、物聯(lián)網(wǎng)[2]以及醫(yī)學[3]等領(lǐng)域。 作為神經(jīng)網(wǎng)絡(luò)的核心要素之一,激活函數(shù)在深度神經(jīng)網(wǎng)絡(luò)的有效性和訓練動力學中起著核心作用。整流線性單元(ReLU)[4-6],因其工作原理簡單、計算效率高,被廣泛應(yīng)用于深度學習領(lǐng)域。為了克服整流線性單元的“非零中心化”和“神經(jīng)元壞死”等問題,Leaky ReLU[7]、指數(shù)線性單元(ELU)[8]和參數(shù)整流線性單元(PReLU)[9]被相繼提出,并在一定程度上取得了較好的效果。此外,借助光滑近似的思想,一些非線性激活函數(shù) Swish[10]和 Mish[11]脫穎而出,進一步提高了神經(jīng)網(wǎng)絡(luò)的準確性和穩(wěn)定性。由于上述非線性激活函數(shù)飽和區(qū)范圍相對固定,限制了其擬合不同網(wǎng)絡(luò)模型和數(shù)據(jù)分布的能力。為此,本文提出了一種多參數(shù)學習的門控激活函數(shù),該函數(shù)使用多個參數(shù),在一定范圍內(nèi)動態(tài)調(diào)節(jié)函數(shù)飽和區(qū),并通過實驗研究其適應(yīng)不同網(wǎng)絡(luò)模型和數(shù)據(jù)分布的能力。
Swish激活函數(shù)抽象形式定義如下:f(x)=xσ(x)。 其中,σ(·) 是一個邏輯函數(shù),σ ∈ (0, 1);當σ(·)結(jié)果為1時,激活函數(shù)的輸出值為x,當σ(·)結(jié)果趨于0,則激活函數(shù)的輸出趨于0。這種1代表“開”,0代表“關(guān)”。具體應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)時,Swish函數(shù)的具體形式如公式(1)所示。
式中,參數(shù)β被設(shè)計用于控制Swish激活函數(shù)的飽和區(qū)在一定范圍內(nèi)波動,以期望獲得更好的泛化性能;參數(shù)β值既可以通過學習得到,也可以是一個由人工設(shè)定的超參數(shù)。
Mish激活函數(shù)抽象形式定義如下:f(x)=xσ(δ(x))。 其中,σ(·) 與 Swish 激活函數(shù)中的解釋一致;δ(x)代表一個非線性函數(shù)。同理可知:σ(·)是一個邏輯開關(guān)函數(shù)。應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)時,Mish函數(shù)的具體形式如下。
與Swish函數(shù)相比,Mish函數(shù)使用了Tanh和softplus兩個函數(shù)來共同實現(xiàn)函數(shù)的門控機制,同時還巧妙地利用了Tanh函數(shù)的零中心對稱的特性,從而在更多的網(wǎng)絡(luò)模型和數(shù)據(jù)集上取得了相對更好的性能。
Swish和Mish函數(shù)已經(jīng)被證明在較多的數(shù)據(jù)集上優(yōu)于包括ReLU函數(shù)在內(nèi)的大多數(shù)激活函數(shù),這很大程度上歸功于其內(nèi)在的“門控機制”。由式(1)和(2)可知,Swish激活函數(shù)使用的門控函數(shù)是sigmoid,而Mish激活函數(shù)使用的門控函數(shù)主要是Tanh和softplus;上述函數(shù)具體公式分別如式(3)和(4)所示。
目前,各種門控函數(shù)具有不同的優(yōu)點,但卻不能確定哪一個門控函數(shù)更加合理。其原因主要在于各種門控函數(shù)的飽和區(qū)范圍表達相對固定,其選擇更多地依賴于使用者的經(jīng)驗。當激活函數(shù)所使用的門控函數(shù)恰好符合當前網(wǎng)絡(luò)模型和數(shù)據(jù)集的特征表達時,其效果會較好,反之,則效果會下降。
為解決上述問題,Swish函數(shù)引入?yún)?shù)β以期控制門控函數(shù)的飽和區(qū)范圍,由于未區(qū)分控制正值還是負值數(shù)據(jù),導致參數(shù)β控制不夠精細。此外,參數(shù)訓練范圍不可控會導致參數(shù)β的最小值和最大值之間差距過大,反而對網(wǎng)絡(luò)的性能造成負面影響。
結(jié)合式(3)和(4),這兩個門控函數(shù)都基于ex的指數(shù)函數(shù)。當x大于0時,無論是Swish激活函數(shù)還是Mish激活函數(shù)會把x映射到新的數(shù)值空間,且沒有丟棄原有數(shù)據(jù);而當x小于0時,激活函數(shù)中的指數(shù)函數(shù)ex會隨著x值的變化越變越小而趨于無窮小,從而導致激活函數(shù)會有選擇性地丟失一部分負值數(shù)據(jù)。這種丟棄原有數(shù)據(jù)的方式類似于神經(jīng)網(wǎng)絡(luò)的DropOut機制[12],不同之處在于 DropOut是隨機選擇丟棄原有數(shù)據(jù),并不局限于正、負數(shù)據(jù),也不局限于數(shù)值的大小。綜上所述,Swish和Mish函數(shù)正是依靠這種門控機制實現(xiàn)了神經(jīng)網(wǎng)絡(luò)對于非線性表達的要求。
另外,ReLU函數(shù)僅提取正值數(shù)據(jù)進行網(wǎng)絡(luò)訓練,同時丟棄負值數(shù)據(jù),從而導致神經(jīng)元的部分激活,以期實現(xiàn)非線性轉(zhuǎn)換。從理論上講,正、負值數(shù)據(jù)對應(yīng)的特征信息是同等重要的,ReLU函數(shù)這種機制會丟失部分特征信息,會導致“神經(jīng)元壞死”等問題,且在一定程度上降低了深度神經(jīng)網(wǎng)絡(luò)的性能。為了解決這個問題,Leaky ReLU[7]、指數(shù)線性單元(ELU)[8]和參數(shù)整流線性單元(PReLU)[9]被相繼提出,并在一定程度上取得了較好的效果。此外,上述激活函數(shù)還使用了可學習的參數(shù)或者超參數(shù),以調(diào)整負值數(shù)據(jù)的分布,但由于參數(shù)訓練的范圍無法控制,使其對網(wǎng)絡(luò)的性能改進非常有限。
綜上所述,可以看出上述激活函數(shù)都會丟棄或者部分丟棄輸入x小于零所對應(yīng)的負值數(shù)據(jù);而負值數(shù)據(jù)對于整個深度神經(jīng)網(wǎng)絡(luò)的訓練是有作用的。為此,提出一個多參數(shù)學習的門控激活函數(shù),期望通過引入?yún)?shù)訓練范圍可調(diào)這一創(chuàng)新機制,在一定范圍內(nèi)動態(tài)調(diào)節(jié)激活函數(shù)的飽和區(qū),以期緩解負值數(shù)據(jù)的丟棄問題,進而優(yōu)化深度神經(jīng)網(wǎng)絡(luò),提高其性能。最終實驗結(jié)果表明:所提出的這種參數(shù)訓練范圍可調(diào)的門控激活函數(shù)可取得相對更好的性能。
式中,σ(·)為Tanh函數(shù),δ(·)為一個分段的邏輯函數(shù),具體的定義為
由式(5)和(6)可知,Mpish函數(shù)也屬于一種門控機制激活函數(shù),不同之處在于:門控機制由α1、α2、β 三個參數(shù)來控制,其中 α1、α2為可訓練參數(shù),分別控制兩端飽和區(qū)的映射范圍,具體分別如圖1和圖2所示。β參數(shù)是建立在α2參數(shù)基礎(chǔ)上的一個超參數(shù),范圍一般在[0,0.5]之間選擇,可以根據(jù)不同的網(wǎng)絡(luò)模型和數(shù)據(jù)集由人工設(shè)定,具體如圖3所示。β參數(shù)的作用類似于殘差網(wǎng)絡(luò)[11],用于緩解梯度消失和網(wǎng)絡(luò)退化等問題。此外,超參數(shù)β可根據(jù)當前網(wǎng)絡(luò)模型的實際情況,決定是否對激活函數(shù)的負值數(shù)據(jù)進行一個類似殘差網(wǎng)絡(luò)的直接映射方式,使得原本要被丟棄的負值數(shù)據(jù)能夠繼續(xù)向下傳遞,進而改善由于丟棄負值對神經(jīng)網(wǎng)絡(luò)造成的負面影響。
圖1 Mpish函數(shù)在參數(shù)α1不同取值下的波形圖
圖2 Mpish函數(shù)在參數(shù)α2不同取值下的波形圖
圖3 Mpish函數(shù)在參數(shù)β不同取值下的波形圖
Mpish與Swish和Mish函數(shù)圖像類似,其無上界、平滑、非單調(diào)等特性對激活函數(shù)效果的提高有著重要作用。與Swish和Mish函數(shù)不同的是,Mpish函數(shù)具有下界可調(diào)性,即函數(shù)有無下界是由超參數(shù)β來控制的;當β=0時,Mpish函數(shù)下有界,β>0時,則無下界。當激活函數(shù)下有界時,會產(chǎn)生很強的正則化效果;而當激活函數(shù)下無界時,可以避免梯度消失問題。此外,Mpish函數(shù)的β參數(shù)既可以使得Mpish函數(shù)可以根據(jù)情況選擇下有界或下無界,也可以變相調(diào)節(jié)激活函數(shù)的非線性程度,有助于其適應(yīng)更多復雜情況。為了研究各參數(shù)對Mpish函數(shù)波形圖的影響,這里需預(yù)先固定其他參數(shù)的值,具體取值僅是為了展示Mpish函數(shù)波形圖受當前參數(shù)的影響,并無其他特殊意義。圖1給出了Mpish函數(shù)在參數(shù)α1不同取值下的函數(shù)波形圖,變化主要體現(xiàn)在函數(shù)的右端飽和區(qū)。圖2則對應(yīng)于Mpish函數(shù)在參數(shù)α2不同取值下的函數(shù)波形圖,變化主要體現(xiàn)在左端飽和區(qū)。圖3顯示了Mpish函數(shù)下界在參數(shù)β不同取值下的波形圖。圖4和5分別給出了Mpish在多個參數(shù)取不同值情況下與Swish和Mish的圖形對比。如圖4和5所示,當β>0函數(shù)是無下界的。當激活函數(shù)有界時,會產(chǎn)生較強的正則化效應(yīng);而當激活函數(shù)無界時,通過在可控范圍內(nèi)調(diào)整激活函數(shù)的飽和區(qū),可以緩解神經(jīng)網(wǎng)絡(luò)在飽和區(qū)范圍內(nèi)而導致的梯度消失問題,從而使得神經(jīng)網(wǎng)絡(luò)能夠取得更好的性能。因此,相較于Relu、Swish和Mish,Mpish能夠適應(yīng)更多復雜情況。
圖4 Mpish函數(shù)在多個參數(shù)取不同值情況下與Swish的對比波形圖
圖5 Mpish函數(shù)在多個參數(shù)取不同值情況下與Mish的對比波形圖
由于參數(shù)訓練過程的不可控性,包括網(wǎng)絡(luò)模型和數(shù)據(jù)分布的影響,會導致可訓練參數(shù)α1、α2的上下限失去控制,偏差增大,進而導致深度神經(jīng)網(wǎng)絡(luò)運行結(jié)果會出現(xiàn)不穩(wěn)定的情況。為此,設(shè)計一個參數(shù)訓練范圍控制函數(shù),目的是將參數(shù)值的訓練控制在一個特定的范圍內(nèi),其形式如式(7)所示。
該控制函數(shù)類似高斯函數(shù),其產(chǎn)生的波形如圖6所示。其中,x表示可訓練參數(shù)值(橫坐標),a控制波形的寬度,使得訓練參數(shù)能在一個適當?shù)姆秶鷥?nèi)快速收斂到合適的輸出值(縱坐標)。b和c值控制了訓練參數(shù)輸出值的范圍,其中b控制波形的峰值高度,即控制參數(shù)輸出的最大值;c控制參數(shù)的起始值,即控制參數(shù)輸出的最小值。
圖6 參數(shù)訓練范圍控制函數(shù)波形圖
2.4.1 實驗設(shè)置
(1)實驗數(shù)據(jù)集。本實驗選用 CIFAR?10和CIFAR?100作為實驗數(shù)據(jù)集。(2)網(wǎng)絡(luò)模型。本實驗 分 別 采 用: ResNet?50[13]、 DenseNet?121[14]、MobileNet[15]、 SqueezeNet[16]和 Se ResNet?18[13]。(3)激活函數(shù)。 本實驗選擇 Relu、Swish、Mish這3個具有代表性,且性能優(yōu)良的激活函數(shù)作為基線激活函數(shù)進行比較。(4)實驗參數(shù)設(shè)置。本實驗使用BatchNorm[17]來減少對初始化數(shù)據(jù)的依賴性,迭代epochs=100,批數(shù)據(jù)尺寸 batch_size=128,學習率learning_rate = 0.001,優(yōu)化器使用的是 Adam[18-19]。(5)性能比較。為了考察激活函數(shù)的準確性和穩(wěn)定性,每個激活函數(shù)所在的網(wǎng)絡(luò)和數(shù)據(jù)集上各運行5次,每次迭代運行100輪,將5次的最后10輪迭代(91~100輪)的準確率的均值作比較。(6)實驗環(huán)境。軟件環(huán)境使用的是python3.9和Anaconda集成平臺,硬件環(huán)境使用圖形加速卡型號是RTX 3090(24 G顯存)單塊。 處理器是intel(R) Xeon(R) Gold 5218R CPU@2.10 GHz X2,服務(wù)器內(nèi)存是256 GB。
2.4.2 實驗結(jié)果及分析
(1) 準確率
由表 1和表 2的結(jié)果可知,ReLu函數(shù)在DenseNet?121網(wǎng)絡(luò)上的準確率較高,接近或超過了Mish和Swish函數(shù),而在其他網(wǎng)絡(luò)模型上的準確率則是最低的;Mish和Swish函數(shù),除了DenseNet?121網(wǎng)絡(luò),在其他網(wǎng)絡(luò)模型上準確率都要強于ReLu函數(shù);Mish函數(shù)準確率在大多數(shù)網(wǎng)絡(luò)上都要強于Swish函數(shù);Mpish函數(shù)的準確率則全面超越其他基線激活函數(shù)。
表1 在CIFAR?10上,4個激活函數(shù)對應(yīng)網(wǎng)絡(luò)模型的Top?1準確率 %
表2 在CIFAR?100上,4個激活函數(shù)對應(yīng)網(wǎng)絡(luò)模型的Top?1準確率 %
(2)可控參數(shù)訓練范圍設(shè)置
表3和表4分別列出了Mpish激活函數(shù)在CIFAR?10和 CIFAR?100數(shù)據(jù)集上,各網(wǎng)絡(luò)模型中的參數(shù)訓練范圍;其中,α1和 α1按照式(7)計算。值得注意的是,表1和表2的結(jié)果則是表3和表4中所列出的α1、α2和β這3個參數(shù)聯(lián)合訓練的結(jié)果。另外,表中x=0.5(可訓練)表示x的初始值設(shè)置為0.5,隨著學習過程的不斷迭代,會不斷調(diào)整其值;其他類似表達式的含義以此類推。
表3 在CIFAR?10上,各網(wǎng)絡(luò)模型的可控參數(shù)訓練范圍設(shè)定
表4 在CIFAR?100上,各網(wǎng)絡(luò)模型的可控參數(shù)訓練范圍設(shè)定
(3)激活函數(shù)在深度神經(jīng)網(wǎng)絡(luò)中的穩(wěn)定性
為了觀察網(wǎng)絡(luò)層數(shù)對準確率的影響,本實驗假設(shè)在保持其他參數(shù)不變的情況下,在MNIST數(shù)據(jù)集上訓練了層數(shù)不同的全連接網(wǎng)絡(luò)。網(wǎng)絡(luò)中每層有500個神經(jīng)元,無殘差網(wǎng)絡(luò)連接,使用BatchNorm來減少對初始化數(shù)據(jù)的依賴性,DropOut設(shè)為25%,優(yōu)化方法使用隨機梯度下降SGD[20],batch size=128,每個激活函數(shù)均使用相同的學習率。Mpish函數(shù)的可控參數(shù)設(shè)置為:α1= (e-x?x?4+0) + 0,x = 0.5( 可訓練)。 y =(e-x1?x1?4+0) - 1,α2= (e-x2?x2?4+y) + 1, 其 中x1= 1.0(可訓練),x2= 1.0(可訓練),β = 0.2。如圖7所示,ReLU、Mish、Swish和Mpish這4個激活函數(shù)分別從第12層到第30層的網(wǎng)絡(luò)進行訓練,隨著網(wǎng)絡(luò)層數(shù)的不斷增加,4個激活函數(shù)準確率下降的速度快慢不一;其中,ReLU函數(shù)隨著網(wǎng)絡(luò)層數(shù)的增加,準確率下降的幅度最大;Mish函數(shù)準確率下降的幅度比Swish函數(shù)要更小一些,從第21層開始,Swish函數(shù)下降的幅度比Mish函數(shù)要更大;而Mpish函數(shù)則隨著網(wǎng)絡(luò)層數(shù)的增加,一直保持較高的準確率且下降的幅度最小,一直到第30層時,仍然保持較高的準確率。該結(jié)果表明Mpish函數(shù)相較于其他激活函數(shù),在大型網(wǎng)絡(luò)中表現(xiàn)得更穩(wěn)定、性能更好。
圖7 4個激活函數(shù)在各網(wǎng)絡(luò)深度下的準確率
(4)激活函數(shù)的時間成本
表5以CIFAR10數(shù)據(jù)集為基礎(chǔ),在5個網(wǎng)絡(luò)模型中,對比了Mpish函數(shù)與其他激活函數(shù)的時間成本。為了方便比較,實驗結(jié)果只保留整數(shù)位。從表5中可以看出ReLu函數(shù)的時間成本最低,這與其僅保留正值數(shù)據(jù)有關(guān);Mish和 Swish函數(shù)的時間成本接近;而Mpish函數(shù)的時間成本則相較于其他激活函數(shù)要高;其原因在于:Mpish函數(shù)中使用了多個可訓練參數(shù),且隨著數(shù)據(jù)集中數(shù)據(jù)分布復雜程度的提高和神經(jīng)網(wǎng)絡(luò)層數(shù)的增加,時間成本會有相應(yīng)的增加。因此,當數(shù)據(jù)分布復雜和神經(jīng)網(wǎng)絡(luò)層數(shù)較深時,會耗費相對較多的時間;但從時間成本增加的幅度和綜合考慮準確率等性能指標時,時間成本的增加在可以接受的范圍內(nèi)。
表5 各個激活函數(shù)在不同網(wǎng)絡(luò)中的時間成本 s
Mpish作為一個多參數(shù)學習的門控激活函數(shù),與Mish、Swish和ReLU函數(shù)相比,可以有效提高深度神經(jīng)網(wǎng)絡(luò)的性能,表現(xiàn)出較強的魯棒性和較高的穩(wěn)定性。未來,將進一步優(yōu)化Mpish激活函數(shù),以期進一步降低其時間成本。