孪生网络
孿生網絡(Siamese network)
孿生神經網絡用于處理兩個輸入"比較類似"的情況。
比如,我們要計算兩個句子或者詞匯的語義相似度,使用siamese network比較適合;
偽孿生網絡(pseudo-siamese network)
偽孿生神經網絡適用于處理兩個輸入"有一定差別"的情況。
如果驗證標題與正文的描述是否一致(標題和正文長度差別很大),或者文字是否描述了一幅圖片(一個是圖片,一個是文字),就應該使用pseudo-siamese network。
## Siamese network loss function一般用哪一種呢?
Softmax當然是一種好的選擇,但不一定是最優選擇,即使是在分類問題中。傳統的siamese network使用Contrastive Loss。損失函數還有更多的選擇,siamese network的初衷是計算兩個輸入的相似度,。左右兩個神經網絡分別將輸入轉換成一個"向量",在新的空間中,通過判斷cosine距離就能得到相似度了。Cosine是一個選擇,exp function也是一種選擇,歐式距離什么的都可以,訓練的目標是讓兩個相似的輸入距離盡可能的小,兩個不同類別的輸入距離盡可能的大。
Siamese network的用途有哪些?
這個可以說太多了,nlp&cv領域都有很多應用。
前面提到的詞匯的語義相似度分析,QA中question和answer的匹配,簽名/人臉驗證。
手寫體識別也可以用siamese network,網上已有github代碼。
還有kaggle上Quora的question pair的比賽,即判斷兩個提問是不是同一問題,冠軍隊伍用的就是n多特征+Siamese network,知乎團隊也可以拿這個模型去把玩一下。
在圖像上,基于Siamese網絡的視覺跟蹤算法也已經成為熱點《Fully-convolutional siamese networks for object tracking》。
作者:fighting41love
鏈接:https://www.jianshu.com/p/92d7f6eaacf5
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
當網絡做單樣本學習(One-shot learning)的時候,孿生網絡簡單的分類一下測試圖像與訓練集中的圖像中哪個最相似就可以了。
總結
- 上一篇: 输出函数
- 下一篇: TQ210——下载总结