日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

基于tensorflow的MNIST手写字识别(一)--白话卷积神经网络模型

發布時間:2025/3/21 88 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于tensorflow的MNIST手写字识别(一)--白话卷积神经网络模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、卷積神經網絡模型知識要點卷積卷積

1、卷積

2、池化

3、全連接

4、梯度下降法

5、softmax

本次就是用最簡單的方法給大家講解這些概念,因為具體的各種論文網上都有,連推導都有,所以本文主要就是給大家做個鋪墊,如有錯誤請指正,相互學習共同進步。

二、卷積神經網絡講解

2.1卷積神經網絡作用

大家應該知道大名鼎鼎的傅里葉變換,即一個波形,可以有不同的正弦函數和余弦函數進行疊加完成,卷積神經網絡也是一樣,可以認為一張圖片是由各種不同特征的圖片疊加而成的,所以它的作用是用來提取特定的特征,舉個例子,比如給定一張圖片,然后我只想提取它的輪廓,于是就需要卷積神經網絡。


2.2卷積神經網絡模型


如圖是大名鼎鼎的LeNet-5(識別數字的卷積網絡),效果和論文在此,這里拿出來只是為了說明一下卷積神經網絡的模型,就像圖中那樣,經過多次,卷積,池化(又叫子采樣),然后全連接,就完工了。

2.3 卷積


2.3.1 卷積的原理

其實卷積很好理解,左側綠色的部分的5*5矩陣其實一般就是我們輸入的圖片的灰度值(可以想象成一張5px*5px的黑白照片,然后把黑白照片上的每一個點轉化成矩陣上的每一個元素),然后上面的黃色部分矩陣就是我們的過濾器,用來提取特征,(其實應該叫濾波器或者卷積核),讓卷積核在輸入矩陣上進行從左到右,從上到下滑動,然后每一次滑動,兩個矩陣對應位置的元素相乘然后求和,就是右邊那個矩陣的一個元素。

2.3.2 滑動的步長-stride

上面那張圖片從左到右,每次滑動的時候只移動一格,但是其實它一次滑動多格,這就是步長

2.3.3 卷積的邊界處理-padding

如上圖所示,卷積后的矩陣只有3*3,比原來的圖片要小了,因為邊界沒有了,所以要考慮這個邊界的問題,網上說卷積的邊界處理有兩種方式:

一、丟掉邊界,也就是就按右邊那個縮小的矩陣來。

二、復制邊界,也就是把左邊的最外層原封不動地復制過去

但是在看matlab代碼和tensorflow代碼的時候發現并不是那么簡單的事情。

matlab中conv2這個“padding”參數可以設為三個值FULL,SAME,VALID

tensorflow中conv2d的"padding"參數可以設為兩個值SAME,VALID

它們對邊界是這樣處理的,對輸入的矩陣,包裹n層0,然后再按照上面所說的卷積方法進行卷積,這個n怎么求呢,

FULL:edge_row?=?kernel_row?-?1; ? edge_cols?=?kernel_cols?-?1;

SAME:edge_row?=?(kernel_row?-?1)?/?2;edge_cols?=?(kernel_cols?-?1)?/?2;

VALID:edge_row?=?edge_cols?=?0;

edge_row就是邊的行數,kernel_row就是卷積核的行數,所以上面講的其實就是VALID模式

2.3.4 卷積與神經網絡


右下角就是卷積的數學公式,矩陣的對應元素相乘求和,然后加上一個偏置值

2.4 池化


池化分為兩種,一種是最大池化,在選中區域中找最大的值作為抽樣后的值,另一種是平均值池化,把選中的區域中的平均值作為抽樣后的值,這樣做的,原因是為了后面全連接的時候減少連接數

2.5 全連接


左邊的是沒有沒有進行卷積的全連接,假設圖片是1000*1000的,然后用1M的神經元去感知,最后需要10^12個權值作為參數,右邊是經過卷積過的,每個圓點是一個神經元,因此只是用一個卷積核的話,其實只要100*10^6,數量級就大大減少,而且因為提取的就是所需的特征,所以在加快訓練速度的時候對結果并不會產生過大的影響,甚至更為精確。

2.6 梯度下降法

可能很多人會問,那個卷積核是怎么得出來的呢,其實它是被各種訓練集訓練出來的,利用梯度下降法使得我們的參數到達最優解。


梯度下降法可以這樣子理解,假設我們正在下山,要使得下山的路徑達到最短,于是我們每走一步之前就判斷一下四面八方從哪個方向跨出這一步會最短,不過學過算法的人應該都知道,有個問題就是,我們當前走的這一步是當前位置最短的,但是真正從山上到山下最短路徑可能并不路過這一步。也就是說這是個局部最優解,而不是全局最優解,我們得到的路徑并不一定是最短的,但是也足夠優秀,原因就是,得到最優解費時費力,性價比并不高。這一個知識點還是建議大家伙去看一下斯坦福Andrew?Ng的《機器學習》,然后就能理解上面所說的權值參數要少的意義了。

2.7最后?softmax

softmax是分類用的,說直白一點就是歸一化,因為這個店最好跟例子結合起來,所以暫時不多說,感興趣的可以去網上找,也可以關注后面的系列文章。


三、總結

其實感覺講的并不深入,因此還是希望各位能自己去仔細鉆研一下,這里給各位一些基礎吧,讀起論文和數學公式來會更輕松一些。

四、參考文章

神經網絡介紹

http://ufldl.stanford.edu/wiki/index.php/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C

技術向:一文讀懂卷積神經網絡CNN

http://www.cnblogs.com/nsnow/p/4562308.html

深度學習(卷積神經網絡)一些問題總結

http://blog.csdn.net/nan355655600/article/details/17690029

卷積神經網絡(CNN)

http://ibillxia.github.io/blog/2013/04/06/Convolutional-Neural-Networks/

Deep Learning模型之:CNN卷積神經網絡(一)深度解析CNN

http://www.cnblogs.com/nsnow/p/4562363.html

數據挖掘系列(10)——卷積神經網絡算法的一個實現(轉)

http://blog.sina.com.cn/s/blog_4ff49c7e0102vl5m.html

Matlab/DeepLearnToolbox

https://github.com/rasmusbergpalm/DeepLearnToolbox

Deep Learning論文筆記之(四)CNN卷積神經網絡推導和實現

http://blog.csdn.net/zouxy09/article/details/9993371

Deep Learning論文筆記之(五)CNN卷積神經網絡代碼理解

http://blog.csdn.net/zouxy09/article/details/9993743

斯坦福? 池化

http://ufldl.stanford.edu/wiki/index.php/%E6%B1%A0%E5%8C%96

CNN神經網絡層次分析

http://blog.csdn.net/liulina603/article/details/44915905

深度學習筆記1(卷積神經網絡)

http://blog.csdn.net/lu597203933/article/details/46575779

CNN公式推導

http://blog.csdn.net/lu597203933/article/details/46575871

前向型神經網絡之BPNN(附源碼)

http://blog.csdn.net/heyongluoyao8/article/details/48213345

殘差與誤差的區別

http://wenku.baidu.com/link?url=DUDkyV1tnD_SEGzgcxb9AaFU5VUcP9ISNR8q39-fpCcq_LGUHY7ucx5vDwr-MCfU_ofr7yIQZ_UgTfiivTtaDOulW2DD3pGs07eYmiQv5P7

反向傳導算法

http://deeplearning.stanford.edu/wiki/index.php/%E5%8F%8D%E5%90%91%E4%BC%A0%E5%AF%BC%E7%AE%97%E6%B3%95

圖像卷積與濾波的一些知識點

http://blog.csdn.net/zouxy09/article/details/49080029

CNN卷積神經網絡原理簡介+代碼詳解

http://doc.okbase.net/u012162613/archive/126058.html

卷積神經網絡(lenet)

http://deeplearning.net/tutorial/lenet.html

激活函數的作用

https://www.zhihu.com/question/22334626

神經網絡入門第一部分

http://blog.sina.com.cn/s/blog_6a67b5c50100tspb.html

神經網絡入門第二部分

http://blog.sina.com.cn/s/blog_6a67b5c50100tspe.html

卷積神經網絡全面解析

http://www.moonshile.com/post/juan-ji-shen-jing-wang-luo-quan-mian-jie-xi

Deep learning:四十一(Dropout簡單理解)

http://www.cnblogs.com/tornadomeet/p/3258122.html

DeepLearning (六) 學習筆記整理:神經網絡以及卷積神經網絡

http://www.07net01.com/2015/11/963741.html

深度卷積網絡CNN與圖像語義分割

http://blog.csdn.net/xiahouzuoxin/article/details/47789361

MATLAB conv2卷積的實現

http://blog.csdn.net/celerychen2009/article/details/38852105



文/wlmnzf(簡書作者)
原文鏈接:http://www.jianshu.com/p/2186766b69dc


總結

以上是生活随笔為你收集整理的基于tensorflow的MNIST手写字识别(一)--白话卷积神经网络模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。