一种基于图文理解的电路题目自动解答方法*

2019-05-31 03:19菅朋朋王彦丽
通信技术 2019年3期
关键词:网孔锚框句法

菅朋朋 ,何 彬 ,王彦丽 ,夏 盟

(1.华中师范大学国家数字化学习工程技术研究中心,湖北 武汉430000;2.河南财经政法大学,河南 郑州 450000)

0 引 言

自20世纪60年代起,自动解答一直是人工智能领域的研究热点和研究难点[1-2]。它是机器最基本的智力能力,亦可作为其他智能的基础。在初等教育方面,自动解答为智能导学系统提供了核心技术。通过以吴文俊和张景中院士为代表的一批学者的深入研究,我国的自动解答技术目前已处于国际领先水平,同时开发了一系列工具如专家系统、超级画板等[3-5],并将其应用于实际的教学和学习中。自动解答对人工智能和教育信息化的发展均具有重要的意义。

电路题目的自动解答作为自动解答的一个分支,面临着自然语言理解、电路图形识别与分析以及关系推理等困难。Ahmed等人[6]提出电路题目的解答必须结合图形和文本的理解,但他们并未真正实现自动化图文理解的方法。Weyten等人[7]开发了一个基于Web的电路题目训练系统,通过预先存储电路题目、解答模型和知识库等内容,对学生进行解答训练。随后,Weyten等人[8]又提出了基于符号表达式验证的方法对电路进行分析。Paramita等人[9]提出了分层量化的方法来实现电路图形中电路符号和连接关系的识别。Shi等人[10]提出了一种基于图形构建的图对决策树的方法对电路图形进行分析。然而,现有的方法均不能以端到端的方式实现电路题目的自动解答。因此,本文提出了一种基于图文理解的电路题目自动解答方法。

本文的主要贡献如下:

(1)提出了一种基于图文理解的方法用于电路题目的自动解答;

(2)将题目理解抽象为一个从题目中抽取关系的过程,并用方程表示所抽取的关系;

(3)提出了一种句法语义模型用于抽取题目文本中的关系;

(4)提出了一种网孔搜索和卷积神经网络相结合的方法,用于抽取电路图形中的关系。

1 题目文本中的关系抽取

在传统的基于语义的题目理解方法中[11-12],通常使用语句的模板匹配来抽取题目文本中的信息,缺点在于需要设计大量的语义模板理解自然语言描述的复杂情景。通过对题目文本的观察与分析发现,题目文本通常包含语义部分和句法部分,而句法部分可以通过单词的词性来表示,如动词“是”“为”的词性可统一标记为符号“/v”。如果将语义和句法相结合形成一套模型,势必会大大减少语义模板的数量。基于该思想,本文提出了一种基于句法语义模型的文本关系抽取方法。

1.1 句法语义模型的构建

对于电路题目的句法语义模型,句法部分是单词的词性标签,语义部分是学科领域内的关键词结构。一个句法语义模型包括关键词、词性模式和对应的电路实体之间的数学关系。句法语义模型可定义为一个三元组S=(K,P,E),其中K是文本中的关键词,P是文本中的词性模式,E是对应实体之间的数学关系。通过构建一个电路题目的句法语义模型池,可实现对题目文本中关系的抽取。其中,模型池结构为:Σ={Si=(ki,pi,ei)|i=1,2,…,m}。

1.2 基于句法语义模型的关系抽取算法

基于句法语义模型的关系抽取算法如算法1所示。该算法对题目文本进行元数据构建,即对文本进行格式化处理形成统一的表达格式,然后使用自然语言处理工具[13]对文本进行词性标注,再使用句子边缘检测对语句进行分割,进而构建题目文本的元数据结构。对于每一个分句,使用句法语义模型中的关键词和词性模式分别与该分句中的电路元素词和加标注的词性标签进行匹配。若两者均相同,则模型与分句匹配成功,将模型中的数学关系实例化为一个电路方程并输出;若两者不同,则使用下一个模型进行匹配,直至所有模型被匹配完为止。循环处理每一个分句,直至所有分句均被处理,然后输出实例化后的电路方程到一个方程组中,从而实现题目文本中关系的抽取。

算法1:基于句法语义模型的题目文本关系抽取

输入:电路题目文本,记为Xtext;

输出:一组表示关系的方程组,记为Δ;

1:题目文本的元数据构建,即格式化、词性标注和语句分割,记为Xtext(kn,pn);

2:初始化句法语义模型池S(km,pm,rm);

3:在题目文本中匹配关键词k和词性模式p,S(km,pm,rm)∩Xtext(kn,pn);

4:标记匹配上的文本Xtext(kn,pn),并分配对应的符号sm、值vm和单位um;

5:将模型S(km,pm,rm)中对应的数学关系rm实例化为一个电路方程;

6:将电路方程存储到Δ=Δ(rm,sm,vm,um)中,并循环3~6,直到抽取所有的关系为止。

2 电路图形中的关系抽取

针对一个电路图形,直接抽取其中的关系非常困难,而识别电路图形中的元件相对容易,然后根据识别的元件信息列写对应的关系表达式,即可实现电路图形中的关系抽取。从电路图形中抽取关系,需要先识别电路图形,根据识别结果进行电路分析获取关系。由于部分电路图形结构复杂且元器件种类较多,而电路分析需要准确的元器件分类信息和区域信息,因此本文采用一种深度卷积神经网络算法Faster-RCNN[14]对电路图形进行自动化识别。该方法既可对多种类别的电路元器件进行分类检测,又可获得区域信息。根据电路图形识别的结果,本文提出了一种网孔搜索算法对电路图形中的关系进行抽取。

2.1 基于卷积神经网络算法的电路图形识别

Faster-RCNN是一种基于深度卷积神经网络的目标检测算法,由Fast-RCNN[15]和RPN(Region Proposal Network)两部分组成。由于RPN可生成特定对象的建议区域,并与Fast-RCNN共享卷积层特征,因此节省了整个检测网络的运行时间。此外,空间金字塔池化层(Spatial Pyramid Pooling)的使用,使得Faster-RCNN可以处理任意大小的图片。

2.1.1 RPN网络训练

RPN与Fast-RCNN共享卷积层对电路图形进行特征提取形成特征图,然后使用滑动窗口对特征图进行滑动卷积,每个滑动窗口将特征图映射到一个256维的向量(ZF-net含有256个维度);建议层在特征图(宽高为w×h)上的每个像素位置采集k个初始区域,共可得到w×h×k个锚框的初始区域[16];使用区域分类层甄选出可能存在目标的锚框,再通过区域回归层修正锚框的边界,得到目标候选区域;最后将结果输出到ROI(Region of Interest)层进行池化。

在RPN网络训练时,首先建议层会对生成的锚框做标注,即以每个像素为中心点生成三种面积分别为128×128、256×256和512×512像素的锚框。对于产生的锚框采用IoU(Intersection over-Union)进行正负样本集的选择,规则如表1所示。

表1 锚框标注规则

标注锚框后,RPN网络采用梯度下降算法进行反向传播训练。损失函数由分类损失函数和回归损失函数按照一定比例组成,总的损失函数为:

其中,i代表第i个锚框,L({pi})代表分类损失函数,L({ti})代表回归损失函数,λ代表比例系数。

每个锚框后接有一个二分类的softmax,因此可定义每个锚框的分类概率。当锚框为正样本时,pi*=1;当锚框为负样本时,pi*=0。每个锚框后也接有一个用于计算预测窗口与标定窗口之间损失的回归函数。

当RPN网络获取预测框的坐标参数后,需要做回归调整,使得预测框更接近目标框,即通过计算ti和ti*确定目标位置参数,具体过程如下:获取预测框,通过RPN网络获取预测区域的中心位置坐标、宽和高;设定9个锚框,每个锚框对应一个一定比例和宽高的预测窗口,从而确定每个预测窗口的中心点位置坐标、宽和高;计算出目标框位置,通过预测框和锚框预测窗口确定目标框的位置,表达式为:

其中,x、y、w和h分别代表预测框的中心坐标、宽和高;xa、ya、wa和ha分别代表锚框的中心坐标、宽和高;x*、y*、w*和h*分别代表目标框的中心坐标、宽和高。

2.1.2 Fast-RCNN网络训练

Fast-RCNN的网络训练首先通过使用ZF-net生成特征图,ZF-net网络使用ReLu(Rectified Linear Units)作为激活函数应用于所有的卷积层和全连接层进行训练。由于ReLu是一个简化的修正线性神经元,训练速度更快,同时使用交叉熵代价函数,可以保留更多的原始像素信息。在第5层卷积网络中存在一个256×256的特征图,将该特征图中的所有特征串连成一个高维(4 096维)向量,再添加一个4 096维的特征层(FC6)形成FC7特征层。FC7层既可以计算出候选区域分类检测的概率,又可以计算出候选区域对应目标的位置,最后可通过使用反向传播算法对检测网络进行微调。

2.1.3 RPN与Fast-RCNN共享卷积层及联合调优

通过使用ImageNet模型对RPN网络进行初始化,固定两者共有的卷积层,再对RPN网络中独有层的参数进行微调,以达到两个网络共享卷积层的效果。保持共享卷积层不变,通过使用Fast-RCNN对上述共享卷积层的检测结果进行区域回归,可得到每一个区域的边界框和置信度,从而实现对检测网络的微调。这样RPN与Fast-RCNN被合并成为一个统一的网络,并共享卷积特征。通过交替优化,该统一网络不仅提高了检测效率,而且可获取目标的位置信息。

2.2 基于网孔搜索算法的电路图形关系抽取

在基于Faster-RCNN的电路图形识别中,电路元器件可通过分类检测进行有效识别,同时通过RPN网络获取元器件的区域信息。然而,单纯的电路图形识别并不能满足图形中关系的抽取。为此,本文在电路图形识别的基础上提出了一种网孔搜索算法,用于抽取电路图形中的关系。

电路图形理解是题目理解的重要组成部分,因为其中包含丰富的结构信息,尤其是在题目文本无法表达模糊或复杂的电路时。从电路图形中可根据电压与电流关系(VCR)、基尔霍夫电流定律(KCL)和基尔霍夫电压定律(KVL)抽取三类电路方程,即VCR方程、KCL方程和KVL方程[8,17]。通过研究发现,VCR、KCL和LVL中的关系与电路网孔(即基本回路,如图1中的m1、m2、m3)紧密相关。在一个电路网孔中,通常包含元器件、节点和连接线,又包含隐藏其中的电流和电压,如图1所示。

图1 电路图形示例

通过对元器件的识别可直接列写其VCR方程。例如,识别到一个电阻R,可列写对应的方程R=U/I。通过对节点的识别,利用KCL列写对应的节点电流方程,如图2所示。

然而,所有节点电流形成的KCL方程组具有线性相关性,可通过对该方程组的系数矩阵进行初等变换,抽取电路图形中线性无关的KCL方程组。

根据识别的节点与连接线对电路回路进行搜索,可抽取电路图形中的KVL方程组,如图3所示。电路回路的搜索包含两个步骤:一是使用深度优先算法搜索电路图形中所有的回路,并根据KVL将搜索到的回路实例化为电路方程组;二是对KVL方程组的系数矩阵进行初等变换形成初等矩阵,并将初等矩阵恢复成线性无关的KVL方程组,其中每个KVL方程即代表一个电路网孔,如图3中的m1、m2、m3。

图2 电路节点分析

图3 电路网孔分析

算法2:基于网孔搜索算法的图形关系抽取

输入:一个电路图形,记为Xdiagram;

输出:一组表示关系的电路方程组,记为Δ;

1:从电路图形识别中分别提取元器件、节点和连接线集合,记为Xdiagram(Γ,Φ,Ψ);

2:初始化元器件集合Γ={τi|i=1,2,…,m}和节点集合Φ={φ1j|j=1,2,…,n},并置电源处节点为φ1、连接线集合Ψ={ψk|k=1,2,…,o},将存放回路的集合θ(l)置为θ(1);

提取VCR方程组:

3:fori=1 tomdo

4: 根据欧姆定律列写VCR方程,并存于集合Δ中;

5:end for

提取KCL和KVL方程组:

6:forj=1 tondo

7: 根据KCL列写节点电流方程,并存于集合 Δ´;

8: fork=1 toodo

9: 使用深度优先算法,搜索从φ1j出发并回到φ1j的节点列表;

10: 将搜索到的节点列表存于θ(l)中;

11:l←l+1;

12: end for

13: 从Ψ中删除连接线ψk;

14:end for

15:对Δ´中方程组的系数矩阵进行初等变换形成初等矩阵;

16:将初等矩阵恢复成线性无关的KCL方程组,并存于Δ中;

17:根据KVL将θ(l)中的回路实例化为KVL方程组 Δ´´;

18:对Δ´´中方程组的系数矩阵进行初等变换形成初等矩阵;

19:将初等矩阵恢复成线性无关的KVL方程组,并存于Δ中。

3 实 验

由于当前没有针对电路题目自动解答的先例,因此本文从题目文本理解、电路图形理解和电路题目自动解答三个部分进行实验,分别验证基于句法语义模型抽取题目文本关系的准确率、基于Faster-RCNN和网孔搜索算法抽取图形关系的准确率以及基于图文理解的方法求解电路题目的准确率。

3.1 数据集

目前还没有针对电路题目自动解答的公开数据集,因此本文从人教版初中物理课本中收集了45道电路题目作为实验的测试数据,其信息统计如表2所示。针对电路图形的检测实验,本文从历年中考题目和互联网上收集并建立了一个1 056张电路图形的数据集作为训练样本,其中包含10类8 968个元器件、节点和连线等电路元件。Faster-RCNN的数据集按照3:1的比例随机产生训练数据和测试数据,即选取792张电路图形作为训练数据,264张电路图形作为测试数据。

表2 电路题目数据集的信息统计

3.2 题目文本关系抽取的实验结果

为验证句法语义模型抽取题目文本中关系的准确率,本文采用完全抽取、部分抽取和没有抽取三个层次表示关系抽取的程度。如果方程中的表达式、符号、数值和单位均抽取无误,则称为关系的完全抽取;如果方程中的符号和单位部分抽取有误,则称为部分抽取;如果方程中的表达式抽取错误,则称为没有抽取。本文选择文献[12]中提出的方法作为基线方法,因为该方法是与本文方法最相近且用于题目文本的理解。基线方法是一种基于语义分析的方法,通过使用语义模板将题目文本转化为数学关系。

如表3所示,本文方法在抽取文本关系时,完全抽取和部分抽取的准确率分别为93.5%和6.5%,基线方法的准确率分别为90.7%和9.3%,且两种方法均实现了文本关系的抽取,没有抽取关系的准确率为0。本文方法与基线方法在文本关系抽取的准确率方面基本相当,然而本文方法的模板数却远远少于基线方法,原因在于基线方法是使用语义模板匹配来抽取文本中的关系,而本文方法是使用句法模式代替大量的语义描述,再与部分关键语义相结合来抽取关系,其模板数量要远少于基线方法。

表3 基线方法和本文方法在文本关系抽取的结果

3.3 电路图形关系抽取的实验结果

为验证基于Faster-RCNN的电路图形识别的准确率,本文对电路图形中的元件进行分类检测。实验在Caffe框架上运行,操作系统采用Ubuntu 16.04,CPU为Intel(R) Core(TM) i7-4790k@4.00GHz,GPU为GeForce GTX Titan Black,32 GB内存。

电路图形的识别结果,如表4所示。相比于其他电路元件,电阻的识别准确率最高,达到89.36%,其次是滑动变阻器。元件检测的平均准确率达到了82.41%,表明Faster-RCNN在目标检测中能够取得较好的识别效果。但是,由于一些元件的训练样本不足,如电容、灯泡等,导致训练时特征提取不足,识别时产生区域漏检或错检等问题,这是下一步需要优化的地方。由于实验中使用的电路图形是纯电阻电路或者简单的非纯电阻电路,且两个网络的卷积特征共用,使得区域建议和检测时间在平均24.82 ms内完成,可以忽略不计。

表4 基于Faster-RCNN的电路图形识别结果

如2.2节所述,网孔搜索算法可以抽取三类电路方程,而实验中通过正确抽取方程的数量来评估电路图形理解的效率。如表5所示,68个VCR方程中60个被正确抽取、11个KCL方程中10个被正确抽取、26个KVL方程中21个被正确抽取,抽取正确率分别是88.2%、90.9%和80.7%,表明网孔搜索算法可以有效抽取电路图形中的关系。此外,实验中的错误主要集中在电路图形的识别和网孔搜索上,下一步将会继续优化算法,以提高识别与搜索的精确度。

表5 基于网孔搜索算法的图形关系抽取结果

3.4 电路题目自动解答的实验结果

本实验通过正确解答电路题目的数量来评估所提出方法的有效性。基于图文理解的电路题目自动解答的实验结果,如表6所示。其中,针对文本题目,通过句法语义模型的理解可实现79.31%的解答准确率;针对文本与图形结合的题目,通过使用图文理解的方法可实现68.75%的解答准确率。最终,有75.56%的电路题目被正确解答,表明本文提出的基于图文理解的电路题目自动解答方法是有效的。

表6 基于图文理解的电路题目自动解答实验结果

3.5 实验错误分析

本文提出的方法有24.44%的解答错误率,其中13.33%来自文本题目、11.11%来自图文结合题目。导致解答错误的主要原因有以下三点:(1)一些特殊的关系不在句法语义模型抽取的范围之内,如比例关系;(2)非标准的文本表达形式,如符号下标不规范等,导致符号匹配错误;(3)电路图形中元件的分类识别错误,并导致回路搜索错误。这些存在的问题将是下一步需要改进的方向。

4 结 语

本文提出了一种基于图文理解的电路题目自动解答方法,将题目理解的过程抽象为一个从题目中抽取关系的过程,并使用方程表示所抽取的关系,进而提出一种句法语义模型来抽取题目文本中的关系。同时,本文提出一种网孔搜索算法,并与Faster-RCNN算法相结合来提取电路图形中的关系。最后,通过对电路题目自动解答过程的实验,证明了本文所提方法的可行性和有效性。

猜你喜欢
网孔锚框句法
填充阻尼块网孔式弹性垫板力学参数影响研究
锚框策略匹配的SSD飞机遥感图像目标检测
基于GA-RoI Transformer的遥感图像任意方向目标检测
SiO2原位诱导/硅烷修饰全棉网孔水刺材料疏水改性研究
述谓结构与英语句法配置
喇叭网塑件及模具特点
结合k-均值聚类缓解行人检测正负样本不平衡问题
轨下新型网孔式弹性垫板力学性能影响研究
基于深度学习的齿轮视觉微小缺陷检测①
句法二题