日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

04.卷积神经网络 W1.卷积神经网络

發(fā)布時間:2024/7/5 卷积神经网络 85 豆豆
生活随笔 收集整理的這篇文章主要介紹了 04.卷积神经网络 W1.卷积神经网络 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1. 計算機視覺
    • 2. 邊緣檢測示例
    • 3. 更多邊緣檢測
    • 4. Padding
    • 5. 卷積步長
    • 6. 三維卷積
    • 7. 單層卷積網(wǎng)絡(luò)
    • 8. 簡單卷積網(wǎng)絡(luò)示例
    • 9. 池化層
    • 10. 卷積神經(jīng)網(wǎng)絡(luò)示例
    • 11. 為什么使用卷積?
    • 作業(yè)

參考:
吳恩達視頻課
深度學(xué)習(xí)筆記

1. 計算機視覺

舉例:圖片貓🐱識別,目標(biāo)檢測(無人駕駛),圖像風(fēng)格轉(zhuǎn)換(比如轉(zhuǎn)成素描)等等

面臨的挑戰(zhàn):

  • 數(shù)據(jù)的輸入可能會非常大
  • 一張1000×1000的圖片,特征向量的維度達到了1000×1000×3(RGB,3通道) = 300萬
  • 在第一隱藏層中,你也許會有1000個隱藏單元,使用標(biāo)準(zhǔn)的全連接網(wǎng)絡(luò),這個矩陣的大小將會是1000×300萬,矩陣會有30億個參數(shù)
  • 在參數(shù)如此大量的情況下,難以獲得足夠的數(shù)據(jù)防止神經(jīng)網(wǎng)絡(luò)發(fā)生過擬合,處理30億參數(shù)的神經(jīng)網(wǎng)絡(luò),巨大的內(nèi)存需求也受不了

你希望模型也能處理大圖。為此,你需要進行卷積計算,下節(jié)將用邊緣檢測的例子來說明卷積的含義

2. 邊緣檢測示例


例如 6x6 的單通道灰度圖像,檢測垂直邊緣,構(gòu)造一個矩陣[10?110?110?1]\left[\begin{array}{rrr}1 & 0 & -1 \\ 1 & 0 & -1 \\ 1 & 0 & -1\end{array}\right]???111?000??1?1?1???? (過濾器 / 核),進行卷積運算*(convolve)

import numpy as np image = np.array([[3,0,1,2,7,4],[1,5,8,9,3,1],[2,7,2,5,1,3],[0,1,3,1,7,8],[4,2,1,6,2,8],[2,4,5,2,3,9]]) print(image) print('-------') filter_ = np.array([[1,0,-1],[1,0,-1],[1,0,-1]]) print(filter_) print('-------') from scipy import signal convolution = -signal.convolve2d(image, filter_, boundary='fill',mode='valid') print(convolution) [[3 0 1 2 7 4][1 5 8 9 3 1][2 7 2 5 1 3][0 1 3 1 7 8][4 2 1 6 2 8][2 4 5 2 3 9]] ------- [[ 1 0 -1][ 1 0 -1][ 1 0 -1]] ------- [[ -5 -4 0 8][-10 -2 2 3][ 0 -2 -4 -7][ -3 -2 -3 -16]]

為什么可以檢測邊緣?

image = np.array([[10,10,10,0,0,0],[10,10,10,0,0,0],[10,10,10,0,0,0],[10,10,10,0,0,0],[10,10,10,0,0,0],[10,10,10,0,0,0]]) filter_ = np.array([[1,0,-1],[1,0,-1],[1,0,-1]]) print(-signal.convolve2d(image, filter_, boundary='fill',mode='valid')) [[ 0 30 30 0][ 0 30 30 0][ 0 30 30 0][ 0 30 30 0]]

3. 更多邊緣檢測

可以檢測明暗變化方向

豎直,水平的過濾器


把這9個數(shù)字當(dāng)成參數(shù),通過反向傳播學(xué)習(xí),邊緣捕捉能力會大大增強(可以檢查任意角度)

4. Padding

上面 6x6 的圖片,經(jīng)過一次過濾以后就變成 4x4 的,如果經(jīng)過多層,最后的圖像會變得很小。

假設(shè)原始圖片是 n×nn \times nn×n,過濾器是 f×ff \times ff×f,那么輸出大小是 (n?f+1)×(n?f+1)(n-f+1) \times(n-f+1)(n?f+1)×(n?f+1)

  • 缺點1,圖像每做一次卷積,縮小一點,最后變得很小
  • 缺點2,在角落或邊緣區(qū)域的像素點在輸出中采用較少,丟失了圖像邊緣位置的許多信息

解決上面的問題:

  • 進行卷積操作前,沿圖像邊緣填充 p 層像素,令 (n+2?p)?f+1=n?p=f?12(n+2*p)-f+1 = n \Rightarrow p = \frac{f-1}{2}(n+2?p)?f+1=n?p=2f?1?, 這樣可以保持圖像大小不變
  • 還使得邊緣信息發(fā)揮作用較小的缺點被削弱

ppp 填充多少層,怎么選?

  • Valid 卷積:p=0p=0p=0
  • Same 卷積:p=f?12p = \frac{f-1}{2}p=2f?1?fff 通常是奇數(shù)(對稱填充,有中心點)

5. 卷積步長

每次過濾器在圖片中移動 s 步長(上面的 s = 1)

輸出尺寸為 (n+2p?fs+1)×(n+2p?fs+1)(\frac{n+2p-f}{s}+1) \times (\frac{n+2p-f}{s}+1)(sn+2p?f?+1)×(sn+2p?f?+1),向下取整

數(shù)學(xué)中的卷積,需要在操作之前對過濾器順時針旋轉(zhuǎn)90度 + 水平翻轉(zhuǎn),深度學(xué)習(xí)里省略了該步驟,但是不影響,簡化了代碼

6. 三維卷積


輸出是一個二維的,每個格子里是對應(yīng)著 27個元素求和

如果希望對不同的通道進行檢測邊緣,對 filter 的相應(yīng)層設(shè)置不同的參數(shù)就可以了

想要多個過濾器怎么辦?(豎直的、水平的,各種角度的)

7. 單層卷積網(wǎng)絡(luò)



參數(shù)的個數(shù)跟圖片大小無關(guān),跟過濾器相關(guān),假如有10個過濾器,上面每個過濾器有 27 個參數(shù),加上 偏置 b,28個再乘以10,共計280個參數(shù)

即使圖片很大,參數(shù)卻很少,這就是卷積神經(jīng)網(wǎng)絡(luò)的一個特征,叫作“避免過擬合”。

8. 簡單卷積網(wǎng)絡(luò)示例


除了 卷積層(convolution),還有 池化層(pooling),全連接層(fully connected)

9. 池化層

除了卷積層,卷積網(wǎng)絡(luò)也經(jīng)常使用池化層縮減模型的大小,提高計算速度,同時提高所提取特征的魯棒性


Max 運算的實際作用:

  • 如果在過濾器中提取到某個特征,那么保留其最大值
  • 如果沒有提取到這個特征,可能在右上象限中不存在這個特征,那么其中的最大值也還是很小

池化,它有一組超參數(shù) f,sf, sf,s,但沒有參數(shù)需要學(xué)習(xí),不需要梯度下降更新


最大池化比平均池化更常用

常用的參數(shù)值為 f=2or?3,s=2f=2 \text{ or } 3, s= 2f=2?or?3,s=2
最大池化時,很少用到 padding(p=0p=0p=0
輸入輸出通道數(shù)一樣
最大池化只是計算神經(jīng)網(wǎng)絡(luò)某一層的靜態(tài)屬性,沒有需要學(xué)習(xí)的參數(shù)

10. 卷積神經(jīng)網(wǎng)絡(luò)示例


盡量不要自己設(shè)置超參數(shù),而是查看文獻中別人采用了哪些超參數(shù),選一個在別人任務(wù)中效果很好的架構(gòu),它也有可能適用于你的應(yīng)用程序

11. 為什么使用卷積?

和只用全連接層相比,卷積層 的兩個主要優(yōu)勢在于參數(shù)共享和稀疏連接

  • 全連接層的參數(shù)巨大,卷積層需要的參數(shù)較少

原因:

  • 參數(shù)共享,特征檢測如果適用于圖片的某個區(qū)域,那么它也可能適用于圖片的其他區(qū)域
  • 使用稀疏連接,一個輸出僅依賴少部分的輸入

    神經(jīng)網(wǎng)絡(luò)可以通過這兩種機制減少參數(shù),以便我們用更小的訓(xùn)練集來訓(xùn)練它,從而預(yù)防過度擬合
  • 作業(yè)

    作業(yè):手動/TensorFlow 實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)


    我的CSDN博客地址 https://michael.blog.csdn.net/

    長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學(xué)習(xí)進步!

    總結(jié)

    以上是生活随笔為你收集整理的04.卷积神经网络 W1.卷积神经网络的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。