米碩+田豐收+孫瑞彬+葛敏+趙汝程
摘 要:Swish激活函數是一種新的激活函數,其形式為:f(x)=x?鄢sigmod(x),Swish-?茁激活函數的形式則為f(x)=x?鄢sigmod(b?鄢x),其擁有不飽和,光滑且非單調性的特征,而測試表明Swish以及Swish-?茁激活函數擁有極佳的性能,尤其是與局部響應歸一化配合,以及較深的深度神經網絡上,表現出了對目前大多數激活函數的性能優(yōu)勢。
關鍵詞:Swish激活函數;深度學習;神經網絡
中圖分類號:O174 文獻標志碼:A 文章編號:2095-2945(2018)01-0004-02
Abstract: The Swish activation function is a new type of activation function, which takes the form of , and the activation function takes the form of , which has the characteristics of being unsaturated, smooth and non-monotonic. The test results suggest that the Swish and the activation function have excellent performance, especially with the local response normalization, as well as deeper depth neural networks, showing performance advantages over most current activation functio
激活函數常在神經網絡中用于添加非線性因素,可以將激活函數定義為一個幾乎處處可微的函數:
(1)
第一種情況
第二種情況
激活函數存在一些問題,即飽和問題,當激活函數滿足第一種情況時,稱之為右飽和,而當激活函數滿足第二種情況時,則稱之為左飽和,如果幾乎函數在非極限狀態(tài)下,而是存在一個常數C可以證明,在x大于或小于該常數C時,h(x)的一次導數存在恒等于零的情況時,則稱h(x)為右硬飽和函數或左硬飽和函數。否則稱其為軟飽和函數。因為反向傳播算法的計算方式,可證明飽和激活函數會導致神經網絡的性能大幅度下降.從而產生梯度消失問題,如常見的sigmod函數亦或是tanh函數。
而現在深度神經網絡中常用的激活函數為ReLU激活函數,其存在有上界無下界且光滑的特點,并可證ReLU函數為大量logic函數的近似解。但是隨著神經網絡的加深,ReLU在不同數據集上則表現出了差于多類變種的現象。而新型的激活函數Swish則在幾乎所有的數據集與深度神經網絡上表現出了出色的性能提升,尤其是在局部響應歸一化以及較深層次的神經網絡上表現出更好的性能。
swich是谷歌在17年10月16號的論文中提出的新型自門控激活函數,其靈感來自于lstm等神經網絡中,利用sigmod函數進行門控。其形式為:f(x)=x?鄢sigmod(x),以及其swish-?茁的f(x)=x?鄢sigmod(B?鄢x),其中B為可調參數,利用參數B,使得swich的內插程度可以由參數本身控制.在多種深度神經網絡上的多種數據集上的測試顯示,swish-?茁幾乎比最佳性能激活函數的性能都要優(yōu)秀。但是該激活函數并沒有數學證明,而只是通過搜索獲取的經驗性公式。
Swish與ReLU一樣有上界而無下界,但是其非單調性確與其他常見的激活函數不同,通知其也擁有平滑和一階導數,二階導數平滑的特性。
谷歌測試證明,swich適應于局部響應歸一化,并且在40以上全連接層的效果要遠優(yōu)于其他激活函數,而在40全連接層之內則性能差距不明顯。但是根據在mnist數據上AleNet的測試效果卻證明,swich在低全連接層上與Relu的性能差距依舊有較大的優(yōu)勢。
對于MNIST數據集而言,五層內的全連接層已經可以達到更好的測試性能,但是為了測試Swish激活函數與ReLU激活函數在MNIST手寫數據集上的性能差距,在進行三層神經網絡全連接層的測試同時進行了10層的全連接層的擴展。并在隨后的測試中并進行了四層,五層,六層全連接層的性能測試,性能表現與三層全連接層神經網絡的差距不大.而在收斂速度方面,同等學習率時,Swish激活函數收斂速度略慢于ReLU激活函數,但是在較小學習率時,兩者收斂速度相近。
1 測試一
在MNIST上的使用三個全連接層的的AleNet,在添加局部響應歸一化的情況下進行測試,測試證明,在100000訓練測試的情況下,ReLu的最后三次批處理的訓練損失122.1133,訓練集正確率為0.97396.,Swish的最后三次批處理的訓練損失196.3051,訓練集正確率為0.96614.但是在測試集上的測試結果則為:Swish激活函數:98.83%,RelU激活函數的測試正確率為:98.44%。性能提升為0.39%.Swish表現出了優(yōu)于ReLU函數的性能。
2 測試二
而在MNIST上的使用十個全連接層的的AleNet,在添加局部響應歸一化的情況下進行測試,則表明在更多連接層的情況下Swish激活函數的與RelU的性能差距能夠更快地顯現出來,在10000訓練測試的情況下,在訓練中Swish激活函數的的平均損失已經優(yōu)于ReLU函數,而測試結果則為Swish激活函數:97.16%,RelU激活函數的測試正確率為:96.58%.性能提升為0.58%。
3 測試三
而當全連接層擴展到45層時,Swish函數則表現出了遠優(yōu)于ReLU函數的性能.在測試集上Swish函數的最終正確率為94.20%,而ReLU激活函數的最終正確率則為93.31%,此時Swish激活函數的性能相對于ReLU激活函數提高為0.89%.測試結果證明Swish激活函數性對于ReLU激活函數在訓練深層神經網絡方面擁有更大的優(yōu)勢,并表現出了相對于ReLU激活函數更強的抗過擬合能力.而在收斂速度方面兩者的表現差距不大。endprint
在MNIST數據集上,Swish激活函數確實表現出了遠優(yōu)于ReLU激活函數的性能,尤其當全連接層增大時,Swish確實表現出了其性能的優(yōu)越。但是同時為了避免深度神經網絡在迭代過程中,性能波動而造成的偶然性的差異,又而額外進行了全連接層為4,5,6層的AleNet深度神經網絡的測試,其表現差距不大,最終通過多次驗證測試證明,Swish激活函數確實擁有遠優(yōu)于ReLU激活函數的性能,并在更深深度上的神經網絡擁有更大優(yōu)勢.并且在不同全連接層訓練誤差,損失與測試集誤差與損失也表明Swish激活函數確實擁有優(yōu)于ReLU激活函數的性能。同時Swish-B激活函數在其他中小規(guī)模數據集上的表現也比多種深度神經網絡的最佳激活函數優(yōu)秀,其性能提升在0.9%到2.2%之間。
為了在更復雜的數據集上驗證Swish激活函數的性能,測試三采用Fashion-MNIST數據集進行測試,Fashion-MNIST是一個發(fā)布的新型圖片數據集,其格式完全與MNIST手寫字符集完全一致,但是其圖片內容則為更為復雜的服裝,一般而言AleNet在Fashion-MNIST上的性能表現一般要比MNIST手寫數據集,低8-9個百分點.而采用Fashion-MNIST這一更高難度數據集,可以更好地測試深度神經網絡的性能。
4 測試四
我們將測試一中的數據集替換為Fashion-MNIST,采用完全形同的代碼再次對Swish激活函數進行測試。測試集的測試結果則為:Swish激活函數的正確率為:90.45%,RelU激活函數的測試正確率為:90.03%。性能提升為0.42%。與此同時兩種激活函數的最終損失函數表現差異則不大。
5 測試五
將測試二中的測試性數據集更換為Swish激活函數則測試結果表明Swish激活函數已經能夠擁有要優(yōu)秀與ReLU函數的測試正確率,最后結果Swish激活函數:89.23%,RelU激活函數的測試正確率為:89.56%。性能提升為0.33%。而在最后三批的損失函數的表現上,Swish激活函數則表現出了優(yōu)于ReLU函數的性能。
6 測試六
Swish激活函數與ReLU激活函數在45層全連接神經網絡后的表現。Swish激活函數在測試集上的正確率為87.69%,ReLU激活函數的正確率則為86.77%,Swish激活函數相較于ReLU激活函數的性能提升約為0.92%。而最后三批次訓練的損失函數,Swish激活函數則約比ReLU激活函數提高了約150。
在復雜數據集和更復雜的深度神經網絡結構上,Swish擁有更好的性能表現,而Swish-?茁激活函數想對于其他激活函數則表現出了近乎壓倒性的優(yōu)勢.而在收斂速度,訓練集損失與訓練集正確率上,并沒有明顯差距。
7結束語
Swish在中小規(guī)模數據集上的表現相較于ReLU激活函數擁有更快的收斂速度,但是在全連接層較少時,Swish激活函數在訓練集上的可能低于ReLU激活函數,但是在多個較少全連接層上的測試也表明,Swish激活函數即使在訓練集性能表現較差的情況下依然擁有優(yōu)于ReLU激活函數的性能,而當全連接層擴大時,性能差距將會更大。而Swish-?茁激活函數在多個數據集上的表現則證明其擁有優(yōu)于其他所有深度神經網絡的最佳激活函數的性能。同時也依賴于Swish編寫的簡易性,只需要將現在的sigmod激活函數略微改造就可以擁有極佳的性能,詳細Swish激活函數將會在之后擁有更廣闊的使用空間。
參考文獻:
[1]Noisy Activation Functions: Caglar Gulcehre, Marcin Moczulski, Misha Denil, Yoshua Bengio.arXiv:1603.00391v3.
[2]Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms. Han Xiao, Kashif Rasul, Roland Vollgraf. arXiv:1708.07747.
[3]王鑫.一種基于徑向基函數的模型參考自適應控制的研究[J].科技創(chuàng)新與應用,2017(26):12-13.endprint