「模型解讀」深度學習網絡只能有一個輸入嗎

平常我們所見的深度學習模型,都是輸入一個圖像或者視頻序列,輸出分類,分割,目標檢測等結果,但是還有一種模型需要輸入兩張,或者多張圖片,這就是多輸入網絡結構。

作者 | 言有三

編輯 | 言有三


1 多輸入網絡的應用背景

首先我們說說在什麼情況下,需要多個輸入,只以純圖像應用為例。

1.1 圖像驗證與匹對

早在上個世紀90年代的時候,LeCun等研究人員就開始利用神經網絡陸續進行一些研究,比如我們熟知的大名鼎鼎的LeNet5,但這絕不是唯一,今天我們來說他們的另一種網絡結構,Siamese Network,網絡細節我們後面這些,這裡先說應用背景。

簽名驗證:

「模型解讀」深度學習網絡只能有一個輸入嗎

無獨有偶,還是從手寫字開始,同樣是用於銀行,用於驗證簽名是否一致。兩個網絡都是同樣規格的圖像輸入,最後輸出一個相似度。

看到這裡,你應該能夠想起來如今它的更加廣泛的應用,沒錯,就是人臉驗證,或者說人臉識別了。

「模型解讀」深度學習網絡只能有一個輸入嗎

其實用的時候都不需要兩個輸入,因為可以建立一個離線數據集專門用於檢索匹配。

而且,你可以在此基礎上拓展出非常多的玩法,什麼夫妻臉之類的。

1.2 目標跟蹤

目標跟蹤是一個什麼過程?就是在時序幀中搜索目標的過程,本質上就是檢索。

不管是傳統的目標跟蹤中的生成模型和判別模型,還是用深度學習來做目標跟蹤,本質上都是來求取目標區域與搜索區域的相似度,這就是典型的多輸入。

用深度學習來做,就是一個小圖像和一個大圖像分別輸入網絡,輸出相似度。

「模型解讀」深度學習網絡只能有一個輸入嗎

1.3 排序

還有一類問題,可以用多輸入網絡來做,那就是排序。有的時候,我們很難估計一個人的實際年齡或者顏值,但是估計相對年齡和顏值就簡單多了。

而且,在此之上,做些什麼誰更可愛,誰更成熟之類的,可以想出無數花樣,解釋的通就行了。

「模型解讀」深度學習網絡只能有一個輸入嗎

2 多輸入網絡

在這裡,給大家介紹兩個常見的網絡,一個是siamese網絡,一個是triplet網絡。

2.1 siamese network

Siamese本意是“暹羅”人或“泰國”人,後在英語中指“孿生”、“連體”,這是一個外來詞,來源於十九世紀泰國出生的一對連體嬰兒,具體的故事我們就不說了,挺有看頭,大家可以自己去了解。

顧名思義,有兩個輸入,兩個網絡,根據這兩個網絡是否共享權重,可以分為真孿生網絡siamese network和偽孿生網絡pseudo-siamese network。

真孿生網絡siamese network的結構示意圖如下:

「模型解讀」深度學習網絡只能有一個輸入嗎

偽孿生網絡pseudo-siamese network的結構示意圖如下:

「模型解讀」深度學習網絡只能有一個輸入嗎

可以看出差別就在於是否共享權重,loss的選擇就多了,相似度計算方法就多少,它的計算方法就有多少,交叉熵,歐式距離,餘弦距離等都很常用。

那麼是否需要共享權重呢?這就看研究的問題而定了,很明顯不共享權重有更大的發揮空間,這個問題本文不展開講。

2.2 triplet network

如果將上面的二輸入拓展為三輸入怎麼樣?做人臉識別的同學想必不陌生。

沒錯,就是triplet network。

「模型解讀」深度學習網絡只能有一個輸入嗎

大家都知道,訓練人臉識別網絡的時候需要輸入圖像對來判斷是不是同一個人,loss是兩個樣本之間的相似度。不過,光是相似度是不夠的。

我們以前有一篇文章,專門講述了人臉識別中的softmax損失的變種,可以回顧。

「技術綜述」一文道盡softmax loss及其變種

大家在研究的是同一個問題,如果想得到更優良的性能,不僅要將正負樣本區分開,還要讓類內更加緊湊(方差小),類間更加疏遠(方差大)

triplet network將輸入改成三個,訓練的時候使用一個正例+兩個負例,或者一個負例+兩個正例。

訓練的目標就是上面的:同類別間的距離儘可能的小,不同類別間的距離儘可能的大。

基準樣本x和負樣本x-之間的距離定義如下:

「模型解讀」深度學習網絡只能有一個輸入嗎

基準樣本x和正樣本x+之間的距離定義如下:

「模型解讀」深度學習網絡只能有一個輸入嗎

然後優化目標就等於:

「模型解讀」深度學習網絡只能有一個輸入嗎

我們假如網絡訓練的特別好,令margin=1,此時

「模型解讀」深度學習網絡只能有一個輸入嗎

那麼上面的距離:

「模型解讀」深度學習網絡只能有一個輸入嗎

損失也就趨向於0,當然這種要求是不可能達到的,也不合理,因為有的正樣本的確不那麼相似,有的負樣本的確很相似,強行學習過擬合風險就增加了

所以實際用的時候,這個margin應該取一個合理的值,而且樣本的選擇也很有技巧,所以triplet network沒有看起來那麼好訓練。Anyway,這還是很優雅的思想的。

今天就這麼多,更多的並行的輸入也是有的,就作為大家的延伸閱讀吧。

總結

好像文章越寫越簡單了,不過這是好事。

更多網絡結構解讀請移步有三AI知識星球,https://wx.zsxq.com/dweb/#/index/822451554112

「模型解讀」深度學習網絡只能有一個輸入嗎

相關推薦

推薦中...