一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【連載】深度學(xué)習(xí)筆記9:卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門

人工智能實(shí)訓(xùn)營 ? 2018-10-08 12:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)

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

卷積過程


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

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

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

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

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


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

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

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

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

實(shí)際操作中,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])

本節(jié)對卷積神經(jīng)網(wǎng)絡(luò)的卷積細(xì)節(jié)進(jìn)行了詳細(xì)的講解和筆記。關(guān)于帶有顏色通道的卷積操作我們下次筆記見。

本文由《自興動(dòng)腦人工智能》項(xiàng)目部 凱文 投稿。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1807

    文章

    49029

    瀏覽量

    249598
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8503

    瀏覽量

    134635
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122800
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    自動(dòng)駕駛感知系統(tǒng)中卷積神經(jīng)網(wǎng)絡(luò)原理的疑點(diǎn)分析

    背景 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)的核心技術(shù)主要包括以下幾個(gè)方面:局部連接、權(quán)值共享、多卷積核以及池化。這些技術(shù)共同作用,使得
    的頭像 發(fā)表于 04-07 09:15 ?363次閱讀
    自動(dòng)駕駛感知系統(tǒng)中<b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>原理的疑點(diǎn)分析

    BP神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)的比較

    多層。 每一層都由若干個(gè)神經(jīng)元構(gòu)成,神經(jīng)元之間通過權(quán)重連接。信號在神經(jīng)網(wǎng)絡(luò)中是前向傳播的,而誤差是反向傳播的。 卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:53 ?673次閱讀

    如何優(yōu)化BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)

    優(yōu)化BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率是提高模型訓(xùn)練效率和性能的關(guān)鍵步驟。以下是一些優(yōu)化BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率的方法: 一、理解學(xué)習(xí)率的重要性
    的頭像 發(fā)表于 02-12 15:51 ?942次閱讀

    BP神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)之間存在著密切的關(guān)系,以下是對它們之間關(guān)系的介紹: 一、BP神經(jīng)網(wǎng)絡(luò)的基本概念 BP神經(jīng)網(wǎng)絡(luò),即反向傳播
    的頭像 發(fā)表于 02-12 15:15 ?863次閱讀

    深度學(xué)習(xí)入門:簡單神經(jīng)網(wǎng)絡(luò)的構(gòu)建與實(shí)現(xiàn)

    深度學(xué)習(xí)中,神經(jīng)網(wǎng)絡(luò)是核心模型。今天我們用 Python 和 NumPy 構(gòu)建一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)。 神經(jīng)網(wǎng)絡(luò)由多個(gè)
    的頭像 發(fā)表于 01-23 13:52 ?531次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)工具與框架

    卷積神經(jīng)網(wǎng)絡(luò)因其在圖像和視頻處理任務(wù)中的卓越性能而廣受歡迎。隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,多種實(shí)現(xiàn)工具和框架應(yīng)運(yùn)而生,為研究人員和開發(fā)者提供了強(qiáng)大的支持。 TensorFlow 概述
    的頭像 發(fā)表于 11-15 15:20 ?672次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整方法

    卷積神經(jīng)網(wǎng)絡(luò)因其在處理具有空間層次結(jié)構(gòu)的數(shù)據(jù)時(shí)的卓越性能而受到青睞。然而,CNN的成功很大程度上依賴于其參數(shù)的合理設(shè)置。參數(shù)調(diào)整是一個(gè)復(fù)雜的過程,涉及到多個(gè)超參數(shù)的選擇和優(yōu)化。 網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-15 15:10 ?1212次閱讀

    使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類的步驟

    使用卷積神經(jīng)網(wǎng)絡(luò)CNN)進(jìn)行圖像分類是一個(gè)涉及多個(gè)步驟的過程。 1. 問題定義 確定目標(biāo) :明確你想要分類的圖像類型,例如貓和狗、不同的植物種類等。 數(shù)據(jù)需求 :確定需要多少數(shù)據(jù)以及數(shù)據(jù)的類型
    的頭像 發(fā)表于 11-15 15:01 ?850次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)在自然語言處理中的應(yīng)用

    自然語言處理是人工智能領(lǐng)域的一個(gè)重要分支,它致力于使計(jì)算機(jī)能夠理解、解釋和生成人類語言。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(CNNs)作為一種強(qiáng)大的模型,在圖像識別和語音處理等領(lǐng)域取
    的頭像 發(fā)表于 11-15 14:58 ?807次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較

    深度學(xué)習(xí)領(lǐng)域,神經(jīng)網(wǎng)絡(luò)模型被廣泛應(yīng)用于各種任務(wù),如圖像識別、自然語言處理和游戲智能等。其中,卷積神經(jīng)網(wǎng)絡(luò)(CNNs)和傳統(tǒng)
    的頭像 發(fā)表于 11-15 14:53 ?1878次閱讀

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

    深度學(xué)習(xí)近年來在多個(gè)領(lǐng)域取得了顯著的進(jìn)展,尤其是在圖像識別、語音識別和自然語言處理等方面。卷積神經(jīng)網(wǎng)絡(luò)作為深度
    的頭像 發(fā)表于 11-15 14:52 ?847次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本原理與算法

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋
    的頭像 發(fā)表于 11-15 14:47 ?1785次閱讀

    關(guān)于卷積神經(jīng)網(wǎng)絡(luò),這些概念你厘清了么~

    許多種類型,但本文將只關(guān)注卷積神經(jīng)網(wǎng)絡(luò)(CNN),其主要應(yīng)用領(lǐng)域是對輸入數(shù)據(jù)的模式識別和對象分類。CNN是一種用于深度
    發(fā)表于 10-24 13:56

    深度識別算法包括哪些內(nèi)容

    深度識別算法是深度學(xué)習(xí)領(lǐng)域的一個(gè)重要組成部分,它利用深度神經(jīng)網(wǎng)絡(luò)模型對輸入數(shù)據(jù)進(jìn)行高層次的理解和識別。
    的頭像 發(fā)表于 09-10 15:28 ?844次閱讀

    FPGA在深度神經(jīng)網(wǎng)絡(luò)中的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)作為其核心算法之一,在圖像識別、語音識別、自然語言處理等領(lǐng)域取得了顯著成果。然而,傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-24 10:42 ?1208次閱讀