機器學習——深度學習之卷積神經網絡(CNN)——LeNet卷積神經網絡結構

目錄

一、卷積神經網絡

1、卷積神經的作用

2、LeNet

1)數據庫準備——minst

2)模型·

二、關于卷積神經網絡結構的一些術語定義

1、特征圖(Feature map)

2、height(長度)、width(寬度)、Channel(通道)

3、卷積核(convolution kernel、filter)

4、步長(stride)

1)步長剛好使得卷積核遍歷圖像

2)步長不能使得卷積核遍歷圖像

問題1:原始圖像有一些數據沒有被卷積核訓練怎么解決?

5、小結——原始圖像大小、卷積核大小、步長核特征圖像大小之間有什么關系

三、LeNet卷積神經網絡結構

1、LeNet卷積神經網絡結構模型

2、LeNet第一層卷積層 convolution

1)LeNet第一層卷積層模型

2) LeNet第一層卷積層待求參數個數

3)共享權重(weight sharing)

問題2:上圖的神經網絡和之前學習人工神經網絡(常規神經網絡)有什么區別?

2、LeNet第二層池化層 (subsampling)

問題3:卷積后進行后向傳播時按照正常的BP即可,但是池化后的層進行進行后向傳播到池化前的層呢?

3、LeNet第三層卷積層 (convolution)

4、全連接層(full connection)

1)全連接層的模型和定義

2)全連接層的待定參數

5、輸出層(OUTPUT)

1)目標函數E

問題4:什么是SoftMax?

6、LeNet卷積神經網絡結構參數計算

四、TENSORFLOW實現LeNet-5


圖 LeNet卷積神經網絡結構前接:《機器學習——深度學習之數據庫和自編碼器》

一、卷積神經網絡

1、卷積神經的作用

由手工設計卷積核轉換為自動學習卷積核

卷積公式有很多:如傅里葉變換、小波變換等

卷積核主要的作用就是將元素先乘再加(積分的本質就是加)

2、LeNet

1)數據庫準備——minst

2)模型·

二、關于卷積神經網絡結構的一些術語定義

圖 LeNet卷積神經網絡結構

1、特征圖(Feature map)

原圖像經過卷積核作用得到的圖像稱為特征圖,如圖 LeNet卷積神經網絡結構所示

2、height(長度)、width(寬度)、Channel(通道)

height和width定義了圖像(我們叫做tensor張量)的大小,長寬

channel定義了圖像的顏色,如果是彩色channel=3,表示rgb三原色,如果是黑白二值圖,則channel=1

如圖 LeNet卷積神經網絡結構,圖像的大小為32*32,具體的單位應該是像素,顏色為彩色因為channel=3

3、卷積核(convolution kernel、filter)

如圖 LeNet卷積神經網絡結構,卷積核的大小為5*5,也是彩色,這里的卷積核可以理解為是一個小的圖像,活動范圍是32*32*3的長方體內,按照一定的規律,卷積核可以對圖像進行掃描

以二值圖為例進行說明

二值圖像大小為3*3*1,卷積核為2*2*1,用卷積核從左上角開始進行掃描,按照一行一行進行,將卷積核與掃描重合的圖像對應的參數進行相乘然后再相加,得到卷積核在該位置的卷積數,如上圖的Pi,上圖還有一個偏置(大家可以按照人工神經網絡的模型去理解這里的b),上圖圖像處每一個顏色框代表卷積核掃描的一個地方,掃描的地方就是在進行卷積,最后會得到如下圖所示的公式。每移動一個地方,就對應得到了特征圖的一個參數

那么卷積核究竟該按照什么規律去移動呢,這就涉及到了步長這個概念。

4、步長(stride)

步長顧名思義就是每一步移動的長度,這里的步長控制的是卷積核掃描的長度,如stride=【1,1】表示的是卷積核每一步向右移動一個單位長度,換行時也是在縱向上移動一個單位長度

如下圖移動的步長就是【1,1】

1)步長剛好使得卷積核遍歷圖像

圖像5*5*3

卷積核2*2*3

步長【1,1】

特征圖像4*4*1

2)步長不能使得卷積核遍歷圖像

圖像5*5*3

卷積核2*2*3

步長【2,2】

特征圖像2*2*1

由上圖可知原始圖像沒有被卷積核全部遍歷(上圖紅色框圖部分)

問題1:原始圖像有一些數據沒有被卷積核訓練怎么解決?

答:補零法(zero-padding)

如下圖所示將原始圖像兩邊用零補齊,使得原始圖像的原有特征能夠全部被卷積核所卷積

最多補零數為四周均不加一層零

5、小結——原始圖像大小、卷積核大小、步長核特征圖像大小之間有什么關系

假設有:
原始圖像大小:M*N*3

卷積核大小:m*n*3

步長:(u,v)

特征圖像大小:K*L*1

則有:

K<=(M-m)/u + 1

L<=(N-n)/v + 1

三、LeNet卷積神經網絡結構

1、LeNet卷積神經網絡結構模型

分為5層

第一層卷積層——convolution

第二層池化層——subsampling

第三層卷積層——convolution

第四層池化層——subsampling

第五層:

全連接層——full connection

全連接層——full connection

2、LeNet第一層卷積層 convolution

32*32*3——28*28*6

1)LeNet第一層卷積層模型

?

特征圖的個數和卷積核的個數是一樣的,具體點就是特征圖像的channel的值和卷積核的個數相同

注意:非線性轉換不會改變圖像的大小,只是對圖像的每一個特征進行非線性變化,最后得到的大小和非線性變換前是一樣的

?

2) LeNet第一層卷積層待求參數個數

首先是一個卷積核中的參數個數為:

m=5*5*3 = 75

在LeNet中有6個卷積核則:6m = 75*6=450

注意:以上的參數的個數沒有偏置,一般一個卷積核是會自帶一個偏置的,即b,所以有卷積核參數為:

6*(m+1)=6*76=456,有沒有偏置有自己定義

實際上b是一個和卷積核大小一樣的矩陣,但是一般將其作為一個參數來進行處理

其實偏置的形式可以通過原始圖像大小、卷積核大小、步長核特征圖像大小之間的關系來進行確定的,先計算出特征圖像的大小(K,L),這樣的話偏置的形式和特征圖像的大小是一樣的

3)共享權重(weight sharing)

共享權重就是同一個權重被不同的神經元之間所共享,或者說不同的神經元之間的權重有相同的

這里可以用類似于神經網絡的方法來表示以下圖的關系

?

問題2:上圖的神經網絡和之前學習人工神經網絡(常規神經網絡)有什么區別?

答:兩個區別:

不本質區別:上圖中,并不是所有的輸入神經元和下一層的神經元都有權重,即只有部分神經元之間進行了連線,而常規的神經網絡是每個神經元之間都有需要連線的即有權重,但是這個區別我們把沒有連線之間神經元的權重看成是0即可,因此此為不本質區別

本質區別:上圖神經網絡的權重是共享的

2、LeNet第二層池化層 (subsampling)

28*28*6——14*14*6

做的事情就是降維采樣,即將第一層得到的特征圖像中的大小分成若干份,將這若干份每一份中的參數特征取一個平均值,作為這一份的新的參數,這個過程叫做池化,最后組合成一個新的特征圖像

問題3:卷積后進行后向傳播時按照正常的BP即可,但是池化后的層進行進行后向傳播到池化前的層呢?

答:因為池化的過程就是將4個格子取了一個平均值作為池化后的一個格子,那當我們進行后向傳播時,我們將池化后的層的一個格子的1/4梯度作為池化前的4個格子的每一個格子的梯度即可

3、LeNet第三層卷積層 (convolution)

14*14*6——10*10*16

利用和圖像同channel的卷積核去卷積圖像得到的特征圖像的channel=1,這里用了16個和圖像同channel的卷積核去卷積圖像,因此得到的特征圖像的channel=16,至于為什么是10,可以通過《原始圖像大小、卷積核大小、步長核特征圖像大小之間的共關系》來進行求得,(14-5)/1 + 1 = 10

?

4、全連接層(full connection)

這一部分按照人工神經網絡去理解就好了

1)全連接層的模型和定義

在全連接前之前還有一層池化層,這里不再贅述,與第一層的池化層原理一樣

全連接層其實即使常規的神經網絡層了,和卷積層的區別就是:

不本質區別:上圖中,并不是所有的輸入神經元和下一層的神經元都有權重,即只有部分神經元之間進行了連線,而常規的神經網絡是每個神經元之間都有需要連線的即有權重,但是這個區別我們把沒有連線之間神經元的權重看成是0即可,因此此為不本質區別

本質區別:上圖神經網絡的權重是共享的

說簡單一點就是:全連接層的相鄰兩層的神經元是全部都會相互連接的,且權重不會共享,每一對神經元之間的權重是獨立的

2)全連接層的待定參數

由上圖可知,第一層全連接層的輸入為池化層的輸出,其特征參數為:5*5*16=400,也就是說全連接層的輸入層的神經元個數為400個,輸出層神經元個數為120,則有參數(400+1)*120個,其中加1是因為還有一個偏置;

同理·可得第二層全連接層的輸入層即使第一層全連接層的輸出,有神經元個數120個,輸出層有神經元個數80,則參數的個數為:(120+1)*84

還有最后一層就是全連接層到輸出層(output),易得參數個數為:(84+1)*10

5、輸出層(OUTPUT)

?????? 這一層主要就是將前面通過卷積、池化、全連接得到的預測值輸出,在LeNet卷積神經網絡中,使用的數據庫是Mnist庫,共有10類,因此輸出層為10個神經元。屬于哪一類那么哪一類神經元的輸出值為1,其余9個神經元的輸出為0

這樣就回到我們熟悉的人工神經網絡問題上去了!

具體可見:《【機器學習】神經網絡BP理論與python實例系列》

但是需要注意的是:目標函數發生了改變

1)目標函數E

交叉熵的方式

問題4:什么是SoftMax?

答:可見文章:《小白都能看懂的softmax詳解》

6、LeNet卷積神經網絡結構參數計算

注:計算速度取決于卷積層(乘法多)——運行速度,參數個數取決于全連接層——存儲空間

四、TENSORFLOW實現LeNet-5

用戶只需要編寫前向計算就可以,后向傳播是tensorflow包自動計算的,并且tensorflow的數據和神經網絡的描述是分開的,先是對神經網絡進行描述,然后再將數據參數帶入到神經網絡中進行訓練測試等。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256354.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256354.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256354.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工業相機(3D)主要參數詳述

一、前言 準確的完成相機選型是一個視覺工程師必備的技能&#xff0c;而選型前必須對其內部參數了如指掌。工業相機是一種比較復雜的產品&#xff0c;其參數很多&#xff0c;每個參數可能會有不同的標準&#xff0c;下面對主要的參數會做比較詳細的闡述。 二、參數詳述 2.1 …

JAVA8永久代

在Java虛擬機&#xff08;以下簡稱JVM&#xff09;中&#xff0c;類包含其對應的元數據&#xff0c;比如類的層級信息&#xff0c;方法數據和方法信息&#xff08;如字節碼&#xff0c;棧和變量大小&#xff09;&#xff0c;運行時常量池&#xff0c;已確定的符號引用和虛方法表…

Struts 2初體驗

Struts2簡介&#xff1a; Struts2是一個基于MVC設計模式的Web應用框架&#xff0c;它本質上相當于一個servlet&#xff0c;在MVC設計模式中&#xff0c;Struts2作為控制器(Controller)來建立模型與視圖的數據交互。 Struts 2 目錄結構:     apps目錄&#xff1a;Struts2示例…

機器學習——深度學習之數據庫和自編碼器

目錄 一、數據庫——數據獲取 1、Mnist 2、ImageNet 二、自編碼器&#xff08;Auto-encoder&#xff09;——參數初始化 1、功能 2、基本思想 1&#xff09;訓練第一層 2&#xff09;訓練第二層及以后的神經網絡 ? 3&#xff09;利用BP對整個神經網絡的參數初始值進…

Halcon例程詳解 (深度圖轉換為3D圖像)—— xyz_attrib_to_object_model_3d

一、前言 深度圖向點云圖進行轉換是進行3D檢測項目時會遇到的問題&#xff0c;halcon里也有針對此問題的相關例程&#xff0c;下面對此例程進行分析。通過學習此例程&#xff0c;我們可以掌握如何將一張深度圖像和一張正常二維圖像轉換為3D點云。 二、分析 * 初始化界面 dev…

動態代理之Cglib淺析

什么是Cglib Cglib是一個強大的&#xff0c;高性能&#xff0c;高質量的代碼生成類庫。它可以在運行期擴展JAVA類與實現JAVA接口。其底層實現是通過ASM字節碼處理框架來轉換字節碼并生成新的類。大部分功能實際上是ASM所提供的&#xff0c;Cglib只是封裝了ASM&#xff0c;簡化了…

機器學習——深度學習之卷積神經網絡(CNN)——AlexNet卷積神經網絡結構

目錄 一、AlexNet卷積神經網絡結構模型 1、數據庫ImageNet 2、AlexNet第一層卷積層 二、AlexNet卷積神經網絡的改進 1、非線性變化函數的改變——ReLU 2、最大池化&#xff08;Max Pooling&#xff09;概念的提出——卷積神經網絡通用 1&#xff09;池化層 2&#xff0…

POJ - 3470 Walls

小鳥往四個方向飛都枚舉一下&#xff0c;數據范圍沒給&#xff0c;離散以后按在其中一個軸線排序&#xff0c;在線段樹上更新墻的id&#xff0c;然后就是點查詢在在哪個墻上了。 這題有個trick&#xff0c;因為數據范圍沒給我老以為是inf設置小了&#xff0c;WA了很多發。&…

C# —— 深入理解委托類型

一. 委托定義 1. 委托與多播委托 委托類型表示對具有特定參數列表和返回類型的方法的引用&#xff0c;定義了委托實例可以調用的某類方法。 通過委托&#xff0c;我們可以動態的通過委托變量來調用委托方法。一般用delegate來命名委托類型,但Action和Func也可以達到同樣的效果…

【VS開發】【C++語言】reshuffle的容器實現算法random_shuffle()的使用

假設你需要指定范圍內的隨機數&#xff0c;傳統的方法是使用ANSI C的函數random(),然后格式化結果以便結果是落在指定的范圍內。但是&#xff0c;使用這個方法至少有兩個缺點。首先&#xff0c;做格式化時&#xff0c;結果常常是扭曲的&#xff0c;所以得不到正確的隨機數&…

C#委托——基礎2

在上一篇隨筆中&#xff0c;簡要說明了怎樣定義委托&#xff0c;定義事件&#xff0c;訂閱事件&#xff0c;最后也實現了效果&#xff0c;就是當員工類的某個對象&#xff0c;執行某個事件時&#xff0c;委托事件被觸發&#xff0c;后面也得到了結果&#xff0c;但是想象一下實…

機器學習——深度學習之編程工具、流行網絡結構、卷積神經網絡結構的應用

目錄 一、編程工具 caffe實現LENET-5 二、流行的網絡結構 1、VGGNET 2、Googlenet ? 3、ResNet? ? 三、卷積神經網絡的應用 1、人臉識別 ? 2、人臉驗證 3、人臉特征點檢測 4、卷積神經網絡壓縮 一、編程工具 caffe的優點&#xff1a;模型標準化&#xff0c;源代碼…

Halcon例程詳解(激光三角系統標定)—— calibrate_sheet_of_light_calplate.hdev

前言 1 激光三角測距 激光三角測距法原理很簡單,是通過一束激光以一定的入射角度照射被測目標,激光在目標表面會產生漫反射,在另一角度利用透鏡對反射激光匯聚成像,光斑成像在CCD(Charge-coupled Device,感光耦合組件)位置傳感器上。當被測物體沿激光方向發生移動時,…

【轉】如何實現一個文件系統

如何實現一個文件系統 摘要 本章目的是分析在Linux系統中如何實現新的文件系統。在介紹文件系統具體實現前先介紹文件系統的概念和作用&#xff0c;抽象出文件系統概念模型。熟悉文件系統的內涵后&#xff0c;我們再進一步討論Linux系統中文件系統的特殊風格和具體文件系統在Li…

【tenserflow】——數據類型以及常用屬性

目錄 一、什么是Tensor&#xff1f; 二、Tensorflow常見數據類型 三、Tensorflow常見屬性device\cpu\gpu\ndim\shape\rank等 1、創建一個tensor 1&#xff09;tf.constant() 2)tf.Variable() 2、判斷一個變量是否為tensor張量 3、生成不同設備&#xff08;cpu,gpu&#x…

C# 事件詳解附實例分析

一、定義 事件是兩個對象間發布消息和響應后處理消息的過程&#xff0c;通過委托類型來實現的。 事件的機制被稱為發布-訂閱機制&#xff0c;其算法過程為&#xff1a;首先定義一個委托類型&#xff0c;然后在發布者類中聲明一個event事件&#xff0c;同時此類中還有一個用來觸…

網頁開發瀏覽器兼容性問題

1、在ie6下的雙margin問題 在ie6下&#xff0c;設置了float的元素&#xff0c;以float:left為例&#xff0c;如圖所示。會出現第一個浮動元素&#xff0c;即相對于父級元素浮動的&#xff0c;會出現雙倍margin的問題。 注意僅僅是相對于父級元素浮動的&#xff0c;即第一個會出…

【tensorflow】——創建tensor的方法

目錄 1、tf.constant() 2、tf.Variable() 3、tf.zeros():用0去填充指定形狀的數組 4、tf.convert_to_tensor(a,dtypetf.int32) 5、tf.ones():用1去填充指定形狀的數組 6、tf.fill():用指定的元素去填充指定形狀的數組 7、隨機化初始化進行創建 1&#xff09;normal正態分…

Halcon —— 圖像像素類型與轉換

圖像類型 就目前工業領域主流的圖像處理工具halcon來講&#xff0c;有以下幾種圖像類型&#xff1a;‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’&#xff0c;具體含義如下圖所示。 ‘byte’ 每像素1字節…

軟件方法

核心工作流業務建模&#xff08;組織建模&#xff09;&#xff1a;描述組織內部各個系統如何協作&#xff0c;使得組織可以為其他的組織提供有價值的服務&#xff0c;新系統只不過是組織為了對外提供更好的服務&#xff0c;對自己的內部重新設計而購買的一個零件。需求&#xf…