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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

吴恩达老师深度学习视频课笔记:卷积神经网络

發(fā)布時(shí)間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吴恩达老师深度学习视频课笔记:卷积神经网络 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

????????計(jì)算機(jī)視覺:包括圖像分類(image classification)、目標(biāo)檢測(object detection)、風(fēng)格遷移(neural style transfer)等等。

????????邊緣檢測示例:神經(jīng)網(wǎng)絡(luò)的前幾層可以檢測邊緣,然后后面幾層可能檢測到物體的部分,接下來靠后的一些層可能檢測到完整的物體,如下圖示例:


????????在卷積神經(jīng)網(wǎng)絡(luò)術(shù)語中,它被稱為過濾器(filter),在論文中,有時(shí)它被稱為核(kernel)而不是過濾器(filter)。卷積運(yùn)算過程,如下圖,用卷積運(yùn)算實(shí)現(xiàn)垂直邊緣檢測:


????????更多邊緣檢測示例:正邊、負(fù)邊其實(shí)就是由亮到暗與由暗到亮的區(qū)別,即邊緣的過渡(edge transitions),如下圖:


????????更多的過濾器,如下圖:通過使用不同的過濾器,可以找出垂直或水平的邊緣。還有其它過濾器,如Sobel過濾器、Scharr過濾器。一般將垂直過濾器,順時(shí)針翻轉(zhuǎn)90度,就會(huì)得到水平過濾器。一般垂直過濾器,左邊是正值,中間是0,右邊是負(fù)值;而一般水平過濾器,上邊是正值,中間是0,下邊是負(fù)值。在深度學(xué)習(xí)中,你不一定要去使用研究者們推薦的這些過濾器,可以把矩陣中的這9個(gè)數(shù)字,當(dāng)成9個(gè)參數(shù),并且在之后可以學(xué)習(xí)使用反向傳播算法,其目標(biāo)就是理解這9個(gè)參數(shù),通過反向傳播,你可以學(xué)習(xí)另一種濾波器,這種濾波器對(duì)于數(shù)據(jù)的捕捉能力,甚至可以勝過之前任何的濾波器(單純的水平邊緣和垂直邊緣),它可以檢測出45度、75度或73度,甚至是任何角度的邊緣。


????????Padding:有一個(gè)n*n的圖像,用一個(gè)f*f的過濾器做卷積,那么輸出的結(jié)果維即大小就是(n-f+1)*(n-f+1)。按照這種運(yùn)算會(huì)有2個(gè)缺點(diǎn):第一個(gè)缺點(diǎn)是每次做卷積操作,你的圖像就會(huì)縮小,作了幾次卷次操作,可能會(huì)縮小到1*1的大小;第二個(gè)缺點(diǎn)是,邊角的像素,這個(gè)像素點(diǎn)只會(huì)被一個(gè)輸出所觸碰或者使用,但是如果在中間的像素點(diǎn),就會(huì)有許多的區(qū)域與之重疊,所以那些在角落或者邊緣區(qū)域的像素點(diǎn)在輸出中采用較少,意味著你丟掉了圖像邊緣位置的許多信息。為了解決這兩個(gè)問題,你可以在卷積操作之前填充所處理的圖像,可以沿著圖像邊緣,在填充一層像素,如下圖,卷積后會(huì)得到和原始圖像一樣大小的圖像。習(xí)慣上,你可以用0填充,如果p是填充的數(shù)量,那么輸出就變成了(n+2p-f+1)*(n+2p-f+1)。


????????至于選擇填充多少個(gè)像素,通常有兩個(gè)選擇,分別叫做Valid卷積和Same卷積。Valid卷積意味著不填充(no dapping),即p=0。Same卷積意味著填充后你的輸入大小和輸出大小是一樣的,即p=(f-1)/2,如下圖,習(xí)慣上,計(jì)算機(jī)視覺中,f通常是奇數(shù)。


????????卷積步長:如下圖,假如輸入圖像為n*n,過濾器為f*f,padding為p,步長(stride)為s,則輸出大小為((n+2p-f)/s+1)*((n+2p-f)/s+1)。如果商不是整數(shù),我們向下取整,即floor函數(shù),這個(gè)原則實(shí)現(xiàn)的方式是,你只在籃框完全包括在圖像或填充完的圖像內(nèi)部時(shí)才對(duì)它進(jìn)行運(yùn)算。如果有任意一個(gè)藍(lán)框移動(dòng)到了外面,那么你就不要進(jìn)行相乘操作,這是一個(gè)慣例。



????????Convolutions over volumes:在BGR圖像上進(jìn)行卷積操作,如下圖,依次取過濾器這27個(gè)數(shù),然后乘以相應(yīng)的紅、綠、藍(lán)通道中的數(shù)字,然后把這些數(shù)加起來,就得到了輸出的數(shù)。圖像的通道數(shù)必須和過濾器的通道數(shù)一致。過濾器的參數(shù)選擇不同,你就可以得到不同的特征檢測器。按照計(jì)算機(jī)視覺的慣例,當(dāng)你的輸入有特定的高、寬和通道數(shù)時(shí),你的過濾器可以有不同的高、不同的寬,但是必須有一樣的通道數(shù)。理論上,我們的過濾器,只關(guān)注紅色通道、或者只關(guān)注綠色通道是可行的。


????????Multiplefilters: 如下圖,可以同時(shí)使用兩個(gè)過濾器,其中一個(gè)過濾器可能用來檢測垂直邊緣,另一個(gè)過濾器用來檢測水平邊緣,輸出結(jié)果為4*4*2。如果你有一個(gè)n*n*nc的輸入圖,然后卷積上一個(gè)f*f*nc的過濾器,然后得到一個(gè)(n-f+1)*(n-f+1)*n’c的輸出,其中n’c為過濾器的個(gè)數(shù)。在上面這個(gè)式子中是假設(shè)步長為1并且沒有padding。


????????單層卷積網(wǎng)絡(luò):如下圖,在6*6的BGR圖像上進(jìn)行卷積操作,有2個(gè)3*3*3的過濾器,通過卷積后產(chǎn)生2個(gè)4*4的結(jié)果,在此結(jié)果上加上偏差(bias),再應(yīng)用非線性激活函數(shù)ReLU,再把兩個(gè)結(jié)果矩陣堆疊起來,最終得到一個(gè)4*4*2的矩陣。這就是卷積神經(jīng)網(wǎng)絡(luò)的一層。


????????輸出圖像中的通道數(shù)量就是神經(jīng)網(wǎng)絡(luò)中這一層所使用的過濾器數(shù)量。過濾器中通道的數(shù)量必須與輸入中通道的數(shù)量一致。每個(gè)過濾器都有一個(gè)偏差參數(shù),它是一個(gè)實(shí)數(shù)。如下圖:


????????簡單卷積網(wǎng)絡(luò)示例:假設(shè)有一個(gè)卷積網(wǎng)絡(luò),用來識(shí)別輸入的圖像中是否含有貓。輸入圖像的大小為39*39*3,第一層卷積層用3*3的filter來檢測特征,stride為1,padding為0,這層共有10個(gè)filters,這層輸出將是37*37*10。第二層也是卷積層用5*5的filter,stride為2,padding為0,這層共有20個(gè)filters,輸出將是17*17*20。最后一層卷積層,用5*5的filter, stride為2,這層共有40個(gè)filters,輸出將是7*7*40,即1960特征,可以將其平滑(flatten)或展開(unroll)成1960個(gè)單元,即輸出一個(gè)長向量,那時(shí)和logistic回歸或softmax進(jìn)行計(jì)算最終得出神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出,如下圖所示。隨著神經(jīng)網(wǎng)絡(luò)計(jì)算深度不斷加深,通常開始時(shí)圖像會(huì)較大,高度和寬度會(huì)在一段時(shí)間內(nèi)保持一致,然后隨著網(wǎng)絡(luò)深度的加深而逐漸減少,而通道數(shù)(numberof channels)在增加。在其它許多卷積神經(jīng)網(wǎng)絡(luò)中也有相似操作。


????????一個(gè)典型的卷積網(wǎng)絡(luò)通常有三種類型的層:一個(gè)是卷積層(Convolution),通常用Conv來標(biāo)注;一個(gè)是池化層(Pooling),經(jīng)常叫做POOL;還有一個(gè)是全連接層(Fully connected),用FC表示。雖然僅用卷積層也有可能構(gòu)建出很好的神經(jīng)網(wǎng)絡(luò),但大部分神經(jīng)網(wǎng)絡(luò)架構(gòu)師依然會(huì)添加池化層和全連接層。一般池化層和全連接層比卷積層更容易設(shè)計(jì)。如下圖所示:


????????池化層:除了卷積層,卷積網(wǎng)絡(luò)也經(jīng)常使用池化層來縮減模型的大小,提高計(jì)算速度,同時(shí)提高所提取特征的魯棒性。池化類型有最大池化(maxpooling),如下圖所示,在此例中,filter的大小為2,stride位2 ,這兩個(gè)是最大池化的超參。最大池化運(yùn)算的實(shí)際作用就是:如果在過濾器中提取到某個(gè)特征,那么保留其最大值;如果沒有提取到某個(gè)特征,可能不存在這個(gè)特征,那么其中的最大值也還是很小。


????????計(jì)算卷積層輸出大小的公式同樣適用于最大池化:((n+2p-f)/s)+1,這個(gè)公式也可以計(jì)算最大池化的輸出大小。計(jì)算最大池化的方法就是分別對(duì)每個(gè)通道執(zhí)行相同的計(jì)算過程,nc個(gè)通道中每個(gè)通道都單獨(dú)執(zhí)行最大池化運(yùn)算。

????????平均池化:另外一種類型的池化,它不太常用,選取的不是每個(gè)過濾器的最大值,而是平均值,如下圖所示:


????????池化的超級(jí)參數(shù)包括過濾器大小(filter size)和步長(stride)。其中f=2,s=2應(yīng)該頻率比較高,其效果相當(dāng)于高度和寬度縮減一半。你也可以根據(jù)自己的意愿增加表示padding的其它超級(jí)參數(shù),但是很少這么用。最大池化時(shí),往往很少用到超級(jí)參數(shù)padding,當(dāng)然也有例外情況。最大池化的輸入是nh*nw*nc,假設(shè)沒有padding,輸出為((nh-f/s)+1)*((nw-f/s)+1)*nc,如下圖所示。需要注意的一點(diǎn)是,池化過程中沒有需要學(xué)習(xí)的參數(shù)。反向傳播沒有參數(shù)適用于最大池化。最大池化只是計(jì)算神經(jīng)網(wǎng)絡(luò)某一層的靜態(tài)屬性。


????????卷積神經(jīng)網(wǎng)絡(luò)示例:假設(shè)有一張32*32*3的輸入圖像,如下圖所示,用于手寫體數(shù)字識(shí)別,想識(shí)別它是從0到9這10個(gè)數(shù)字中的哪一個(gè)。讓我們來構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)這個(gè)功能。此網(wǎng)絡(luò)結(jié)構(gòu)和LeNet-5非常相似。假設(shè)第一層使用filter大小為5*5,stride為1,padding為0,filter的個(gè)數(shù)是6,那么輸出為28*28*6,將這層標(biāo)記為CONV1,它有6個(gè)filter,增加了bias,應(yīng)用了非線性函數(shù)(激活函數(shù)),可能是ReLU,最后輸出CONV1的結(jié)果。然后構(gòu)建一個(gè)池化層,選用最大池化,超參f=2,s=2,padding=0,最終輸出為14*14*6,將這層標(biāo)記為POOL1。在卷積網(wǎng)絡(luò)文獻(xiàn)中,卷積有兩種分類,一類卷積是一個(gè)卷積層和一個(gè)池化層一起作為一層;另一類卷積是把卷積層作為一層,而池化層單獨(dú)作為一層。人們?cè)谟?jì)算神經(jīng)網(wǎng)絡(luò)有多少層時(shí),通常只是統(tǒng)計(jì)具有權(quán)重和參數(shù)的層,因此池化層沒有權(quán)重和參數(shù),只有一些超級(jí)參數(shù)。這里采用的是把CONV1和POOL1共同作為一個(gè)卷積,并標(biāo)記為Layer1。接著在構(gòu)建一個(gè)卷積層,filter為5*5,stride為1,padding為0,使用16個(gè)filter,輸出一個(gè)10*10*16的矩陣,標(biāo)記為CONV2,然后最大池化,f=2,s=2,輸出為5*5*16的矩陣,標(biāo)記為POOL2,這是Layer2。現(xiàn)在將POOL2平整化為一個(gè)大小為400(即5*5*16)的一維向量。然后利用這400個(gè)單元構(gòu)建下一層。下一層有120個(gè)單元,這是第一個(gè)全連接層,標(biāo)記為FC3,此連接層的權(quán)重W[3]為(120,400),b[3]為(120,1)。接著再添加一個(gè)全連接層,有84個(gè)單元,標(biāo)記為FC4。最后用這84個(gè)單元填充一個(gè)softmax單元,這個(gè)softmax會(huì)有10個(gè)輸出。


????????在神經(jīng)網(wǎng)絡(luò)中,另一種常見模式就是一個(gè)或多個(gè)卷積層后跟隨一個(gè)池化層,然后一個(gè)或多個(gè)卷積層后再跟一個(gè)池化層,然后是幾個(gè)全連接層,最后是一個(gè)softmax。

????????神經(jīng)網(wǎng)絡(luò)的激活值形狀(activation shape)、激活值大小(activation size)和參數(shù)數(shù)量:如上例以32*32*3作為輸入的神經(jīng)網(wǎng)絡(luò)架構(gòu),如下圖所示:注意事項(xiàng):(1)、池化層和最大池化層沒有任何參數(shù);(2)、卷積層的參數(shù)相對(duì)較少;(3)、許多參數(shù)都存在于神經(jīng)網(wǎng)絡(luò)的全連接層;(4)、觀察可發(fā)現(xiàn),隨著神經(jīng)網(wǎng)絡(luò)的加深,激活值size會(huì)逐漸變小,如果激活值size下降太快,也會(huì)影響網(wǎng)絡(luò)性能。許多卷積網(wǎng)絡(luò)都具有這些屬性,模式上也相似。


????????Why convolutions:和只用全連接層相比,卷積層的兩個(gè)主要優(yōu)勢在于:參數(shù)共享(parameter sharing)和稀疏連接(sparsity of connections)。如下圖所示:


????? ? GitHub:https://github.com/fengbingchun/NN_Test

總結(jié)

以上是生活随笔為你收集整理的吴恩达老师深度学习视频课笔记:卷积神经网络的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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