siamese網路從數據中去學習一個相似性度量,用這個學習出來的度量去比較和匹配新的未知類別的樣本。
基本介紹
- 中文名:Siamese結構
- 外文名:Siamese Architecture
- 又名:Siamese網路
Siamese結構的提出,主要思想,網路結構,損失函式定義,
Siamese結構的提出
Siamese網路是一種相似性度量方法,當類別數多,但每個類別的樣本數量少的情況下可用於類別的識別、分類等。由於每個類別的樣本太少,我們根本訓練不出什麼好的結果,所以只能去找個新的方法來對這種數據集進行訓練,從而提出了siamese網路。
主要思想
通過一個函式將輸入映射到目標空間,在目標空間使用簡單的距離(歐式距離等)進行對比相似度。在訓練階段去最小化來自相同類別的一對樣本的損失函式值,最大化來自不同類別的一堆樣本的損失函式值。
給定一組映射函式 ,其中參數為W,其目的就是找一組參數W,使得當 和 屬於同一個類別時,相似性度量 是一個較小的值;當 和 屬於不同類別時,相似性度量 是一個較大的值。
這個系統是用訓練集中的成對樣本進行訓練,當 和 屬於同一個類別時,最小化損失函式;當 和 屬於不同類別時,最大化損失函式。其中 除了需要可微外不需要任何的前提假設,因為針對成對樣本輸入,這裡兩個相同的函式G,擁有一份相同的參數W,即這個結構是對稱的,我們將它叫做siamese architecture。
網路結構
左右兩邊兩個網路是完全相同的網路結構,它們共享相同的權值W,輸入數據為一對圖片(X1,X2,Y),其中Y=0表示X1和X2屬於同一個人的臉,Y=1則表示不為同一個人。即相同對為(X1,X2,0),欺騙對為(X1,X2’,1)針對兩個不同的輸入X1和X2,分別輸出低維空間結果為 和 ,它們是由X1和X2經過網路映射得到的。然後將得到的這兩個輸出結果使用能量函式 進行比較。
損失函式定義
假設損失函式只和輸入和參數有關,那么損失函式的形式為:
其中 是第i個樣本,是由一對圖片和一個標籤組成的,其中LG是只計算相同類別對圖片的損失函式,LI是只計算不相同類別對圖片的損失函式。P是訓練的樣本數。通過這樣分開設計,可以達到當最小化損失函式的時候,可減少相同類別對的能量,增加不相同對的能量。很簡單直觀的方法是,將LG設計成單調增加,讓LI單調遞減,但是要保證一個前提,不相同的圖片對距離肯定要比相同圖片對的距離大,那么就是要滿足:
總的損失函式為:
而對於單個樣本的損失函式為:
其中:,Q是一個常量。