探索圖片的真相--卷積神經(jīng)網(wǎng)絡(luò)

      網(wǎng)友投稿 1043 2025-03-31

      今天給大家?guī)淼氖蔷矸e神經(jīng)網(wǎng)絡(luò),聽上去是不是挺高大上的?它還有個更響亮的名字CNN,談到CNN應(yīng)該好多同學(xué)都略知一二吧,CNN在做圖像識別上有著很出色的效果,那我們今天對卷積神經(jīng)網(wǎng)絡(luò)一探究竟吧!


      卷積神經(jīng)網(wǎng)絡(luò),CNN(Convolutional Neural Network),屬于深度學(xué)習(xí)技術(shù)的一種算法,主要是進(jìn)行特征學(xué)習(xí),通過分層網(wǎng)絡(luò)獲取分層次的特征信息去解決人工設(shè)計特征的這個難題。

      (TIPS:深度學(xué)習(xí)包含多種技術(shù),CNN只是其中的一種,還包括:自動編碼器AutoEncoder,稀疏編碼Sparse Coding,限制玻爾茲曼機(jī)RBM,深信度網(wǎng)絡(luò)Deep Belief Networks,多層反饋循環(huán)神經(jīng)網(wǎng)絡(luò)RNN)

      卷積神經(jīng)網(wǎng)絡(luò)

      關(guān)于卷積神經(jīng)網(wǎng)絡(luò)我們?nèi)绾问褂猛ㄋ滓锥恼Z言來解釋它呢?

      首先我們需要了解:它就是多層神經(jīng)網(wǎng)絡(luò),善于解決圖像識別問題。那如何去理解神經(jīng)網(wǎng)絡(luò)呢,我們可以簡單的想象一下那密密麻麻的漁網(wǎng),網(wǎng)上的那些節(jié)組成的就是網(wǎng)絡(luò),節(jié)點和節(jié)點之間有線連接著,可以想象成每個神經(jīng)元(節(jié)點)之間都產(chǎn)生連接。

      那卷積神經(jīng)網(wǎng)絡(luò)為什么對于圖像識別分類有著更好的效果呢?

      圖片數(shù)據(jù)對于機(jī)器來說是交大的數(shù)據(jù),尤其是對于高清圖片,機(jī)器讀取和學(xué)習(xí)的時間也就越長,難度可以說指數(shù)級上升。但是卷積神經(jīng)網(wǎng)絡(luò)它可以將數(shù)據(jù)龐大的圖片識別問題去不斷降維(就是從圖像中不斷去抽取細(xì)節(jié)特征,從小的慢慢看),使得該圖像最終能夠被訓(xùn)練。

      那么卷積神經(jīng)網(wǎng)絡(luò)是怎樣工作的呢?

      卷積神經(jīng)網(wǎng)絡(luò)是由三個層組成的,分別是:卷積層,池化層,全連接層。

      卷積層與池化層聯(lián)合工作,形成卷積組,一層一層的去提取特征,最終通過數(shù)個全連接層完成分類。

      卷積層的原理其實就是局部視野的原理,有一張30*30的圖片,我每次只看3*3的大小(步長為3,不重復(fù)看),看100次全部看完,這就是卷積(看下圖去理解卷積)。池化層呢,就是降低維度,學(xué)術(shù)上又叫下采樣,就是從原圖片中進(jìn)行采樣,對于一張720*1080的照片,池化層進(jìn)行采樣,每次采30*30的大小,這就是池化了(看下圖去理解池化)。總的來說,CNN是通過卷積來區(qū)分特征,并且通過卷積產(chǎn)生的權(quán)值共享和池化來降低網(wǎng)絡(luò)參數(shù)的數(shù)量級,最后的工作就和普通神經(jīng)網(wǎng)絡(luò)的工作一樣了。

      卷積神經(jīng)網(wǎng)絡(luò)在圖像數(shù)據(jù)非常多的適合會有出乎意料的效果,但是數(shù)據(jù)集過少的時候往往效果不是很好,容易出現(xiàn)過擬合。

      卷積

      探索圖片的真相--卷積神經(jīng)網(wǎng)絡(luò)

      池化

      LeNet介紹

      我們來看看這一張圖,從原始圖片不斷提取,卷積。

      先進(jìn)入一個卷積層C1,由6個5x5的卷積核組成,卷積出28x28的圖像,然后下采樣到14x14(S2),再進(jìn)一個卷積層C3,由16個5x5的卷積核組成,之后再下采樣到5x5(S4)。我們可以看出,C3-0跟S2-0,1,2連接,C3-1跟S2-1,2,3連接,后面依次類推。最后,通過全連接層C5、F6得到10個輸出,對應(yīng)10個數(shù)字的概率。

      訓(xùn)練

      卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練分為兩個階段:

      階段一:

      正向傳播

      A、從樣本集中取一個樣本(X,Yp),將X輸入網(wǎng)絡(luò);

      B、計算相應(yīng)的實際輸出Op。

      在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運(yùn)行時執(zhí)行的過程。在此過程中,網(wǎng)絡(luò)執(zhí)行的是計算(實際上就是輸入與每層的權(quán)值矩陣相點乘,得到最后的輸出結(jié)果):

      Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))

      階段二:

      反向傳播

      A、算實際輸出Op與相應(yīng)的理想輸出Yp的差;

      B、按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。

      下面我們看看在Tensorflow中我們是怎么去做的吧!

      前方代碼過于簡單,及時帶好眼睛!!!

      數(shù)據(jù)準(zhǔn)備

      教程的圖片從Cifar數(shù)據(jù)集中獲取,download_cifar.py從Keras自帶的Cifar數(shù)據(jù)集中獲取了部分Cifar數(shù)據(jù)集,并將其轉(zhuǎn)換為jpg圖片。

      默認(rèn)從Cifar數(shù)據(jù)集中選取了3類圖片,每類50張圖,分別是

      0 => 飛機(jī)? ?1 => 汽車? ?2 => 鳥

      導(dǎo)入相關(guān)庫

      import os#圖像讀取庫

      from PIL import Image#矩陣運(yùn)算庫

      import numpy as np

      import Tensorflow as tf

      配置信息

      設(shè)置了一些變量增加程序的靈活性。圖片文件存放在data_dir文件夾中,train表示當(dāng)前執(zhí)行是訓(xùn)練還是測試,model-path約定了模型存放的路徑。

      # 數(shù)據(jù)文件夾

      data_dir = "data"

      # 訓(xùn)練還是測試

      train = True

      # 模型文件路徑

      model_path = "model/image_model"

      數(shù)據(jù)讀取

      pillow讀取的圖像像素值在0-255之間,需要?dú)w一化。

      在讀取圖像數(shù)據(jù)、Label信息的同時,記錄圖像的路徑,方便后期調(diào)試。

      定義placeholder(容器)

      定義卷積網(wǎng)絡(luò)(Conv和Pooling部分)

      定義全連接部分

      定義損失函數(shù)和優(yōu)化器

      定義模型保存器/載入器

      訓(xùn)練階段執(zhí)行

      如果trian為True,進(jìn)行訓(xùn)練。訓(xùn)練需要使用sess.run(tf.global_variables_initializer())初始化參數(shù),訓(xùn)練完成后,需要使用saver.save(sess, model_path)保存模型參數(shù)。

      測試階段執(zhí)行

      如果train為False,進(jìn)行測試,測試需要使用saver.restore(sess, model_path)讀取參數(shù)。

      今天就到這里了,其實細(xì)心的同學(xué)你們會發(fā)現(xiàn)代碼大部分都是配置數(shù)據(jù)讀寫數(shù)據(jù),真正花在訓(xùn)練上的代碼也不是很多,其實對于深度學(xué)習(xí)也就是這個意思,主要工作并不是敲代碼,而是如何調(diào)參。TensorFlow在算法的封裝上確實是做的很好的,我們可以直接拿過來用。大家也快去試試吧!

      代碼地址:

      https://www.bytelang.com/o/s/c/uEOz1asEK6s=

      感興趣的掃個二維碼吧!

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

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:word書簽在哪設(shè)置(Word書簽在哪里)
      下一篇:WPS演示中電子鐘的制作方法
      相關(guān)文章
      亚洲精品天堂成人片AV在线播放| 亚洲男人的天堂在线va拉文| 国产成人99久久亚洲综合精品| 亚洲中文字幕一二三四区苍井空 | 精品亚洲综合在线第一区| 亚洲国产电影av在线网址| 国产精品亚洲一区二区在线观看| 亚洲成_人网站图片| 学生妹亚洲一区二区| 亚洲中文无码卡通动漫野外| 亚洲综合小说另类图片动图| 亚洲午夜理论片在线观看| 亚洲精品无码不卡在线播放| 亚洲AV日韩综合一区| 亚洲欧美日韩中文无线码| 亚洲AV成人精品日韩一区| 久久亚洲AV成人无码国产电影 | 亚洲精品无码一区二区| 亚洲JIZZJIZZ妇女| 亚洲AV无码成H人在线观看| 亚洲人成无码久久电影网站| 国产亚洲精品线观看动态图| 亚洲精品国产品国语在线| 亚洲乱码一区二区三区在线观看| 亚洲av无码无在线观看红杏| 久久精品a亚洲国产v高清不卡| 久久精品国产亚洲AV电影| 亚洲国产成人手机在线电影bd| 亚洲乱码一二三四区国产| 亚洲精品天堂在线观看| 亚洲AV无码一区二区乱子仑| 亚洲XX00视频| 亚洲精品制服丝袜四区| 日韩精品一区二区亚洲AV观看 | 久久亚洲国产成人精品性色| 亚洲午夜国产精品无卡| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲国产精品丝袜在线观看| 国产亚洲精品a在线观看app| 亚洲永久永久永久永久永久精品| 亚洲一级片在线播放|