董 瑶,徐 敏,周丽娟,陈文龙,周修庄,张晓宇
1(首都师范大学 信息工程学院,北京 100048)2(北京邮电大学 人工智能学院,北京 100876)3(中国电子科技集团公司第四十七研究所,沈阳 110000) E-mail:xumin@cnu.edu.cn
近年来,新时代“互联网+”背景下的在线学习模式以其数字化、网络化、智能化等特点快速发展.在线教育中,师生间的教与学可以不受时间和空间的限制,知识获取方式更加灵活化与多样化.尤其是疫情期间,各大院校通过慕课网(Massive Open Online Course,MOOC)等网络教育平台,组织师生开展在线教学工作,启动实施直播教学、在线辅导、作业批改等教育活动,有效解决学习者居家学习问题.
然而,在线教育也存在着一些严重的问题.例如,由于师生缺乏有效的实时互动,学习者普遍存在辍课率高和完成率低的情况[1].在传统课堂环境中,教师通过观察学习者的行为和面部表情,能够判断学习者的投入程度[2].然而对于线上学习场景,教师对所有学生实施实时监管存在困难,学习者的学习效果只能通过在线平台的课后反馈数据来判断.因此,对摄像机采集的学生行为视觉特征进行建模,自动实时评估学生参与度,对教师教学策略的实时调整和个性化教学策略的实施,具有非常重要的指导作用.
学习参与度通常被定义为特定学习活动中,学生伴随参与而产生的情绪反应的程度[3].对学生和教师来说,学习总是通过互动完成的,同时与教师的联系是否紧密也影响着学生的自学效率.学习参与度反映了学生持续学习的效果,是衡量教育质量和评估学生学习参与情况的重要指标[4].识别在线环境中学生的学习参与度,能够帮助教师及时了解学生的参与情况,推进设计更加有效的教育教学方式,提升学生的学习效率和教师的教学效率[5].
目前参与度自动识别的研究主要分为两个方面:个体的内部参与和外部参与.内部参与包括认知参与和情感参与,外部参与指可观察到的,如面部表情,身体姿态等信息描述的行为参与[6].在线学习环境中,需要采用电子设备捕捉学习者与系统互动过程中的行为表示,再通过分析记录的数据对参与程度进行识别.某些行为,例如学习者眼睛没有注视屏幕,或者在观看视频时打哈欠等,被认为是参与程度较低的表现,相反的,被认为是参与程度较高的表现.DAiSEE数据集[7]收集了112名受试者在无约束环境下的在线学习视频,并根据心理专家创建的黄金标准,将参与度分为极低参与、低参与、一般参与和高参与4个等级.图1给出了4种不同参与程度的示例样本,极低参与表现为面部皱眉或疲倦,眼睛经常看向屏幕外和打哈欠,或者眼睛完全闭合,经常变换姿势等;低参与表现为面部轻微皱眉或疲倦,眼睛有时看向屏幕外,有时后仰或者前倾,采取不必要的行动,例如触摸他们的身体等动作;一般参与表现为面无表情,眼睛主要集中在屏幕上,大部分时间身体呈直立姿势,没有不必要的行动;高参与表现为脸部表情愉快而严肃,眼睛聚焦在屏幕上,身体姿势直立,没有不必要的行动.
图1 4种不同参与程度的样本示例Fig.1 Four samples with different engagement levels
在距离度量空间中,相似的样本比不相似的样本距离更近[8].然而,由于学习参与度标签的敏感性,存在一些相邻参与度的学习者的视觉特征差异并不明显,例如图1中极低参与和低参与的皱眉和疲倦程度没有明确的分类界线.使用传统距离度量方法进行参与度识别,很可能出现同一类别的参与度样本对与不同类别的参与度样本对相比,反而具有更大的视觉特征差异.因此,如何结合参与度数据自身特点,学习一个有效的距离度量空间约束深度网络提取的嵌入特征的类内聚集性和类间分隔性,仍是一项极具挑战性的研究.为此,本文提出了一种基于有序度量空间的参与度识别方法.
本文的主要贡献包含以下3点:
1)参与度标签的类别具有按照程度从低到高有序的结构属性,本文利用参与度样本标签的这一结构特性,提出一种标签敏感的深度度量学习方法,将深度网络提取的嵌入特征映射到有序度量空间,使得在学习获得的度量空间中,样本间的视觉特征相似性与其参与程度之间保持有序的一致性,进一步提高分类精度.
2)提出了一种困难四元组(hard quadruplet)构造策略,挖掘参与度样本中特征相似度较小的正样本对,以及特征相似度较大的负样本对,有效提升了网络对难分类样本的鉴别能力.
3)在课堂参与度基准数据集DAiSEE上进行了充分的实验评估和验证,实验结果表明提出的方法相较基线算法具有较好的性能改进.
在线学习环境中,参与度识别可以基于多种数据模式实现,例如学习者上课的行为表现、面部表情或身体动作、先进的生理和神经测量、课后作业反馈等[9].现有的参与度自动识别方法主要分为基于视觉特征、基于时空特征和基于多模态特征3种:
1)基于视觉特征的方法主要是使用传统的机器学习方法或深度学习方法从视频每一帧图像的二维空间上提取特征,常用的特征包括眼睛注视特征、面部活动单元(Action Unit,AU)、LBP-TOP(Local Binary Pattern from Three Orthogonal Planes)特征等.Mcdaniel B等[10]较早利用面部表情,也就是提取面部特征来检测学习情境中的情绪.Jacob Whitehill等[11]利用视频分析的方法识别行为参与度,并定义了4个层次的参与度,该分析是基于面部视觉特征进行的,他们分别提取Box Filter(BF)和 Gabor Energy Filters这些低级特征,然后用GentleBoost和支持向量机(Support Vector Machine,SVM)分类器对提取的特征进行分类,同时使用CERT工具[12]提取3D头部姿态和20个面部活动单元等高级特征,然后建立多项逻辑回归(Multinomial Logistic Regression,MLR)模型进行预测.Woo-Han Yun等[13]提出了一种基于卷积神经网络(Convolutional Neural Network,CNN)的儿童参与度自动识别方法,利用深度学习对图像数据进行特征提取和分类.
2)基于时空特征的方法目前在行为检测、手势识别等领域具有广泛应用,通过捕捉动作的时序动态信息,提高模型的识别性能.Huang Tao等[14]提出了一个结合时间卷积(temporal convolution)、双向长短期记忆网络(Bi-directional Long-Short Term Memory,Bi-LSTM)和注意力机制(Attention Mechanism)的DERN(Deep Engagement Recognition Network)模型,利用时间卷积来捕捉局部特征,并将浅层特征和深层特征进行串联,使模型更容易从视频中学习知识.根据当前的学习内容和之前的学习内容,用户的参与程度随着时间的推移而变化.为了捕获这些变化,学习并获得连续段之间的关系,Van Thong等[15]提出了一个包含长短期记忆网络LSTM和全连接层的两种不同组合的集成模型,并对最后一个全连接层的输出进行预测.在EmotiW2020挑战赛中,Zhu Bin等[16]应用多特征工程方法,提取面部特征、身体姿势特征和CNN特征,建立了一个基于注意力的门控循环单元(Gated Recurrent Unit,GRU)深度网络,以捕捉长期视频序列的时间特征.
3)基于多模态特征的方法是指从多个角度对用户参与度进行分析,通常包括视频信息、音频信息、学习日志、生理信号等.Monkaresi H等[17]在模拟教育环境中收集学习者在进行学习活动时的面部视频和心率数据,提取视频片段的面部活动单元特征、LBP-TOP特征,将这两组特征和心率数据共同用于建立机器学习模型预测参与度.Leite I等[18]收集了受试者的上身姿势信息、面部信息和日志文件,对儿童与两个社交机器人互动时的参与度进行研究,研究结果表明,使用群体数据训练的模型比个体数据训练的模型具有更强的泛化能力.Niu等[19]采用OpenFace2.0[20]进行眼睛注视特征(Eye Gaze)、面部活动单元(AU)、头部姿态特征(Head Pose)提取,设计提出Gaze-AU-Pose特征用于参与度识别任务.
目前关于参与度自动识别的研究大多是将参与度识别任务作为标准分类任务,结合softmax输出特征向量属于每一类的概率,得到最佳分类结果.近年来,深度度量学习在动作识别、图像检索、行人重识别等一些分类任务上取得了显著成效.基于样本间的相似性原则[21],深度度量学习将深度网络与度量学习结合,通过特定的损失函数,学习一个从原始特征到低维稠密的特征空间的非线性映射,使图像之间的相似性保留在特征空间中.在该映射下,同类样本对应的特征距离更近,不同类样本对应的特征距离更远,从而达到细分类的目的.与传统的距离度量方法相比,深度度量学习不依赖原始输入空间,而且能够很好的映射未知类别的新样本与训练样本之间的关系.
损失函数在深度度量学习中扮演着非常重要的角色,其中比较经典的是对比损失(contrastive loss)[22]和三元组损失(triplet loss)[23].对比损失遵循的基本准则是在嵌入空间中,类内距离越小越好,类间距离如果小于一个固定值m,则通过互斥使其距离接近m.三元组损失最早在人脸识别任务中提出,其通过随机选择一个样本作为锚点,然后各选择一个与锚点相同类别和不同类别的正负样本,并约束使得负样本对之间的距离大于正样本对之间的距离.相较于对比损失,三元组损失的优势在于考虑到了类内距离和类间距离之间的关系,能够更好的对细节进行区分.然而,这两种损失函数在训练时每次只挖掘一个负样本,忽略了其他负样本,因此常会出现收敛速度慢、效果差的问题.针对以上问题,多类N元组损失(multi-class N-pair loss)[24]作出了改进,使用N元组而不是原来的二元组或三元组,要求同类样本间的距离必须同时小于N-1组类间距离,这样在训练时每次会挖掘更多负样本,使查询样本(query)与其他所有不同类之间都保持一定距离,从而加快模型的收敛速度.还有一些基于聚类思想的损失函数,如簇聚类损失(coupled clusters loss)[25]为同类样本估计一个类中心,使得所有正样本到该类中心的距离加上一个间隔值,能够小于其他不同类样本到该类中心的距离;代理损失(proxy loss)[26]将原始样本用小规模的代理点(proxy point)来近似表示,将计算锚点与同类样本间的距离转换成计算锚点和代理点间的距离,减少计算量进而加快迭代速度,同时在一定程度上克服了样本对采样困难的问题.
在解决类别标签有序的多分类问题时,深度度量学习方法一般通过设置阈值,将连续标签量化为二分类标签[27],并没有考虑到相似的程度及其顺序,忽略了具有连续标签的图像之间丰富的语义相似性.为了解决这一问题,Kim S等[28]提出了一种新的基于连续标签的深度度量学习的损失函数log-ratio loss,且在3个不同的图像检索任务上验证了该方法的性能.与此相似,Liu Hao等[29]提出了一种有序距离度量学习方法,用于人脸年龄估计.受此启发,本文结合参与度样本库中连续视频数据的标签敏感性和有序性等特点,设计了一个有序度量损失函数(ordinal metric loss),期望在学习到的度量空间中,保持嵌入特征距离与参与度标签距离一致性有序,提升模型分类能力.其次,本文还提出了困难四元组构造策略,通过最小化特征相似度较小的正样本对和最大化特征相似度较大的负样本对,充分挖掘困难样本以提高模型训练的稳定性和训练效率.
本文方法流程如图2所示,低层为3D卷积网络(3D Convolutional Networks,C3D)[30],它面向学习者进行参与视觉特征表示学习,顶层设计面向两个不同但相关的学习任务:参与度标签有序的深度度量学习和参与度分类学习.本文提出的参与度识别方法包含3个阶段.第1阶段,利用C3D网络提取最小批样本的视觉特征,通过softmax层输出分类结果.第2阶段,通过度量视觉特征向量的相似性,进行困难四元组挖掘.第3阶段,联合优化有序度量损失函数和分类损失函数,使得在学习到的参与度有序的度量空间中,类内对距离更近,类间对距离更远.通过相关调参,以及实验对比得到最佳结果.
图2 方法框架Fig.2 Framework of our method
对于输入EngageNet框架的最小批样本,首先构造一系列四元组(i,j,k,l),其中(i,j)∈Λ+,(i,k)∈Λ-,(j,l)∈Λ-,Λ+和Λ-分别代表正、负样本对的序号集合.样本对(xi,xj)的视觉特征相似性一般表示为两者的欧氏距离:
df(xi,xj)=‖f(xi)-f(xj)‖2
(1)
在度量空间中,同类样本对距离df(xi,xj)应该尽可能小,不同类别样本对距离df(xi,xk)和df(xj,xl)应该尽可能大.然而,由于参与度样本标签的敏感性和分布有序性,不同标签的视觉特征无法得到明确区分,很可能出现同类参与度样本对与不同类别参与度样本对相比,具有更大的视觉特征差异.因此,本文将样本间的特征相似性度量标准重新定义,精确建模视觉特征相似性与参与度标签距离的潜在关联,具体表示为:
df(xi,xj)=‖f(xi)-f(xj)‖2s(yi,yj)
(2)
式中,s(yi,yj)为参与度样本的标签相似度,定义为:
s(yi,yj)=e-(yi-yj)2/σy
(3)
式中,σy为参与度差异阈值,它反映了样本标签分布的方差.在参与度有序度量空间中,将有序标签结构与欧氏距离结合,使得视觉特征相似性与其参与度标签相似度保持一致性,增强模型的分类能力.
图3 C3D网络结构图Fig.3 Schematic diagram of C3D network structure
困难样本(Hard Example)指训练过程中损失较高的,易被错误分类的样本.对困难样本进行挖掘再训练,更能指导模型优化的方向,提升模型的判别能力.困难样本挖掘一般分为离线挖掘和在线挖掘.离线挖掘方法通常是事先设定一个阈值,若预测结果与真实值之间的相关度超过该阈值,则认为是正样本,相关度小于阈值的被认为是负样本,需要重新放到网络中训练.然而,这一做法在训练后期会导致训练数据分布不平衡,正样本数量远小于负样本数量,影响模型分类效果.Shrivastava A等[31]提出的OHEM(Online Hard Example Mining)算法,根据输入样本的损失值自动筛选出困难样本进行迭代,然后使用随机梯度下降法(Stochastic Gradient Descent,SGD)进行训练.S-OHEM(Stratified Online Hard Example Mining)算法[32]考虑到不同损失函数分布的影响,将训练分为4个阶段,每个训练阶段根据不同损失函数的重要程度调整系数.与OHEM算法相比,S-OHEM算法在关注损失值较高的困难样本的同时,并未忽略简单样本的作用.
(4)
(5)
(6)
(7)
式中,λ为正样本对损失项和负样本对损失项的平衡参数,Γ为负样本对的相似度阈值.
联合进行有序度量学习和分类学习任务,使用多任务目标函数对网络进一步优化:
L=LOM+βLCE
(8)
式中,β为权衡超参数,用以平衡两个不同的损失函数,LCE是多分类交叉熵损失,定义为:
(9)
为了评估基于有序度量学习的课堂参与度识别算法的有效性,本文在公开数据集DAiSEE上进行实验,实验中的模型均使用Pytorch框架实现.
DAiSEE是第1个多标签视频分类数据集,包含来自112个亚洲学习者的9068个视频片段,每个视频时长约10秒,用于识别用户在无约束环境下的无聊、困惑、参与和沮丧4种情感状态.受试者包括80名男性,32名女性,年龄分布在18~30岁.为模拟在线学习的真实场景,捕捉受试者情感状态的自然变化,DAiSEE采集了3种不同光照设置下,6种不同场景中录制的在线学习视频(1920x1080,30fps),并且按60:20:20的比例分成训练集、验证集和测试集.DAiSEE数据集定义了4个级别的标签,首先通过众包标注法对数据进行标注,再用心理专家创建的黄金标准进行关联标注,每种情感状态等级由低到高分别用{0,1,2,3}表示.本文针对受试者的参与情感状态进行研究.
DAiSEE收集学习者在无约束环境下的在线学习视频,视频拍摄过程中存在一些可能会影响参与度识别结果的因素,例如学习环境光线不足,视频存在多个主体等情况.因此,为减少背景信息的干扰,并尽可能地保证受试者身体特征信息完整,本研究采用开源动作理解工具箱MMAction2进行主体裁剪重新形成数据集,图像尺寸为128×171.为避免局部时空信息特征的丢失,本文采取视频分段法对数据集进行处理,即将每个10秒的视频,划分为4个时长为4秒的包含重叠部分的子视频片段.从每个子视频中随机抽取16帧连续图像,训练时采用随机旋转、翻转、添加随机噪声、随机调整对比度、调整亮度等方式进行数据增强,使得在扩大数据容量的同时,模型在扰动下仍能保持较好的学习能力.将图像裁剪后归一化到112×112像素输入C3D网络中,提取的嵌入特征维度为128.
为了分析比较不同算法的性能随迭代次数变化的趋势,使实验结果更为直观,实验采用准确率(accuracy)作为参与度分类任务的评价指标,准确率公式定义如下:
(10)
从准确率公式可以看出,准确率可以有效考察分类正确的测试样本数量在所有分类结果中的占比情况,取值范围为[0,1],其值越大,表示识别效果越好.
网络训练时使用标签平滑(Label Smoothing)方式进行正则化[33],使得在计算损失值时能够有效抑制过拟合现象,更好地校准网络,提高泛化能力.批量大小设为32,网络共训练200个epoch,使用随机梯度下降算法作为优化器,动量参数设为0.9,权重衰减项设为0.0005.初始学习率设为0.001,每隔10个epoch降低学习率至当前的1/10,标签平滑参数设为0.15.基线的训练超参数与之相同.
本文将提出的算法与5种算法进行了对比,以下是对比算法的简单介绍:
C3D[7]:算法使用视频帧作为输入,网络包括8个卷积层,5个池化层,2个全连接层,使用softmax层分类.
I3D[34]:考虑到在线学习视频中,主体运动幅度远小于动作分类时的运动幅度,且动作持续时间较短,算法直接使用连续RGB帧输入到双流膨胀3D卷积网络(I3D)[35]进行端到端训练,使用softmax层分类.
Focal Loss[36]:算法将C3D网络第1个全连接层的输出单元设为2048,第2个全连接层的输出单元设为512,结合Focal损失函数,通过调整各个类别的权重有效解决参与度数据集样本分布不均衡问题.
LRCN[37]:算法使用端到端的训练方法,输入为16帧连续的RGB图像,采用CNN网络提取图像特征,并将其作为LSTM的输入,损失为所有时刻的损失和,将所有时刻预测结果的平均值作为最终预测结果.
DFSTN[38]:算法首先使用MTCNN裁剪面部区域,采用预训练的SE-ResNet-50(SENet)提取面部空间特征,基于全局注意力机制的长短期记忆网络(Long Short Term Memory Network with Global Attention,GALN)根据面部空间特征生成一个注意力的隐藏状态.经过训练,实现了从时空特征到参与程度的映射.
将提出的方法在DAiSEE训练集上进行训练,然后在验证集和测试集上对模型的分类精度进行评估,结果如表1所示.从表1中可以看出,数据清洗和标签平滑方法能够有效提升分类效果,微调模型的测试精度达到57.06%.联合优化有序度量损失和交叉熵分类损失的模型测试精度为58.92%,相较于当前先进算法58.84%的结果[37],本文提出的参与度识别方法具有优势,达到了更高的准确率.
为确定有序度量损失中超参数的不同取值对分类结果的影响,本文进行了大量对比实验,部分实验结果如表2所示,除有序度量损失中各个超参数的取值不同外,对比实验的其他参数设置均一致.表2表明,通过调整有序度量损失中的参数可以得到较高的准确率,最后发现当σy取2,Γ取0.8,λ取0.15时效果最佳,此时联合优化的多任务目标函数的β设为0.5.通过多组对比实验,可以得出结论,联合建模有序度量学习和视觉特征学习,进行困难四元组挖掘可以有效提高参与度识别任务的分类准确度.
表1 不同算法在DAiSEE数据集上的分类精度Table 1 Classification accuracy of different algorithms on DAiSEE
表2 有序度量损失中不同超参数取值的分类精度Table 2 Classification accuracy of different values of hyper-parameters in the ordinal metric loss function
本文将有序深度度量学习的方法引入参与度视觉特征表示,通过实验验证了方法的可行性和有效性,得到以下结论:1)通过联合建模有序度量学习和参与度分类学习两项任务,挖掘出更多的共享信息,同时考虑到两者的差异性,使模型具有较好的泛化能力;2)提出的困难四元组构造策略,有效地减小了类内困难样本对的距离,同时增大了类间困难负样本对的距离;3)提出的有序度量损失函数充分利用了参与度样本的标签分布结构,在学习到的度量空间中约束嵌入向量距离与标签距离保持相同的比率,进一步提升了模型的判别能力.未来期望能够将所做的工作延伸到教育领域,辅助教师更好的开展线上教学工作,同时可为学习者提供个性化支持,具有深远的意义.
但本文方法仍存在不足,如设置了较多的超参数,需要根据自身经验通过实验进行不断调整,降低了实验效率.另外数据集样本分布不均衡,对模型分类效果也有一定影响,今后将考虑引入生成对抗学习或者小样本学习的方法,生成小样本数据和训练困难的样本数据,通过扩充数据量的方法解决参与度样本不平衡问题.