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