Signature Verification using a Siamese Time Delay Neural Network

Paper : Signature Verification using a “Siamese” Time Delay Neural Network
Code :

摘要

LeCun在“Signature Verification using a “Siamese” Time Delay Neural Network” 一文中首次提出孿生神經網絡的概念。對於孿生神經網絡(非僞孿生神經網絡),與其說它是一種網絡結構,不如說Siamese Network 是一種針對特定任務訓練特徵提取器的損失函數(類比於triplet loss)。孿生神經網絡的主要用途是面向形式相同的輸入數據,衡量兩個輸入的相似程度。孿生神經網絡將兩個輸入映射到新的空間,形成輸入在新的空間中的表示。通過Loss的計算,評價兩個輸入的相似度。本文主要介紹孿生神經網絡結構,忽略簽名驗證任務相關部分。

算法

孿生神經網絡的結構如下圖所示

在這裏插入圖片描述
孿生神經網絡有兩個輸入端,對應比較的兩個簽名;一個輸出端,對應兩個簽名之間的相似度距離衡量。在簽名驗證的任務中使用時延神經網絡進行特徵提取,使用cosine距離函數進行特徵距離的計算。**對於兩個子網絡,參數是完全相同的。**因此,在代碼實現的時候,甚至可以是同一個網絡,不用實現另外一個,因爲權值都一樣。因此,孿生神經網絡更像是一種類似於triplet loss的二元損失函數的定義。

在訓練過程中,將真實的簽名對的輸出距離賦值爲cosine = 1.0,將仿造的簽名對的輸出距離賦值爲cosine = -0.9 / -1.0,訓練用的簽名對包括50%真實簽名對,40%僞造簽名對和10%真實簽名:非刻意模仿輸入(zero effort forgeries)對。

在測試過程中,使用一個任意一個子網絡進行特徵提取,簡化起見,假定提取出的特徵維度之間是相對獨立的,每一個維度具有相同的方差。假定一個簽名是真實簽名的概率密度ρ-yes爲正態分佈,是仿造的簽名的概率密度ρ-no是一個與召回集中籤名不相關的定值。一種方式爲設ρ-no等於所有仿造簽名的ρ-yes的平均值,那麼測試簽名屬於真實簽名 jj 的概率爲 ρjyesρno+ρjyes\frac{\rho_j-\textrm{yes}}{\rho-\textrm{no}+\rho_j-\textrm{yes}}

總結

個人理解孿生神經網絡(pairwise loss)與三元組損失(triplet loss)相比,triplet loss更強調將訓練集中同類樣本映射到特徵空間中相近的位置,同時增大類與類之間的距離;而pairwise loss在這篇文章中的應用場景是每一個簽名自己就是一個類,因此使用對比損失即可。不過也看到了一篇文章嘗試將triplet loss應用到孿生神經網絡上,總的來說兩者從訓練方式上區別不大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章