【論文閱讀】Attention 機制在脫機中文手寫體文本行識別中的應用

論文信息:

作者: 王馨悅,董蘭芳
( 中國科學技術大學計算機科學與技術學院,合肥230027)
E-mail: wxy66@ mail. ustc. edu. cn
該方法在針對具有語義信息的CASIA-HWDB2.0-2. 2 數據集上字符準確率達到了95. 76%,比傳統的encoder-decoder 框架提升了12.83%.
關鍵詞: 文本行識別; 脫機中文手寫體; Attention 機制; LSTM
中圖分類號: TP391 文獻標識碼: A 文章編號: 1000-1220( 2019) 09-1876-05

與中文印刷體相比,手寫體字符的書寫隨意性大,缺乏規範性. 出自不同書寫者的同一類漢字在字形、結構上都會有明顯的差異; 並且相鄰漢字之間會存在粘連,增加了識別的難度. 與英文手寫體相比,漢字種類繁多,根據GB2312-80 標準,漢字共有6763 個,其中包括一級漢字3755 個,二級漢字3008 個,同樣給中文手寫體識別增加了難度.

由於近幾年深度學習不斷髮展,利用深度學習實現文本行識別是一個極具潛力的研究方向,Messina R等人首次提出將MDLSTM-RNN 網絡應用到中文手寫體文本行識別,在CASIA-HWDB數據集上進行訓練,在ICDAR2013 競賽數據集上進行測試,字符準確率爲83.5%.Wu Y C 等人在MDLSTM-RNN 網絡基礎上做了改進,用分離的MDLSTM-RNN 進行中文手寫體文本行識別未加語料庫的前提下準確率提升了3.14%. 可以看出利用神經網絡進行文本行識別準確率相對較低,有較大的提升空間. 但是由於漢字種類較多,目前成功應用在中文手寫體文本行識別中的神經網絡較少,因此找到合適的神經網絡去擬合大類別的離線中文手寫體文本行識別,仍然是一個值得研究的問題.
相比基於切分策略的文本行識別,利用神經網絡可以避免字符切分.,實現真正無分割端到端離線中文手寫體文本行識別. encoder-decoder是較常見的框架,廣泛應用在語音,圖像,視頻等領域.

  1. 沈華東等人:文本摘要的自動提取
  2. Deng Y 等人:將該方法用到了公式識別中;
  3. O Vinyals 等人 :將encoder-decoder框架應用到圖片描述中,
  4. Xu K 等人首次提出在encoder-decoder框架添加Attention 的思想,應用到圖片描述中. 圖片描述是指給定一張圖片,計算機會自動輸出一句話來描述這張圖片.
    對於離線中文手寫體,則是給定一張中文手寫體圖片,輸出對應的可編輯的中文漢字. 通過類比,我們可以將離線中文手寫體的識別看作是獲得該張圖片的描述.

基於Attention機制的encoder-decoder 比傳統的encoder-decoder 框架具有更好的識別結果; 同時也表明encoder-decoder 框架可以成功應用到大類別中文手寫體文本行識別中. 本文的網絡結構與目前成功應用到大類別中文手寫體文本行識別中的MDLSTM-RNN網絡,具有以下優點:

  1. 本文不需要利用單字符和中文語料庫來擴充中文手寫體文本行數據集;
  2. 也不需要利用其他語言的手寫體進行預訓練. 本文直接利用已有數據集CASIA-HDWB2. 0-2. 2,在CNN + BLSTM+ Attention + LSTM 網絡結構下直接進行訓練,並取得了較好的實驗結果.

0.網絡結構:

基於Attention 機制的encoderdecoder框架,具體的結構爲CNN + BLSTM + Attention +LSTM:
cnn用於提取特徵,然後將特徵圖的列向量依次輸入到BLSTM(雙向長短時記憶模型)進行編碼 ,,再將BLSTM 輸出結果結合Attention,輸入到長短期記憶模型(LSTM)中進行解碼:
在這裏插入圖片描述

模型:

輸入: 經過預處理後的離線中文手寫體圖片
輸出: 識別結果

  1. 圖片預處理,按照圖片大小分成33 類;
  2. For epoch = 1…15:
  3. 將預處理後的圖片輸入CNN;
  4. 將步驟3 得到的特徵圖,按列依次輸入BLSTM 進行編碼;
  5. 將編碼後的結果,結合解碼時當前時刻隱藏層的輸出,作爲全連接層的輸入,全連接層後連接tanh 激活函數;
  6. 把步驟5 的輸出採用softmax 進行歸一化,得到每列對應的概率值,也稱爲Attention;
  7. 將步驟4 得到的編碼結果和步驟6 得到的Attention,對應相乘得到新的編碼結果;
  8. 將步驟7 的輸出和當前時刻的LSTM 隱藏層的輸出作爲全連接層的輸入,全連接層後用tanh 激活函數;
  9. 將步驟8 的結果用softmax 歸一化,歸一化後的結果作爲詞典中字符的概率;
  10. 目標函數採用條件概率的負對數似然.

漢字識別特徵提取:

CNN 1 卷積神經網絡 CNN 由若干層卷積層、池化層和全連接層組成. 卷積神經網絡和全連接神經網絡相比,具有局部感知野權值共享下采樣這三個結構特性,使得卷積神經網絡提取到的特徵對輸入數據的平移、旋轉、縮放都具有較高的魯棒性。
在這裏插入圖片描述

語義信息提取和編碼BILSTM:

BILSTM 雙向循環神經網絡 2 ,這個是LSTM的變種。
設計了隱藏層爲256。

LSTM是對RNN(循環神經網絡)的改進,使得它可以處理一些長距離依賴,例如: 明天會下雨,記得帶傘,這裏的傘的圖片信息不明確,經過語義上的學習,就知道這裏有傘的概率比較大,而下雨和傘就存在長距離依賴。

BILSTM 則可以表示當前時刻的輸出不僅與前面的序列相關,還和後面的序列相關。例如: 針對中文手寫體文本行識別,假如有一張圖片的標籤爲“我的筆記本壞了,我想買一個新的筆記本”. 如果使用LSTM,從前向後學習,如果“買”這個字的圖片信息不明確,根據“壞”這個字,可能學到是“修”,“扔”,“買”等. 但如果使用BLSTM,可以從後向前學習,根據“新”這個字,此時學到“買”的概率會變大. 所以針對具有語義信息的文本行,BLSTM具有更強的學習能力,

語義信息解碼LSTM:

LSTM隱藏層爲512. 初始學習率爲0.1
解碼的目的是將圖像特徵轉換爲識別結果。Vinyals O 等人3直接用LSTM 進行解碼,它是將編碼後的向量直接輸
入到LSTM 中. 即無論我們當前學習的是什麼,它的輸入都是整張圖片的信息,也就是說hth^t必須包含原始句子中的所有信息. 但是當句子比較長時,hth^t沒辦法存放這麼多信息,此時便會造成精度下降.

hth^t是BILSTM的最終輸出,由輸出門和單元狀態共同控制。如果想深入瞭解具體計算過程,可以點擊這裏---->>>鏈接待補充
或者自己看原論文。

軟邊緣attention

爲了解決這個問題,Xu K 等人4提出了一種Attention 機制,分爲Hard-Attention 和Soft-Attention,
hardAttention 也就是必須直接選定整個區域,或者不選擇;soft-attention則是可以選擇軟邊緣,例如圖中的紅點的小區域就是attention的可視化 。
在使用Attention 機制之後,每一時刻的輸入不再是整張圖片的信息,而是讓decoder 在輸入序列中自由的選取特徵.
在這裏插入圖片描述
例如在圖(a)裏,正在識別別“天”時,“天”所在圖片的位置的Attention 值會比較大.

attention計算方法:(選讀)

et=a(ht,{Vh,w})e_t = a(h_t,\{V_{h,w}\})αt=softmax(et)\alpha_t = softmax(e_t)zt=β({Vh,w},αt)(9)z_t =\beta (\{V_{h,w}\},\alpha_t) (9)
aa 操作用的是Luong M T 等人5 的方法(詳細點擊–>>>鏈接待補充)Vh,wV{h,w}表示特徵圖第h行,w列組成的向量,hth_t表示LSTM在t時刻的輸出,softmax 表示softmax 函數,αtα_t就是Attention,它表示特徵圖中元素對應的權值. β 同樣採用Luong M T 等人的方法,ztz_t 是decoder 的輸入.

解碼部分(選讀)

ot=tanh(Wchtzt)ot = tanh( W,c[h_t,z_t]) ht=LSTM(ht1yt1ot1)ht = LSTM( h_{t - 1},[y_{t - 1},o_{t - 1}]) p(yt+1y1ytV)=softmax(Woutot) p( y_{t + 1} | y_1,…,y t,V) = softmax( W^{out}o_t)
其中 p(yt+1y1ytV)p( y_{t + 1} | y_1,…,y_t,V) 表示生成 yt+1yt + 1 的所有候選字符的概率,tanhtanh 表示tanhtanh激活函數,W,c 表示權重參數,向量 ztz_thth_t 橫向連接來預測 yt+1y_{t + 1} 的概率.

tt 時刻的解碼,需要 t1t - 1 時刻解碼的輸出和編碼後
的特徵圖作爲輸入.首先根據公式計算特徵圖中列向量對應的權重,再根據公式(9)計算出加權和,將加權和的結果作爲 tt 時刻LSTM 的輸入,最終求出 tt 時刻生成的字符類別.

1.數據集

CASIA-HWDB2.0-2. 2 數據集.
該數據集下共有5019頁圖像,分割爲52230 行和139414 個漢字,共有2703 類.52230 行又分爲訓練集和測試集,其中41780 行作爲訓練集,10450 行作爲測試集. 並且所有圖像均爲灰度圖像.

數據集獲取和下載:

CASIA-HWDB脫機手寫漢字數據集以及申請表下載
CASIA Online and Offline Chinese Handwriting Databases

預處理:

crnn的訓練是有一些技巧的,需要預處理,例如:—>> cnn+bistm+lstm的訓練技巧

算法評估方法:

由於本文采取的是端到端的識別,輸入文本行圖片,直接輸出整行的識別結果. 對於一行的識別結果,如果直接將它和標籤從前往後進行比對,這種方法計算出的正確字符數是不準確的. 所以採取了字符串編輯距離( Levenshtein Distance)來計算識別結果和標籤的相似程度. 對於兩個字符串,定義一套操作方法來把兩個不相同的字符串變得相同. 如果兩個字符串相同,那麼它們的編輯距離爲0; 具體的計算方式如下:

  1. 替換一個字符,編輯距離加1;
  2. 插入一個字符,編輯距離加1;
  3. 刪除一個字符,編輯距離加1.
    最後當識別結果和標籤兩個字符串相同時,此時的編輯距離就是識別結果中出錯的字符的數目,

訓練和迭代:

初始學習率爲0.1.總共訓練了15 個迭代
在這裏插入圖片描述
含有空格標籤的字符準確率可以提升,例如:大#家#好,
用# 表示blank空格,這樣可以在一定程度上抑制前後的聯繫.
在這裏插入圖片描述
6層的卷積層可能存在欠擬合的情況,而10 層的卷積層可能又存在過擬合的情況.

如果要進一步改進,可以:

將CASIA-HWDB1.0-1.2 中孤立手寫字符,轉換爲帶有語義信息的中文手寫體圖片,然後再修改成合適的網絡結構重新進行訓練.


  1. LeCun Y,Bengio Y,Hinton G. Deep learning[J]. Nature,2015,521( 7553) : 436-444. ↩︎

  2. Schuster M,Paliwal K K. Bidirectional recurrent neural networks[J]. IEEE Transactions on Signal Processing,1997,45 ( 11 ) :2673-2681. ↩︎

  3. Vinyals O,Toshev A,Bengio S, et al. Show and tell: aneural image caption generator[C]/ /Computer Vision and Pattern Recognition ( CVPR) ,2015: 3156-3164. ↩︎

  4. Xu K,Ba J,Kiros R, et al. Show, attend and tell: neural image caption generation with visual attention[C]//International Conferenceon Machine Learning( ICML) ,2015: 2048-2057. ↩︎

  5. Luong M T,Pham H,Manning C D. Effective approaches to attention-based neural machine translation[C]/ /Empirical Methods inNatural Language Processing( EMNLP) ,2015: 1412-1421. ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章