SiamFC網絡
圖(tu)(tu)(tu)中(zhong)(zhong)z代(dai)表(biao)(biao)的(de)(de)是(shi)模(mo)板圖(tu)(tu)(tu)像,算法(fa)中(zhong)(zhong)使用(yong)的(de)(de)是(shi)第(di)一幀的(de)(de)ground truth;x代(dai)表(biao)(biao)的(de)(de)是(shi)search region,代(dai)表(biao)(biao)在后面的(de)(de)待跟蹤幀中(zhong)(zhong)的(de)(de)候選(xuan)框搜索區(qu)(qu)域;?代(dai)表(biao)(biao)的(de)(de)是(shi)一種特征映射操(cao)作(zuo),將原始圖(tu)(tu)(tu)像映射到特定的(de)(de)特征空(kong)間(jian),文中(zhong)(zhong)采(cai)用(yong)的(de)(de)是(shi)CNN中(zhong)(zhong)的(de)(de)卷(juan)(juan)(juan)積層和pooling層;6×6×128代(dai)表(biao)(biao)z經過?后得(de)到的(de)(de)特征,是(shi)一個128通道6×6大小feature,同理(li),22×22×128是(shi)x經過?后的(de)(de)特征;后面的(de)(de)×代(dai)表(biao)(biao)卷(juan)(juan)(juan)積操(cao)作(zuo),讓22×22×128的(de)(de)feature被6×6×128的(de)(de)卷(juan)(juan)(juan)積核卷(juan)(juan)(juan)積,得(de)到一個17×17的(de)(de)score map,代(dai)表(biao)(biao)著(zhu)搜索區(qu)(qu)域中(zhong)(zhong)各個位置與模(mo)板相(xiang)似度值。
算(suan)法(fa)本身是比較搜(sou)(sou)索區域(yu)與目(mu)標(biao)模(mo)板的(de)(de)相(xiang)(xiang)似(si)(si)度(du)(du),最后得(de)到搜(sou)(sou)索區域(yu)的(de)(de)score map。其實從原理(li)上來說,這種方(fang)法(fa)和(he)相(xiang)(xiang)關(guan)性濾波的(de)(de)方(fang)法(fa)很(hen)相(xiang)(xiang)似(si)(si)。其在搜(sou)(sou)索區域(yu)中逐點的(de)(de)目(mu)標(biao)模(mo)板進行匹配,將這種逐點平(ping)移匹配計算(suan)相(xiang)(xiang)似(si)(si)度(du)(du)的(de)(de)方(fang)法(fa)看成(cheng)是一種卷積,然(ran)后在卷積結果(guo)中找到相(xiang)(xiang)似(si)(si)度(du)(du)值(zhi)最大的(de)(de)點,作為(wei)新的(de)(de)目(mu)標(biao)的(de)(de)中心。
上(shang)圖所畫的(de)?其(qi)實是(shi)CNN中的(de)一(yi)部分,并(bing)且兩個?的(de)網絡(luo)結(jie)構是(shi)一(yi)樣的(de),這是(shi)一(yi)種典型的(de)孿生神經網絡(luo),并(bing)且在整個模型中只有(you)conv層(ceng)和pooling層(ceng),因此這也是(shi)一(yi)種典型的(de)全卷(juan)積(fully-convolutional)神經網絡(luo)。
在訓練模型的時(shi)肯定需要損(sun)(sun)(sun)失(shi)函數,并通過最(zui)小化損(sun)(sun)(sun)失(shi)函數來獲取最(zui)優(you)模型。本(ben)文算法為(wei)了(le)(le)構造有(you)效的損(sun)(sun)(sun)失(shi)函數,對搜索區(qu)(qu)域(yu)(yu)的位置點進行了(le)(le)正(zheng)(zheng)負樣本(ben)的區(qu)(qu)分,即目標(biao)一(yi)定范(fan)圍(wei)內的點作(zuo)為(wei)正(zheng)(zheng)樣本(ben),這個范(fan)圍(wei)外的點作(zuo)為(wei)負樣本(ben),例如圖1中最(zui)右側生成的score map中,紅(hong)色(se)(se)(se)點即正(zheng)(zheng)樣本(ben),藍色(se)(se)(se)點為(wei)負樣本(ben),他們都對應(ying)于search region中的紅(hong)色(se)(se)(se)矩形區(qu)(qu)域(yu)(yu)和藍色(se)(se)(se)矩形區(qu)(qu)域(yu)(yu)。文章采(cai)用(yong)的是logistic loss,具體的損(sun)(sun)(sun)失(shi)函數形式如下(xia):
對于score map中了每個點的損失:
其(qi)中v是score map中每個點真實值,y∈{+1,−1}是這個點所對(dui)應的(de)標簽(qian)。
上面的(de)是score map中每(mei)個點(dian)的(de)loss值,而對于(yu)score map整(zheng)體的(de)loss,則采用(yong)的(de)是全部點(dian)的(de)loss的(de)均值。即:
這(zhe)里的(de)u∈D代(dai)表score map中的(de)位置。
整個網絡結構類似與AlexNet,但是沒(mei)有最后的全連接層,只有前面的卷(juan)積層和(he)pooling層。
整個網絡結構(gou)如(ru)上表,其(qi)(qi)中(zhong)(zhong)pooling層(ceng)采(cai)用的(de)是(shi)(shi)(shi)max-pooling,每(mei)個卷積層(ceng)后面都(dou)有一個ReLU非(fei)線性激活層(ceng),但是(shi)(shi)(shi)第五(wu)層(ceng)沒有。另外,在訓(xun)(xun)練的(de)時(shi)候,每(mei)個ReLU層(ceng)前都(dou)使用了batch normalization(批規范化是(shi)(shi)(shi)深度學習中(zhong)(zhong)經常見到的(de)一種訓(xun)(xun)練方(fang)法,指在采(cai)用梯度下(xia)降法訓(xun)(xun)練DNN時(shi),對網絡層(ceng)中(zhong)(zhong)每(mei)個mini-batch的(de)數據進行(xing)歸一化,使其(qi)(qi)均值變為(wei)0,方(fang)差變為(wei)1,其(qi)(qi)主要(yao)作用是(shi)(shi)(shi)緩(huan)解(jie)DNN訓(xun)(xun)練中(zhong)(zhong)的(de)梯度消失/爆炸現象,加快模(mo)型的(de)訓(xun)(xun)練速度),用于降低過擬(ni)合(he)的(de)風險。
AlexNet
AlexNet為(wei)8層(ceng)結(jie)構,其(qi)中前5層(ceng)為(wei)卷積層(ceng),后面3層(ceng)為(wei)全(quan)(quan)連(lian)(lian)接(jie)(jie)層(ceng);學習參數有6千(qian)萬個(ge),神經元有650,000個(ge)。AlexNet在兩(liang)個(ge)GPU上運行;AlexNet在第(di)2,4,5層(ceng)均(jun)是(shi)前一(yi)層(ceng)自己GPU內連(lian)(lian)接(jie)(jie),第(di)3層(ceng)是(shi)與前面兩(liang)層(ceng)全(quan)(quan)連(lian)(lian)接(jie)(jie),全(quan)(quan)連(lian)(lian)接(jie)(jie)是(shi)2個(ge)GPU全(quan)(quan)連(lian)(lian)接(jie)(jie);
RPN層第(di)1,2個卷(juan)積(ji)層后(hou);Max pooling層在(zai)RPN層以(yi)及第(di)5個卷(juan)積(ji)層后(hou)。ReLU在(zai)每個卷(juan)積(ji)層以(yi)及全連接層后(hou)。
卷積(ji)核大小(xiao)數(shu)量:
-
conv1:96 11×11×3(個(ge)數/長/寬(kuan)/深度)
-
conv2:256 5×5×48
-
conv3:384 3×3×256
-
conv4: 384 3×3×192
-
conv5: 256 3×3×192
ReLU、雙GPU運算:提高(gao)訓練(lian)速度。(應(ying)用于(yu)所有卷積(ji)層和全連(lian)接層)
重(zhong)疊pool池(chi)化層:提高(gao)精度,不容易產生過(guo)度擬(ni)合。(應用在第(di)一層,第(di)二層,第(di)五層后面)
局部響應歸一(yi)化(hua)層(LRN):提(ti)高精度。(應用在(zai)第(di)一(yi)層和第(di)二層后面)
Dropout:減少過度擬合。(應用在前兩個全連接層)
微調(fine-tune)
看(kan)到(dao)別(bie)人(ren)一個很好的模(mo)型,雖然針對的具體問題(ti)不(bu)一樣,但是(shi)也想試試看(kan),看(kan)能(neng)不(bu)能(neng)得(de)到(dao)很好的效(xiao)果,而且自(zi)己的數(shu)據(ju)也不(bu)多,怎么辦?沒關系(xi),把別(bie)人(ren)現成的訓練(lian)好了的模(mo)型拿過(guo)來,換成自(zi)己的數(shu)據(ju),調整一下參數(shu),再訓練(lian)一遍,這就是(shi)微(wei)調(fine-tune)。
凍結預訓練(lian)模型的(de)(de)部(bu)分卷(juan)積層(ceng)(通常(chang)是靠近輸(shu)入(ru)的(de)(de)多(duo)數卷(juan)積層(ceng)),訓練(lian)剩下的(de)(de)卷(juan)積層(ceng)(通常(chang)是靠近輸(shu)出的(de)(de)部(bu)分卷(juan)積層(ceng))和全連接層(ceng)。從某意義上(shang)來說,微調應(ying)該(gai)是遷移學習中的(de)(de)一部(bu)分。
感知機:PLA
多層(ceng)感(gan)知機(ji)是由感(gan)知機(ji)推廣而(er)來,感(gan)知機(ji)學習算法(fa)(PLA: Perceptron Learning Algorithm)用神(shen)經元(yuan)的(de)結構進行描述的(de)話(hua)就是一個單獨的(de)。
多層感(gan)知機:MLP
多層(ceng)(ceng)(ceng)感知機的(de)(de)一個重要特點就(jiu)是多層(ceng)(ceng)(ceng),我們將第一層(ceng)(ceng)(ceng)稱之為(wei)輸入(ru)層(ceng)(ceng)(ceng),最后一層(ceng)(ceng)(ceng)稱之為(wei)輸出(chu)層(ceng)(ceng)(ceng),中間的(de)(de)層(ceng)(ceng)(ceng)稱之為(wei)隱層(ceng)(ceng)(ceng)。MLP并(bing)沒有(you)規定隱層(ceng)(ceng)(ceng)的(de)(de)數量,因此可以(yi)根(gen)據各自的(de)(de)需求選擇(ze)合適的(de)(de)隱層(ceng)(ceng)(ceng)層(ceng)(ceng)(ceng)數。且對于輸出(chu)層(ceng)(ceng)(ceng)神經(jing)元的(de)(de)個數也(ye)沒有(you)限制(zhi)。
MLP神(shen)(shen)經(jing)網絡結構模型如下,本文中(zhong)只涉及了一(yi)個(ge)隱(yin)層,輸入只有三個(ge)變量[x1,x2,x3]和一(yi)個(ge)偏(pian)置量b,輸出層有三個(ge)神(shen)(shen)經(jing)元。相(xiang)比(bi)于感知機(ji)算法中(zhong)的神(shen)(shen)經(jing)元模型對(dui)其進行了集成。