吴恩达深度学习笔记10-Course4-Week1【卷积神经网络】
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)
一、計(jì)算機(jī)視覺(jué)(Computer Vision)
計(jì)算機(jī)視覺(jué)處理的輸入都是圖片。當(dāng)圖片尺寸比較小時(shí),可以采用深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)來(lái)解決問(wèn)題。但在現(xiàn)實(shí)中我們需要處理的圖片尺寸通常比較大,如:500萬(wàn)像素、800萬(wàn)像素。這時(shí)輸入數(shù)據(jù)將變得很大,使用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)將會(huì)有非常多的參數(shù)需要去學(xué)習(xí),不僅很難訓(xùn)練,而且數(shù)據(jù)集不夠大時(shí)很容易出現(xiàn)過(guò)擬合的問(wèn)題。
例如:輸入為1000x1000的RGB圖片即3百萬(wàn)(million)個(gè)特征,設(shè)第一層隱藏層有1000個(gè)unit,這時(shí)第一層需要學(xué)習(xí)的參數(shù)有30億個(gè),明顯不合理。而卷積神經(jīng)網(wǎng)絡(luò)就能很好的解決這一問(wèn)題。
二、邊緣檢測(cè)(Edge Detection )
二維卷積:
知乎上有一篇關(guān)于 理解卷積 的文章,可以參考一下。
一個(gè)大矩陣–圖像,一個(gè)小矩陣–濾波器(filter)/ 卷積核(kenel)。濾波器在圖像上有規(guī)律的滑動(dòng),濾波器的每個(gè)元素與對(duì)于的圖像區(qū)域的每個(gè)元素進(jìn)行相乘然后相加,即得到圖像上該區(qū)域中心坐標(biāo)點(diǎn)的值,最終得到一個(gè)新的矩陣。
node:
- filer的尺寸一般為奇數(shù),方便得到中心點(diǎn)。一般選:1x1, 3x3, 5x5
- 在數(shù)學(xué)上的卷積要把濾波器同時(shí)水平垂直旋轉(zhuǎn)后再進(jìn)行計(jì)算,圖像卷積更準(zhǔn)確的名稱(chēng)是互相關(guān)(cross-correlation),但是慣例上我們把它叫做卷積。
邊緣檢測(cè)
邊緣檢測(cè)就是利用邊緣檢測(cè)的濾波器與圖像進(jìn)行卷積,得到包含邊緣信息的矩陣。下圖是兩種豎直邊緣檢測(cè)濾波器和的計(jì)算原理,第一種是明到暗計(jì)算結(jié)果為正數(shù),第二種是暗到明計(jì)算結(jié)果為負(fù)數(shù)。
豎直邊緣檢測(cè)濾波器旋轉(zhuǎn)90°可得到水平邊緣檢測(cè)濾波器。
多種豎直邊緣檢測(cè)濾波器:sobel,scharr
這些濾波器的參數(shù)值都是人為設(shè)置的,不一定很好。而且如果想檢測(cè)45°,30°的邊緣參數(shù)值怎么設(shè)置呢?我們可以讓神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)這些參數(shù),其實(shí)這就是卷積神經(jīng)網(wǎng)絡(luò)最主要的思想。
三、填充(Padding)
Padding:
其實(shí)就是在原圖像上向外填充像素,填充一層縱向和橫向都增加兩個(gè)像素。填充層數(shù)p,濾波器尺寸 fxf,圖像尺寸 nxn。填充完圖像的尺寸為 (n+2p)×(n+2p)。卷積運(yùn)算后的尺寸為 (n+2p?f+1)×(n+2p?f+1) 。
Padding的作用:
因?yàn)槊看尉矸e操作,圖片的尺寸都會(huì)縮小,這樣角落和邊緣位置的像素進(jìn)行卷積運(yùn)算的次數(shù)少,可能會(huì)丟失有用信息。添加padding可以一定程度上減小這種缺點(diǎn)。
兩種padding:Valid / Same
Valid:p=0,即沒(méi)有padding。n×n的矩陣得到 (n?f+1)×(n?f+1) 的矩陣
Same:p=(f?1) / 2,即輸入與輸出矩陣的大小相同。卷積計(jì)算時(shí),因?yàn)閒ilter一般為奇數(shù),所以p的值也為奇數(shù)。
四、跨步的卷積(Strided Convolutions)
步長(zhǎng)(Stride): filter在圖像上向右向下移動(dòng)的步長(zhǎng),即一次移動(dòng)幾個(gè)像素。
計(jì)算公式:因?yàn)橛锌赡軙?huì)越界,所以要向下取整。
Valid 和 Same 輸出尺寸的計(jì)算:
Valid:floor( (n-f) / s) + 1
Same:ceil (n / s)
五、立體/三維卷積(Convolutions Over Volume)
立體卷積: 濾波器的通道(channel)和圖像的通道一致,然后進(jìn)行立體的卷積。得到通道為1的結(jié)果矩陣。
多個(gè)立體濾波器
如果同時(shí)想檢測(cè)多種特征,可以用多個(gè)立體濾波器進(jìn)行卷積,然后把結(jié)果堆疊起來(lái)。所以結(jié)果矩陣的通道數(shù)為立體濾波器的個(gè)數(shù),而與單個(gè)濾波器的尺寸無(wú)關(guān)。
六、單層卷積網(wǎng)絡(luò)(One Layer of a Convolutional Network)
一層的卷積網(wǎng)絡(luò):
每個(gè)立體filter只有一個(gè)bias參數(shù)。前向傳播時(shí)對(duì)每個(gè)卷積結(jié)果進(jìn)行線性運(yùn)算,然后進(jìn)行非線性激活。
本文使用的notations: 對(duì)于第l層
多層的CNN例子:
七、池化層(Pooling Layers)
最大池化(Max pooling):
取每一個(gè)區(qū)域的最大值,只有超參數(shù),沒(méi)有參數(shù)。可以設(shè)置區(qū)域尺寸和步長(zhǎng)。
以 f=2, p=2 為例:
平均池化(Average pooling):
與最大池化層的區(qū)別在于,平均池化是取各區(qū)域的平均值。
池化層的超參數(shù):
- f:filter的大小;
- s:stride大小;
- 選擇最大池化還是平均池化,通常用最大池化;
- p:padding,正常不使用即p=0。
八、卷積神經(jīng)網(wǎng)絡(luò)例子
例子: Input >> Conv >> Pool >> Conv >> Pool >> FC >> FC >> FC >> softmax。FC(Fully Connected): 全連接層
通常我們把一個(gè)卷積層和一個(gè)池化層看作是一層。因?yàn)橹挥芯矸e層包含網(wǎng)絡(luò)參數(shù)。
CNN各層的尺寸和參數(shù):
搭建CNN時(shí),每層的激活值個(gè)數(shù)應(yīng)該是均勻的下降,不能下降的太快或跳變。
總結(jié),在卷積層僅有少量的參數(shù)。在池化層沒(méi)有參數(shù)。在全連接層存在大量的參數(shù)。
九、卷積神經(jīng)網(wǎng)絡(luò)的理解
卷積神經(jīng)網(wǎng)絡(luò)如何減少參數(shù):
卷積神經(jīng)網(wǎng)絡(luò)為什么能有效的減小參數(shù)的個(gè)數(shù),從而防止過(guò)擬合。
- 參數(shù)共享:一個(gè)濾波器的參數(shù),適用于圖片中各個(gè)小區(qū)域。
- 稀疏連接:只需要圖像中一小部分元素來(lái)計(jì)算結(jié)果矩陣中的各個(gè)元素值,
CNN還有平移不變的特性:即使圖片有輕微的平移,濾波器還是能較好的檢測(cè)出特征。
搭建卷積神經(jīng)網(wǎng)絡(luò)
數(shù)據(jù)集 >> 網(wǎng)絡(luò)結(jié)構(gòu) >> 成本函數(shù) >> 梯度下降
總結(jié)
以上是生活随笔為你收集整理的吴恩达深度学习笔记10-Course4-Week1【卷积神经网络】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 为什么要安装gcc和gcc-
- 下一篇: 计算机视觉与深度学习 | 基于MATLA