1. 程式人生 > >論文筆記:MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching

論文筆記: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

:卷積層用到的啟用函式是ReLU。結構是受AlexNet的啟發。

Metric network:使用啟用函式為ReLU的三層全連結層來比較features間的相似度。FC3使用了Softmax。其輸入是一對features。輸出是兩個在[0,1]之間的浮點型,非負,和為1,代表網路估計兩個patches間的匹配度。

Two-tower structure with tied parameters:兩個塔狀的網路用的是同樣的引數。

The bottleneck layer:這一層用來降低feature的維度,並且控制網路的過擬合。它是一個大小為B的全連結層,輸入為Pool4的大小(8864

),輸出為B,在之後有給出B對匹配結果的影響。

The preprocessing layer:預處理層,輸入為灰度圖,按照目前的慣例對其強度值x(in [0, 255])正規化,(x128)/160

Training and prediction

Feature and metric networks兩個網路一起訓練,其cross-entropy error為:
E=1nni=1[yilog(yi^)+(1yi)log(1yi^)]

目的是minimize上式,訓練方法是batch size為32的SGD。
其中有n對patch pairs。
yi為輸入對xi0/1標籤,1

代表匹配。
v0(xi)v1(xi)是FC3輸出的兩個值。
yi^1yi^是FC3輸出的兩個值經過Softmax計算後的結果,公式如下:
yi^=ev1(xi)ev1(xi)+ev0(xi)

論文中提出,經過實驗,使用樸素的學習率為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部分比較快的瀏覽了一下,上手調參的時候再來看一些關於引數細節。