精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【連載】深度學習筆記9:卷積神經網絡(CNN)入門

人工智能實訓營 ? 2018-10-08 12:56 ? 次閱讀

前面的八篇學習筆記,基本上都是圍繞著深度神經網絡(DNN)和全連接網絡(FCN)在學習。從本篇開始,筆者將跟著大家一起學習和研究深度學習的另一個主題——卷積神經網絡(Convolutional Neural Network),也就是我們平常眼熟的 CNN。卷積神經網絡作為當前計算機視覺領域的核心技術,發展到如今已是枝繁葉茂。筆者對于這一塊的初步打算是從卷積網絡的基本原理講起,將卷積網絡的前向傳播和反向傳播過程講清楚,以及如何使用 numpytensorflow 實現卷積網絡。然后會從深度卷積網絡的發展歷程出發,對主要的經典深度網絡進行深度剖析,對計算機視覺的三大核心任務:圖像分別、目標檢測和圖像分割等技術算法進行詳細學習和講解。

從前面的學習中,我們了解了深度神經網絡的一般結構,它的前向傳播和反向傳播機制,而卷積神經網絡相較于深度神經網絡,其主要區別就在于卷積層,卷積層的存在使得神經網絡具備更強的學習能力。除了卷積層之外,池化層(Pooling layer)的存在也使得卷積神經網絡的魯棒性更強,最后則是 DNN 中常見的全連接層(Fully Connected layer)。一個典型的卷積神經網絡通常包括這三層。

卷積神經網絡的結構

那到底什么是卷積?
從數學來說,卷積可以理解為一種類似于加權運算一樣的操作。在圖像處理中,針對圖像的像素矩陣,卷積操作就是用一個卷積核來逐行逐列的掃描像素矩陣,并與像素矩陣做元素相乘,以此得到新的像素矩陣。這個過程是為卷積。其中卷積核也叫過濾器或者濾波器,濾波器在輸入像素矩陣上掃過的面積稱之為感受野。可能你還有點暈,讓我來更詳細的解釋下。

卷積過程


且看上面的動圖(這里感謝一下 NG 大大給我們提供這么好的教學資料),我們用一個 3x3 的濾波器去掃描一個 5x5 的像素矩陣,用濾波器中每一個元素與像素矩陣中感受野內的元素進行乘積運算,可得到了一個 3x3 的輸出像素矩陣,這個輸出的 3x3 像素矩陣能夠較大程度的提取原始像素矩陣的圖像特征,這也是卷積神經網絡之所以有效的原因。為防止有同學不清楚卷積是如何計算的,筆者以輸出像素矩陣中第一個元素 4 為例,演示一下計算過程:

1x1 + 1x0 + 1x1 + 0x0 +1x1 + 1x0 + 0x1 +0x0 + 1x1 = 4

當然,這里你可能會問:如何確定經過卷積后的輸出矩陣的維度?我們是有計算公式的。假設原始輸入像素矩陣的 shape 為 nxn,濾波器的 shape 為 fxf,那么輸出像素矩陣的 shape 為 (n-f+1)x(n-f+1)

大體上卷積操作就是這么個過程,是不是非常簡單。但這里我們也需要注意兩個問題:第一個就是濾波器移動的步幅問題,上面的例子中我們的濾波器的移動步長為 1 ,即在像素矩陣上一格一格平移。但如果濾波器是以兩個單位或者更多單位平移呢?這里就涉及到卷積過程中的 stride 問題。第二個問題涉及到卷積操作的兩個缺點,第一個缺點在于每次做卷積,你的圖像就會變小,可能做了幾次卷積之后,你的圖像就變成 1x1,這就不好辦了。第二個缺點在于原始輸入像素矩陣的邊緣和角落的像素點只能被濾波器掃到一次,而靠近像素中心點的像素點則會被多次掃到進行卷積。這就使得邊緣和角落里的像素特征提取不足,這就涉及到卷積過程中的 padding 問題。

針對第一個問題,也就是卷積步長問題,其實也很簡單,就是按照正常的卷積過程去操作,只不過每次多走一個像素單位而已。且看卷積步幅為 2 的卷積操作示例:


我們用一個 3x3 的濾波器去對原始像素為 7x7 的圖像進行卷積操作,設定卷積步長為 2,可看到輸出像素矩陣的第二行第一個元素 69 的計算跨越了兩個像素格點,計算過程為:

3x3 + 4x4 + 8x4 + 7x1 + 8x0 + 3x2 + 4x-1 + 2x0 + 1x3 = 69

加入步長之后我們的輸出像素矩陣的 shape 的計算公式需要更新一下為:
((n-f)/s+1)x((n-f)/s+1) 。其中 s 為步長。

針對第二個問題,卷積神經網絡采用一種叫做 padding 的操作,即對原始像素邊緣和角落進行零填充,以期能夠在卷積過程中充分利用邊緣和角落的像素特征。至于填充多少 0 像素值,一般有兩個選擇,一是 valid 填充,也就是不填充,所以就不用管它了。我們在意的是有填充,就是第二種,same 填充方法。即填充后,輸入和輸出大小是一致的,對于nxn大小的輸入像素,如果你用填充了 p 個像素點之后,n 就變成了 n+2p,最后輸出像素的 shape 計算公式就變成了 ((n+2p-f)/s+1)x((n+2p-f)/s+1),要想讓 n+2p-f+1=n 的話,輸入輸出大小相等,則 p=(f-1)/2。所以,一般而言,濾波器的大小 f 都會選擇為奇數個。

實際操作中,padding 的編程寫法如下:

def zero_pad(X, pad):
  X_pad = np.pad(X, ((0,0), (pad, pad), (pad, pad), (0, 0)), 'constant')  
return X_pad

numpy 一行代碼即可搞定。測試效果如下:

np.random.seed(1)
x = np.random.randn(4, 3, 3, 2) x_pad = zero_pad(x, 2) fig, axarr = plt.subplots(1, 2) axarr[0].set_title('x') axarr[0].imshow(x[0,:,:,0]) axarr[1].set_title('x_pad') axarr[1].imshow(x_pad[0,:,:,0])

本節對卷積神經網絡的卷積細節進行了詳細的講解和筆記。關于帶有顏色通道的卷積操作我們下次筆記見。

本文由《自興動腦人工智能》項目部 凱文 投稿。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1791

    文章

    46859

    瀏覽量

    237582
  • 機器學習
    +關注

    關注

    66

    文章

    8377

    瀏覽量

    132410
  • 深度學習
    +關注

    關注

    73

    文章

    5492

    瀏覽量

    120978
收藏 人收藏

    評論

    相關推薦

    卷積神經網絡的基本概念、原理及特點

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習算法,它在圖像識別、視頻分析、自然語言處
    的頭像 發表于 07-11 14:38 ?799次閱讀

    卷積神經網絡的實現原理

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然
    的頭像 發表于 07-03 10:49 ?495次閱讀

    卷積神經網絡分類方法有哪些

    卷積神經網絡(Convolutional Neural Networks,CNN)是一種深度學習模型,廣泛應用于圖像分類、目標檢測、語義分割
    的頭像 發表于 07-03 09:40 ?399次閱讀

    卷積神經網絡的基本結構和工作原理

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然
    的頭像 發表于 07-03 09:38 ?431次閱讀

    cnn卷積神經網絡分類有哪些

    卷積神經網絡CNN)是一種深度學習模型,廣泛應用于圖像分類、目標檢測、語義分割等領域。本文將詳細介紹C
    的頭像 發表于 07-03 09:28 ?469次閱讀

    cnn卷積神經網絡三大特點是什么

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然
    的頭像 發表于 07-03 09:26 ?724次閱讀

    卷積神經網絡訓練的是什么

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然
    的頭像 發表于 07-03 09:15 ?351次閱讀

    深度學習卷積神經網絡的應用

    隨著人工智能技術的飛速發展,深度學習卷積神經網絡(Convolutional Neural Network, CNN)作為其中的重要分支,
    的頭像 發表于 07-02 18:19 ?810次閱讀

    卷積神經網絡的原理與實現

    1.卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、
    的頭像 發表于 07-02 16:47 ?498次閱讀

    卷積神經網絡cnn模型有哪些

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然
    的頭像 發表于 07-02 15:24 ?662次閱讀

    卷積神經網絡的基本結構及其功能

    卷積神經網絡(Convolutional Neural Network,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語
    的頭像 發表于 07-02 14:45 ?1186次閱讀

    卷積神經網絡的原理是什么

    卷積神經網絡(Convolutional Neural Network,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、語音識別、自然語
    的頭像 發表于 07-02 14:44 ?565次閱讀

    深度神經網絡模型cnn的基本概念、結構及原理

    ,其核心是構建具有多層結構的神經網絡模型,以實現對復雜數據的高效表示和處理。在眾多深度學習模型中,卷積神經網絡
    的頭像 發表于 07-02 10:11 ?9552次閱讀

    詳解深度學習神經網絡卷積神經網絡的應用

    處理技術也可以通過深度學習來獲得更優異的效果,比如去噪、超分辨率和跟蹤算法等。為了跟上時代的步伐,必須對深度學習神經網絡技術有所
    的頭像 發表于 01-11 10:51 ?1912次閱讀
    詳解<b class='flag-5'>深度</b><b class='flag-5'>學習</b>、<b class='flag-5'>神經網絡</b>與<b class='flag-5'>卷積</b><b class='flag-5'>神經網絡</b>的應用

    卷積神經網絡的優點

    卷積神經網絡的優點? 卷積神經網絡(Convolutional Neural Network,CNN)是一種基于
    的頭像 發表于 12-07 15:37 ?4102次閱讀