亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于改進Inception卷積神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識別

        2019-12-12 07:06:44余圣新夏成蹊唐澤恬
        計算機應(yīng)用與軟件 2019年12期
        關(guān)鍵詞:深度特征結(jié)構(gòu)

        余圣新 夏成蹊 唐澤恬 丁 召 楊 晨

        (貴州大學大數(shù)據(jù)與信息工程學院貴州省微納電子與軟件技術(shù)重點實驗室 貴州 貴陽 550025)

        0 引 言

        手寫體數(shù)字識別廣泛地應(yīng)用在銀行、快遞等領(lǐng)域。例如銀行人工服務(wù)支取大量現(xiàn)金時需要填寫的單據(jù)上的金額、日期等手寫數(shù)字信息。其他常見的應(yīng)用場景還包括填寫快遞單時的手機號碼、郵政編碼等,因此研究手寫體數(shù)字識別具有較高的現(xiàn)實意義與經(jīng)濟價值。

        傳統(tǒng)手寫體數(shù)字識別與分類的方法是通過人為構(gòu)建特征描述子來提取圖像特征,再利用分類器對所得特征進行分類,如通過梯度方向直方圖特征(Histogram of Oriented Gradient,HOG)[1]和局部二值模式(Local Binary Pattern,LBP)[2],但是該方法需要大量人工操作。隨著硬件設(shè)備計算能力快速提升,深度學習也成為圖像分類的一個重要方式。1998年,文獻[3]結(jié)合卷積與池化,提出LeNet-5,用于識別手寫體數(shù)字,識別率達到99.13%,高于傳統(tǒng)方法的98.67%。2012年,文獻[4]提出AlexNet,使用Relu作為激活函數(shù),并且大量使用卷積層與池化層,使得網(wǎng)絡(luò)能夠獲得更加豐富的特征,在ImageNet(ILSVRC-2012)競賽中,top-5測試誤差為15.3%。2014年,文獻[5]提出GoogLeNet,其提出的Inception V1結(jié)構(gòu),采用不同大小卷積核提取不同的特征,在ImageNet(ILSVRC-2014)競賽中,top-5測試誤差只有6.66%。GoogLeNet為卷積神經(jīng)網(wǎng)絡(luò)的研究與發(fā)展提供了新方向,即增加網(wǎng)絡(luò)寬度以獲得更好的正確率。但寬度增加也會引起參數(shù)增加,同時增加計算負擔。為減少參數(shù),提出Inception V2[6]和Inception V3[7],Inception V2采用三個3×3代替7×7卷積,Inception V3則采用連續(xù)非對稱卷積1×7與7×1代替7×7卷積。2015年,文獻[8]提出殘差網(wǎng)絡(luò)(ResNet),隨網(wǎng)絡(luò)層數(shù)增加而出現(xiàn)的梯度彌散問題由此得以解決。2016年,文獻[9]結(jié)合ResNet,改進Inception提出Inception-ResNet。2017年,為更好地增加網(wǎng)絡(luò)寬度,深度可分離卷積(Xception)被提出[10],將通道間的相關(guān)性完全分離。

        盡管卷積神經(jīng)網(wǎng)絡(luò)越做越深,但是對于手寫數(shù)字這類小分辨率圖像的識別,大而深的網(wǎng)絡(luò)會由于參數(shù)量過大而占用過多計算資源,因此需要一款深度合適而識別率較高的網(wǎng)絡(luò)。本文采用深度可分離卷積代替Inception結(jié)構(gòu)中的傳統(tǒng)卷積,改進Inception結(jié)構(gòu),增加Inception結(jié)構(gòu)的網(wǎng)絡(luò)寬度,并且結(jié)合殘差網(wǎng)絡(luò)(ResNet)防止梯度彌散。在分類器的選擇上則選用支持向量機作為分類器[11],基于其對數(shù)據(jù)的維度、多變性不敏感等特性[12],結(jié)合支持向量機(SVM)對卷積神經(jīng)網(wǎng)絡(luò)提取的特征進行分類[13],使用10折交叉驗證法驗證SVM所得識別率。

        1 網(wǎng)絡(luò)結(jié)構(gòu)和改進算法

        本文采用訓練網(wǎng)絡(luò)整體結(jié)構(gòu)如圖1所示。對輸入圖像進行兩次連續(xù)非對稱卷積代替7×7卷積核,完成圖像特征的初步提取;改進Inception結(jié)構(gòu)用于加大網(wǎng)絡(luò)寬度,并通過Maxpool對特征進行壓縮,同時引入殘差網(wǎng)絡(luò)防止梯度彌散;之后使用傳統(tǒng)卷積層與池化層相結(jié)合的方式,縮小特征圖,中間加入Dropout層,其作用為以一定概率隨機將部分隱藏層節(jié)點權(quán)重歸零,從而防止網(wǎng)絡(luò)過擬合;最后分別使用softmax與支持向量機對特征進行分類與比較。每一層卷積后都使用Relu函數(shù)y=max(0,y) 作為激活函數(shù),使用交叉熵函數(shù)作為損失函數(shù)訓練網(wǎng)絡(luò),同時使用批量標準化來減少網(wǎng)絡(luò)對學習率的要求,加快網(wǎng)絡(luò)收斂,緩解過擬合。

        圖1 整體網(wǎng)絡(luò)結(jié)構(gòu)

        網(wǎng)絡(luò)各層輸出如表1所示。

        表1 各層輸出特征圖大小

        算法流程如圖2所示。

        (a) 訓練流程圖

        (b) 識別流程圖圖2 算法流程

        圖2(a)中訓練過程分為本文網(wǎng)絡(luò)訓練與支持向量機訓練兩個部分。第一部分為MNIST數(shù)據(jù)集通過本文網(wǎng)絡(luò)、全連接層與softmax,更新本文網(wǎng)絡(luò)的權(quán)重;第二部分為MNIST數(shù)據(jù)集通過已訓練的本文網(wǎng)絡(luò),將本文網(wǎng)絡(luò)所提取的特征圖向量化后所得特征訓練支持向量機。訓練完畢后,以圖2(b)中所示順序完成識別。

        1.1 連續(xù)非對稱卷積

        圖1中連續(xù)非對稱卷積×2結(jié)構(gòu)如圖3所示,其中Conv代表卷積(convolution),Convn表示使用n個卷積核。首先使用一組連續(xù)非對稱卷積實3×3卷積,得到26×26×32輸出特征圖。第二組同樣使用一組連續(xù)非對稱卷積實現(xiàn)3×3卷積,得到24×24×64的輸出特征圖,這與直接使用5×5卷積所得特征圖大小相同。

        圖3 兩組非對稱卷積實現(xiàn)5×5卷積

        1.2 改進Inception結(jié)構(gòu)

        本文使用深度可分離卷積代替Inception結(jié)構(gòu)中的傳統(tǒng)卷積以增加網(wǎng)絡(luò)寬度,同時提升網(wǎng)絡(luò)性能。深度可分離卷積[10]是針對加大網(wǎng)絡(luò)寬度提出的一種卷積形式,該卷積可以分解成一個深度卷積和一個1×1點卷積,深度卷積用于拓寬網(wǎng)絡(luò),點卷積用于調(diào)整輸出通道數(shù)。

        傳統(tǒng)卷積可以表示為:

        (1)

        式中:F表示輸入特征圖,大小為k+i-1×i+j-1×m;G表示輸出特征圖,輸出特征圖的大小為k×l×n;K表示卷積核,大小為i×j×m,卷積核個數(shù)為n。可見,為得到k×l×n大小的輸出特征圖,傳統(tǒng)卷積所需參數(shù)量為i×j×m×n。

        深度可分離卷積可以表示為:

        (2)

        (3)

        圖4 深度可分離卷積結(jié)構(gòu)

        因此,對于同樣大小輸出特征圖,深度可分離卷積所需參數(shù)量相比傳統(tǒng)卷積所需參數(shù)量減少了大約n倍。

        由于深度可分離卷積能夠完全分離通道間的相關(guān)性,為進一步加寬網(wǎng)絡(luò),將深度可分離卷積引入到Inception里面。Inception結(jié)構(gòu)與深度可分離卷積結(jié)構(gòu)都能加大網(wǎng)絡(luò)寬度,兩者并聯(lián)之后網(wǎng)絡(luò)寬度能得到進一步增加。例如,輸入特征圖通道數(shù)為64,Inception間有3個分支,每個分支都使用不同卷積核進行可分離卷積,這樣網(wǎng)絡(luò)寬度就能從64增加到3×64。由于增加網(wǎng)絡(luò)寬度會造成參數(shù)增加,因此引入點卷積,點卷積就是1×1卷積,它能很容易地整合卷積神經(jīng)網(wǎng)絡(luò)的通道,因此1×1卷積主要用來降低特征維度以避免因網(wǎng)絡(luò)受硬件條件而限制網(wǎng)絡(luò)模型。本文設(shè)計結(jié)構(gòu)如圖5所示。

        圖5 改進后Inception結(jié)構(gòu)

        對該部分的輸入分別接兩個1×1卷積,卷積核個數(shù)均為32,得到兩個分支,并通過整合輸入特征圖的通道數(shù)來降低參數(shù)。接下來分別對兩個分支進行3×3與5×5深度可分離卷積,之后對兩分支的輸出沿通道數(shù)方向進行堆疊。

        使用Python語言,tensorflow、slim庫完成Inception結(jié)構(gòu)改進,改進Inception結(jié)構(gòu)代碼如下:

        def improved_inception_model(inputs,kernel,o_channels,depth):

        ?inputs為改進inception結(jié)構(gòu)的輸入,kernel為每個分支中1×1卷積核的個數(shù),o_channel每個分支中深度可分離卷積的輸出通道數(shù),depth為每個分支中深度可分離卷積的卷積核個數(shù),函數(shù)返回三個分支輸出的堆疊。其中stride均設(shè)為1,padding均設(shè)為′SAME′,即輸入與輸出同維度,以便堆疊。?

        batch0=silm.conv2d(inputs, kernel, [1, 1],

        stride=1, padding=′SAME′)

        batch0=slim.separeble_conv2d(batch0,

        o_channels, [3, 3],

        depth_multiplier=depth,

        padding=′SAME′)

        #對第一個分支進行1×1卷積后再進行3×3

        #深度可分離卷積。

        batch1=silm.conv2d(inputs, kernel, [1, 1],

        stride=1, padding=′SAME′)

        batch1=slim.separeble_conv2d(batch1,

        o_channels, [5, 5],

        depth_multiplier=depth,

        padding=′SAME′)

        #對第二個分支進行1×1卷積后再進行5×5

        #深度可分離卷積。

        batch2=slim.max_pool2d(inputs, [3, 3],

        stride=1, padding=′SAME′)

        #對第三個分支進行最大值池化

        output = tf.concat([batch0, batch1, batch2], 3)

        #將三個分支的輸出在通道數(shù)上進行堆疊

        return output

        由表2可知,改進后結(jié)構(gòu)在保留Inception結(jié)構(gòu)對尺度適應(yīng)性的同時減少參數(shù)量。

        表2 參數(shù)量對比

        1.3 殘差網(wǎng)絡(luò)結(jié)構(gòu)

        為防止網(wǎng)絡(luò)深度增加導致梯度爆炸或者梯度彌散,造成梯度不能很好地往后傳播,一般會在網(wǎng)絡(luò)中引入殘差網(wǎng)絡(luò),本文使用殘差網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。

        圖6 殘差網(wǎng)絡(luò)

        為保證Maxpool層的輸出與3×1卷積層的輸出維度相一致以實現(xiàn)線性相加,本文利用點卷積與連續(xù)非對稱卷積對上一層輸出特征圖進行大小調(diào)整,見圖6虛線框。所得輸出結(jié)合卷積層與池化,對殘差網(wǎng)絡(luò)輸出特征圖進行縮小。

        1.4 支持向量機

        本文用支持向量機替代softmax作為最后的分類器。支持向量機是1963年Vapnik[15]提出的一種以統(tǒng)計學理論為基礎(chǔ)的學習算法,利用核函數(shù)將低維向量映射到高維空間,并有效控制計算復(fù)雜度。通常使用高斯函數(shù)作為徑向基函數(shù):

        (4)

        式中:xc為核函數(shù)中心;σ為核函數(shù)寬度參數(shù),控制函數(shù)的徑向作用范圍。

        訓練完本文設(shè)計的網(wǎng)絡(luò)后,將全連接層與softmax層以支持向量機替代,在MNIST中隨機選擇10 000幅圖片作為訓練集,進行10折交叉驗證,使用高斯核函數(shù)作為徑向基函數(shù)。

        2 實驗結(jié)果與分析

        為驗證算法可行性,本文以來自美國國家標準與技術(shù)研究所MNIST手寫體數(shù)字數(shù)據(jù)集作為實驗數(shù)據(jù)。訓練集包含60 000個樣本,分別由250個來自不同地區(qū)的人手寫的數(shù)字構(gòu)成。測試集同樣包含10 000個手寫數(shù)字樣本。其中訓練集和測試集均為50%高中學生和50% 人口普查局的工作人員組成。圖像均為28×28像素,本文所有實驗均在配置為Intel Core i5-3470 CPU,主頻3.20 GHz,16 GB的RAM上運行,使用3 GB顯存的NVIDIA GTX1060做GPU加速。

        實驗分成兩步:第一步先用softmax作為分類器,以交叉熵函數(shù)作為誤差函數(shù)訓練該網(wǎng)絡(luò),選擇合適dropout概率防止網(wǎng)絡(luò)過擬合;第二步固定所有網(wǎng)絡(luò)層權(quán)重,使用支持向量機(SVM)替代softmax,訓練SVM。

        2.1 網(wǎng)絡(luò)參數(shù)的選取

        為防止過擬合,在模型訓練時,本文在圖1所示結(jié)構(gòu)中采用Dropout層,保留概率與Dropout概率關(guān)系如下:

        P=1-PD

        (5)

        式中:P為保留概率;PD為Dropout概率。

        保留率設(shè)置為1.0、0.5、0.2、0.1,訓練及測試loss曲線,所得結(jié)果如圖7、表3所示。

        (c) P=0.2 (d) P=0.1圖7 保留概率(P)對網(wǎng)絡(luò)的影響

        表3 不同保留概率的識別率

        可以看出,當不使用Dropout層時(保留概率為1.0),loss下降至0.3后網(wǎng)絡(luò)已經(jīng)收斂,測試誤差與訓練誤差之間相距較遠,即兩者方差較大,且測試誤差在訓練至2 200步后一直大于訓練誤差,說明網(wǎng)絡(luò)已過擬合,識別率為89.95%;當保留概率為0.5時,loss下降明顯,測試誤差與訓練誤差之間相距較近,即兩者方差較小,識別率為99.38%;當保留概率為0.2時,loss下降明顯,同時測試誤差始終高于訓練誤差,且在5 700步后基本重合,即方差最小,識別率為99.45%;當保留概率為0.1時,loss值大且下降較慢,說明此時網(wǎng)絡(luò)欠擬合,識別率為78.34%。因此保留概率為0.2時,網(wǎng)絡(luò)性能最優(yōu)。

        2.2 不同網(wǎng)絡(luò)的比較

        為便于比較,實驗時分類器統(tǒng)一使用softmax作為分類器。經(jīng)softmax分類后,正確率相對于LeNet-5提高了0.20%,相對于Inception結(jié)構(gòu)提高了0.08%,實驗結(jié)果如表4所示。

        表4 不同網(wǎng)絡(luò)結(jié)構(gòu)實驗結(jié)果

        與Inception結(jié)構(gòu)相比,本文改進結(jié)構(gòu)較Inception具有更大的網(wǎng)絡(luò)寬度,由圖8可以看出,改進Inception收斂速度較快。

        (a) accuracy曲線對比圖

        (b) loss曲線對比圖圖8 accuracy與loss曲線對比圖

        2.3 SVM參數(shù)的選取

        為進一步提高識別率,選擇SVM代替softmax,為選擇合適的參數(shù),從MNIST中隨機取10 000個數(shù)據(jù),對SVM的不同核寬與懲罰系數(shù)進行10折交叉驗證,每次實驗所得平均識別率如表5所示。

        表5 核寬與懲罰系數(shù)對交叉驗證平均正確率的影響

        在表5所選參數(shù)條件下,10折交叉驗證所得平均識別率均分布在99.58%~99.78%區(qū)間,均高于表4中softmax正確率。其中:C=0.5,σ=0.005時,平均識別率為99.78%;C=0.5,σ=0.007時,平均識別率為99.74%;C=0.1,σ=0.003時,平均識別率為99.67%。其10折交叉驗證正確率曲線如圖9所示??梢姰攽土P系數(shù)C=0.5,σ=0.005時,10折交叉驗證的每一次結(jié)果均高于其余兩個,即為最優(yōu)懲罰系數(shù)與核寬。

        圖9 10折交叉驗證正確率

        綜上,本文網(wǎng)絡(luò)結(jié)構(gòu)在采用softmax分類器已經(jīng)獲得較高正確率,使用SVM分類器代替softmax分類器,可以將正確率從99.45%進一步提高到99.78%

        3 結(jié) 語

        本文采用改進Inception網(wǎng)絡(luò)模型提取手寫體數(shù)字的特征,并將其傳遞給SVM分類器進行識別。連續(xù)非對稱卷積可以實現(xiàn)傳統(tǒng)卷積功能同時節(jié)省計算開支,而改進Inception結(jié)構(gòu)相比Inception結(jié)構(gòu)擁有更大的網(wǎng)絡(luò)寬度。實驗結(jié)果表明,改進Inception結(jié)構(gòu)相比Inception結(jié)構(gòu)獲得了更高的識別率。使用本文設(shè)計網(wǎng)絡(luò)提取的特征作為特征向量訓練SVM,識別率相比使用全連接層后經(jīng)softmax分類所得識別率有明顯地提升,說明SVM對于數(shù)據(jù)分類能力優(yōu)于softmax分類器。在財務(wù)、稅務(wù)、金融及實驗記錄等領(lǐng)域,存在大量的手寫體數(shù)字文檔。本文模型有望在上述領(lǐng)域的自動化識別中得到應(yīng)用,以節(jié)省時間提升工作效率。

        猜你喜歡
        深度特征結(jié)構(gòu)
        《形而上學》△卷的結(jié)構(gòu)和位置
        哲學評論(2021年2期)2021-08-22 01:53:34
        深度理解一元一次方程
        如何表達“特征”
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        深度觀察
        深度觀察
        深度觀察
        抓住特征巧觀察
        論《日出》的結(jié)構(gòu)
        欧美亚洲日韩国产区| 亚洲综合网国产精品一区| 精品综合久久久久久888蜜芽| 亚洲一品道一区二区三区| 久久人妻av一区二区软件| 国产无遮挡又黄又爽在线视频| 一本大道久久东京热无码av| 亚洲国产精品成人一区二区三区| 男女男精品视频网站免费看| 色妞ww精品视频7777| 操出白浆在线观看| 精品国产一区二区三广区| 一区二区三区最新中文字幕| 日韩吃奶摸下aa片免费观看| 在线a亚洲视频播放在线观看| 中文字幕人妻乱码在线| 国产精品无码翘臀在线观看 | 亚洲精品aa片在线观看国产| 中文字幕亚洲精品第1页| 日本高清成人一区二区三区| 国产成人午夜高潮毛片| 在线播放无码高潮的视频| 中文字幕午夜AV福利片| 日韩人妻免费视频一专区| 天堂网在线最新版www| 国产午夜视频在永久在线观看| 一区二区三区岛国av毛片| 在线观看一级黄片天堂| 999久久久无码国产精品| 国产乱人视频在线观看播放器| 经典黄色一区二区三区| 色费女人18毛片a级毛片视频| 日韩欧美亚洲综合久久影院d3| 午夜国产小视频在线观看黄| 蜜桃av在线免费网站| 国产福利一区二区三区在线观看 | 99re8这里有精品热视频免费| 亚洲日韩精品久久久久久| 日韩av在线手机免费观看| 无码区a∨视频体验区30秒| 久久国产精品二区99|