SiamFC網絡
<
圖中z代表的是模板圖像,算法中使用的是第一幀的ground truth;x代表的是search region,代表在后面的待跟蹤幀中的候選框搜索區域;?代表的是一種特征映射操作,將原始圖像映射到特定的特征空間,文中采用的是CNN中的卷積層和pooling層;6×6×128代表z經過?后得到的特征,是一個128通道6×6大小feature,同理,22×22×128是x經過?后的特征;后面的×代表卷積操作,讓22×22×128的feature被6×6×128的卷積核卷積,得到一個17×17的score map,代表著搜索區域中各個位置與模板相似度值。
算法本身是比較搜索區域與目標模板的相似度,最后得到搜索區域的score map。其實從原理上來說,這種方法和相關性濾波的方法很相似。其在搜索區域中逐點的目標模板進行匹配,將這種逐點平移匹配計算相似度的方法看成是一種卷積,然后在卷積結果中找到相似度值最大的點,作為新的目標的中心。
上圖所畫的?其實是CNN中的一部分,并且兩個?的網絡結構是一樣的,這是一種典型的孿生神經網絡,并且在整個模型中只有conv層和pooling層,因此這也是一種典型的全卷積(fully-convolutional)神經網絡。
在訓練模型的時肯定需要損失函數,并通過最小化損失函數來獲取最優模型。本文算法為了構造有效的損失函數,對搜索區域的位置點進行了正負樣本的區分,即目標一定范圍內的點作為正樣本,這個范圍外的點作為負樣本,例如圖1中最右側生成的score map中,紅色點即正樣本,藍色點為負樣本,他們都對應于search region中的紅色矩形區域和藍色矩形區域。文章采用的是logistic loss,具體的損失函數形式如下:
對于score map中了每個點的損失:
l(y,x)=log(1+exp(-xy))
其中v是score map中每個點真實值,y∈{+1,?1}是這個點所對應的標簽。
上面的是score map中每個點的loss值,而對于score map整體的loss,則采用的是全部點的loss的均值。即:
L(y,v)=\\frac{1}{|D|}\\displaystyle \\sum_{u\\in D}l(y[u],v[u])
這里的u∈D代表score map中的位置。
整個網絡結構類似與AlexNet,但是沒有最后的全連接層,只有前面的卷積層和pooling層。
整個網絡結構如上表,其中pooling層采用的是max-pooling,每個卷積層后面都有一個ReLU非線性激活層,但是第五層沒有。另外,在訓練的時候,每個ReLU層前都使用了batch normalization(批規范化是深度學習中經常見到的一種訓練方法,指在采用梯度下降法訓練DNN時,對網絡層中每個mini-batch的數據進行歸一化,使其均值變為0,方差變為1,其主要作用是緩解DNN訓練中的梯度消失/爆炸現象,加快模型的訓練速度),用于降低過擬合的風險。
AlexNet
AlexNet為8層結構,其中前5層為卷積層,后面3層為全連接層;學習參數有6千萬個,神經元有650,000個。AlexNet在兩個GPU上運行;AlexNet在第2,4,5層均是前一層自己GPU內連接,第3層是與前面兩層全連接,全連接是2個GPU全連接;
RPN層第1,2個卷積層后;Max pooling層在RPN層以及第5個卷積層后。ReLU在每個卷積層以及全連接層后。
卷積核大小數量:
- conv1:96 11×11×3(個數/長/寬/深度)
- conv2:256 5×5×48
- conv3:384 3×3×256
- conv4: 384 3×3×192
- conv5: 256 3×3×192
ReLU、雙GPU運算:提高訓練速度。(應用于所有卷積層和全連接層)
重疊pool池化層:提高精度,不容易產生過度擬合。(應用在第一層,第二層,第五層后面)
局部響應歸一化層(LRN):提高精度。(應用在第一層和第二層后面)
Dropout:減少過度擬合。(應用在前兩個全連接層)
微調(fine-tune)
看到別人一個很好的模型,雖然針對的具體問題不一樣,但是也想試試看,看能不能得到很好的效果,而且自己的數據也不多,怎么辦?沒關系,把別人現成的訓練好了的模型拿過來,換成自己的數據,調整一下參數,再訓練一遍,這就是微調(fine-tune)。
凍結預訓練模型的部分卷積層(通常是靠近輸入的多數卷積層),訓練剩下的卷積層(通常是靠近輸出的部分卷積層)和全連接層。從某意義上來說,微調應該是遷移學習中的一部分。
感知機:PLA
多層感知機是由感知機推廣而來,感知機學習算法(PLA: Perceptron Learning Algorithm)用神經元的結構進行描述的話就是一個單獨的。
感知機的神經網絡表示如下:
多層感知機:MLP
多層感知機的一個重要特點就是多層,我們將第一層稱之為輸入層,最后一層稱之為輸出層,中間的層稱之為隱層。MLP并沒有規定隱層的數量,因此可以根據各自的需求選擇合適的隱層層數。且對于輸出層神經元的個數也沒有限制。
MLP神經網絡結構模型如下,本文中只涉及了一個隱層,輸入只有三個變量[x1,x2,x3]和一個偏置量b,輸出層有三個神經元。相比于感知機算法中的神經元模型對其進行了集成。
ReLU函數
ReLU函數公式如下:
RELU(x)= \\begin{cases} x, & \\text {if x>0} \\ 0, & \\text{if x<0} \\end{cases}
圖像如下:
sigmod函數
sigmod 函數在趨于正無窮或負無窮時,函數趨近平滑狀態。因為輸出范圍(0,1),所以二分類的概率常常用這個函數。
sigmoid函數表達式如下 :
f(x)=\\frac{1}{(1-e^{-z})}
圖像如下:
學習更多編程知識,請關注我的公眾號:
[代碼的路]
-
圖像處理
+關注
關注
27文章
1300瀏覽量
56890 -
函數
+關注
關注
3文章
4346瀏覽量
62970 -
PLA
+關注
關注
0文章
38瀏覽量
17087 -
全卷積網絡
+關注
關注
0文章
7瀏覽量
2037 -
MLP
+關注
關注
0文章
57瀏覽量
4288
發布評論請先 登錄
相關推薦
評論