論文筆記:MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching
Abstract
MatchNet:一個用來從patches中提取特徵的深度卷積網路 + 一個用來比較提取出的特徵相似度的三層全連結網路構成。
Introduction
在MatchNet中,每個patch輸入卷積網路,生成一個固定維度的類似SIFT的特徵。但與SIFT不同,SIFT中衡量兩個descriptors的異同是用尤拉距離來計算;在MatchNet中,用的是一個三層的全連結網路。
Related work
這部分介紹相關工作。
Network architecture
總體網路結構如下:
包含的不同型別的層的引數如下:
具體結構:
Feature network
Metric network:使用啟用函式為ReLU的三層全連結層來比較features間的相似度。FC3使用了Softmax。其輸入是一對features。輸出是兩個在[0,1]之間的浮點型,非負,和為1,代表網路估計兩個patches間的匹配度。
Two-tower structure with tied parameters:兩個塔狀的網路用的是同樣的引數。
The bottleneck layer:這一層用來降低feature的維度,並且控制網路的過擬合。它是一個大小為
The preprocessing layer:預處理層,輸入為灰度圖,按照目前的慣例對其強度值
Training and prediction
Feature and metric networks兩個網路一起訓練,其cross-entropy error為:
目的是minimize上式,訓練方法是batch size為32的SGD。
其中有
論文中提出,經過實驗,使用樸素的學習率為0.01的SGD在validation集中得到了比較好的準確度。訓練整個網路時間花費在18小時到1周之間(・∀・(・∀・(・∀・*)。使用一些學習率褪火的方法可能可以加快訓練速度。
Sampling in training
因為訓練中,matching(+)和non-matching(-)的pairs總是不平均,因此取樣平均在訓練中很重要。
論文中用的是如下采樣演算法:
這裡我並沒有讀懂這個演算法。論文中介紹其R值為16384時比較好。
擴充套件閱讀是[32]:J. S. Vitter. Random sampling with a reservoir. ACM Trans.
Math. Softw., 11(1):37–57, 1985.
A two-stage prediction pipeline
訓練特徵的步驟和比較相似度的步驟可以分開,其整個流水線如下圖所示:
Experiments
實驗結果:
Summary
全篇讀下來,讀懂了的關鍵部分是網路的結構部分。至於訓練部分可能是需要上手程式碼來操作的。
有幾個問題:
1.patch-based image matching的中patch的含義是什麼?我的理解是patch為一張圖片裡面的關鍵特徵的截圖部分。
2.訓練集,論文中有關UBC patch dataset的URL是404。
3.取樣演算法沒有看懂,但準備跳過論文直接上手程式碼。
4.Experiments部分比較快的瀏覽了一下,上手調參的時候再來看一些關於引數細節。