1. 程式人生 > >什麼是孿生網路,以及其應用

什麼是孿生網路,以及其應用

孿生神經網路是一類包含兩個或更多個相同子網路的神經網路架構。 這裡相同是指它們具有相同的配置即具有相同的引數和權重。 引數更新在兩個子網上共同進行。
孿生神經網路在涉及發現相似性或兩個可比較的事物之間的關係的任務中流行。 一些例子是複述評分,其中輸入是兩個句子,輸出是它們是多麼相似的得分; 或簽名驗證,確定兩個簽名是否來自同一個人。 通常,在這樣的任務中,使用兩個相同的子網路來處理兩個輸入,並且另一個模組將取得它們的輸出併產生最終輸出。 下面的圖片來自Bromley et al (1993)[1]。 他們為簽名驗證任務提出了一個孿生體系結構。
這裡寫圖片描述
孿生結構之所以在這些任務中表現的比較好,有如下幾個原因

  • 子網共享權重意味著訓練需要更少的引數,也就意味著需要更少的資料並且不容易過擬合。
  • 每個子網本質上產生其輸入的表示。 (圖片中的“簽名特徵向量”)。如果您的輸入是相同型別的,例如匹配兩個句子或匹配兩個圖片,使用類似的模型來處理類似的輸入是有意義的。 這樣,您就有了具有相同語義的表示向量,使得它們更容易比較。
  • -

問題回答,一些最近的研究使用孿生體系結構來評分問題和答案候選人之間的相關性[2]。 所以一個輸入是一個問句,另一個輸入是一個答案,輸出和問題的答案是相關的。 問題和答案看起來不完全相同,但如果目標是提取相似性或它們之間的聯絡,孿生體系結構也可以很好地工作。