一文了解Siamese network
前言:
本文介紹了Siamese (連體)網(wǎng)絡的主要特點、訓練和測試Siamese網(wǎng)絡的步驟、Siamese網(wǎng)絡的應用場合、Siamese網(wǎng)絡的優(yōu)缺點、為什么Siamese被稱為One-shot分類,以及Siamese的損失函數(shù)。
更多內容請關注公眾號CV技術指南,專注于計算機視覺的技術總結,最新技術跟蹤。
Siamese Network的主要特點
1. Siamese 網(wǎng)絡采用兩個不同的輸入,通過兩個具有相同架構、參數(shù)和權重的相似子網(wǎng)絡。
2. 這兩個子網(wǎng)互為鏡像,就像連體雙胞胎一樣。 因此,對任何子網(wǎng)架構、參數(shù)或權重的任何更改也適用于其他子網(wǎng)。
3. 兩個子網(wǎng)絡輸出一個編碼來計算兩個輸入之間的差異。
4. Siamese 網(wǎng)絡的目標是使用相似度分數(shù)對兩個輸入是相同還是不同進行分類?梢允褂枚徊骒亍Ρ群瘮(shù)或三元組損失來計算相似度分數(shù),這些都是用于一般距離度量學習方法的技術。
5. Siamese 網(wǎng)絡是一種one-shot分類器,它使用判別特征從未知分布中概括不熟悉的類別。
訓練 Siamese 神經(jīng)網(wǎng)絡
1. 加載包含不同類的數(shù)據(jù)集
2. 創(chuàng)建正負數(shù)據(jù)對。 當兩個輸入相同時為正數(shù)據(jù)對,當兩個輸入不同時為負數(shù)據(jù)對。
3. 構建卷積神經(jīng)網(wǎng)絡,它使用全連接層輸出特征編碼。我們將通過姊妹 CNN傳遞兩個輸入。姐妹 CNN 應該具有相同的架構、超參數(shù)和權重。
4. 構建差分層以計算兩個姐妹 CNN 網(wǎng)絡編碼輸出之間的歐幾里得距離。
5. 最后一層是具有單個節(jié)點的全連接層,使用 sigmoid 激活函數(shù)輸出相似度分數(shù)。
6. 使用二元交叉熵作為損失函數(shù)。
測試 Siamese 神經(jīng)網(wǎng)絡
1. 向訓練模型發(fā)送兩個輸入以輸出相似度分數(shù)。
2. 由于最后一層使用 sigmoid 激活函數(shù),它輸出一個范圍在 0 到 1 之間的值。接近 1 的相似度得分意味著兩個輸入是相似的。接近 0 的相似度得分意味著兩個輸入不相似。一個好的經(jīng)驗法則是使用 0.5 的相似性截止閾值。
Siamese 神經(jīng)網(wǎng)絡的應用
1. 簽名驗證
2. 面部識別
3. 比較指紋
4. 根據(jù)臨床分級評估疾病嚴重程度
5. 工作資料的文本相似度以恢復匹配
6. 用于配對相似問題的文本相似度
為什么Siamese神經(jīng)網(wǎng)絡被稱為one-shot分類?
1. one-shot分類模型僅使用每個新類別的單個訓練樣本即可正確進行預測。
2. Siamese 網(wǎng)絡使用有監(jiān)督的訓練方法來學習通用輸入特征,然后根據(jù)訓練數(shù)據(jù)對未知的類分布進行預測。
3. 受過訓練的 Siamese 網(wǎng)絡使用一次性學習來預測兩個輸入之間的相似性或不相似性,即使這些新分布中的樣本很少。
Siamese 網(wǎng)絡的優(yōu)點
1. Siamese 網(wǎng)絡是一種one-shot分類模型,只需一個訓練樣本即可進行預測。
2. 對類別不平衡更魯棒,因為它需要很少的信息。 它可以用于某些類的樣本很少的數(shù)據(jù)集。
3. Siamese 網(wǎng)絡的one-shot學習特性不依賴于特定領域的知識,而是利用了深度學習技術。
Siamese 網(wǎng)絡的缺點
僅輸出相似性分數(shù)而不輸出概率。:互斥事件的概率總和為 1。而距離不限于小于或等于 1。
為什么姐妹網(wǎng)絡一定要一樣?
兩個姐妹卷積網(wǎng)絡((sister convolutional network))的模型架構、超參數(shù)和權重必須相同。 它確保它們各自的網(wǎng)絡不會將兩個極其相似的圖像映射到非常不同的特征空間,因為每個網(wǎng)絡計算相同的函數(shù)。
Siamese 網(wǎng)絡使用的損失函數(shù)
1. Siamese 網(wǎng)絡使用相似度分數(shù)來預測兩個輸入是相似還是不同,使用度量學習方法,該方法找到其輸入之間的相對距離。
2. 可以使用二元交叉熵、對比函數(shù)或三重損失計算相似度分數(shù)。
3. Siamese 網(wǎng)絡執(zhí)行二元分類,將輸入分類為相似或不相似;因此,默認使用二元交叉熵損失函數(shù)。
對比損失函數(shù)
1. 對比損失函數(shù)通過對比兩個輸入來區(qū)分相似和不同的圖像。當你在訓練時不了解所有類別并且訓練數(shù)據(jù)有限時,它會有所幫助。它創(chuàng)建了一種數(shù)據(jù)編碼,可以在將來有新類時使用。
2. 對比損失需要一對正負訓練數(shù)據(jù)。 正對包含一個anchor樣本和一個正樣本,負對包含一個anchor樣本和一個負樣本。
3. 對比損失函數(shù)的目標是使正對具有較小的距離,對負對具有較大的距離。
在上面的等式中,當輸入來自同一類時,Y 為 0;否則,Y 的值為 1。
m 是定義半徑的余量,以指示超出此余量的不同對不會造成損失,并且始終大于 0。
Dw 是姐妹 siamese 網(wǎng)絡輸出之間的歐幾里得距離。
Triplet Loss
在 Triplet loss 中,我們使用數(shù)據(jù)的三元組而不是二元對。 三元組由anchor、正樣本和負樣本組成,主要用于面部識別。
在 Triplet loss 中,anchor和正樣本編碼之間的距離被最小化,而anchor和負樣本編碼之間的距離被最大化。
Triplet loss 將 d(a,p) 推到 0 ,并且 d(a,n) 大于 d(a,p)+margin
結論
Siamese 網(wǎng)絡受到 Siamese twins 的啟發(fā),是一種one-shot分類,用于區(qū)分相似和不同的圖像。 即使不知道所有訓練時的類別并且訓練數(shù)據(jù)有限,它也可以應用。 Siamese 網(wǎng)絡基于度量學習方法,該方法使用二元交叉熵或對比損失或三重損失找到其輸入之間的相對距離。
在公眾號中回復關鍵字 “技術總結” 可獲取以下文章的匯總pdf。
更多內容請關注公眾號CV技術指南,專注于計算機視覺的技術總結,最新技術跟蹤。

請輸入評論內容...
請輸入評論/評論長度6~500個字