訂閱
糾錯
加入自媒體

一文了解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分類器,它使用判別特征從未知分布中概括不熟悉的類別。

Siamese network總結(jié)

訓(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ù)的目標是使正對具有較小的距離,對負對具有較大的距離。

Siamese network總結(jié)

Siamese network總結(jié)

在上面的等式中,當(dāng)輸入來自同一類時,Y 為 0;否則,Y 的值為 1。

m 是定義半徑的余量,以指示超出此余量的不同對不會造成損失,并且始終大于 0。

Dw 是姐妹 siamese 網(wǎng)絡(luò)輸出之間的歐幾里得距離。

Triplet Loss

在 Triplet loss 中,我們使用數(shù)據(jù)的三元組而不是二元對。 三元組由anchor、正樣本和負樣本組成,主要用于面部識別。

Siamese network總結(jié)

在 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失或三重損失找到其輸入之間的相對距離。

image.png

在公眾號中回復(fù)關(guān)鍵字 “技術(shù)總結(jié)” 可獲取以下文章的匯總pdf。

更多內(nèi)容請關(guān)注公眾號CV技術(shù)指南,專注于計算機視覺的技術(shù)總結(jié),最新技術(shù)跟蹤。

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

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

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關(guān)注公眾號
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯
    x
    *文字標題:
    *糾錯內(nèi)容:
    聯(lián)系郵箱:
    *驗 證 碼:

    粵公網(wǎng)安備 44030502002758號