999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于卷積神經網絡和TensorFlow的手寫數字識別研究

2018-04-18 02:14:38袁浩巍
上海電氣技術 2018年1期
關鍵詞:特征

徐 胤, 袁浩巍, 李 智

上海電氣集團股份有限公司 中央研究院 上海 200070

1 研究背景

手寫字符識別可用于識別票據數字、車牌號等,應用廣泛。字符識別可用傳統的機器學習方法實現,如k-近鄰算法、支持向量機、貝葉斯方法等。使用傳統識別方法處理圖像時,首先要對圖像進行預處理,然后由人工設計特征提取方法。現有的特征提取方法有類哈爾特征、方向梯度直方圖特征、尺度不變特征變換[1-2]、加速穩健特征等,這些特征提取方法各有優勢,如類哈爾特征常用于人臉識別,方向梯度直方圖特征常用于行人檢測。特征提取后,將所得的特征導入一個分類器進行訓練,得到分類器的相關參數。使用時,將待識別圖像特征提取后,再輸入經訓練得到的分類器中進行識別。

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

筆者首先載入手寫數字數據集,將數據集分為訓練集和驗證集;然后搭建具有兩個隱藏層的卷積神經網絡模型,輸入訓練集,設置模型參數和損失函數后進行訓練,得到卷積神經網絡的因數;最后使用訓練出的卷積神經網絡對驗證集中的手寫數字進行識別。

2 深度學習與卷積神經網絡

傳統神經網絡通常采用反向傳播算法進行特征訓練。在隨機給定一組權重因數后,得到網絡的輸出值,然后算出實際輸出與目標輸出之間的誤差,將誤差反饋至前面各層的節點,并更新每個節點的權值。逐步迭代這個過程,直至得到誤差函數的全局最小值。

深度學習是在傳統神經網絡基礎上發展起來的深度神經網絡,其結構層次與神經網絡相同,即包括輸入層、隱藏層、輸出層,且只在相鄰層的節點之間有連接。為了克服傳統神經網絡訓練過程中訓練時間長、參數多等問題,深度學習使用了與傳統神經網絡不同的訓練機制。卷積神經網絡是一種在網絡層中用卷積運算來代替矩陣乘法運算的神經網絡,適合用來處理圖像數據[8]。

2.1 網絡結構

前饋型神經網絡的連接方式采用多層結構,其基本結構為輸入層、隱藏層、輸出層。隱藏層也稱中間層,隱藏層的層數大于等于1,包括卷積層、池化層、全連接層。圖1為前饋型神經網絡結構,從左至右依次為輸入層、隱藏層1、隱藏層2、輸出層。前饋型神經網絡具有強大的非線性處理能力和模式識別能力。

圖1 前饋型神經網絡結構圖

卷積神經網絡是一種前饋型神經網絡,圖2為卷積神經網絡結構[6],有八層帶權重因數的層數,第一層是數據輸入層,之后連接的五層是卷積層,最后三層是全連接層,全連接層的最后一層為輸出層。

圖2 卷積神經網絡結構圖

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

2.2 圖像卷積

圖像卷積能夠自動提取圖像中的特征,減少多余信息,用于神經網絡中,具有代替人工設計特征的功能。圖像卷積過程也稱特征學習,特征學習能夠自動適配新的任務,只需在新數據上進行訓練,自動找出新的卷積核,可以避免繁重的特征工程。

卷積運算是針對兩個實變函數的一種數學運算,用*號表示,其運算式為:

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

(1)

式中:t為時間;x為輸入信號;ω為核函數;s(t)為x在ω核函數下經過時間t后的卷積結果。

在處理圖像卷積時,將二維圖像I作為卷積運算的輸入,分別在水平和豎直方向執行卷積操作,卷積規則為[9]:

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

(2)

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

在許多神經網絡庫中有互相關函數,這些函數和卷積運算比較相似,但沒有翻轉,也稱為卷積運算,卷積后的圖像為[9]:

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

(3)

使用互相關函數的圖像卷積過程如圖3所示,卷積核在原圖像上滑動,與原圖像進行相乘和加權疊加后得到特征映射圖。

圖3 互相關函數圖像卷積過程

卷積核翻轉的唯一目的是實現可交換性,但是這在神經網絡應用中并不是一個重要的性質。而另一方面,互相關運算更簡單,且更容易實現。

2.3 池化運算

池化指對卷積后的圖像進行采樣,以降低卷積圖像的維數,即減少參數。另外,池化還能消除信號的偏移和扭曲,增強網絡的魯棒性。池化的方法一般有兩種,一種是平均值池化,另一種是最大值池化。圖4為最大值池化示意圖,濾波器尺寸取為2×2,最大值池化運算時,在濾波器覆蓋的每個區域中提取該區域內像素的最大值,進而得到主要特征。

圖4 最大值池化示意圖

2.4 激活函數

激活函數的作用是增加神經網絡模型的非線性。如果沒有非線性激活函數,那么神經網絡的每一層輸出就相當于上一層輸入的線性組合。激活函數通常使用雙曲正切函數或修正線性單元函數,作用于隱藏層,將前一層輸入的數據非線性化。筆者使用的激活函數是修正線性單元函數,它不需要對輸入進行歸一化來防止飽和。使用修正線性單元函數時,卷積網絡的訓練速度遠快于使用雙曲正切函數[4]。修正線性單元函數的實現式為[10]:

fReLU=max(0,x)

(4)

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

圖5 修正線性單元函數可視化圖像

3 訓練流程

設置卷積網絡的學習率LEARNING_RATE為1×10-4,設置訓練的迭代次數TRAINING_ITERATIONS為3000,設置每次訓練的樣本數量BATCH_SIZE為50,設置驗證集的大小為3000。

載入訓練集數據后,將圖像的像素值由0~255轉換為0~1,代碼為:

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

將權值因數、偏置因數初始化,通過隨機數函數生成。隨機數函數生成一組正態分布的隨機數,這組隨機數的值在[mean-2*stddev,mean+2*stddev]范圍內。shape表示張量的維度,mean表示均值,stddev表示標準差,則有:

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

bias_init = tf.constant(0.1, shape)

筆者采用具有兩層隱藏層的卷積網絡。構造第一層卷積神經網絡時,先進行卷積操作,再使用修正線性單元函數進行激活,然后進行最大值池化操作。使用相同的方法構造第二層卷積神經網絡。構造卷積神經網絡的代碼為:

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)

構造全連接層時,用隨機數函數生成全連接層的權值后,使用修正線性單元函數進行激活,并使用dropout函數防止過擬合,構造代價函數,對代價函數進行優化,代碼為:

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)

在理想情況下,應在每次訓練中使用所有的訓練數據,但是這樣一來,計算量將十分大。考慮到計算代價,分小批次隨機選擇數據進行訓練。這一方法稱為隨機訓練法,計算量較小,而且不會對結果造成影響。

4 試驗分析

4.1 試驗數據

獲得手寫數字數據集,將數據集劃分為訓練集和測試集。數據集中的圖像是手寫數字的灰度圖像,每張圖片的分辨率為28像素×28像素,總像素為784,灰度值在0~255之間。訓練集和測試集共有785列,第一列為該圖的標簽值,即該數字的真實值(0~9),之后784列由對應圖像展開得到。訓練集包含42000幅圖像,測試集包含28000幅圖像。圖6為訓練集中隨機抽出的圖像。

圖6 訓練集圖像

4.2 試驗結果

從訓練集的42000幅圖像中抽出3000幅圖作為驗證集。將訓練集中剩余的39000幅圖像和驗證集中的3000幅圖像分別輸入訓練得到的卷積神經網絡模型,得到若干次迭代訓練后的訓練集識別率和驗證集識別率,如圖7所示。

圖7 訓練集識別率和驗證集識別率

圖7中的試驗結果顯示,在經過2000次迭代訓練后,驗證集的識別率就已經達到了0.98。相信調整卷積神經網絡參數后,識別率可以更高。

5 結束語

卷積神經網絡已被廣泛應用于學術界和工業界,用來完成圖像識別任務。TensorFlow軟件在網絡構建、參數優化、模型訓練等方面為用戶提供了便利。

試驗以手寫數字集為例,顯示了使用TensorFlow搭建卷積神經網絡完成圖像識別的效果,得到了有較高識別精度的網絡模型,這對使用卷積神經網絡和TensorFlow完成更復雜的圖像識別任務具有參考意義。筆者下一步的工作是在具體應用場景下,深入理解深度神經網絡的工作機制,研究如何更有效地選取網絡參數。

[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. 機器學習[M].曾華軍,張銀奎,譯.北京: 機械工業出版社,2008.

[4] 徐胤,樂珺,袁浩巍.基于不變矩特征和RBF神經網絡的圖像識別[J].上海電氣技術,2015,8(3): 33-36.

[5] 樂治后.基于RBF神經網絡的光伏電池故障診斷[J].上海電氣技術, 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.

猜你喜歡
特征
抓住特征巧觀察
離散型隨機變量的分布列與數字特征
具有兩個P’維非線性不可約特征標的非可解群
月震特征及與地震的對比
如何表達“特征”
被k(2≤k≤16)整除的正整數的特征
中等數學(2019年8期)2019-11-25 01:38:14
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
詈語的文化蘊含與現代特征
新聞傳播(2018年11期)2018-08-29 08:15:24
抓住特征巧觀察
基于特征篩選的模型選擇
主站蜘蛛池模板: 伊人中文网| 秋霞国产在线| 亚洲动漫h| 久久黄色毛片| 亚洲婷婷丁香| 日韩AV无码一区| 国产精品第一区在线观看| 日日拍夜夜操| 欧美一区二区三区国产精品| 国产成人AV大片大片在线播放 | 精品亚洲欧美中文字幕在线看| 69视频国产| 在线观看亚洲成人| 国产成人精品一区二区不卡| 91香蕉视频下载网站| 国产成人免费观看在线视频| 青青草综合网| 99久久国产综合精品2020| 欧美日本激情| 无码网站免费观看| 手机在线看片不卡中文字幕| 久久黄色一级片| 9丨情侣偷在线精品国产| 亚洲乱码在线播放| 久久久久久久久久国产精品| 日本伊人色综合网| 91色爱欧美精品www| 18禁色诱爆乳网站| 国产美女一级毛片| 亚洲精品国产综合99久久夜夜嗨| 在线精品欧美日韩| 又猛又黄又爽无遮挡的视频网站| 97在线视频免费观看| 国产精品深爱在线| 色妺妺在线视频喷水| 久操中文在线| 国产精品亚洲专区一区| 国产免费a级片| 99国产精品一区二区| 超碰精品无码一区二区| 色偷偷av男人的天堂不卡| 国产一在线观看| 天天摸天天操免费播放小视频| 欧洲极品无码一区二区三区| 香蕉在线视频网站| 在线高清亚洲精品二区| 97免费在线观看视频| 中文字幕免费在线视频| 成人毛片免费观看| 久久青草免费91观看| 久久黄色视频影| 91久久精品日日躁夜夜躁欧美| 美女一级毛片无遮挡内谢| 精品久久777| 国产玖玖视频| a级毛片免费播放| 99久久无色码中文字幕| 久久一本精品久久久ー99| 亚洲永久免费网站| 国产精品久线在线观看| 国产精品亚洲va在线观看| 久久免费视频播放| 另类综合视频| 欧美亚洲国产精品久久蜜芽| 久久久波多野结衣av一区二区| 成人午夜天| 午夜国产精品视频| 91黄视频在线观看| 午夜精品久久久久久久99热下载| 亚洲一级毛片在线观播放| 精品人妻AV区| 亚洲黄网在线| 免费A级毛片无码无遮挡| 无码精油按摩潮喷在线播放| 亚洲精品国产首次亮相| 亚洲福利一区二区三区| 中文字幕首页系列人妻| 国产91av在线| 日韩美女福利视频| 国产午夜无码片在线观看网站 | 亚洲高清日韩heyzo| 成人一区在线|