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

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機器人東風(fēng)翻身?