【轉(zhuǎn)帖】剛開(kāi)始接觸深度學(xué)習(xí)透典、卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候非常懵逼,不知道從何入手顿苇,我覺(jué)得應(yīng)該有一個(gè)進(jìn)階的過(guò)程峭咒,也就是說(shuō),理應(yīng)有一些基本概念作為奠基石纪岁,讓你有底氣去完全理解一個(gè)龐大的卷積神經(jīng)網(wǎng)絡(luò):
本文思路:
一凑队、我認(rèn)為學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)必須知道的幾個(gè)概念:
1、卷積過(guò)程:
我們經(jīng)常說(shuō)卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)幔翰,到底什么才是卷積漩氨?網(wǎng)絡(luò)層卷積過(guò)程到底怎么實(shí)現(xiàn)?我們?cè)谶@里借鑒了另一位博客大牛的動(dòng)態(tài)圖來(lái)給大家演示一下遗增,
圖作者文章在此:http://blog.csdn.net/silence1214/article/details/11809947
我們可以看到叫惊,卷積過(guò)程其實(shí)還是基于一個(gè)固定的矩陣,在另外一個(gè)矩陣不斷一格一格掃過(guò)去的到的數(shù)值的和做修,(注意:這里的一格一格非常重要霍狰,因?yàn)樯婕昂竺娴母拍睿翰介L(zhǎng)→我們不妨想一想當(dāng)固定矩陣不是一格一格前進(jìn)的時(shí)候抡草,會(huì)發(fā)生什么呢?)產(chǎn)生的一個(gè)新的矩陣蚓耽,我們以作為比較會(huì)發(fā)現(xiàn):粉紅色矩陣和綠色矩陣在根本上有很大不一樣渠牲,
第一,卷積之后的維數(shù)降低了步悠;第二签杈,我們要想想為什么降維了?
(思考:降低維度到底有沒(méi)有規(guī)律鼎兽?)
答案是有的:我們發(fā)現(xiàn)橙色的固定框?yàn)?3答姥,綠色是55,出來(lái)是三乘三谚咬;
所以規(guī)律可以得到:粉紅色最后的卷積結(jié)果矩陣維度=綠色矩陣維數(shù)-橙色矩陣維數(shù)+1
(我們又應(yīng)該思考:如果我不想最后減少維度鹦付,我只希望卷積,怎么辦呢择卦?)
2敲长、兩層之間的池化:
我們依然延用博客大牛的另一個(gè)動(dòng)圖(再次點(diǎn)贊做的精細(xì)準(zhǔn)確!)
我們可以發(fā)現(xiàn)其實(shí)跟之前沒(méi)什么不一樣:還是以三個(gè)矩陣之間的運(yùn)算秉继,但是我們很容易發(fā)現(xiàn)祈噪,它并不是一行一行掃過(guò)去的,橙色矩陣維度是黃色矩陣的整數(shù)倍尚辑,所以池化的最終的結(jié)論是要把原來(lái)的維度減少到1/n.這是池化最根本的原理
(當(dāng)然也有特殊情況辑鲤。)
(思考點(diǎn):我們想象一下如果一個(gè)19*19的矩陣做池化,會(huì)是一種什么樣的體驗(yàn)?zāi)馗懿纾课覀儾豢梢钥s小整數(shù)倍T氯臁!答案會(huì)在后面的VGG16里面講清楚瓢喉,不急不急宁赤!
3、第三個(gè)知識(shí)點(diǎn)是步長(zhǎng)的概念:
卷積核(后面講到VGG16會(huì)介紹)移動(dòng)的步長(zhǎng)(stride)小于卷積核的邊長(zhǎng)(一般為正方行)時(shí)栓票,變會(huì)出現(xiàn)卷積核與原始輸入矩陣作用范圍在區(qū)域上的重疊(overlap)决左,卷積核移動(dòng)的步長(zhǎng)(stride)與卷積核的邊長(zhǎng)相一致時(shí),不會(huì)出現(xiàn)重疊現(xiàn)象逗载。
通俗一點(diǎn)其實(shí)就是:剛剛說(shuō)的那個(gè)粉紅色矩陣哆窿,他每一次移動(dòng)多少格,格子就是步長(zhǎng)@髡濉挚躯!
4、卷積核:
一個(gè)聽(tīng)起來(lái)很高大上的詞語(yǔ)擦秽,我們依然用之前的基礎(chǔ)來(lái)解釋?zhuān)和ㄋ滓锥壕褪欠奂t色矩陣的個(gè)數(shù)B肜蟆漩勤!因?yàn)橛袝r(shí)候我們要提取的特征非常多非常廣泛,所以需要我們用更多的矩陣來(lái)掃(多掃幾遍)缩搅,那么粉紅色矩陣的個(gè)數(shù)就是卷積核個(gè)數(shù)越败。
5、Padding:
這個(gè)應(yīng)該是最抽象的概念了:但是也不會(huì)特別難呢硼瓣,就是我們?cè)谥爸v到第一點(diǎn):卷積的時(shí)候究飞,我拋下了一個(gè)問(wèn)題:
(我們又應(yīng)該思考:如果我不想最后減少維度,我只希望卷積堂鲤,怎么辦呢亿傅?)
(現(xiàn)在知道括號(hào)的重要性了吧哈哈?!
現(xiàn)在我們來(lái)解決這個(gè)問(wèn)題:比如:我們需要做一個(gè)300300的原始矩陣瘟栖,用一個(gè)33卷積核(粉紅色矩陣)來(lái)掃葵擎,掃出來(lái),按照之前公式半哟,結(jié)果的矩陣應(yīng)該是:298298的矩陣酬滤,但是這樣很難計(jì)算,減得也不多寓涨,反而增加我計(jì)算難度盯串,還不如池化(pooling)來(lái)得干脆是吧!那我們就在300300矩陣外面周?chē)右蝗Α?”缅茉,記住嘴脾,是在外面外包一層“0”
重點(diǎn)是:這樣的300300就變成了302302的矩陣男摧,這樣就可以完全避開(kāi)卷積后那兩層的抵消蔬墩。
6、還有一個(gè)就是通道的概念:這個(gè)不算知識(shí)點(diǎn)耗拓,僅僅是一個(gè)常識(shí)詞語(yǔ)拇颅,比如一張圖片,有RGB三種顏色乔询,對(duì)應(yīng)三個(gè)灰度級(jí)別樟插,也就是三個(gè)通道了:
更加抽象的圖可以參照下面的結(jié)構(gòu):
二、等待已久的VGG16:
VGG16分為16層竿刁,我們主要[圖片上傳失敗...(image-57a95c-1512976618690)]講前面的前幾層(越詳細(xì)越好吧黄锤,后面是一樣的)
——首先教會(huì)大家一個(gè)看其他神經(jīng)網(wǎng)絡(luò)也是用的辦法:官方數(shù)據(jù)表格:
看懂一些式子表達(dá):
Conv3-512 → 第三層卷積后維度變成512;
Conv3_2 s=2 → 第三層卷積層里面的第二子層食拜,滑動(dòng)步長(zhǎng)等于2(每次移動(dòng)兩個(gè)格子)
好了鸵熟,我們有了以上的知識(shí)可以考試剖析VGG16卷積神經(jīng)網(wǎng)絡(luò)了
三、利用之前的基本概念來(lái)解釋深層的VGG16卷及網(wǎng)絡(luò)负甸;
【1流强、從INPUT到Conv1:】
首先兩個(gè)黃色的是卷積層痹届,是VGG16網(wǎng)絡(luò)結(jié)構(gòu)十六層當(dāng)中的第一層(Conv1_1)和第二層(Conv1_2),他們合稱(chēng)為Conv1打月。
我們主要講述第一個(gè)队腐,也就是
第一層(Conv1_1),它怎么把一個(gè)3003003的矩陣變成一個(gè)30030064的矩陣奏篙?
我們假設(shè)藍(lán)色框是一個(gè)RGB圖像柴淘,橙色是一個(gè)333的卷積核,我們對(duì)一個(gè)三維的27個(gè)數(shù)求和秘通,然后掃過(guò)去悠就,按照第一部分算的得出來(lái)的是一維的298*298的矩陣(因?yàn)榫矸e核也是三維所以結(jié)果是一維);
然后回想一下什么是Padding充易、前面也講過(guò)它的概念了梗脾;所以不了一圈的圓,回到了3003001盹靴;
然后炸茧,VGG16這一層安置有64個(gè)卷積核,那么稿静,原來(lái)的3003001變成30030064
于是我們的到了想要的東西梭冠;最后的綠色框;
【1改备、從Conv1到Conv2之間的過(guò)度:】
這一步用的Pooling是:2264 s=2控漠;
也就是說(shuō),步長(zhǎng)是二悬钳,滑動(dòng)的矩陣本身沒(méi)有重疊盐捷;剛好減半,第三維度64不變默勾;
【3碉渡、順利來(lái)到Conv2并且結(jié)構(gòu)完全一樣進(jìn)入Conv3:】
我們知道原來(lái)INPUT是3003003過(guò)了第一層出來(lái)時(shí)15015064
那么第二層仍然有池化有128個(gè)卷積核,聯(lián)想推理:
出來(lái)的應(yīng)該是7575128母剥;這一步?jīng)]有問(wèn)題滞诺,我們繼續(xù)往下分析:
【4、進(jìn)入Conv3的推演:】
可以知道第三層有256個(gè)卷積核环疼,包含三層小的卷基層:
【5习霹、從Conv3到Conv4之間的過(guò)度:】
池化沒(méi)有問(wèn)題,但是這里75不是一個(gè)偶數(shù)怎么弄炫隶,還記得我們第一部分前面的括號(hào)嗎淋叶?
就是這樣,我們?cè)?5這里相加了一個(gè)一等限,使之成為76爸吮,變成一個(gè)偶數(shù)芬膝,還有一種方法是通過(guò)步長(zhǎng)的設(shè)置這里先不展開(kāi)來(lái)講了;
【6形娇、后續(xù)的步驟】
后面的方法很簡(jiǎn)單锰霜,根據(jù)我給的那個(gè)VGG16的表格查找每一層里面有什么卷積核?多少個(gè)桐早?池化的大醒⒚濉?步長(zhǎng)多少哄酝?是否需要Padding友存?解決這些問(wèn)題,你的VGG16就已經(jīng)完全可以從頭到尾說(shuō)清楚了L招啤B帕ⅰ!
【7搀军、Faster Rcnn的例子】
<u>http://blog.csdn.net/errors_in_life/article/details/70916583</u>
____________后續(xù)我將介紹一些基于VGG16深度學(xué)習(xí)的圖像分類(lèi)知識(shí)膨俐,一個(gè)愛(ài)分享自己錯(cuò)誤和經(jīng)驗(yàn)的師兄![吐舌頭]d
,多多指教罩句!