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

        ?

        基于卷積神經(jīng)網(wǎng)絡(luò)和TensorFlow的手寫(xiě)數(shù)字識(shí)別研究

        2018-04-18 02:14:38袁浩巍
        上海電氣技術(shù) 2018年1期
        關(guān)鍵詞:池化識(shí)別率權(quán)值

        徐 胤, 袁浩巍, 李 智

        上海電氣集團(tuán)股份有限公司 中央研究院 上海 200070

        1 研究背景

        手寫(xiě)字符識(shí)別可用于識(shí)別票據(jù)數(shù)字、車牌號(hào)等,應(yīng)用廣泛。字符識(shí)別可用傳統(tǒng)的機(jī)器學(xué)習(xí)方法實(shí)現(xiàn),如k-近鄰算法、支持向量機(jī)、貝葉斯方法等。使用傳統(tǒng)識(shí)別方法處理圖像時(shí),首先要對(duì)圖像進(jìn)行預(yù)處理,然后由人工設(shè)計(jì)特征提取方法?,F(xiàn)有的特征提取方法有類哈爾特征、方向梯度直方圖特征、尺度不變特征變換[1-2]、加速穩(wěn)健特征等,這些特征提取方法各有優(yōu)勢(shì),如類哈爾特征常用于人臉識(shí)別,方向梯度直方圖特征常用于行人檢測(cè)。特征提取后,將所得的特征導(dǎo)入一個(gè)分類器進(jìn)行訓(xùn)練,得到分類器的相關(guān)參數(shù)。使用時(shí),將待識(shí)別圖像特征提取后,再輸入經(jīng)訓(xùn)練得到的分類器中進(jìn)行識(shí)別。

        人工神經(jīng)網(wǎng)絡(luò)的研究在一定程度上受到了生物學(xué)的啟發(fā),生物的學(xué)習(xí)系統(tǒng)是由相互連接的神經(jīng)元所組成的復(fù)雜網(wǎng)絡(luò),人工神經(jīng)網(wǎng)絡(luò)與此大體相似[3]。神經(jīng)網(wǎng)絡(luò)具有廣泛的應(yīng)用范圍,對(duì)于數(shù)據(jù)具有很好的魯棒性,已成功應(yīng)用于很多領(lǐng)域,如視覺(jué)識(shí)別、故障診斷、語(yǔ)音識(shí)別、機(jī)器人控制[4-5]等。卷積神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)的一種,其權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)減少了權(quán)值的數(shù)量,降低了網(wǎng)絡(luò)模型的復(fù)雜度,在圖像識(shí)別應(yīng)用中,可以將圖像直接作為網(wǎng)絡(luò)的輸入。卷積網(wǎng)絡(luò)是為了識(shí)別二維形狀而設(shè)計(jì)的一個(gè)多層感知器,對(duì)平移、旋轉(zhuǎn)、縮放具有高度不變性[6],能夠通過(guò)隱藏層逐層提取出圖像特征。TensorFlow是由谷歌大腦團(tuán)隊(duì)開(kāi)發(fā)的采用數(shù)據(jù)流圖、用于數(shù)值計(jì)算的開(kāi)源軟件,通常用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的研究,也可用于其它計(jì)算領(lǐng)域。TensorFlow具有靈活的架構(gòu),能夠在多平臺(tái)上展開(kāi)計(jì)算,能夠在中央處理器和圖形處理器上運(yùn)行,支持移動(dòng)設(shè)備、服務(wù)器等,并支持Linux、Windows、Mac OS等操作系統(tǒng),具有很強(qiáng)的可移植性。此外,TensorFlow支持多語(yǔ)言,可以使用C++、Python、R、JAVA等語(yǔ)言實(shí)現(xiàn)編程[7]。

        筆者首先載入手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集,將數(shù)據(jù)集分為訓(xùn)練集和驗(yàn)證集;然后搭建具有兩個(gè)隱藏層的卷積神經(jīng)網(wǎng)絡(luò)模型,輸入訓(xùn)練集,設(shè)置模型參數(shù)和損失函數(shù)后進(jìn)行訓(xùn)練,得到卷積神經(jīng)網(wǎng)絡(luò)的因數(shù);最后使用訓(xùn)練出的卷積神經(jīng)網(wǎng)絡(luò)對(duì)驗(yàn)證集中的手寫(xiě)數(shù)字進(jìn)行識(shí)別。

        2 深度學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)

        傳統(tǒng)神經(jīng)網(wǎng)絡(luò)通常采用反向傳播算法進(jìn)行特征訓(xùn)練。在隨機(jī)給定一組權(quán)重因數(shù)后,得到網(wǎng)絡(luò)的輸出值,然后算出實(shí)際輸出與目標(biāo)輸出之間的誤差,將誤差反饋至前面各層的節(jié)點(diǎn),并更新每個(gè)節(jié)點(diǎn)的權(quán)值。逐步迭代這個(gè)過(guò)程,直至得到誤差函數(shù)的全局最小值。

        深度學(xué)習(xí)是在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上發(fā)展起來(lái)的深度神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)層次與神經(jīng)網(wǎng)絡(luò)相同,即包括輸入層、隱藏層、輸出層,且只在相鄰層的節(jié)點(diǎn)之間有連接。為了克服傳統(tǒng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中訓(xùn)練時(shí)間長(zhǎng)、參數(shù)多等問(wèn)題,深度學(xué)習(xí)使用了與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)不同的訓(xùn)練機(jī)制。卷積神經(jīng)網(wǎng)絡(luò)是一種在網(wǎng)絡(luò)層中用卷積運(yùn)算來(lái)代替矩陣乘法運(yùn)算的神經(jīng)網(wǎng)絡(luò),適合用來(lái)處理圖像數(shù)據(jù)[8]。

        2.1 網(wǎng)絡(luò)結(jié)構(gòu)

        前饋型神經(jīng)網(wǎng)絡(luò)的連接方式采用多層結(jié)構(gòu),其基本結(jié)構(gòu)為輸入層、隱藏層、輸出層。隱藏層也稱中間層,隱藏層的層數(shù)大于等于1,包括卷積層、池化層、全連接層。圖1為前饋型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),從左至右依次為輸入層、隱藏層1、隱藏層2、輸出層。前饋型神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的非線性處理能力和模式識(shí)別能力。

        圖1 前饋型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

        卷積神經(jīng)網(wǎng)絡(luò)是一種前饋型神經(jīng)網(wǎng)絡(luò),圖2為卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[6],有八層帶權(quán)重因數(shù)的層數(shù),第一層是數(shù)據(jù)輸入層,之后連接的五層是卷積層,最后三層是全連接層,全連接層的最后一層為輸出層。

        圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

        由圖2可以看到,上下層神經(jīng)元之間都形成了連接,假設(shè)隱藏層節(jié)點(diǎn)數(shù)量為10000,輸入的圖像分辨率為100像素×100像素,則僅一層隱藏層就有108個(gè)權(quán)值待訓(xùn)練,權(quán)值數(shù)量十分龐大。另一方面,圖像具備固有的二維結(jié)構(gòu)特征,如角點(diǎn)、直線、邊緣等,這些局部特征都可以加以利用。卷積神經(jīng)網(wǎng)絡(luò)能夠使一組神經(jīng)元使用相同的權(quán)值,即權(quán)值共享,這樣能夠節(jié)省訓(xùn)練計(jì)算所占用的資源。

        2.2 圖像卷積

        圖像卷積能夠自動(dòng)提取圖像中的特征,減少多余信息,用于神經(jīng)網(wǎng)絡(luò)中,具有代替人工設(shè)計(jì)特征的功能。圖像卷積過(guò)程也稱特征學(xué)習(xí),特征學(xué)習(xí)能夠自動(dòng)適配新的任務(wù),只需在新數(shù)據(jù)上進(jìn)行訓(xùn)練,自動(dòng)找出新的卷積核,可以避免繁重的特征工程。

        卷積運(yùn)算是針對(duì)兩個(gè)實(shí)變函數(shù)的一種數(shù)學(xué)運(yùn)算,用*號(hào)表示,其運(yùn)算式為:

        s(t)=(x*ω)(t)

        (1)

        式中:t為時(shí)間;x為輸入信號(hào);ω為核函數(shù);s(t)為x在ω核函數(shù)下經(jīng)過(guò)時(shí)間t后的卷積結(jié)果。

        在處理圖像卷積時(shí),將二維圖像I作為卷積運(yùn)算的輸入,分別在水平和豎直方向執(zhí)行卷積操作,卷積規(guī)則為[9]:

        S(i,j) =(I*K)(i,j)

        (2)

        式中:K為二維卷積核;(i,j)為像素位置;(m,n)為卷積核尺寸;S(i,j)為卷積后得到的特征圖。

        在許多神經(jīng)網(wǎng)絡(luò)庫(kù)中有互相關(guān)函數(shù),這些函數(shù)和卷積運(yùn)算比較相似,但沒(méi)有翻轉(zhuǎn),也稱為卷積運(yùn)算,卷積后的圖像為[9]:

        S(i,j) =(I*K)(i,j)

        (3)

        使用互相關(guān)函數(shù)的圖像卷積過(guò)程如圖3所示,卷積核在原圖像上滑動(dòng),與原圖像進(jìn)行相乘和加權(quán)疊加后得到特征映射圖。

        圖3 互相關(guān)函數(shù)圖像卷積過(guò)程

        卷積核翻轉(zhuǎn)的唯一目的是實(shí)現(xiàn)可交換性,但是這在神經(jīng)網(wǎng)絡(luò)應(yīng)用中并不是一個(gè)重要的性質(zhì)。而另一方面,互相關(guān)運(yùn)算更簡(jiǎn)單,且更容易實(shí)現(xiàn)。

        2.3 池化運(yùn)算

        池化指對(duì)卷積后的圖像進(jìn)行采樣,以降低卷積圖像的維數(shù),即減少參數(shù)。另外,池化還能消除信號(hào)的偏移和扭曲,增強(qiáng)網(wǎng)絡(luò)的魯棒性。池化的方法一般有兩種,一種是平均值池化,另一種是最大值池化。圖4為最大值池化示意圖,濾波器尺寸取為2×2,最大值池化運(yùn)算時(shí),在濾波器覆蓋的每個(gè)區(qū)域中提取該區(qū)域內(nèi)像素的最大值,進(jìn)而得到主要特征。

        圖4 最大值池化示意圖

        2.4 激活函數(shù)

        激活函數(shù)的作用是增加神經(jīng)網(wǎng)絡(luò)模型的非線性。如果沒(méi)有非線性激活函數(shù),那么神經(jīng)網(wǎng)絡(luò)的每一層輸出就相當(dāng)于上一層輸入的線性組合。激活函數(shù)通常使用雙曲正切函數(shù)或修正線性單元函數(shù),作用于隱藏層,將前一層輸入的數(shù)據(jù)非線性化。筆者使用的激活函數(shù)是修正線性單元函數(shù),它不需要對(duì)輸入進(jìn)行歸一化來(lái)防止飽和。使用修正線性單元函數(shù)時(shí),卷積網(wǎng)絡(luò)的訓(xùn)練速度遠(yuǎn)快于使用雙曲正切函數(shù)[4]。修正線性單元函數(shù)的實(shí)現(xiàn)式為[10]:

        fReLU=max(0,x)

        (4)

        修正線性單元函數(shù)的可視化圖像如圖5所示,橫軸為變量x,縱軸為輸出fReLU。

        圖5 修正線性單元函數(shù)可視化圖像

        3 訓(xùn)練流程

        設(shè)置卷積網(wǎng)絡(luò)的學(xué)習(xí)率LEARNING_RATE為1×10-4,設(shè)置訓(xùn)練的迭代次數(shù)TRAINING_ITERATIONS為3000,設(shè)置每次訓(xùn)練的樣本數(shù)量BATCH_SIZE為50,設(shè)置驗(yàn)證集的大小為3000。

        載入訓(xùn)練集數(shù)據(jù)后,將圖像的像素值由0~255轉(zhuǎn)換為0~1,代碼為:

        images = np.multiply(images, 1.0 / 255.0)

        將權(quán)值因數(shù)、偏置因數(shù)初始化,通過(guò)隨機(jī)數(shù)函數(shù)生成。隨機(jī)數(shù)函數(shù)生成一組正態(tài)分布的隨機(jī)數(shù),這組隨機(jī)數(shù)的值在[mean-2*stddev,mean+2*stddev]范圍內(nèi)。shape表示張量的維度,mean表示均值,stddev表示標(biāo)準(zhǔn)差,則有:

        wei_init = tf.truncated_normal(shape, mean=0, stddev=0.1)

        bias_init = tf.constant(0.1, shape)

        筆者采用具有兩層隱藏層的卷積網(wǎng)絡(luò)。構(gòu)造第一層卷積神經(jīng)網(wǎng)絡(luò)時(shí),先進(jìn)行卷積操作,再使用修正線性單元函數(shù)進(jìn)行激活,然后進(jìn)行最大值池化操作。使用相同的方法構(gòu)造第二層卷積神經(jīng)網(wǎng)絡(luò)。構(gòu)造卷積神經(jīng)網(wǎng)絡(luò)的代碼為:

        conv1 = tf.nn.relu(tf.nn.conv2d(image, wei_init, strides, padding))

        pool1 =tf.nn.max_pool(conv1, ksize, strides, padding)

        wei_conv2 = tf.truncated_normal(shape2, stddev=0.1)

        bias_conv2 = tf.constant(0.1, shape2)

        conv2 = tf.nn.relu(tf.nn.conv2d(pool1, wei_conv2) + bias_conv2)

        pool2 =tf.nn.max_pool(conv2, ksize, strides, padding)

        構(gòu)造全連接層時(shí),用隨機(jī)數(shù)函數(shù)生成全連接層的權(quán)值后,使用修正線性單元函數(shù)進(jìn)行激活,并使用dropout函數(shù)防止過(guò)擬合,構(gòu)造代價(jià)函數(shù),對(duì)代價(jià)函數(shù)進(jìn)行優(yōu)化,代碼為:

        pool2_flat = tf.reshape(pool2, [-1, 7*7*64])

        fc1 = tf.nn.relu(tf.matmul(pool2_flat, wei_fc1) + bias_fc1)

        fc1_drop = tf.nn.dropout(fc1, keep_prob)

        y = tf.nn.softmax(tf.matmul(fc1_drop,wei_fc2) + b_fc2)

        cost_y = -tf.reduce_sum(y_*tf.log(y))

        train = tf.train.AdamOptimizer(1e-4).minimize(cost_y)

        在理想情況下,應(yīng)在每次訓(xùn)練中使用所有的訓(xùn)練數(shù)據(jù),但是這樣一來(lái),計(jì)算量將十分大??紤]到計(jì)算代價(jià),分小批次隨機(jī)選擇數(shù)據(jù)進(jìn)行訓(xùn)練。這一方法稱為隨機(jī)訓(xùn)練法,計(jì)算量較小,而且不會(huì)對(duì)結(jié)果造成影響。

        4 試驗(yàn)分析

        4.1 試驗(yàn)數(shù)據(jù)

        獲得手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集,將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集。數(shù)據(jù)集中的圖像是手寫(xiě)數(shù)字的灰度圖像,每張圖片的分辨率為28像素×28像素,總像素為784,灰度值在0~255之間。訓(xùn)練集和測(cè)試集共有785列,第一列為該圖的標(biāo)簽值,即該數(shù)字的真實(shí)值(0~9),之后784列由對(duì)應(yīng)圖像展開(kāi)得到。訓(xùn)練集包含42000幅圖像,測(cè)試集包含28000幅圖像。圖6為訓(xùn)練集中隨機(jī)抽出的圖像。

        圖6 訓(xùn)練集圖像

        4.2 試驗(yàn)結(jié)果

        從訓(xùn)練集的42000幅圖像中抽出3000幅圖作為驗(yàn)證集。將訓(xùn)練集中剩余的39000幅圖像和驗(yàn)證集中的3000幅圖像分別輸入訓(xùn)練得到的卷積神經(jīng)網(wǎng)絡(luò)模型,得到若干次迭代訓(xùn)練后的訓(xùn)練集識(shí)別率和驗(yàn)證集識(shí)別率,如圖7所示。

        圖7 訓(xùn)練集識(shí)別率和驗(yàn)證集識(shí)別率

        圖7中的試驗(yàn)結(jié)果顯示,在經(jīng)過(guò)2000次迭代訓(xùn)練后,驗(yàn)證集的識(shí)別率就已經(jīng)達(dá)到了0.98。相信調(diào)整卷積神經(jīng)網(wǎng)絡(luò)參數(shù)后,識(shí)別率可以更高。

        5 結(jié)束語(yǔ)

        卷積神經(jīng)網(wǎng)絡(luò)已被廣泛應(yīng)用于學(xué)術(shù)界和工業(yè)界,用來(lái)完成圖像識(shí)別任務(wù)。TensorFlow軟件在網(wǎng)絡(luò)構(gòu)建、參數(shù)優(yōu)化、模型訓(xùn)練等方面為用戶提供了便利。

        試驗(yàn)以手寫(xiě)數(shù)字集為例,顯示了使用TensorFlow搭建卷積神經(jīng)網(wǎng)絡(luò)完成圖像識(shí)別的效果,得到了有較高識(shí)別精度的網(wǎng)絡(luò)模型,這對(duì)使用卷積神經(jīng)網(wǎng)絡(luò)和TensorFlow完成更復(fù)雜的圖像識(shí)別任務(wù)具有參考意義。筆者下一步的工作是在具體應(yīng)用場(chǎng)景下,深入理解深度神經(jīng)網(wǎng)絡(luò)的工作機(jī)制,研究如何更有效地選取網(wǎng)絡(luò)參數(shù)。

        [1] LOWE D G. Object Recognition from Local Scale-invariant Features[C]. Computer Vision, 1999. The Proceedings of the Seventh IEEE International Conference on, Kerkyra,1999.

        [2] LOWE D G. Distinctive Image Features from Scale-invariant Keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91-110.

        [3] MITCHELL T M. 機(jī)器學(xué)習(xí)[M].曾華軍,張銀奎,譯.北京: 機(jī)械工業(yè)出版社,2008.

        [4] 徐胤,樂(lè)珺,袁浩巍.基于不變矩特征和RBF神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別[J].上海電氣技術(shù),2015,8(3): 33-36.

        [5] 樂(lè)治后.基于RBF神經(jīng)網(wǎng)絡(luò)的光伏電池故障診斷[J].上海電氣技術(shù), 2015, 8(3): 28-32.

        [6] KRIZHEVSKY A, SUTSKEVER I, HINTON G E, et al. ImageNet Classification with Deep Convolutional Neural Networks[J]. Communications of the ACM,2017,60(6): 84-90.

        [7] ABADI M, AGARWAL A, BARHAM P, et al. Ten-sorFlow: Large-Scale Machine Learning on Het-erogeneous Distributed Systems[Z/OL]. http:∥arvix.org/abs/1603.04467.

        [8] LECUN Y, BENGIO Y, HINTON G E, et al. Deep Learning[J]. Nature, 2015, 521(7553): 436-444.

        [9] GOODFELLOW I, BENGIO Y, COURVILLE A. Deep Learning[M]. Cambridge: MIT Press,2016.

        [10] GLOROT X, BORDES A, BENGIO Y. Deep Sparse Rectifier Neural Networks[C]. Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics, Fort Lauderdale,2011.

        猜你喜歡
        池化識(shí)別率權(quán)值
        基于緊湊型雙線性網(wǎng)絡(luò)的野生茵識(shí)別方法研究
        基于Sobel算子的池化算法設(shè)計(jì)
        一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
        卷積神經(jīng)網(wǎng)絡(luò)中的自適應(yīng)加權(quán)池化
        CONTENTS
        基于類圖像處理與向量化的大數(shù)據(jù)腳本攻擊智能檢測(cè)
        基于真耳分析的助聽(tīng)器配戴者言語(yǔ)可懂度指數(shù)與言語(yǔ)識(shí)別率的關(guān)系
        基于卷積神經(jīng)網(wǎng)絡(luò)和池化算法的表情識(shí)別研究
        提升高速公路MTC二次抓拍車牌識(shí)別率方案研究
        基于權(quán)值動(dòng)量的RBM加速學(xué)習(xí)算法研究
        国产三级精品三级在线| 熟妇无码AV| 久久精品中文字幕无码绿巨人| 日本艳妓bbw高潮一19| 日韩毛片免费无码无毒视频观看| 亚洲日韩av无码中文字幕美国| 亚洲аv天堂无码| 蜜桃视频中文字幕一区二区三区 | 丝袜av乱码字幕三级人妻| 91色老久久偷偷精品蜜臀懂色| 2019最新中文字幕在线观看| 开心婷婷五月激情综合社区| 伊人精品在线观看| 草草影院国产| 日本一区二区三本视频在线观看| 日本黄色影院一区二区免费看 | 亚洲av影片一区二区三区| 国产国拍精品亚洲av在线观看| 7m精品福利视频导航| 98bb国产精品视频| 亚洲va欧美va人人爽夜夜嗨| 中文字幕亚洲日本va| 成人自拍偷拍视频在线观看| 国产精品一区二区av麻豆日韩| 国产成人av一区二区三区在线观看| 精品人妻午夜一区二区三区四区 | 国产无套粉嫩白浆内精| www夜片内射视频在观看视频| 国产乱了真实在线观看| 亚洲精品无码mv在线观看| 精品无码AV无码免费专区| 麻豆视频在线观看免费在线观看| 国产一区二区三区日韩精品| а天堂中文在线官网| 免费一区啪啪视频| 国产一区二区三区免费主播| 国产自拍精品视频免费| 国产97色在线 | 日韩| 中文乱码字幕高清在线观看| 日本激情一区二区三区| 国产性虐视频在线观看|