• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于TensorFlow卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別

      2020-02-19 17:52:36
      數(shù)字通信世界 2020年1期
      關(guān)鍵詞:池化層池化準(zhǔn)確率

      高 艷

      (山西農(nóng)業(yè)大學(xué)信息學(xué)院,太谷 030800)

      0 引言

      2016年3月,谷歌公司利用卷積神經(jīng)網(wǎng)絡(luò)開發(fā)的人工智能圍棋程序Alphago戰(zhàn)勝了圍棋世界冠軍,引起了廣泛的關(guān)注[1]。卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)的一種方法,在圖像識(shí)別、自然語言處理、語音識(shí)別等領(lǐng)域有著重要的應(yīng)用。

      神經(jīng)網(wǎng)絡(luò)的研究最早開始于20世紀(jì)40年代,之后了一定的低谷期,原因在于軟硬件的限制無法滿足神經(jīng)網(wǎng)絡(luò)的極大的并行計(jì)算量。21世紀(jì)以來,隨著軟硬件技術(shù)的不斷發(fā)展,有專門處理圖像的圖像處理器GPU,能夠支持大規(guī)模的集群節(jié)點(diǎn)計(jì)算,在此背景下,谷歌公司開發(fā)Tensorflow框架出現(xiàn)并得到了快速發(fā)展[2]。文章采用基于Tensorflow框架應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)對(duì)cifar數(shù)據(jù)集的50,000張圖片進(jìn)行了處理、建模、訓(xùn)練、測(cè)試等,可以為不同行業(yè)的進(jìn)一步應(yīng)用打下良好的基礎(chǔ)。

      1 Tensorflow框架

      Tensorflow是Google公司發(fā)布的開源人工智能深度學(xué)習(xí)框架,具有可移植性、可擴(kuò)展性、高效性、靈活性等特點(diǎn)[3]。TensorFlow提供了豐富的構(gòu)建和訓(xùn)練機(jī)器學(xué)習(xí)模型的API庫,支持卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTMN)等深度神經(jīng)網(wǎng)絡(luò)模型。TensorFlow支持C++、Python、Go、Java、Lua、Javascript、R等主流語言,能夠應(yīng)用到教育、交通、醫(yī)療等多個(gè)行業(yè)[4]。

      2 卷積神經(jīng)網(wǎng)絡(luò)基本原理

      卷積神經(jīng)網(wǎng)絡(luò)的神經(jīng)元模型[5]如圖1所示,

      圖1 神經(jīng)元模型

      數(shù)學(xué)公式表達(dá)為:

      式中,x為輸入;w為權(quán)重;b為偏置值;f為激活函數(shù)。

      卷積神經(jīng)網(wǎng)絡(luò)主要包括輸入層、卷積層、池化層、全連接層、輸出層。卷積和池化過程是為了更好的提取圖像特征。

      (1)輸入層:對(duì)于圖像識(shí)別來說輸入層即我們輸入的原始圖像。

      (2)卷基層:卷積是一種有效提取圖片特征的方法。一般用一個(gè)正方形卷積核,遍歷圖片上的每一個(gè)像素點(diǎn)。圖片與卷積核重合區(qū)域內(nèi)相對(duì)應(yīng)的每一個(gè)像素值乘卷積核內(nèi)相對(duì)應(yīng)點(diǎn)的權(quán)重,然后求和,再加上偏置后,最后得到輸出圖片中的一個(gè)像素值[6],如圖2所示。

      圖2 卷積過程

      (3)池化層:卷基層得到的結(jié)果并經(jīng)過激活函數(shù)后作為輸入,根據(jù)池化核窗口以及滑動(dòng)步長(zhǎng),求得到圖片在池化核窗口中最大值或者平均值作為輸出,取最大值即為最大池化,取平均值為平均池化,平均池化有利于保留圖片背景的特征。

      (4)全連接:池化層得到的結(jié)果需要進(jìn)行拉直后喂入全連接網(wǎng)絡(luò),使用神經(jīng)元模型公式進(jìn)行計(jì)算即可,即每個(gè)輸入值乘以不同的權(quán)重求和加偏置并激活經(jīng)過多次神經(jīng)網(wǎng)絡(luò)連接,并且在訓(xùn)練過程中需要舍棄一定的神經(jīng)元節(jié)點(diǎn),之后通過Softmax函數(shù)回歸,得到輸出層。

      圖3 全連接過程

      3 實(shí)驗(yàn)過程

      3.1 運(yùn)行環(huán)境介紹

      實(shí)驗(yàn)采用Anaconda軟件,并安裝jupyter環(huán)境,以及TensorFlow框架、numpy庫、PIL庫等基礎(chǔ)上完成。

      3.2 實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)備及處理

      數(shù)據(jù)采用keras官方下載的cifar-10-batches-py數(shù)據(jù)集,包含5萬張訓(xùn)練集圖片和1萬張測(cè)試集圖片。圖像大小為32*32的3通道彩色圖像,圖片分為10類,分別為飛機(jī)、汽車、鳥、貓、鹿、狗、青蛙、馬、輪船、卡車,如圖4所示。

      首先將測(cè)試集和訓(xùn)練集的二進(jìn)制圖像轉(zhuǎn)換為jpg格式圖像,具體操作是在打開二進(jìn)制文件的基礎(chǔ)上用pickle庫對(duì)文件進(jìn)行加載,numpy庫對(duì)文件進(jìn)行處理、用scipy庫對(duì)圖形進(jìn)行保存,通過循環(huán)完成所有文件的處理。

      圖4 10類圖片

      3.3 卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建

      基于TensorFlow的神經(jīng)網(wǎng)絡(luò),數(shù)據(jù)用張量(tensor)來表示,神經(jīng)網(wǎng)絡(luò)用計(jì)算圖來搭建,用會(huì)話執(zhí)行計(jì)算圖,并優(yōu)化權(quán)重得到模型。整個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型搭建過程如圖5所示。

      圖5 卷積神經(jīng)網(wǎng)絡(luò)模型

      具體處理步驟如下:

      (1)輸入層:采用第3.2部分中得到的jpg圖像,由于轉(zhuǎn)換后的數(shù)據(jù)按順序排列的,需要打亂圖片的順序,并將圖片數(shù)據(jù)轉(zhuǎn)換為數(shù)組,根據(jù)批次100劃分測(cè)試集和訓(xùn)練集,然后喂入神經(jīng)網(wǎng)絡(luò)卷積層。

      (2)卷積、池化層:連續(xù)采用2次卷積、激活、池化對(duì)圖像處理,進(jìn)行特征提取,卷積層1卷積核大小為5*5,核個(gè)數(shù)為20,池化層1池化窗口為2*2,步長(zhǎng)為2*2,卷積層2的卷積核大小為4*4,核個(gè)數(shù)為40,池化層2池化窗口為2*2,步長(zhǎng)為2*2,之后將數(shù)據(jù)拉直轉(zhuǎn)化進(jìn)入全連接層。Tensorflow中采用tf.layers.conv2d()函數(shù)、tf.layers.max_pooling2d()函數(shù)完成卷積和池化,用tf.nn.relu()函數(shù)完成激活。relu函數(shù)的公式[7]為:除relu激活函數(shù)外,常用的激活函數(shù)有sigmoid和tanh。

      (3)全連接:在全連接層中為了防止過擬合現(xiàn)象的發(fā)生,加入Dropout,取值為0.25,在模型的訓(xùn)練過程中暫時(shí)舍棄一部分神經(jīng)元,使用該模型時(shí)被舍棄的神經(jīng)元恢復(fù)正常。Tensorflow中使用tf.layers.dropout()來防止過擬合,使用tf.layers.dense()完成全連接,用arg_max()取每行最大值的索引做為預(yù)測(cè)值。

      3.4 模型運(yùn)行及評(píng)價(jià)

      根據(jù)搭建好卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算圖,利用Tensorflow的會(huì)話(Session)功能運(yùn)行計(jì)算圖,完成樣本訓(xùn)練。

      對(duì)模型的好壞評(píng)價(jià),可以應(yīng)用“均方誤差”、“交叉熵”等方法,讓損失函數(shù)最小。這里采用“交叉熵”函數(shù)來計(jì)算訓(xùn)練的損失,使用AdamOptimizer優(yōu)化器對(duì)于損失進(jìn)行優(yōu)化,優(yōu)化學(xué)習(xí)率為0.001。Tensorflow中采用tf.nn.softmax_cross_entropy_with_logits()進(jìn)行交叉熵?fù)p失計(jì)算,使用tf.train.AdamOptimizer()優(yōu)化損失函數(shù)。

      “交叉熵”函數(shù)的公式為:

      式中,y_代表實(shí)際值;y代表預(yù)測(cè)值。

      模型訓(xùn)練過程需要不斷進(jìn)行迭代,使得損失盡可能的小,這樣建立的卷積神經(jīng)網(wǎng)絡(luò)模型也就越好。本文進(jìn)行了2,000輪的迭代之后得到卷積神經(jīng)網(wǎng)絡(luò)的模型。

      4 實(shí)驗(yàn)測(cè)試及結(jié)果

      將測(cè)試數(shù)據(jù)集應(yīng)用到第3.4部得到的模型中,比較真實(shí)的值與模型預(yù)測(cè)值,查看預(yù)測(cè)結(jié)果的準(zhǔn)確率,如果出現(xiàn)準(zhǔn)確率比較低的情況,需要調(diào)整學(xué)習(xí)率,激活函數(shù)或者加入其他優(yōu)化方法如滑動(dòng)平均、正則化等對(duì)模型進(jìn)行進(jìn)一步的優(yōu)化。文章經(jīng)過以上應(yīng)用模型之后,發(fā)現(xiàn)不同圖像的準(zhǔn)確率有所不同,如表1所示,其中青蛙識(shí)別的準(zhǔn)確率最高,為79%,汽車的識(shí)別準(zhǔn)確率為78%,貓和狗的識(shí)別準(zhǔn)確率最低,分別為41%和53%,所有圖像識(shí)別的平均準(zhǔn)確率為65%。

      另外,從每一類別圖片被識(shí)別為其他錯(cuò)誤類別的數(shù)量發(fā)現(xiàn),飛機(jī)和鳥在識(shí)別中容易發(fā)生混淆,汽車和卡車識(shí)別中容易發(fā)生混淆,貓和狗容易容易識(shí)別中發(fā)生混淆,鹿和馬識(shí)別中容易發(fā)生混淆。

      表1 不同種類圖片識(shí)別準(zhǔn)確率

      5 結(jié)束語

      模型建立及訓(xùn)練的過程中可以對(duì)卷積核的個(gè)數(shù)、激活函數(shù)、學(xué)習(xí)率、損失函數(shù)、訓(xùn)練輪數(shù)不斷調(diào)整,最后確定教好的模型。對(duì)于不同領(lǐng)域中的圖片,可以使用不同的卷積神經(jīng)網(wǎng)絡(luò)算法,也可以對(duì)不同的神經(jīng)網(wǎng)絡(luò)算法進(jìn)行改進(jìn),以更好的應(yīng)用到相關(guān)研究領(lǐng)域中。另外可以進(jìn)一步使用AlexNet等神經(jīng)網(wǎng)絡(luò)算法對(duì)圖片進(jìn)行識(shí)別,提高圖片的分類效果。由于自身?xiàng)l件設(shè)備等的不足,論文圖像識(shí)別的準(zhǔn)確率還有待進(jìn)一步提高,之后將會(huì)進(jìn)行更深一步的研究。

      猜你喜歡
      池化層池化準(zhǔn)確率
      基于緊湊型雙線性網(wǎng)絡(luò)的野生茵識(shí)別方法研究
      無線電工程(2024年8期)2024-09-16 00:00:00
      基于Sobel算子的池化算法設(shè)計(jì)
      卷積神經(jīng)網(wǎng)絡(luò)中的自適應(yīng)加權(quán)池化
      卷積神經(jīng)網(wǎng)絡(luò)模型研究分析*
      乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
      健康之家(2021年19期)2021-05-23 11:17:39
      不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
      2015—2017 年寧夏各天氣預(yù)報(bào)參考產(chǎn)品質(zhì)量檢驗(yàn)分析
      基于卷積神經(jīng)網(wǎng)絡(luò)的紙幣分類與點(diǎn)鈔
      基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的人體行為識(shí)別研究
      科技傳播(2020年6期)2020-05-25 11:07:46
      基于卷積神經(jīng)網(wǎng)絡(luò)和池化算法的表情識(shí)別研究
      包头市| 萨嘎县| 浮梁县| 时尚| 云安县| 湖北省| 万州区| 比如县| 辰溪县| 武定县| 石林| 藁城市| 堆龙德庆县| 偏关县| 华亭县| 磴口县| 达日县| 芜湖市| 绥芬河市| 微山县| 台江县| 会宁县| 洛南县| 江都市| 鱼台县| 宁陵县| 昆山市| 额尔古纳市| 曲靖市| 南郑县| 商城县| 崇信县| 铁力市| 濉溪县| 高唐县| 长丰县| 沁阳市| 海淀区| 台州市| 西盟| 棋牌|