菅朋朋 王彥麗 夏 盟
1(華中師范大學(xué)國家數(shù)字化學(xué)習(xí)工程技術(shù)研究中心 湖北 武漢 430079)2(河南財經(jīng)政法大學(xué) 河南 鄭州 450000)
在多媒體分析、自然語言處理及機器學(xué)習(xí)等技術(shù)的快速發(fā)展和智能教育需求的合力推動下,自動解答成為人工智能領(lǐng)域的活躍研究問題[1]。物理電路題目的自動理解與解答有文字和圖形兩種題面形式,是自動解答的一個代表性分支[2],同樣面臨著復(fù)雜多變的自然語言理解、圖形的識別與分析困難,以及多模態(tài)題目理解等困難挑戰(zhàn)。
面對這一挑戰(zhàn),許多專家學(xué)者投入到該領(lǐng)域的研究,并在解決問題的方法探索中取得不斷的進步。文獻[3]指出電路模型的分析理解內(nèi)容,包括電路器件、特定節(jié)點、電流電壓分支的識別與分析。在分析電路圖形時,文獻[4]則關(guān)注多節(jié)點直流電路結(jié)構(gòu)與電路方程的關(guān)聯(lián)關(guān)系,認為完整的解題步驟比一個正確答案更有價值。然而,該文沒有給出實現(xiàn)機器理解題目或圖形的方法。在電路圖形中電路符號和連接關(guān)系的識別方面,文獻[5]提出了基于符號表達式驗證的方法對電路進行分析。文獻[6]提出了分層量化的方法。文獻[7]提出了一種基于圖形構(gòu)建的圖對決策樹的方法。這些方法分別從不同角度嘗試完成電路題目自動理解任務(wù),部分完成將人類解題邏輯思路機器化執(zhí)行的設(shè)定。然而,現(xiàn)有的方法均不能以端到端的方式實現(xiàn)電路題目的自動解答。
在自動解答中,文獻[8-10]提出的句法語義模型及其解題框架很好地完成了語義理解問題,即從題目的文本提取實體間的數(shù)量關(guān)系,以此作為題目理解,并實現(xiàn)自動解答。在此基礎(chǔ)上,本文將多媒體處理技術(shù)引入面向自動解答的題目理解,以題目中的多模態(tài)數(shù)據(jù)為對象,建立題目中雙模態(tài)數(shù)據(jù)的特征表達,并融合雙模態(tài)數(shù)據(jù),提出融合文本和圖形理解的電路題目自動解答方法。
本文的主要貢獻總結(jié)為以下三個方面:
(1) 將雙模態(tài)題目形式下的電路題目的理解問題抽象為一個從題目中抽取各種關(guān)系的過程,同時可用方程形式來等效表示所抽取的關(guān)系,即完成了題目理解。
(2) 利用句法語義模型抽取電路題目文本中的關(guān)系的同時,提出網(wǎng)孔搜索法來簡化電路圖的理解,并與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,提取電路圖形中的結(jié)構(gòu)和數(shù)量關(guān)系。
(3) 基于以上分析與處理,對文本與圖形中含有的數(shù)量關(guān)系抽取需要形成一致性題目理解,提出基于雙模態(tài)融合的題目理解用于電路題目的自動解答。
題目理解是從題目提供的所有資料,包括文字、圖形、公式等方面提取出用于解題的信息,理解的結(jié)果形成題目的等價表示,而題目理解過程可視為題目的等價轉(zhuǎn)換。
題目文本是解題關(guān)系的重要信息源,其特點為句式簡單、邏輯清晰、表意明確,一般由i個句子(w1,w2,…,wi)、j個量(q1,q2,…,qj),以及未知數(shù)x共同組成。自動解答的目標(biāo)即為將相關(guān)實體映射到帶有運算符中的算術(shù)表達式E中,求解未知數(shù)。
經(jīng)典語義的題目理解方法[11]是通過使用模板匹配提取題目文本中的知識,優(yōu)點是信息能夠較完整地保存,而且能夠通過再解釋重現(xiàn)情景,有利于人的理解;另一方面則要求模板充足以適應(yīng)不同題目背景。對于解答來說,模板數(shù)量過多妨礙題目理解??茖W(xué)類題目文本內(nèi)容中,句式單一,包含語義部分和句法部分,而其修飾性的輔助背景表述對于解題無關(guān)緊要。因此,文中采用句法語義模型(Syntax-semantics model,S2模型)來抽取題目文本中的實體數(shù)量關(guān)系,并提出精簡模板的方法,通過僅保留句法語義部分所需模板,去除修飾性模板,以此形成對電路題目文本的理解。
這里將S2模型定義為三元組形式:
S=(K,P,E)
(1)
式中:K對應(yīng)電路題目文本中的關(guān)鍵詞,P是詞性模式,E則是對應(yīng)的電路實體的數(shù)學(xué)關(guān)系。由此構(gòu)建一個電路題目的S2模型池。模型池結(jié)構(gòu)如下:
(2)
形成共m個模板的S2模型池,而所需自動解答的電路題目均可據(jù)此抽取題目文本中關(guān)系,形成電路題目文本的理解。
算法1給出了基于S2模型的電路實體關(guān)系抽取算法。
算法1電路題目文本關(guān)系抽取算法
輸入: 電路題目文本,記為T
輸出: 一組表示關(guān)系的電路方程,記為E
步驟1: 題目文本預(yù)處理,構(gòu)建包含語義詞性序列的文本元數(shù)據(jù),記為T(kn,pn);
步驟2: 初始化S2模型池S(km,pm,rm);
步驟3: 使用Sm對題目文本中的關(guān)鍵詞k和詞性模式p進行匹配,即S(km,pm,rm)∩T(kn,pn);
步驟4: 標(biāo)記匹配上的T(kn,pn),并分配對應(yīng)的符號sm、數(shù)值vm和電路單位um;
步驟5: 結(jié)合步驟4中已分配的信息,將S(km,pm,rm)模型中對應(yīng)的關(guān)系rm實例化為一個電路方程,并存于E中;
步驟6: 返回已獲得所有電路實體關(guān)系E(rm,sm,vm,um)。
算法輸入為自然語言描述下的電路題目文本,首先需要對題目文本進行標(biāo)準(zhǔn)化處理和語言分析,構(gòu)建相應(yīng)的題目文本元數(shù)據(jù)。這里使用自然語言處理工具ICTCLAS[12]對文本進行詞性標(biāo)注,即對文本進行格式化處理形成統(tǒng)一的表達格式,進一步地將其解析為一組含有詞性標(biāo)注的句法語義序列,然后進行句子邊緣檢測與分割,從而得到題目文本的元數(shù)據(jù)。接著,使用S2模型中的關(guān)鍵詞和詞性模式分別與所輸入分句中的電路元素詞和帶磁性標(biāo)簽的詞進行匹配,如果匹配成功,則將模型中的數(shù)學(xué)關(guān)系實例化為一個電路方程并輸出;否則,跳轉(zhuǎn)到下一個模型進行匹配,直至所有模型被匹配完為止。通過逐句分析,并對題目文本的元數(shù)據(jù)進行關(guān)系抽取形成電路關(guān)系組,從而實現(xiàn)對電路題目文本的理解。
電路圖形包含著豐富的結(jié)構(gòu)信息,因此電路圖形理解是電路題目理解的重要組成部分,是題目文本無法清晰表達電路結(jié)構(gòu)時的有效補充。通過分析圖形中的內(nèi)容及連接方式來直接理解電路圖形是棘手且費時的,本文提出一種替代方法來簡化這一任務(wù)。首先將電路圖形轉(zhuǎn)換為一組含有結(jié)構(gòu)信息的圖形元數(shù)據(jù),包括圖形元件、子圖形,然后結(jié)合圖形結(jié)構(gòu)和元數(shù)據(jù)對電路圖形進行分析,并抽取其中的電路關(guān)系,以此實現(xiàn)電路圖形的理解。
基于以上分析,可將電路圖形的理解簡化為電路元件與電路圖形、結(jié)構(gòu)識別,以及相應(yīng)關(guān)系抽取問題。前者是電路分析問題,后者則是圖形關(guān)系等價表示問題。電路分析要求獲取元器件準(zhǔn)確信息,包括器件類型和電路中的位置,為經(jīng)典的物體檢測問題。為了高效準(zhǔn)確地完成器件檢測,文中采用一種深度卷積神經(jīng)網(wǎng)絡(luò)算法(Fast Region-based Convolutional Neural Networks, Faster-RCNN[13])對電路圖形進行自動化識別,在完成電路元器件準(zhǔn)確分類的同時,得到相應(yīng)區(qū)域信息。然后,通過網(wǎng)孔搜索算法實現(xiàn)電路圖形中的關(guān)系抽取。
基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法Faster-RCNN由Fast-RCNN和RPN兩部分組成。電路圖形存在尺寸不同的問題,而Faster-RCNN通過使用空間金字塔池化層SPP滿足處理任意大小圖片的需要。而位置信息為由RPN生成電子元件對象的建議區(qū)域。
2.1.1RPN網(wǎng)絡(luò)訓(xùn)練
電路圖形元器件檢測需要得到的是元器件位置,用框體位置及寬高四維向量表示(x*,y*,w*,h*)。電路圖形的特征提取由RPN與Fast-RCNN共享卷積層形成。RPN網(wǎng)絡(luò)前5層與ZF網(wǎng)絡(luò)相同,在conv5-3的卷積特征圖中通過n×n大小的滑動窗口進行滑動卷積,每個滑窗將特征圖映射生成一個低維向量(選用ZF網(wǎng)絡(luò),則為256維)作為中間特征,建議層在寬w高h的特征圖上的每個像素位置采集k個初始區(qū)域,得到w×h×k個錨框初始值[14]。之后由該向量產(chǎn)生兩個分支全連接層,即區(qū)域分類CLS層和區(qū)域回歸REG層,前者是目標(biāo)和非目標(biāo)的概率,后者則是將前面甄選出的所有可能存在目標(biāo)區(qū)域的候選錨框,通過調(diào)整錨框的邊界得到目標(biāo)候選區(qū)域。然后將所得矩形候選區(qū)域送入興趣區(qū)域進行池化,作為Fast-RCNN的輸入。
在RPN網(wǎng)絡(luò)訓(xùn)練時,考慮電路元器件的對稱性,以每個像素為中心點生成長寬比為1∶1的3種尺度面積的錨框,對于產(chǎn)生的錨框采用交并評估法(Intersection over-Union,IoU)進行正負樣本集的選擇。在完成錨框標(biāo)注后,RPN網(wǎng)絡(luò)采用梯度下降算法進行反向傳播訓(xùn)練,損失函數(shù)定義如下:
L({pi},{ti})=
(3)
(4)
式中:x、y、h和w分別代表預(yù)測框的中心點位置、寬和高;xa、ya、ha和wa分別代表錨框的中心坐標(biāo)、寬和高。
2.1.2Fast-RCNN網(wǎng)絡(luò)訓(xùn)練
Fast-RCNN是在得到候選框基礎(chǔ)上,對框體的位置及框內(nèi)物體類別進行細致計算。這里使用可視化卷積網(wǎng)絡(luò)架構(gòu)ZF網(wǎng)絡(luò)生成Fast-RCNN特征圖,其中,ZF網(wǎng)絡(luò)選用ReLu(Rectified Linear Units)[15]作為激活函數(shù),將其應(yīng)用于所有的卷積層和全連接層進行訓(xùn)練。在第5層卷積網(wǎng)絡(luò)中特征圖維數(shù)最大為256×256,這里將該特征圖中的所有特征串連成一個4 096維向量,并增加一個4 096維的特征層FC6形成FC7特征層,使得FC7層具有計算候選區(qū)域檢測的概率和標(biāo)識其目標(biāo)位置的功能。最后通過使用反向傳播算法對檢測網(wǎng)絡(luò)精細化調(diào)整參數(shù),直到候選區(qū)域滿足限定條件為止。
2.1.3聯(lián)合尋優(yōu)
為了優(yōu)化檢測元器件并得到其位置信息目標(biāo),這里采用聯(lián)合RPN和Fast-RCNN完成,過程如下:首先使用ImageNet模型對RPN網(wǎng)絡(luò)進行初始化,固定兩者共有的卷積層,再對RPN網(wǎng)絡(luò)中的獨有層細致地調(diào)整參數(shù),使其滿足兩個網(wǎng)絡(luò)共享卷積層的效果。接著,在保持共享卷積層不變前提下,通過使用Fast-RCNN對上述共享卷積層的檢測結(jié)果進行區(qū)域回歸,可得到每一個區(qū)域的邊界框和置信度,從而實現(xiàn)對檢測網(wǎng)絡(luò)的微調(diào)。由此便將RPN與Fast-RCNN完成合并,形成一個統(tǒng)一的共享卷積特征網(wǎng)絡(luò)。最后通過交替優(yōu)化參數(shù),使得該網(wǎng)絡(luò)在提高電路元器件檢測效率的同時,獲取準(zhǔn)確的目標(biāo)位置信息。
在獲得電路圖形中電路元器件類型及其位置信息后,仍需要在此基礎(chǔ)上抽取電路圖像中的關(guān)系才能完在電路圖形識別,因此,提出網(wǎng)孔搜索算法用于獲取電路圖形中的關(guān)系。
電路圖形中除了結(jié)構(gòu)信息外,主要描述的數(shù)量關(guān)系方程可歸為以下三種:電壓與電流關(guān)系(VCR)方程、基爾霍夫電流定律(KCL)方程和基爾霍夫電壓定律(KVL)方程[16],可根據(jù)此三類用電路方程將實體數(shù)量關(guān)系關(guān)聯(lián)起來。
下面通過實例說明電路圖形理解過程。圖1給出代表性電路圖形,不失一般性,以此為例分析,電路圖形的基本回路由元器件、節(jié)點和連接線以及隱藏其中的電流和電壓組成,這里將其定義為一個電路網(wǎng)孔。一個電路網(wǎng)孔有與其對應(yīng)的VCR方程、KCL 方程和KVL方程,形成漸進式的基本回路圖形理解。
最后電路圖形理解結(jié)果記為得到正確的KVL方程關(guān)系式。如圖2所示,這里根據(jù)識別的節(jié)點與連接線,搜索電路回路以抽取電路圖形中的KVL方程關(guān)系。電路回路的搜索包含兩個步驟:利用深度優(yōu)先算法遍歷電路圖形中所有回路,并根據(jù)KVL將搜索到的回路實例化為電路方程組,如圖2所示;接著對KVL方程組的系數(shù)矩陣進行初等變換形成初等矩陣,并將初等矩陣恢復(fù)成線性無關(guān)的KVL方程組。基于網(wǎng)孔搜索的圖形關(guān)系抽取算法如算法2所示。
圖2 網(wǎng)孔分析電路圖
算法2基于網(wǎng)孔搜索的圖形關(guān)系抽取算法
輸入:一個電路圖形,記為D
輸出:一組表示關(guān)系的電路方程組,記為F
1: 將電路圖形識別得到的元器件、節(jié)點和連接線集合,記為D=(Γ,Φ,Ψ);
2: 初始化元器件集合Γ={τi|i=1,2,…,m}、節(jié)點集合Φ={φj|j=1,2,…,n},將電源處節(jié)點初始化為φ1、連接線集合Ψ={ψk|k=1,2,…,o},存放回路的集合θ(l)設(shè)為θ(1);
3: fori=1 tomdo
4: 根據(jù)歐姆定律列寫VCR方程,并存于集合F中;
5: end for
6: forj=1 tondo
7: 根據(jù)KCL列寫節(jié)點電流方程,并存于集合F′;
8: fork=1 toodo
9: 使用深度優(yōu)先算法搜索從φj出發(fā)并回到φj的節(jié)點列表;
10: 將搜索到的節(jié)點列表存于θ(l)中;
11:l←l+1;
12: end for
13: 從Ψ中刪除連接線ψk;
14: end for
15: 對F′中方程組的系數(shù)矩陣進行初等變換形成初等矩陣,然后將初等矩陣恢復(fù)成線性無關(guān)的KCL方程組,并存于F中;
16: 根據(jù)KVL將θ(l)中的回路實例化為KVL方程組F″,再對F″中方程組的系數(shù)矩陣進行初等變換形成初等矩陣;
17: 將初等矩陣恢復(fù)成線性無關(guān)的KVL方程組,并存于F中。
前文中通過設(shè)定的解題框架分別實現(xiàn)了題目文本與圖形的理解。進一步地,將電路題目文本的理解與圖形理解的結(jié)果相結(jié)合,形成電路題目的一致性理解結(jié)果,即將其轉(zhuǎn)化為等價方程組,代入已知條件,實現(xiàn)問題求解。
為了驗證本文方法的有效性,設(shè)計三類對比實驗,分別從題目文本理解準(zhǔn)確性、電路圖形理解準(zhǔn)確性和融合文本和圖形理解的電路題目自動解答實現(xiàn)進行驗證。分別驗證基于Faster-RCNN和網(wǎng)孔搜索算法抽取圖形關(guān)系的準(zhǔn)確率以及的方法求解電路題目的準(zhǔn)確率。
目前尚沒有電路題目自動解答相關(guān)公開數(shù)據(jù)集,這里從人民教育出版社出版的初中物理課本中收集全部45道電路題目作為實驗的標(biāo)準(zhǔn)數(shù)據(jù)集,其相應(yīng)的信息如表1所示。針對電路圖形的檢測實驗,本文從歷年中考題目和權(quán)威教育類網(wǎng)站上收集1 054幅電路圖形作為訓(xùn)練樣本,其中包含8類共9 000多個元器件、節(jié)點和連線等電路元件。
表1 電路題目數(shù)據(jù)集的信息統(tǒng)計
題目文本理解準(zhǔn)確性主要體現(xiàn)在S2模型抽取題目文本關(guān)系的準(zhǔn)確率。為驗證S2模型抽取題目文本中關(guān)系的準(zhǔn)確率,按照不同程度的關(guān)系抽取分別進行定義理解結(jié)果,包括關(guān)系完全抽取、關(guān)系的部分抽取和關(guān)系無抽取。當(dāng)關(guān)系方程中的表達式、符號、數(shù)值、單位均抽取無誤,則稱為關(guān)系的完全抽取;當(dāng)關(guān)系方程中的符號和單位部分抽取有誤,則稱為部分抽??;如果方程中的表達式抽取錯誤,則稱為關(guān)系無抽取。選取文獻[12]中提出的方法作為基線方法,與本文的關(guān)系是均為通過使用語義模板將題目文本轉(zhuǎn)化為數(shù)學(xué)關(guān)系。
由表2可知,本文方法在抽取文本關(guān)系時,在完全抽取和部分抽取的準(zhǔn)確率分別達到97.22%和2.78%,略高于基線方法的90.74%和9.26%的準(zhǔn)確率,兩種方法均實現(xiàn)了文本關(guān)系的抽取,因此沒有抽取關(guān)系的準(zhǔn)確率為0。然而,相較于基線方法,本文方法使用的模板數(shù)量要遠小于基線的模板數(shù),原因是基線方法使用語義模板匹配來抽取文本中的關(guān)系,而本文方法是使用句法模式代替大量的語義描述。M表示模板數(shù)量,N表示關(guān)系抽取的數(shù)量,P表示關(guān)系抽取準(zhǔn)確率。
表2 基線方法和本文方法在文本關(guān)系抽取的結(jié)果
圖形理解首先需要驗證電路圖形的識別,包括電路元件識別準(zhǔn)確率和關(guān)系抽取準(zhǔn)確率。電路圖形識別實驗環(huán)境采用Ubuntu 16.04操作系統(tǒng),在Caffe框架上運行?;贔aster-RCNN的電路圖形識別和區(qū)域定位示例如圖3所示。
圖3 基于Faster-RCNN電路圖形識別示例
基于Faster-RCNN的電路圖元件識別準(zhǔn)確率如表3所示。由表可知,電路元件中識別的平均準(zhǔn)確率達到了93.81%,其中燈泡的識別準(zhǔn)確率最高,達到97.97%。由于一些元件的訓(xùn)練樣本不足,導(dǎo)致訓(xùn)練時特征提取不足,識別時產(chǎn)生區(qū)域漏檢或錯檢等問題限制了Faster-RCNN的識別精度,但目前的結(jié)果基本滿足電路圖形識別的要求。
表3 基于Faster-RCNN的電路圖形識別結(jié)果
如表4所示,VCR關(guān)系、KCL關(guān)系和KVL關(guān)系的抽取正確率分別是90.91%、81.82%和91.30%,這表明網(wǎng)孔搜索算法可以有效地抽取電路圖形中的關(guān)系;召回率分別為88.24%、81.82%和80.77%,這說明網(wǎng)孔搜索算法可以抽取更多的電路圖形中的關(guān)系;F1-score分別為89.55%、81.82%和85.71%,這說明網(wǎng)孔搜索算法具有較高的電路關(guān)系抽取性能。
表4 基于網(wǎng)孔搜索算法的圖形關(guān)系抽取結(jié)果 %
電路題目的自動解答實驗通過正確解答題目的數(shù)量來評估自動解答有效性。運用本文提出的方法分別對文本題目、圖文結(jié)合電路題目進行自動解答,相應(yīng)的實驗結(jié)果統(tǒng)計見表5。第一類僅含文本的題目,通過S2模型實現(xiàn)題目理解后求解,29道題目中有26道題目正確解答,達到89.66%的解答準(zhǔn)確率;第二類為文本與圖形結(jié)合的電路題目,通過使用本文提出的方法實現(xiàn)87.50%的解答準(zhǔn)確率;最終有40道電路題目被正確解答,解答正確率達到了88.89%。實驗結(jié)果表明,本文提出的融合文本和圖形理解的電路題目自動解答方法是有效的。
表5 融合文本和圖形理解的電路題目自動解答實驗結(jié)果
從以上實驗結(jié)果分析可知,本文提出的針對圖文結(jié)合的電路題目理解及解答方法能夠基本完成題目解答。驗證了所提方法的有效性。
分析錯誤理解及解答的原因,主要有以下幾個方面:① 現(xiàn)有的句法語義模板未能完全覆蓋所有的題目文本出現(xiàn)的數(shù)量關(guān)系,可通過改進句法語義模板池改進;② 題目中符號表達形式多樣,未能準(zhǔn)確匹配,改進方法是提高符號識別范圍,將一些非標(biāo)準(zhǔn)符號表達考慮進來;③ 電路元器件分類錯誤,引起題目的錯誤理解,下一步需要將圖文結(jié)合互相印證,改進單一識別引起的低級錯誤。
選擇自動解答中極具代表性的物理電路題目作為研究對象,在分析其雙模態(tài)題目形式時,提出對文本與圖形中含有的數(shù)量關(guān)系抽取形成一致性題目理解這一解題思想。針對圖形理解,本文提出利用Faster-RCNN算法識別電路元器件的類型及位置,并創(chuàng)新地提出了網(wǎng)孔搜索算法,提取電路圖像中存在的數(shù)學(xué)關(guān)系,實現(xiàn)電路圖形理解。最后將二者相結(jié)合自動解答電路題目,并通過實驗驗證了本文所提方法的有效性。