論文首次將深度學習同圖匹配(Graph matching)結合,設計了end-to-end網絡去學習圖匹配過程。網絡
是兩個圖(Graph)之間的類似度矩陣。函數
拿其中的 imageNet 的鳥舉例以下圖,使用的是另外一篇論文使用的數據集。數據特色:①鳥的姿態幾乎一致②每一個鳥選取15個關鍵點。這樣就默認不一樣二圖中相對應的點(以下圖不一樣顏色的點)是 一 一 匹配的,即看成ground-truth。具體如何將image輸入獲得graph,下文講。學習
由1.2節咱們知道了ground-truth,因此loss的設計:由於咱們已經知道二圖目標點的相互匹配結果,因此對於網絡訓練獲得的匹配結果,咱們使用網絡輸出的結果和真實匹配點之間的物理位移做爲考量因素。具體見下文。spa
按順序大概介紹每層功能:設計
第一層(預處理):將上文提到的數據集(好比鳥:①姿態一致②兩圖15個關鍵點)經過vgg16提取特徵。一階特徵表明點的特徵信息,二階特徵表明邊的特徵信息,分別使用淺層的relu4_2激活信息和relu5_1的激活信息,分別記做F和U,下圖的U,F的上標表示兩個圖。輸入二圖,輸出F,U對象
第二層:經過輸入的F,U構建二圖的類似度矩陣。輸入上一層的F,U,輸出類似度矩陣Mblog
第三層:輸入M,輸出v*。主要求解類似度矩陣的最大特徵向量,看成近似的圖匹配的解get
第四層:輸入v*,輸出排列陣S。主要將排列陣按行、列 歸一化,歸一化成雙隨機矩陣深度學習
第五層:對排列陣S,按機率選擇每個點對應的匹配結果數學
第六層:求loss,並反向傳播
使用VGG16提取點、邊的特徵信息,輸入到下一層。分別記做F、U,上標表示二圖
介紹下論文使用的類似度矩陣,使用分解形式以下:
二圖的邊和點結點分別爲:n點p邊。m點q邊。[..]是將向量變成diagonal矩陣。vec()是將矩陣按列(有些論文是按行)
第一項[vec(Mp)]是正則項。
看下圖,H1,G1分別表明圖一的點和邊結點的表示,H二、G2相似。
Me表示邊結點類似度,X、Y的構成不包含運算,我的認爲是輸入的F、U的拼接。其中 是要訓練的對象
其中 「:」表示矩陣的內積(對應元素相乘)。(4)式表示函數的偏導數
該層的後向傳播分析:由於上一層傳入的變量是FU,參數存儲在 「半三角形」這個符號中,因此須要求出對FU的偏導,更具上一節,即等於求出X Y的偏導。
中間的爲推導須要使用的公式。
由於圖匹配數學模型爲,其中M爲上文的類似度矩陣,爲了使上式最大化,可以使用M的最大特徵向量來近似,因此這層先使用冪迭代方法,求出M的最大特徵向量。(經過閉式解方法)
該層反向傳播:
推導中紅線第一個等式:
因此結果:
爲了進一步下降計算複雜度:
最終結果:
這層就是將上一層輸入的vk向量變成雙隨機矩陣。分別進行行、列的歸一化。
那麼進一步推導反向傳播:
輸入時上一層的s雙隨機矩陣,因此只要選出機率最大的點就表明這兩個點互相匹配,這裏的loss函數就是計算匹配的點和真實點的物理位置。
設計基本按照softmax而來。可是我有疑問,就是爲何要減去Pi,感受不用減,在(23)式中不是在減了嘛?
其中P式m*2維數,因此應該是第二張圖的個點的物理位置。
有作圖匹配的同窗歡迎交流!!