宋倩 羅富貴
摘? 要:針對手寫體數(shù)據(jù)集在卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時分別使用sigmoid、tanh、relu與mish激活函數(shù)進(jìn)行實驗,對這四種激活函數(shù)下訓(xùn)練集誤差值收斂曲線以及測試集精度曲線進(jìn)行算法結(jié)果分析,實驗結(jié)果表明,mish激活函數(shù)在手寫體數(shù)據(jù)集上進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時效果更佳,而同樣得出不同的訓(xùn)練數(shù)據(jù)集、激活函數(shù)的選擇會影響算法對數(shù)據(jù)的擬合度和神經(jīng)網(wǎng)絡(luò)的收斂性。
關(guān)鍵詞:手寫體數(shù)字識別;mish激活函數(shù);卷積神經(jīng)網(wǎng)絡(luò);mnist數(shù)據(jù)集
中圖分類號:TP391.4;TP183? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2023)04-0095-03
Comparative Study of Activation Functions Based on Handwritten Digital Recognition
SONG Qian, LUO Fugui
(Academy of Big Data and Computer Science, Hechi University, Hechi? 546300, China)
Abstract: For the training of Convolution Neural Network for handwritten data sets, sigmoid, tanh, relu and mish activation functions are used to conduct experiments, and the algorithm results are analyzed for the convergence curve of the error value of the training set and the accuracy curve of the test set under these four activation functions. The experimental results show that the mish activation function performs better in the training of Convolution Neural Network on handwritten data sets. It is also concluded that the selection of different training data sets and activation functions will affect the fitting degree of the algorithm to the data and the convergence of the neural network.
Keywords: handwritten digital recognition; mish activation function; Convolutional Neural Network; mnist dataset
0? 引? 言
近些年,隨著深度學(xué)習(xí)的大火,特別是計算機(jī)視覺有了漸進(jìn)式發(fā)展,我們正邁入了數(shù)字化時代。在該時代背景下,手寫體數(shù)字識別的研究仍十分重要。盡管當(dāng)下手寫體數(shù)字識別技術(shù)的研究正日趨完善,其識別優(yōu)化準(zhǔn)確率,還是相對有提升的空間。特別是在生活中數(shù)字與銀行卡密碼、賬戶、賬號以及身份證號息息相關(guān),故而手寫數(shù)字識別準(zhǔn)確率還是要求極高。此外于其他情景下的文字識別、圖像識別也是有一定的借鑒意義。因此研究高識別率的手寫數(shù)字識別算法仍然至關(guān)重要[1]。在識別手寫體數(shù)字時,不僅識別算法的設(shè)計是決定性影響,激活函數(shù)的選擇更是不可忽略的一環(huán)。深度學(xué)習(xí)算法有很多激活函數(shù),其任意一個激活函數(shù)并非都是萬能的,所以選擇契合應(yīng)用的激活函數(shù)尤為關(guān)鍵。
1? 激活函數(shù)
卷積神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)是輸入信號與輸出信號之間的連接轉(zhuǎn)換器,其能夠?qū)⒏鬏斎胄盘柕目偤娃D(zhuǎn)換為各輸出信號的總和[2]。實際輸入信號在計算時,僅通過線性函數(shù)是無法解決分類問題,生活中各類數(shù)據(jù)并非是線性可分的,因而要解決這類數(shù)據(jù),無非就是引入非線性因素。為了充分發(fā)揮卷積神經(jīng)網(wǎng)絡(luò)疊加層的優(yōu)勢,解決線性模型的表達(dá)和分類能力不佳的問題,激活函數(shù)必然要用非線性函數(shù)。
激活函數(shù)將非線性模型引入神經(jīng)網(wǎng)絡(luò),增強(qiáng)了神經(jīng)網(wǎng)絡(luò)的模擬和學(xué)習(xí)能力[3]。激活函數(shù)在訓(xùn)練復(fù)雜類型數(shù)據(jù)中起著非常重要的作用。常用的激活函數(shù)有sigmoid、tanh、relu、mish,四種激活函數(shù)的曲線圖如圖1所示。
1.1? sigmoid激活函數(shù)
在手寫數(shù)字識別過程中,文獻(xiàn)[4]采用sigmoid激活函數(shù)。sigmoid函數(shù)的表達(dá)式為:
(1)
函數(shù)值F(x)范圍為(0,1),當(dāng)x趨于負(fù)無限時,F(xiàn)(x)無限逼近0,當(dāng)x趨于正無限時,F(xiàn)(x)無限逼近1。sigmoid函數(shù)是連續(xù)函數(shù),故函數(shù)處處可導(dǎo)。但x趨向±∞時,F(xiàn)(x)變化卻很小,梯度極易丟失,適用于二分類輸出問題[4,5]。
1.2? tanh激活函數(shù)
雙曲正切函數(shù)tanh與sigmoid函數(shù)極為相似。文獻(xiàn)[6]正是采用此tanh激活函數(shù),其表達(dá)式為:
(2)
從圖1曲線可看出,tanh函數(shù)取值范圍為[-1, 1],而sigmoid函數(shù)的取值非負(fù),導(dǎo)致模型的收斂速度會顯著變慢,與之相比,tanh是0均值,故可加快模型收斂速度,所以在實踐中tanh函數(shù)會比sigmoid函數(shù)更常用[6]。
1.3? relu激活函數(shù)
relu激活函數(shù)是目前應(yīng)用比較多的一個函數(shù),它的公式為:
(3)
該公式可以拆分為:
(4)
從上圖1曲線圖可發(fā)現(xiàn),relu激活函數(shù)更像是求最大值的分段函數(shù)。當(dāng)x在小于或等于0范圍內(nèi)時,relu(x)值總是0,表示relu函數(shù)沒有激活;當(dāng)x值大于0時,函數(shù)值是x本身,這表明relu正式激活函數(shù)。曲線圖中relu函數(shù)沒有飽和區(qū),因此激活函數(shù)可以克服梯度消失的問題,從而加快模型訓(xùn)練的時間。當(dāng)輸入值x為負(fù)時,relu函數(shù)不被激活,這意味著只有一些神經(jīng)元同時被激活,使網(wǎng)絡(luò)相對稀疏[7]。
1.4? mish激活函數(shù)
目前,激活函數(shù)sigmoid、relu被廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò),但兩者各有不足,sigmoid函數(shù)容易產(chǎn)生梯度下降消失現(xiàn)象;由于relu的負(fù)半軸為零,所以正半軸輸入與輸出相等,針對梯度下降的消散問題優(yōu)于sigmoid,但權(quán)重值無法更新的現(xiàn)象會存在[7,8]。為了彌補(bǔ)前兩者激活的不足,并且緩解改善梯度下降和消失的現(xiàn)象,本文使用mish激活函數(shù)可以有效提升模型識別精準(zhǔn)度,其公式為:
(5)
mish它是一條光滑的曲線。光滑的激活函數(shù)允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而獲得更好的準(zhǔn)確性和泛化;負(fù)值不被完全截斷,允許小的負(fù)梯度流入[9,10]。此外,激活函數(shù)無邊界的特點(diǎn)避免了飽和等問題,sigmoid激活函數(shù)通常存在梯度飽和問題,梯度在兩側(cè)極限接近1,mish激活函數(shù)巧妙地避免了這一點(diǎn)。另外,由于mish函數(shù)也保證了每個點(diǎn)的平滑性,因此它能提升訓(xùn)練模型的穩(wěn)定性和準(zhǔn)確性。
2? 實驗結(jié)果及分析
2.1? 手寫體數(shù)據(jù)集
本文使用的mnist數(shù)據(jù)集是廣泛應(yīng)用的手寫體數(shù)據(jù)集。該數(shù)據(jù)集中由6萬個訓(xùn)練集圖像樣本和1萬個測試集真實數(shù)字樣本兩部分構(gòu)成。第1列是標(biāo)簽,即0~9手寫的阿拉伯?dāng)?shù)字的圖像,第2列到第784列是第1列手寫的阿拉伯?dāng)?shù)字的像素值[11]。
通過構(gòu)建一個卷積神經(jīng)網(wǎng)絡(luò)模型用于對手寫體數(shù)字進(jìn)行分類,其網(wǎng)絡(luò)結(jié)構(gòu)包括兩次卷積conv2d_1和conv2d_2。每個卷積包括卷積層、激活函數(shù)層和池化層;兩次池化和三次全連接,通過mish激活函數(shù)和sotfmax函數(shù)結(jié)合,采用dropout防止過擬合,建立平坦層來優(yōu)化結(jié)構(gòu)。其各層網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
2.2? 結(jié)果分析
實驗采用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的數(shù)據(jù)整理至表1中,首次卷積運(yùn)算會輸出16個28×28的數(shù)字圖像,得到416個訓(xùn)練參數(shù),然后經(jīng)過首個池化層操作,首次縮減采樣,由16個28×28縮小為16個14×14的圖像,繼續(xù)執(zhí)行卷積操作,由16個圖像變?yōu)?6個圖像,卷積運(yùn)算不會改變圖像大小,故而圖像還是14×14的圖像,繼續(xù)經(jīng)歷池化層操作,且加入dropout避免過度擬合,每次訓(xùn)練迭代時,隨機(jī)放棄25%的神經(jīng)元,同時建立Flatten層,將36個7×7的圖像展平為1維向量,執(zhí)行2次激活函數(shù)的全連接層,中間繼續(xù)加入dropout避免過度擬合[12]。
本文實驗是將mnist數(shù)據(jù)集中的數(shù)據(jù)劃為80%用以訓(xùn)練和20%用以測試驗證,分別用acc表示訓(xùn)練集準(zhǔn)確率,loss表示訓(xùn)練集損失率,val_acc表示測試集準(zhǔn)確率,val_loss表示測試集損失率,實驗中數(shù)據(jù)集訓(xùn)練周期epoch為50,每個訓(xùn)練周期使用300項樣本數(shù)據(jù),圖3是mish激活函數(shù)在整個訓(xùn)練集上完成訓(xùn)練時的損失函數(shù)收斂曲線,可發(fā)現(xiàn):mish激活函數(shù)在epoch訓(xùn)練前期,loss值急劇下降;整個訓(xùn)練過程不斷迭代,loss值的下降速度逐漸平穩(wěn),在波動幅度不大的情形下近似趨于收斂。與此同時,在測試集上進(jìn)行評估其準(zhǔn)確率為99.45%,如圖4所示。
圖5是四種激活函數(shù)所得到的訓(xùn)練集誤差曲線對比圖,由圖可知,mish激活函數(shù)誤差率最小,下降后損失函數(shù)收斂曲線平穩(wěn),在epoch前期中,所有激活函數(shù)的損失曲線相差不大,但隨著迭代次數(shù)增加訓(xùn)練集損失值最先下降且處于最低,由圖可發(fā)現(xiàn)mish函數(shù)的誤差值較小,訓(xùn)練的性能更穩(wěn)定,在手寫數(shù)字識別時采用mish激活函數(shù)相對精度更高。
從圖6中圖中可知,mish激活函數(shù)精度曲線處于最高,而sigmoid函數(shù)的精度曲線處于劣勢,是四者中的精確率最低。結(jié)合圖5中的訓(xùn)練集誤差圖像和mish公式,發(fā)現(xiàn)選擇mish激活函數(shù)時,該算法對數(shù)據(jù)的適合度較好,預(yù)測的精度率更優(yōu)。間接說明激活函數(shù)的選擇尤為重要,選擇好會增加整個算法的效能。
3? 結(jié)? 論
本文對四種不同的激活函數(shù)進(jìn)行了分析,即選擇sigmoid、tanh、relu、mish函數(shù),mish激活函數(shù)對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和預(yù)測優(yōu)于其他三種。而在手寫體數(shù)字識別模型進(jìn)行訓(xùn)練時,可知樣本的真實值和預(yù)測值的差異,既與樣本自身信息密不可分,還與采用的激活函數(shù)相關(guān),應(yīng)根據(jù)具體的應(yīng)用環(huán)境選擇合適的激活函數(shù)。
參考文獻(xiàn):
[1] 于文生,張軒雄.改進(jìn)誤差反向傳播法神經(jīng)網(wǎng)絡(luò)對手寫數(shù)字識別 [J].電子設(shè)計工程,2021,29(23):20-24.
[2] 高宇鵬,胡眾義.基于Keras手寫數(shù)字識別模型的改進(jìn) [J].計算技術(shù)與自動化,2021,40(2):164-169.
[3] 楊善敏.面向異質(zhì)人臉識別的域不變特征學(xué)習(xí)方法研究 [D].成都:四川大學(xué),2021.
[4] QIAO J,WANG G,LI W,et al. An adaptive deep Q-learning strategy for handwriteen digit recognition [J].Neural Networks the Official Jourrnal of the International Netural Network Society,2018,107:61-71.
[5] 宋曉茹,吳雪,高嵩,等.基于深度神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別模擬研究 [J].科學(xué)技術(shù)與工程,2019,19(5):193-196.
[6] 楊永翌.基于Keras框架MNIST數(shù)據(jù)集識別方法研究 [J].汽車實用技術(shù),2019(23):101-103.
[7] 郭夢潔,楊夢卓,馬京九.基于Keras框架MNIST數(shù)據(jù)集識別模型[J].現(xiàn)代信息科技,2019,3(14):18-23.
[8] 郭曉敏,黃新.改進(jìn)YOLOv3算法在肺結(jié)節(jié)檢測中的應(yīng)用 [J].激光雜志,2022,43(5):207-213.
[9] 樊繼慧,滕少華,金弘林.基于改進(jìn)Sigmoid卷積神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識別 [J].計算機(jī)科學(xué),2022,49(12):244-249.
[10] 董慶偉.基于Keras深度學(xué)習(xí)算法在結(jié)構(gòu)化數(shù)據(jù)分類中的應(yīng)用研究 [J].佳木斯大學(xué)學(xué)報:自然科學(xué)版,2022,40(4):47-49+54.
[11] 郝雅嫻,孫艷蕊.基于手寫體數(shù)字識別的損失函數(shù)對比研究 [J].電子技術(shù)與軟件工程,2022(6):203-206.
[12] 儲匯,宋陳,汪晨燦.基于Keras卷積神經(jīng)網(wǎng)絡(luò)的多人臉識別抗干擾研究 [J].洛陽理工學(xué)院學(xué)報:自然科學(xué)版,2022,32(1):62-67.
作者簡介:宋倩(1995—),女,漢族,山東萊陽人,助教,碩士,研究方向:深度強(qiáng)化學(xué)習(xí)、圖像識別;羅富貴(1984—),女,壯族,廣西來賓人,副教授,碩士,研究方向:數(shù)字圖像處理、模式識別。
收稿日期:2022-10-07
基金項目:2022年度廣西中青年教師科研基礎(chǔ)能力提升項目(2022KY0606);河池學(xué)院2021年科研啟動項目(2021GCC013);2021年度廣西中青年教師科研基礎(chǔ)能力提升項目(2021KY0620,2021KY0615)