周名杰
(南京郵電大學(xué) 自動(dòng)化學(xué)院、人工智能學(xué)院,江蘇 南京 210042)
隨著移動(dòng)設(shè)備的快速普及和相關(guān)技術(shù)的快速發(fā)展,更多的輸入和識(shí)別手寫數(shù)學(xué)表達(dá)式的情況出現(xiàn),這要求我們有快速、穩(wěn)定和準(zhǔn)確的手寫數(shù)學(xué)字符識(shí)別方法。但是,手寫字符通常風(fēng)格變化多樣,并需要關(guān)注上下文信息。除此之外,數(shù)學(xué)表達(dá)式結(jié)構(gòu)復(fù)雜,常常為復(fù)雜的二維結(jié)構(gòu),甚至出現(xiàn)多種結(jié)構(gòu)嵌套的情況。不同于在線識(shí)別,離線圖片中不包含筆跡信息,只能通過圖像本身作為單一信息源來識(shí)別表達(dá)式。因此,對(duì)于手寫數(shù)學(xué)表達(dá)式的識(shí)別研究充滿了挑戰(zhàn)。
在傳統(tǒng)的離線手寫數(shù)學(xué)表達(dá)式識(shí)別方法中,往往將數(shù)學(xué)表達(dá)式的識(shí)別分為兩大部分,符號(hào)的切分和識(shí)別部分以及結(jié)構(gòu)解析部分[1]。字符的切分往往是基于圖像中的像素點(diǎn)[2]或者是設(shè)計(jì)包圍字符[3]的包圍框等。卷積神經(jīng)網(wǎng)絡(luò)方法[4],常被用在字符的識(shí)別中。結(jié)構(gòu)解析部分,大致分為兩類算法,一類是基于語法的結(jié)構(gòu)解析,如有限從句語法[5],上下文無關(guān)語法[6]等。另一類算法是不基于語法的結(jié)構(gòu)解析算法,如MacLean 的貝葉斯模型方法[7],Hirata 的模板匹配方法[8]等。
近年來,基于編碼解碼結(jié)構(gòu)的方法取得了較為明顯的成功。編碼解碼結(jié)構(gòu)在序列到序列的問題,如自然語言處理任務(wù)中擁有不錯(cuò)的表現(xiàn)。ZHANG 的WAP模型[9]中,使用VGG[10]作為編碼環(huán)節(jié),將輸入圖片中的特征進(jìn)行提取,生成序列數(shù)據(jù);包含了注意力模塊的循環(huán)神經(jīng)網(wǎng)絡(luò)[11]作為解碼環(huán)節(jié)。密集連接卷積編碼器和多尺度注意力模型[12],進(jìn)一步提升了編碼解碼結(jié)構(gòu)的性能。
為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的時(shí)序依賴問題,文獻(xiàn)[13]提出了完全使用注意力實(shí)現(xiàn)的模型Transformer,代替了循環(huán)神經(jīng)網(wǎng)絡(luò),在翻譯任務(wù)上取得了很好的成績(jī)。
針對(duì)手寫數(shù)學(xué)表達(dá)式識(shí)別,本文提出基于ResNet[14]與Transformer 結(jié)合的方法,首先通過殘差網(wǎng)絡(luò),序列化圖片中的特征信息,之后經(jīng)過位置編碼[15]添加位置信息。經(jīng)過處理的特征序列輸入到Transformer 進(jìn)行編碼解碼計(jì)算,達(dá)到識(shí)別手寫數(shù)學(xué)表達(dá)式的目的。
受編碼解碼模型以及注意力模型的啟發(fā),本文提出一種新型的基于ResNet 與Transformer 網(wǎng)絡(luò)的結(jié)構(gòu),用以實(shí)現(xiàn)對(duì)手寫數(shù)學(xué)表達(dá)式的識(shí)別工作,整體結(jié)構(gòu)如圖1 所示。本模型的輸入為單個(gè)圖像,輸出為L(zhǎng)aTex 序列的公式表達(dá)。
圖1 模型整體結(jié)構(gòu)圖
整體公式:
1.1.1 殘差網(wǎng)絡(luò)
本文使用的是標(biāo)準(zhǔn)的ResNet34 網(wǎng)絡(luò),但是將最后一層全連接層替換為線性網(wǎng)絡(luò),實(shí)現(xiàn)將C×H×W 的圖像轉(zhuǎn)化為N×D 的二維序列。
1.1.2 位置編碼
殘差網(wǎng)絡(luò)的輸出序列x,以及解碼器輸出將經(jīng)由位置編碼,用以利用序列之間的位置信息。本文使用的位置編碼方式為相對(duì)位置編碼,并使用三角函數(shù)來計(jì)算位置信息。公式如下所示:
Transformer 網(wǎng)絡(luò)中的編碼模塊由多層子網(wǎng)絡(luò)組成,子網(wǎng)絡(luò)包含多頭注意力與前向網(wǎng)絡(luò)。解碼模塊具有類似的結(jié)構(gòu),但是增加了掩模多頭注意力網(wǎng)絡(luò)。解碼網(wǎng)絡(luò)的輸入是編碼網(wǎng)絡(luò)的輸出F、前部分解碼網(wǎng)絡(luò)的輸出Zl-1。
1.2.1 多頭注意力
多頭注意力(圖2 右)由多個(gè)注意力機(jī)制(圖2 左)組成,公式為
圖2 注意力以及多頭注意力
1.2.2 掩模多頭注意力
解碼器在進(jìn)行對(duì)查詢、鍵和值的注意力計(jì)算時(shí),需要有一個(gè)特殊的當(dāng)前查詢,它需要滿足能夠包含當(dāng)前位置以及之前的信息,并且在訓(xùn)練時(shí)不會(huì)包含“未來的”信息,即當(dāng)前位置之后的輸入。根據(jù)注意力模型中softmax 函數(shù)的性質(zhì),采用負(fù)無窮化將當(dāng)前位置之后的輸入,使softmax 計(jì)算的結(jié)果趨近于0,達(dá)到只注意當(dāng)前以及之前生成結(jié)果的目的。
在訓(xùn)練階段,目標(biāo)是最大化預(yù)測(cè)詞的概率,使用交叉熵作為目標(biāo)函數(shù):
loss=CrossEntropy (y,trg),其中y 是預(yù)測(cè)標(biāo)簽,trg 是正確標(biāo)簽。
本模型是整體訓(xùn)練的,輸入為圖片,輸出為一維向量,代表各字符所在字典中的序號(hào)。字典中包含115 個(gè)LaTex 符號(hào)以及開始標(biāo)志
在預(yù)測(cè)階段,目標(biāo)是得到最可能的預(yù)測(cè)字符向量:
與訓(xùn)練階段不同的是,我們將過去生成的結(jié)果作為假定的正確標(biāo)簽輸入,初始輸入為開始標(biāo)志
我們的數(shù)據(jù)集使用CROHME2016 的競(jìng)賽數(shù)據(jù)集,數(shù)據(jù)集共包含8 852 個(gè)數(shù)學(xué)表達(dá)式的訓(xùn)練集和1 個(gè)包含1 147 個(gè)數(shù)學(xué)表達(dá)式的測(cè)試集。
在CROHME 的比賽中,使用表達(dá)式正確識(shí)別率(競(jìng)賽組織者提供)來評(píng)價(jià)模型的表現(xiàn)。
我們?cè)趯?shí)驗(yàn)中還使用了單詞錯(cuò)誤率(WER[16]),每當(dāng)在表達(dá)式中發(fā)生替換、刪除和增加時(shí),都記作一次錯(cuò)誤。其計(jì)算公式如下:
表1 列出了本文方法及其他相關(guān)模型在數(shù)據(jù)集中的表達(dá)式正確識(shí)別率及WER。
表1 本文方法與其他相關(guān)模型對(duì)測(cè)試數(shù)據(jù)集中的表達(dá)式正確識(shí)別對(duì)比
與各個(gè)參賽的模型進(jìn)行對(duì)比,可以看到本文的方法對(duì)測(cè)試數(shù)據(jù)集中的表達(dá)式能達(dá)到有效識(shí)別,單詞錯(cuò)誤率與WAP 模型相近,證明了本模型的有效性。為了提升表達(dá)式正確識(shí)別率,我們使用擴(kuò)展的數(shù)據(jù)集,擴(kuò)展數(shù)據(jù)集除了現(xiàn)有數(shù)據(jù)之外,還包含了生成數(shù)據(jù)和采用了隨機(jī)旋轉(zhuǎn)、縮放和扭曲[17]的現(xiàn)有數(shù)據(jù),實(shí)驗(yàn)表明表達(dá)式正確識(shí)別率能夠得到提升,達(dá)到45.43%,WER 達(dá)到18.8%。
與傳統(tǒng)的分步公式識(shí)別方法進(jìn)行對(duì)比,見表1,盡管Wiris 的公式識(shí)別率較高,但是其模型使用了大量的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,這表明一個(gè)好的解析模型對(duì)結(jié)果的影響很大。
在本文中我們介紹了一種識(shí)別手寫數(shù)學(xué)表達(dá)式的新方法,它由殘差網(wǎng)絡(luò)與Transformer 網(wǎng)絡(luò)組成,本模型能有效地在不進(jìn)行顯示分割的情況下完成對(duì)字符的識(shí)別以及結(jié)構(gòu)的分析,在CROHME2016 數(shù)據(jù)集上進(jìn)行了測(cè)試。
在未來的工作中,我們計(jì)劃采用多尺度分析方法來改進(jìn)模型,以及探索本模型在文本識(shí)別等其他場(chǎng)景下的應(yīng)用。