Siamese学习笔记
孿生網(wǎng)絡(luò)學(xué)習(xí)筆記
上一篇sentence-bert中筆者簡單的介紹了孿生網(wǎng)絡(luò)的概念,這篇主要嘮嘮。
既然是孿生網(wǎng)絡(luò),說明肯定是存在兩個相似的網(wǎng)絡(luò)結(jié)構(gòu)?為啥要使用孿生網(wǎng)絡(luò)?下面分析
和對比學(xué)習(xí)一樣,孿生網(wǎng)絡(luò)概念最先也是在圖像中提出
從圖1中,我們可以看到,其實每張圖片是經(jīng)過了各自的卷積神經(jīng)網(wǎng)絡(luò),但是兩個卷積神經(jīng)網(wǎng)絡(luò)的所有權(quán)值(所有參數(shù))都是共享的,這就像一對雙胞胎一樣,因此我們管這種權(quán)值共享的網(wǎng)絡(luò)稱之為孿生網(wǎng)絡(luò)。而權(quán)值共享的目的有兩個:
-(1)減少參數(shù)量,減小模型的復(fù)雜度;
-(2)將兩個不同空間維度的向量映射到同一個空間維度上,使其數(shù)據(jù)分布保持一致,在同一空間維度上對不同向量進(jìn)行編碼。
孿生網(wǎng)絡(luò)主要包括4層
主要包含四層:
詞表示層(Embedding Layer)
wordembeding層。
編碼層(Encoder Layer)
融合層(Aggregated Layer)
預(yù)測層(Predict Layer)------------恢復(fù)內(nèi)容開始------------
孿生網(wǎng)絡(luò)學(xué)習(xí)筆記
上一篇sentence-bert中筆者簡單的介紹了孿生網(wǎng)絡(luò)的概念,這篇主要嘮嘮。
既然是孿生網(wǎng)絡(luò),說明肯定是存在兩個相似的網(wǎng)絡(luò)結(jié)構(gòu)?為啥要使用孿生網(wǎng)絡(luò)?下面分析
和對比學(xué)習(xí)一樣,孿生網(wǎng)絡(luò)概念最先也是在圖像中提出
從圖1中,我們可以看到,其實每張圖片是經(jīng)過了各自的卷積神經(jīng)網(wǎng)絡(luò),但是兩個卷積神經(jīng)網(wǎng)絡(luò)的所有權(quán)值(所有參數(shù))都是共享的,這就像一對雙胞胎一樣,因此我們管這種權(quán)值共享的網(wǎng)絡(luò)稱之為孿生網(wǎng)絡(luò)。而權(quán)值共享的目的有兩個:
-(1)減少參數(shù)量,減小模型的復(fù)雜度;
-(2)將兩個不同空間維度的向量映射到同一個空間維度上,使其數(shù)據(jù)分布保持一致,在同一空間維度上對不同向量進(jìn)行編碼。
有兩個一摸一樣的網(wǎng)絡(luò),同時輸入兩個input,
Siamese網(wǎng)絡(luò)要給出輸入圖像X1和X2的相似度,所以它必須能接受兩個圖像作為輸入,如下圖:
圖中上下兩個模型,都由CNN構(gòu)成,兩個模型的參數(shù)值完全相同。不同于傳統(tǒng)CNN的地方,是Siamese網(wǎng)絡(luò)并不直接輸出類別,而是輸出一個向量(比如上圖中是128個數(shù)值組成的一維向量):
若輸入的圖像X1和X2為同一個人,則上下兩個模型輸出的一維向量歐氏距離較小
若輸入的圖像X1和X2不是同一個人,則上下兩個模型輸出的一維向量歐氏距離較大
所以通過對上下兩個模型輸出的向量做歐氏距離計算,就能得到輸入兩幅圖像的相似度。
「ybdesire」
大家可能會有疑問:共享權(quán)值是什么意思?左右兩個神經(jīng)網(wǎng)絡(luò)的權(quán)重一模一樣?
答:是的,在代碼實現(xiàn)的時候,甚至可以是同一個網(wǎng)絡(luò),不用實現(xiàn)另外一個,因為權(quán)值都一樣。對于siamese network,兩邊可以是lstm或者cnn,都可以。
大家可能還有疑問:如果左右兩邊不共享權(quán)值,而是兩個不同的神經(jīng)網(wǎng)絡(luò),叫什么呢?
答:pseudo-siamese network,偽孿生神經(jīng)網(wǎng)絡(luò),如下圖所示。對于pseudo-siamese network,兩邊可以是不同的神經(jīng)網(wǎng)絡(luò)(如一個是lstm,一個是cnn),也可以是相同類型的神經(jīng)網(wǎng)絡(luò)。
在本文匹配應(yīng)該是有場景的
簡單來說,衡量兩個輸入的相似程度。孿生神經(jīng)網(wǎng)絡(luò)有兩個輸入(Input1 and Input2),將兩個輸入feed進(jìn)入兩個神經(jīng)網(wǎng)絡(luò)(Network1 and Network2),這兩個神經(jīng)網(wǎng)絡(luò)分別將輸入映射到新的空間,形成輸入在新的空間中的表示。通過Loss的計算,評價兩個輸入的相似度。參考
孿生網(wǎng)絡(luò)主要包括4層
主要包含四層:
詞表示層(Embedding Layer)
wordembeding層。
編碼層(Encoder Layer)
融合層(Aggregated Layer)
預(yù)測層(Predict Layer)
總結(jié)
以上是生活随笔為你收集整理的Siamese学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AHB和VPB的区别
- 下一篇: 永不加班ig什么意思