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

請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
-
7月8日立即報名>> 【在線會議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會
-
7月31日免費預約>> OFweek 2025具身機器人動力電池技術應用大會
-
7.30-8.1火熱報名中>> 全數(shù)會2025(第六屆)機器人及智能工廠展
-
免費參會立即報名>> 7月30日- 8月1日 2025全數(shù)會工業(yè)芯片與傳感儀表展
-
即日-2025.8.1立即下載>> 《2024智能制造產業(yè)高端化、智能化、綠色化發(fā)展藍皮書》
推薦專題