周 偉
(廈門理工學(xué)院計算機(jī)與信息工程學(xué)院,福建 廈門 361024)
近年來,手寫公式的識別逐漸成為了一個熱門的研究內(nèi)容,它在自動閱卷、在線教育、文檔識別、公式錄入等領(lǐng)域具有很強(qiáng)的應(yīng)用需求。目前,手寫公式的識別研究還處于初期階段,局部歧義、手寫風(fēng)格迥異、結(jié)構(gòu)復(fù)雜等問題仍未得以較好解決。在手寫場景下,很多字符僅從形態(tài)上難以準(zhǔn)確區(qū)分,比如手寫的英文“b”和數(shù)字“6”、字母“x”和乘號等局部歧義和手寫風(fēng)格問題,這都需要結(jié)合上下文來推斷字符的概率[1]。另外,公式中常常包含一些結(jié)構(gòu)復(fù)雜的符號如∑、∏、∫、log 等,符號之間的位置關(guān)系有上下、左右、右上、右下、半包圍等,既要識別符號本身,又要識別與其他符號之間的關(guān)系,這是公式識別的難點所在。
在公式識別研究領(lǐng)域,早期的方法是將其先切分再識別[2-3],但該方法容易切分錯誤,影響識別結(jié)果,且切分之后的符號識別未能考慮上下文信息。Sutskever等[4]提出序列到序列的方法,之后,研究人員開始使用編碼器-解碼器的無切分方法[5],該方法將公式圖片在編碼器中轉(zhuǎn)換為一個中間向量,中間向量又在解碼器中轉(zhuǎn)換為輸出序列,這成為公式識別領(lǐng)域的一個熱門研究。Zhang等[6]針對書寫風(fēng)格迥異的問題,添加了空間和時間注意力機(jī)制,融合多種不同模態(tài)的信息提升效果,該系統(tǒng)在線識別在CROHME2014、CROHME2016 的識別率分別為61.16%、57.02%。Deng 等[7]提出了由粗到細(xì)的注意力機(jī)制,用于識別印刷體和手寫公式,在Im2latex-100k、CROHME2014 的識別率分別為79.88%、38.74%。Zhang 等[8]提出了多尺度空間注意力機(jī)制,解決由字符尺寸差異較大帶來的字符丟失問題,該方法在CROHME2014、CROHME 2016 的識別率分別為52.8%、50.1%,而且,該方法能夠有效處理一些尺寸較小的符號識別,比如小數(shù)點或上標(biāo)等。Nguyen 等[9]提出一種空間分類特征的聚類方法,根據(jù)手寫符號大小不同尺寸如下標(biāo)或上標(biāo)符號等,從多個尺度中提取輸入圖像的特征,并度量圖像之間的空間距離。Zhang等[10]將基于樹結(jié)構(gòu)的雙向長短時記憶方法用于在線公式識別中,提取公式的二維結(jié)構(gòu)。張建樹[11]也使用樹結(jié)構(gòu)進(jìn)行離線手寫公式識別,在CROHME14、CROHME16、CROHME19的識別率分別為49.1%、48.5%、51.4%。Wu 等[12]提出了一種簡稱PAL-v2 的端到端模型,采用新穎的對抗學(xué)方法來學(xué)習(xí)語義不變特征,以處理手寫公式書寫風(fēng)格和格式的多樣性問題,該模型在CROHME14、CROHME16 的識別率分別為48.88%、49.61%。以上模型在手寫公式識別領(lǐng)域均取得不錯的效果,除了樹結(jié)構(gòu)方法是專門處理位置的之外,其他研究內(nèi)容都主要放在空間注意力、字符尺寸、書寫風(fēng)格等內(nèi)容上,與位置編碼方法相關(guān)的手寫公式識別的研究成果較少,而它又是深度學(xué)習(xí)中處理結(jié)構(gòu)關(guān)系和邏輯關(guān)系的有效方法。
關(guān)于深度學(xué)習(xí)中位置編碼的相關(guān)研究,Vaswani等[13]提出一種新穎的位置編碼,即正余弦函數(shù)交替的位置編碼,將詞在句子中所處的位置映射成向量,補(bǔ)充到特征向量中,并通過線性變換和點積學(xué)習(xí)單詞之間的距離和相對位置,被證明是一種有效的位置編碼方法。之后,位置編碼在自然語言領(lǐng)域不斷演變出新的方法,如:Chu等[14]提出條件位置編碼和位置編碼視覺轉(zhuǎn)換器,根據(jù)輸入序列的大小而變化,處理各種尺寸的圖像,并可以保持平移不變性;Liu 等[15]提出FLOATER 絕對位置編碼,解決長度限制問題,提升長度未知的泛化能力;Dai等[16]在Transformer-XL 模型中采用相對位置編碼替換絕對位置編碼,解決長序列的建模問題,它通過每個層注意力處理了詞和詞之間的距離差。在自然語言處理領(lǐng)域,位置編碼方法均取得較好效果。在手寫圖像識別上,Sabour 等[17]曾提出膠囊網(wǎng)絡(luò)采用輸入向量與權(quán)重矩陣相乘方法,編碼低級和高級特征之間的空間關(guān)系,該方法比較重視卷積網(wǎng)絡(luò)中特征之間位置關(guān)系,雖然能處理局部與整體之間的關(guān)系,在手寫數(shù)字?jǐn)?shù)據(jù)集上表現(xiàn)突出,但是網(wǎng)絡(luò)參數(shù)(標(biāo)量)均替換為向量,比卷積網(wǎng)絡(luò)運算量大,泛化能力差。因此,本文提出一種改進(jìn)的位置編碼方法,利用三角函數(shù)線性變換性質(zhì),提取符號的絕對位置和符號之間的相對位置,同時結(jié)合多尺度方法,在水平、垂直方向分別進(jìn)行不同尺度的比例伸縮,以增加符號之間的間距,并分別突出水平、垂直方向的結(jié)構(gòu)關(guān)系,從而提取更細(xì)微的符號和符號之間的位置關(guān)系。
公式符號之間包含重要且復(fù)雜的位置關(guān)系,除了先后之外,還包含上下標(biāo)、包圍、嵌套等關(guān)系。首先,由于卷積網(wǎng)絡(luò)存在難以建模位置(時序信息)的缺陷;其次,循環(huán)神經(jīng)網(wǎng)絡(luò)在隱藏層每個時間點接收上一個時間點的隱藏狀態(tài),能夠建立前后時序的關(guān)系,但是無法處理公式的復(fù)雜結(jié)構(gòu)關(guān)系,如上下、包圍等。所以,在編碼器的特征提取過程中,需要單獨保存位置信息,否則在全連接層進(jìn)行特征整合之后,就會丟失符號之間的位置關(guān)系,如符號a2可能被誤識別為a2、a2、2a等結(jié)構(gòu)錯誤,甚至符號錯誤。
位置編碼的表示方式有多種,三角函數(shù)被證明是一種有效的表示方法,它具有線性變換性質(zhì)。如位置p和p+Δb,通過公式sin(p+Δb)=sin(p)cos(Δb)+cos(p)sin(Δb)和cos(p+Δb)=cos(p)cos(Δb)-sin(p)sin(Δb),位置p+Δb可以通過位置p和Δb表示或者變換得到,也就可以學(xué)習(xí)它們的相對位置關(guān)系。
在Transformer 文本序列問題中,詞在序列中的位置是一個數(shù)字,在二維公式圖像中,位置是一個坐標(biāo)(x,y)。設(shè)特征向量的尺寸為(h,w),x∈[0,h),y∈[0,w),dm表示時間序列數(shù)量,它的值與通道數(shù)量相同。在某個時刻i,i∈[1,dm],生成2個位置函數(shù)信號sin()、cos()分別編碼奇偶時刻的位置。這些正弦、余弦信號連接成一個位置向量P2,這個向量的第i個時刻位置(x,y)的編碼是P2(x,y,i),計算公式為
假設(shè)特性向量尺寸(h’,w’)的值為(14,14),不同坐標(biāo)位置編碼P2(x)用正弦或余弦函數(shù)交替編碼,而且不同的時刻i(即維度)可以采用不同的三角函數(shù)的相位和頻率,不同時刻i的x位置編碼函數(shù)具體如圖1所示。由圖1可見,這正好符合位置編碼的要求,即各個維度周期不一樣,而且同一維度內(nèi)部的值既要有差距,又不能差距太大(在長序列中泛化能力差)。
圖1 不同時刻i的x位置編碼函數(shù)圖Fig.1 Function graph of position x at different time i
位置信息x與y是分開存儲的,位置的向量維度dm,高度h’,寬度w’,dm的值為512,那么位置x存儲在[0,256)的維度,位置y在[256,512)的維度,時刻i=1位置向量分別是[1,14,1,256]和[1,1,14,256],具體如圖2 所示。接著,經(jīng)過每一個時刻i之后,填充成完整的位置向量,發(fā)現(xiàn)位置向量與特征向量尺寸是一樣的,具體如圖3 示。位置向量與特征向量結(jié)合的方法有多種,本文把2個向量相加,拼接起來作為一個新向量,即包含特征和位置的中間向量。
圖2 初始時刻的位置向量圖Fig.2 Initial position vector
在訓(xùn)練中,以不同的尺度比例進(jìn)行拉伸或縮放位置特征,在更大尺度下提取放大的特征。在尺度不變的情況下,對x坐標(biāo)以m∶1 尺度變換,可增加符號之間的橫向間距,更好區(qū)分開符號。同樣,y坐標(biāo)以n∶1 尺度伸縮,則從縱向上增加間距,更明顯突出上下結(jié)構(gòu)關(guān)系。在x坐標(biāo)和y坐標(biāo)上分別進(jìn)行的伸縮變換情況如圖4所示。這樣能讓1張圖片按不同時刻生成2張伸縮圖片,而m和n的值要滿足m>1 和n>1(本文設(shè)m、n的測試值為3 和2)。公式(1)加入位置尺度m∶1 之后,在時刻(維度)i∈[1,]的位置x的編碼函數(shù)如式(2)和式(3)所示:
圖4 在x坐標(biāo)和y坐標(biāo)上分別進(jìn)行伸縮變換示意圖Fig.4 Graph of makes different scale transformation on x coordinate and y coordinate respectively
加入尺度m∶1伸縮之后,奇偶時刻正余弦函數(shù)交替的編碼式子仍然滿足線性變換,公式P2(p+Δb,2i)=sin(mp+mΔb)=sin(mp)cos(mΔb)+cos(mp)sin(mΔb)、P2(p+Δb,2i+1)=cos(mp+mΔb)=cos(mp)cos(mΔb)-sin(mp)sin(mΔb)仍然成立。由于常量Δb是已知的,設(shè)u=sin(mΔb),v=cos(mΔb),那么替換之后,P2(p+Δb,2i)=P2(p,2i)u+P2(p,2i+1)v,P2(p+Δb,2i+1)=P2(p,2i+1)u-P2(p,2i)v,矩陣變換表示形式為
另外,位置向量的值相乘也能得到位置之間的距離信息,計算公式為P2(p+Δb)P2(p)=sin(mp+mΔb)sin(mp)+cos(mp+mΔb)cos(mp)=cos(-mΔb)=v,距離值v是已知常量,能代表兩者的距離(非真實距離)。
為了驗證以上位置編碼方法,本文設(shè)計一個離線手寫公式識別模型,包括密集卷積網(wǎng)絡(luò)、位置編碼、循環(huán)神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制等主要模塊。模型結(jié)構(gòu)如圖5所示。
圖5 離線手寫公式識別模型結(jié)構(gòu)圖Fig.5 Recognition model of offline handwritten mathematical expression
卷積網(wǎng)絡(luò)在圖像特征提取上具有明顯的優(yōu)勢,并且密集卷積網(wǎng)絡(luò)引入跳躍式連接網(wǎng)絡(luò),打破了n-1 層輸出只能作為n層的輸入的習(xí)慣,輸出可以直接跨過多層作為后面某一層的輸入,它的特征共享和任意層互聯(lián)的特性,解決了深層網(wǎng)絡(luò)在訓(xùn)練過程中梯度消散而難以優(yōu)化的問題,而且減少了網(wǎng)絡(luò)的參數(shù)和計算量。本文的卷積網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,它包括多個密集塊和過渡層,由于密集塊的每一層輸入是前面所有層的輸出,第t層的輸入是[x0,x1,…,xt-1],第t層的輸出是xt,k表示每個密集塊中每層輸出的特征圖個數(shù),每經(jīng)過一個層,下一層的特征維度就會增長k,k值越大意味著在網(wǎng)絡(luò)中流通的信息也越大,網(wǎng)絡(luò)的能力也越強(qiáng),同時網(wǎng)絡(luò)的尺寸和計算量也會變大[18]。參考DenseNet-121 網(wǎng)絡(luò)結(jié)構(gòu),本文輸入圖像尺寸[n,h,w,c],其中:h為高度;w為寬度;c為通道數(shù)。首先,圖像經(jīng)過64個7×7卷積核與池化層,其次是3個密集塊,密集塊分別包括{n1=6,n2=12,n3=24}個的1×1卷積核和3×3卷積核,設(shè)增長率k的值為32,特征圖數(shù)量為c’為64,經(jīng)過第1個密集塊和過渡層之后,c’加上n1c×k再除2,即(64+6 × 32)/2=128。以此類推,經(jīng)過3 個密集塊和過渡層之后,特征圖數(shù)c’為512,即特征向量尺寸為[n,h’,w’,512],并嵌入同樣尺寸的位置向量之后,即得到最終的編碼器輸出。
模型的另一個模塊是典型的雙向門控循環(huán)單元(bi-directional gate recurrent unit,BiGRU),它是一種特殊循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN),是處理序列問題的有效方法,并且解決了RNN的梯度爆炸、梯度消失、短時記憶的問題,并且GRU 彌補(bǔ)了RNN 短時記憶的不足,適合處理長度復(fù)雜的公式識別問題。GRU的參數(shù)為
只有更新門rt和重置門zt2 個門參數(shù),重置門有助于捕捉短期的依賴關(guān)系,而更新門有助于捕捉長期的依賴關(guān)系。減少門則減少了參數(shù),兩個門的權(quán)重參數(shù)為Wr和Wz,參數(shù)和計算量相比LSTM 少,訓(xùn)練更容易收斂。
接著,把每一個前向隱藏狀態(tài)和后向隱藏狀態(tài)拼接為隱藏狀態(tài)ht,如
ht再加入到輸入和輸出中間的隱含層,這層可以學(xué)習(xí)到每個符號的上下文特征。因為數(shù)學(xué)公式的符號之間具有時序關(guān)系和上下文關(guān)系,每個特征在轉(zhuǎn)換為符號時都要考慮前后上下文的關(guān)系,只考慮從前往后的信息序列是不夠的。有些數(shù)學(xué)公式需要參考前面的符號才能識別,同樣,有些前面的符號參考后面的符號加以識別,比如手寫的‘)’與‘1’,它們形狀相似,需要根據(jù)前面是否有符號‘(’加以判斷。
為了防止序列關(guān)鍵信息丟失,添加注意力機(jī)制是一種常用方法,尤其是處理公式比較長的任務(wù),它在不同的時間使用不同的隱藏狀態(tài),即權(quán)重系數(shù)Wt,給關(guān)鍵的符號區(qū)域分配更大的權(quán)重系數(shù),減少關(guān)健信息丟失,通過注意力機(jī)制計算每個時刻隱藏狀態(tài)對應(yīng)的權(quán)重at,其計算公式為
式(7)中:Wt表示ht的權(quán)重系數(shù);ut表示注意力層的第t個時刻隱藏狀態(tài);uw表示隨機(jī)初始化的注意力矩陣;at為第t個時刻隱藏狀態(tài)對應(yīng)的權(quán)重。ht輸入到注意力層,得到注意力層t時刻的隱藏狀態(tài)ut,再進(jìn)行歸一化計算注意力的權(quán)重概率分布at,帶權(quán)求和得到上下文特征向量st=∑atht,由st、隱藏層狀態(tài)ut,以及前一時刻預(yù)測符號yt-1預(yù)測目標(biāo)符號yt。
本文采用的評價指標(biāo)除了識別率之外,還有3 個機(jī)器翻譯的評價指標(biāo),即:BLEU(biLingual evaluation understudy)[19]、困惑度、編輯距離。公式是由多個符號按照一定結(jié)構(gòu)順序組合的序列,它的識別是序列到序列的過程,這與機(jī)器翻譯(序列到序列)過程相似。所以,訓(xùn)練和評價模型不能僅僅通過比對整個目標(biāo)序列是否正確,還需要計算預(yù)測值與目標(biāo)值的相似程度。
BLEU是一種機(jī)器翻譯中常用的自動評價指標(biāo)算法,計算預(yù)測與參考之間的相似程度,它是一個比較候選文本與其他一個或多個參考文本的評價分?jǐn)?shù)。除此之外,BLEU也用于其他語言生成、圖片標(biāo)題生成、文本摘要、語音識別等。通過對候選文本與參考文本中的相匹配的n元組進(jìn)行計數(shù),當(dāng)n的值為4時,即BLEU-4。BLEU-4分?jǐn)?shù)范圍在0~1,越接近于1,則效果越好。困惑度是一種交叉熵的指數(shù)形式,它和交叉熵都可以用來評價模型的好壞。困惑度越小,準(zhǔn)確率就會越高,也被認(rèn)為是平均分支系數(shù),即預(yù)測下一個符號有多少種選擇分支,選擇分支越少,模型也越準(zhǔn)確。對于模型M=P(wi|wi-N+1…wi-1),它的困惑度Perplexity(W)公式可定義為交叉熵的指數(shù)形式,即
式(8)中:W代表數(shù)學(xué)公式;N是公式長度;H(W)是交叉熵;P(wi)是符號的概率分布。
編輯距離是自然語言處理中度量序列相似程度的指標(biāo)之一,假設(shè)兩個序列為A、B,序列A[0,i]與序列B[0,j]的編輯距離是由它們之間所需要的最少單字符編輯操作的次數(shù)決定的,其計算公式為
式(9)中:i,j表示序列中的位置,i∈(0,|A|),j∈(0,|B|)。
本文實驗使用了CROHME 2014 和CROHME 2016 兩個數(shù)據(jù)集,它們是在線手寫公式數(shù)據(jù)集,經(jīng)過點數(shù)據(jù)可視化轉(zhuǎn)化為離線手寫公式圖片。CROHME 2014包含訓(xùn)練集8 836個公式、測試集986個公式、101 種符號[20];CROHME 2016 是以CROHME2014 測試集為驗證集,另外測試集包括1 147 個公式[21]。本文在CROHME2014、CROHME2016 數(shù)據(jù)集的實驗數(shù)據(jù)與其他文獻(xiàn)的對比結(jié)果如表1 所示。由表1 可見,本文的識別率比DenseWAP-TD、PAL-v2 提升約1%,含1 個字符錯誤的識別率與DenseWAP-TD、PAL-v2接近,含2個字符錯誤的識別率比DenseWAP-TD、PAL-v2平均提高1%~2%。另外,根據(jù)常見結(jié)構(gòu)符號(如符號∑、∫等)預(yù)測值與目標(biāo)值比對結(jié)果統(tǒng)計,本文的結(jié)構(gòu)識別率分別為69.2%、68.9%,超過其他模型數(shù)據(jù)0.6%以上。
表1 不同模型在CROHME 2014和CROHME 2016 測試集上的結(jié)果對比Table 1 Results of different models on the CROHME 2014 and CROHME 2016 test sets compared 單位:%
模型訓(xùn)練過程的指標(biāo)變化如圖6 所示,可見,開始訓(xùn)練之后,識別率很快突破0,并以較快的速度提升,約20 批次之后提升速度緩慢,并逐漸收斂,第120 批次時的識別率50.08%,迭代次數(shù)少且收斂快。困惑度的值如圖6(b)所示,它的值從10 左右開始快速減少,并逐漸收斂于1.66(第120 批次),它的理想值是1,即只有1 個可選的預(yù)測分支。圖6(c)和圖6(d)分別是BLEU-4、編輯距離值的曲線圖,在1~20 批次之間,它們的值先增加,有一個短暫的下降之后,再快速增加,增加的幅度從快到慢,并逐漸收斂于0.78和83.2,與識別率曲線圖的變化規(guī)律相似。其中,BLEU-4值越高,預(yù)測序列與目標(biāo)序列的相識程度越高,預(yù)測越正確。編輯距離值越大,表示序列之間距離越大,即模型對不同序列認(rèn)識區(qū)分越清楚。優(yōu)化的位置編碼方法與普通坐標(biāo)編碼分別進(jìn)行訓(xùn)練之后,3個評價指標(biāo)變化曲線分別如圖6的細(xì)線和粗線所示,可見,雖然兩者模型訓(xùn)練都可以收斂,但是,前者的各個指標(biāo)曲線收斂比較穩(wěn)定,困惑度指標(biāo)也比后者明顯降低約1,BLEU-4、編輯距離和識別率分別提高約0.15、16和10%。
圖6 在CROHME 2016測試集上的評價指標(biāo)曲線圖Fig.6 Evaluation results on CROHME 2016 test set
圖7 是網(wǎng)絡(luò)訓(xùn)練的幾個關(guān)鍵時刻的可視化過程。由圖7 可知,每一張圖片灰色背景區(qū)域是注意力權(quán)重的可視化效果,區(qū)域的注意力權(quán)重越大,顯示的灰色就越暗,圖片上方是對應(yīng)的位置區(qū)域的目標(biāo)序列。
圖7 圖像生成目標(biāo)序列的各個時刻截圖Fig.7 Screenshots of attention at various moments when the image is converted into a sequence of text
除了識別率和評價指標(biāo)之外,還需要進(jìn)一步對預(yù)測序列與目標(biāo)序列比對,并統(tǒng)計結(jié)構(gòu)識別率、識別錯誤的字符數(shù)等。首先,關(guān)注識別錯誤的公式和符號,例如:33.5與335、h與k、a與α(alpha)、θ與e、N’與N、γ(gamma)與r、1 與i、log 與109、q與9、5 與S、n與h、n與π 等,但是以上錯誤并非必然,與手寫風(fēng)格關(guān)系大,尤其是手寫比較潦草情況。其次,通過比對預(yù)測序列與目標(biāo)序列的結(jié)構(gòu)部分,分析模型識別公式結(jié)構(gòu)的效果。
輸入圖像1:
輸出序列1:sqrt {1+sqrt{2+sqrt{3+sqrt{4}}}}
輸入圖像2:
輸出序列2:a^ {b^ {c^ {d}}}。能夠識別到4 層的根號和3 次指數(shù)的公式復(fù)雜情況的結(jié)構(gòu)。這2 個公式的結(jié)構(gòu)比較深,難度已經(jīng)非常高,本文加入位置編碼之后,可以有效保存和傳遞符號之間的位置關(guān)系。但是,一些更復(fù)雜的符號結(jié)構(gòu)仍存在識別錯誤,一般與2個以上的字母或者數(shù)字有結(jié)構(gòu)關(guān)系,如極限符號lim、累加符號∑等。
本文先引用正余弦函數(shù)交替的編碼方法,在水平和垂直方向分別進(jìn)行多尺度伸縮變換,并通過公式推導(dǎo)證明多尺度伸縮之后仍滿足線性變換性質(zhì),編碼之后的位置向量之間也能通過運算得到它們的距離,位置編碼方法理論可行。然后,設(shè)計一個包含該位置編碼方法的驗證模型。驗證實驗顯示,模型訓(xùn)練速度快,識別率很快突破0,訓(xùn)練約20批次開始逐漸收斂,約120批次之后穩(wěn)定收斂,訓(xùn)練收斂快且穩(wěn)定;在CROHME 2014 和CROHME 2016 的測試集上的識別率分別達(dá)到49.92%和50.08%,結(jié)構(gòu)識別率分別達(dá)到69.2%和68.9%。另外,BLEU-4、困惑度和編輯距離等評價指標(biāo)的值比較合理,且比普通坐標(biāo)編碼效果更好。證明了本文提出的位置編碼的方法具有較好的可行性。未來仍需解決多尺度的參數(shù)優(yōu)化的問題,引入和對比其他優(yōu)秀的深度學(xué)習(xí)位置編碼方法,進(jìn)一步提高評價指標(biāo)和識別率。