1. 程式人生 > >【論文閱讀】Siamese Neural Networks for One-shot Image Recognition

【論文閱讀】Siamese Neural Networks for One-shot Image Recognition

 關鍵詞:     

  • one-short learning :  待解決的問題只有少量的標註資料,先驗知識很匱乏,遷移學習就屬於one-short learning的一種
  • zero-short learning: 這個種情況下完全沒有標註資料,聚類演算法等無監督學習就屬於zero-short learning的一種。

論文主要內容:

  1. 訓練卷積孿生網路訓練模型做圖片驗證,詳細介紹瞭如何使用Omniglot資料集訓練的過程
  2. 說明的模型的效果,與當前主流的方法作比較,也很不錯
  3. 對未訓練的資料集直接做測試,模型也不錯(這裡是不是提醒人們進一步去做遷移學習呢?)

 

       人在接觸和認知新模式時有很強的能力。機器學習雖然很成功,當遇到標記資訊時非常少時,往往會失敗。在新分類中擴充套件訓練的成本是非常昂貴的,我們期望模型可以不經過擴充套件訓練直接適應新的分類。

       比如只有少量標註資料做分類的任務,這個就很有意思,被稱為one-shot learning。於此對應的zero-short learning則是限制不允許有標記的訓練資料。

       One-short learning 通過學習特定領域的特徵或者可以生成可區分屬性的推測器,解決目標任務。這種方法在處理相似例項時表現優異,但是在解決其他的問題時通常是失敗的。我們提出了一個新的方法,不在限制輸入資料的結構,也成功的對只有很少樣例進行建模。這種方法使用了深度學習技術,堆積很非多分線性層,使用了包含巨多引數的模型,同時要使用很多資料防止過擬合,學習引數時不需要很強的先驗只是,當然學習演算法的代價也需要考慮的。

1、方法

通過孿生網路學圖片特徵,然後在不重新學習直接複用網路輸出的特徵。

實驗室將問題限制在字元識別領域,這不影響擴充套件到其他範圍。我們開發了大的孿生卷積網路,它可以:

  1. 學習到一些通用的圖片特徵,可以預測資料非常少的新分類
  2. 在資料來源上進行隨機取樣生成成對的訓練資料,然後使用標準的優化演算法進行訓練
  3. 這種方法不依賴特定領域知識,只依賴深度學習

在開發一個之後很少訓練資料的圖片分類模型,需要學習一個區分不同分類的圖片對,這是一個標準圖片驗證任務(verification task)。能夠處理verification task的模型能夠很好的繁華到one –shot classification。如果在verification task中得分很高,在one shot task得分也會很高

2、類似的研究

李飛飛使用貝葉斯框架研究one-shot task。2013有HBPL解決此類問題,難度非常大。。。。

有些研究人員在嘗試其他的方法,例如結合生成式隱馬爾庫模型和貝葉斯推斷識別未知演講者的新詞。

3、用於影象驗證的深度孿生網路(Deep Siamese Networks for Image Verification)

        1990s, Bromley 和 LeCun使用孿生網路處理簽名驗證任務。孿生網路使用兩個相同的網路,接收不同輸出,網路間共享引數。共享引數能夠保證相似圖片的特徵值不會相差很多。同時也能保證輸入不同的圖片時,執行的相同的度量計算從而保證輸出特徵的可比性。

         LeCun使用的Contrastive loss Function,包括兩項,相同對降低loss,不同對增加loss。作者使用計算兩張圖特徵的帶權重的L1距離 + simoid啟用函式,輸出值對映到[0,1]範圍,這個參照了FaceBook的DeepFace論文。

         效果最好的模型使用多個卷積層+ 全連層+損失函式的設計。

3.1  網路結構

       前兩層使用ReLU啟用函式,其餘的使用sigmoid單元。卷積層的filters尺寸可變,stide固定為1,。為了方便優化濾波器的數量的是16的倍數,然後使用ReLU啟用函式,然後選擇性的使用max-pooling,stride為2.

       網路結構如下:

沒有描述孿生網路的另一部分。實際使用時,在全連層之後會對兩張圖片的各自4096維特徵計算L1距離,輸出的公式是:

      

最後一層在學習的特徵中輸出一個度量值,用以表示兩個特徵的相似度。

其中阿爾法J是模型學習到的權重引數,表示元素距離的重要性。

3.2 學習

損失函式

使用帶有正則化的二元分類交叉熵函式:

      

最優化

       Minbatch size  =128

       引數優化過程:

      

偏導數   學習速率  是L2正則化權重   動量

偏導數   學習速率  是L2正則化權重   動量

權重初始化

       卷積層使用均值為0,標準差0.01的正態分佈初始化權重引數,使用均值為0.5,標準差為0.01正態分佈初始化bias。

       全連層的bias初始化方法和卷積層一樣,權重的初始化均值為0,標準差為0.02,比卷積層更寬泛。

學習模式

       一個epoch學習速率下降0.01,即

      

       學習速率的退化(或者叫退火)有益於模型收斂到區域性最小值,不會卡在誤差表面。

       動量值初始化為0.5,每個epoch線性增加這個值,直到到達每個層分別設定動量值

       每個網路訓練200 epoch,在驗證集中隨機抽取320個圖片檢測error值。當erro值連續20個epoch沒有下降時,停止訓練,選用error值最小的model。如果整個訓練過程,error值不斷下降,我們使用最後的model。

超引數的最優化:

        使用貝葉斯最優化框架Whetlab,用的beta版本。學習速率範圍[0.0001, 0.1],每個層的動量範圍是[0,1],L2正則化懲罰項範圍[0, 0.1]。卷積核的大小在3x3到20x20的範圍內變化,卷積核的數目是16的倍數,從16到256。全連層輸出從128到4096。超引數優化的標準是最大化驗證集的準確率。

Affine distortions  仿射扭曲

       資料增強使用仿射扭曲。對於每個訓練對(x1, x2)使用相同的仿射變換引數生成對應的新對(x1’, x2’),反射。

4 實驗

4.1  資料集

在Omniglot資料集則子集上訓練模型。Omniglot資料集包括了50的字母表,既包括諸如拉丁,韓語一類的國際語言也包括一些土語。每個字母表中字母數量從15到40不等。所有的字母表的字元是20個人畫出來的。包含字母數量約為50個字母表*每個字母表按30個字母算*20個人 = 3w。

資料集被分成40個字母表的Background Set和10的字母表的Evaluation Set。資料分成兩部分是為了區分正常訓練,驗證和測試的model訓練方法。Background set用訓練模型學習超引數和特徵對映關係, Evaluation Set用於驗證使用少量資料進行one-shot classification的能力。

 4.2 verification 驗證網路訓練

       為了訓練驗證網路,隨機抽樣相同和不同的pairs,生成三個不同規模的資料集,分別是3w, 9w和15w。我們使用總資料的60%進行訓練,50個字母表中30個, 20個drawer中的12個。

       每個字母表中用來訓練數量是固定的,保證每個字母表在優化的過程中能夠獲得等同的表徵,但是不能保證每個字母都能公平對待。每個訓練樣本經過仿射扭曲後生成8個新的樣例,資料集規模變成27w, 81w和135w。

       為驗證效能,從額外的10個字母表和4個drawer抽取了1w pairs。10個字母表和4個drawer的剩餘pairs用於測試,這部分和Omniglot資料集的測試資料是一樣的,方便進行橫向對比。    用於驗證效能的另一類策略是使用相同的字母表和drawer生成一組320個識別實驗,模擬Evaluation Set上的目標任務。在實際訓練過程中,第二組策略用於停止訓練的標準,即在最少訓練次數時達到最低的驗證loss。

在下表中,我們列出了六種可能的培訓集中的每一種的最終驗證結果,其中列出的測試準確度在最佳驗證檢查點和閾值處報告。 我們報告六種不同訓練執行的結果,改變訓練集大小和切換扭曲。

圖7中,我們抽取效能Top2模型的前32個濾波器(9w和15w訓練集,經過仿射扭曲資料擴充套件訓練獲得),可以看到濾波器之間有相似適應性,但是在輸入空間中承擔的不同的角色

4.3 one-shot learning

       經過優化後獲得孿生網路的優化模型,開始驗證學到特徵在one-short learning任務中辨識的潛力了。

       為了憑經驗評估one-shot learning的效能,Lake開發了一種20-way的字母表內的分類任務,首先從為評估集保留的字母表中選擇一個字母表,在該字母表中隨機均勻地採集20個字元。二十個drawers中的也選擇兩個。這樣每個drawer都花了了二十個字元的樣本。由第一drawer產生的每個字元被表示為測試影象並且分別與來自第二抽屜的所有二十個字元進行比較,目的是從所有第二抽屜的字元中預測與測試影象對應的類。對於所有字母表,該過程重複兩次,因此對於每個評估字母表,都有40個one shot learning 實驗。這構成了總共400次一次性學習試驗,從中計算分類準確度,結果如下表:

       列表中還包含一個只包括兩個全連層的非卷積神經網路。我們卷積模型達到92%的準確率,比HBPL差點。但是我們的模型沒有關於字元和筆畫的任何先驗知識,這是模型的主要優勢。

4.4  MNIST  one short Trial

Omniglot資料被成功MNIST的變換,因為Omniglot資料集的分類數量遠多於每個分類的圖片數量。那如果直接使用Omniglot資料集上的訓練模型測試MNIST的分類效果會怎麼樣呢,作者列出了與NN演算法的比較:

5、結論

  1. 提出一種首先學習卷積孿生網路模型的one-short classification的方法,在Onniglot資料訓練模型,其效能超過絕大的基線,僅比最好的方法稍差,很接近人類的準確率。並且可以擴充套件到其他的領域的one-short learning。
  2. 作者使用affine distortion做資料擴充套件,現在正在試驗對字型的筆畫做獨立仿射變換,然後疊加的一個合成圖中,由此來模仿一些常見變化。