僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

機器之心發表於2019-05-02
由於深度學習近期取得的進展,手寫字元識別任務對一些主流語言來說已然不是什麼難題了。但是對於一些訓練樣本較少的非主流語言來說,這仍是一個挑戰性問題。為此,本文提出新模型TextCaps,它每類僅用200個訓練樣本就能達到和當前最佳水平媲美的結果。

由於深度學習模型近期取得的進展,對於許多主流語言來說,手寫字元識別已經是得到解決的問題了。但對於其它語言而言,由於缺乏足夠大的、用來訓練深度學習模型的標註資料集,這仍然是一個極具挑戰性的問題。

儘管 CNN 可以很好地理解圖片中的低階和高階特徵,但這樣做會在池化層上丟失有價值的資訊。CNN 的訓練需要大量訓練樣本(一般每一類需要數千或數萬個樣本)才能成功地對影像分類。因此人們對用少量訓練樣本訓練成功的 CNN 有著濃厚興趣。

本文提出了一種技術,它藉助膠囊網路(Capsule Networks,CapsNets)[4] 解決了標註資料集太小的問題。我們僅通過操縱例項化引數 [5],利用了 CapsNet 增強資料的能力。在本文的例子中,CapsNet 不僅識別了字元影像,還學習了它的屬性。這讓 CapsNet 得以在標註資料很少的字元識別問題中大展拳腳。

本文的架構以 Sabour 等人提出的 CapsNet 架構 [4] 為基礎,該架構是由膠囊網路和全連線解碼器網路組成的。研究人員用反摺積網路(deconvolutional network)代替瞭解碼器網路,同時還對膠囊網路做了一些小改動。

通過給表徵實體屬性的例項化引數加入一些可控噪聲,研究人員轉換實體以表徵現實中發生的實際變化。這樣就產生了一種全新的資料生成技術,這種技術生成的資料會比基於仿射變換生成的增強資料更加逼真。

重建準確率在很多情況下也很重要,因此研究人員提出了一種從經驗上講很合適的策略,這種策略結合了可以顯著提升重建效能的損失函式。該系統在每類樣本只有 200 個資料點的情況下得到了和當前最佳結果相當的結果。如果用更多訓練資料,可以得到更好的結果。

本文的主要貢獻如下:

  • 在所有可用訓練樣本上訓練該系統後,在 EMNIST-letters、EMNIST-balanced 以及 EMNIST-digits 字元資料集上得到的結果都優於當前最佳結果;

  • 研究人員還在非字元資料集 Fashion-MNIST 上評估了該架構,以確保模型的靈活性和魯棒性。他們用 200 個訓練樣本得到了非常好的結果,並用完整的資料集得到了當前最佳的結果;

  • 研究人員提出了一種用少量訓練樣本(每一類 200 個資料)訓練膠囊網路的新技術,並在相同數量的測試樣本上實現了當前最佳的效能。和當前最佳的系統相比,我們的模型只需要 10% 的資料就可以得到類似的結果;

  • 研究人員還提出並評估瞭解碼器網路的幾個變體,用不同的損失函式分析瞭解碼器網路的效能,以提供組合損失函式的適當策略。

論文:TextCaps : Handwritten Character Recognition with Very Small Datasets 

僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

論文地址:https://arxiv.org/pdf/1904.08095.pdf

摘要:儘管字元識別系統進展很快,但由於缺乏大量有標註的訓練資料,很多本地化語言還是難以從中獲益。這是因為這樣的語言難以獲得大量標註資料,而深度學習還無法通過少量訓練樣本正確學習。

為了解決這個問題,我們引入了一種根據現有樣本生成新訓練樣本的技術。通過給相應的例項化引數新增隨機可控噪聲,這個新技術可以產生逼真的增強資料,這些增強資料也會反映出人類實際手寫字元時會出現的一些變化。

我們只用每類 200 個訓練樣本的資料進行訓練,就得到了超越基於 EMNIST-letter 資料集所獲的現有字元識別的結果,同時還獲得了與 EMNIST-balanced 、EMNIST-digits 以及 MNIST 這三個資料集相當的現有結果。

我們還開發了一種用損失函式組合有效改善重建能力的策略。我們的系統在缺乏大量標註訓練資料的本地化語言的字元識別任務中很有用,甚至在其它相關的通用內容(比如目標識別)上也是如此。

用膠囊網路進行字元識別

我們提出了一種由膠囊網路和解碼器網路組成且針對字元識別任務的架構,如圖 1 和圖 2 所示。

僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

圖 1:TextCap 模型:用於字元分類的 CapsNet 模型。


僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

圖 2:TextCap 解碼器:用於字元重建的解碼器網路。通過遮蔽 TextCap 分類器的 DigitCaps 層來獲得網路的輸入。

基於例項化引數擾動的影像資料生成技術

用預訓練的解碼器網路,我們可以只用例項化引數向量成功重建原始影像。該擾動演算法背後的原理是,通過在例項化向量值中新增可控的隨機噪聲,我們可以建立和原始影像迥然不同的新影像,從而有效擴大訓練資料集。

圖 3 展示了改變一個特定例項化引數後產生的影像變體。

僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

圖 3:擾動例項化引數後產生的字元變體。

類似地,每一個例項化引數都分別或共同負責影像的某個特定屬性。因此,我們提出了一種新技術,它可以根據訓練樣本有限的資料集產生新資料集,如圖 4 所示。

僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

圖 4:提升解碼器效能的整體方法。

實驗和結果

我們從表 1 中每個資料集的訓練集中選取了 200 個訓練樣本來訓練 TextCaps,並用每個資料集的完整測試集進行測試。為了測試 TextCaps 架構的效能,我們還用完整的訓練集訓練了模型,並用完整的測試集進行測試。

僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

表 1:用於評估 TextCaps 的五個資料集。

僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

表 2:TextCaps 和當前最佳結果的比較,表中展示了 3 次試驗的平均值和標準差。

僅用200個樣本就能得到當前最佳結果:手寫字元識別新模型TextCaps

表 3:使用不同的損失函式組合時產生的每個重建結果的 PSNR 值。我們在這裡用了兩個解碼器網路模型,每個解碼器都有一個損失函式。對每一個損失函式組合來說,第一行的 PSNR 值對應第一個重建損失函式(用在第一個解碼器中),第二行對應的是第二個損失函式(用在第二個解碼器中)。

原文連結:https://arxiv.org/abs/1904.08095

相關文章