文/李德淇 黃南雄 張凱悅 翟佳鶴 黃鈺琪 朱鄭州
隨著社會的進步,學生學習情況受到越來越多的重視。獲取學生學習情況的方式多種多樣。但就目前而言,課堂場景下的學生學習狀況的外在表現難以衡量。具體而言分為表情識別和動作識別。
人臉表情識別作為情感計算的一個研究方向,構成了情感理解的基礎,是實現人機交互智能的前提。人臉表情的極度細膩化消耗了大量的計算時間,影響了人機交互的時效性和體驗感,所以人臉表情特征提取成為人臉表情識別的重要研究課題[1]。
有了表情數據,我們就可以有效地輔助老師進行學生課堂表現的判斷。比如,根據收集到的表情和動作進行判斷后結合當時的知識點來進行記錄,最后根據小測或者期末的知識點掌握情況來做驗證。
本文分為4個部分,首先總結了前人的研究,然后在此基礎上進行了學習者的情緒識別研究,以及根據學習者情緒的成績預測,最后進行了總結與展望。
過去幾年里,學者們從不同角度來進行成績預測的研究。許多學者從在線學習的數據出發,包括宗陽等人在2016年做的MOOC學習行為與學習效果的邏輯回歸分析[2]:采用了課程注冊時滯、登錄課程次數、提交作業測試次數、習題保存次數的均值和視頻觀看完成度等自主學習來預測成績,以及郝巧龍等人在2016年做的MOOC學習行為分析及成績預測方法研究[3]:構建了MOOC成績預測模型。
一些學者對成績預測研究做了進一步的拓展,如唐厚強在2017年做的基于高校論壇數據的成績預測和學生心理狀況分析[4],吳青、羅儒國在2017年做的基于在線學習行為的學習成績預測及教學反思[5]:通過人口統計信息、自主學習行為和寫作學習行為來預測學習成績。
更有拓展到根據線下某些行為來做成績預測的研究,如宋韻濤在2017做的基于一卡通數據和多元線性回歸的學生成績預測模型[6],劉譞在2017年做的基于學生行為的成績預測模型的研究與應用[7],使用到了包括成績數據、門禁數據、消費數據以及借閱數據。
另一方面,基于情緒智力來進行學習成績預測的研究也在不斷進行。朱仲敏在2004年做了情緒智力與認知智力、人格特質、學業成績的關系研究[8],認為情緒智力對成績的影響不顯著。但王平在2012年做的能力情緒智力與人際關系、學習成績的關系研究[9]提出在控制人格因素后,情緒智力依然對成績有顯著的預測作用。
對于情緒的度量,Schlosherg[10]首先提出了描述表情的3個量化尺度:注意-拒絕、高興-不高興和活躍程度,到 20世紀 70 年代美國心理學家Ekman 和 Friesen[11]通過充分的測試實驗,定義了人類的 6 種基本表情:高興(Happy)、生氣(Angry)、吃驚(Surprise)、 恐懼(Fear)、厭惡(Disgust)和悲傷(Sad),隨后 Ekman 和 Keltner[12]更進一步細化及完善了面部表情。
本文在前人研究的基礎上,提出了一種不依賴于測驗或量表的根據學生線下課堂的情緒表現來進行成績預測的方法,研究框架如圖1所示。
1.首先通過對學生課堂學習的影像記錄,結合基于深度學習的計算機視覺技術,提取出人臉關鍵點。

圖1 研究框架
2.其次通過人臉關鍵點的位置來進行情緒識別。
3.最后通過梯度提升決策樹來根據識別到的情緒來預測學生的期末成績。
本文使用The Extended Cohn-Kanade Dataset(CK+)人臉表情數據庫用于自動面部圖像分析和合成以及感知研究。 CK +[13]數據集是在 Cohn-Kanade Dataset 的基礎上擴展來的,發布于2010年,包含圖像、68個特征點的序列、FACS編碼文件以及情感編碼文件。
我們選取了327個帶emotion標識的sequence, 并選取最后一張Frame為輸入,先抽象出一層特征,再根據特征來進行識別,
共使用四種類型的特征:如臉長臉寬等長度、臉部長寬比等比率、上唇到鼻子等距離以及單側嘴角上揚等角度。
最終我們選取了25個特征,其中的一部分見表1。具體數字代表的是特征點的位置,在人臉中的位置詳情見圖2。
對左右對稱的特征進行了左右取值并取兩者最大。對全臉且分左右的特征(如臉寬):取臉寬,左半臉寬兩倍,右半臉寬兩倍中的最大值。對于特征點全為0的臉,標為neutral,并不計算準確率。
我們采用25個特征作為輸入,使用kNN輸出表情類別。并使用了MIN-MAX標準化,在采用50%作為訓練集的情況下取K值為10,測試集的精確率為75%。從第一類到第七類的具體分類結果:錯誤個數分別是11、 0、8、 6、5、 9、 1,正確率分別是75.6%、100%、86.2%、76%、92.8%、67.9%、98.8%。

表 1 部分特征

圖 2 人臉位置點
經過觀察可發現,在數據集中占比較小的分類的精確度要相對低,我們分析可能是由于K值較大的緣故。于是進行測試:取K=10時準確率為75%,各表情錯誤個數分別為11、0、8、6、5、9、1,取K=5時準確率為77.3%,各表情錯誤個數分別為11、0、10、5、4、5、2。
可以看出第4/6位這些占比相對較低的表情準確率上升,sadness的錯誤個數減少44%,正確率由67.9%提升到82.1%。最后,對整體的訓練集比例進行調整,整體準確率能達到83%,準確率可上升到91%。
我們將本文所提到的情緒識別算法準確度在CK+數據集中的結果與常用算法進行了對比,結果良好,具體見表2。
kNN算法的一個缺點在于當數據量大時會帶來大量的計算。所以特征壓縮成為了應用時速度的決定因素。這里我們做了一個測試來比較21個特征和11個特征的效果。取50%作為測試集。取21個特征時準確率為75.46%,取11個特征時準確率為72%,見表3。由此可知11個特征很好地表現了數據,更多的特征則可以更好地描述數據,但會加大計算復雜度。

表2 情緒識別結果對比
在成績預測部分,我們以某大學選修《軟件工程》的33名第二學位學生為研究對象,對他們的課堂情緒數據進行清洗、融合等操作后,最終設計了基于課堂情緒的成績預測模型,并通過實驗進行了評價。
我們使用了GBDT作為算法,GBDT(Gradient Boosting Decision Tree)是一種迭代的決策樹算法。由多棵決策樹組成,結論累加為最后答案。
Boosting的思想是給定初始數據訓練出第一個學習器,然后根據學習器的表現對樣本進行調整,具體而言就是每個樣本乘一個系數,之前做錯的樣本乘的系數會比較高。然后再根據調整后的樣本訓練下一個學習器,最后將重復N次形成的N個分類器進行加權的結合。而Gradient Boosting的思想是,損失函數越大說明模型越容易出錯,如果損失函數持續下降,則說明模型一直在進步。而要做到這一點,很好的方式就是讓損失函數在其梯度的方向上下降。

表 3 特征壓縮分析
Decision Tree在這里使用的是回歸樹,這個弱分類器簡單、低方差和高偏差,可以通過多輪迭代訓練來降低偏差以提高最終分類器的精度。
對于最終模型,我們使用了解釋方差(explained variance)作為評價指標:

最大值是1.0,代表預測的目標響應是最好的,越小就代表預測結果越差。

圖 3 基于二分情緒和出現頻率的結果

圖 4 基于細分情緒的結果

圖 5 基于細分情緒及知識點的結果
1.基于課堂情緒預測期末總分
基于二分情緒和出現頻率預測期末總分:輸入為3列,從第一列開始分別是ID、積極情緒(包括happy,surprise)在總教學時間內出現的概率、7種情緒出現的總次數。輸出為期末總分。取隨機數為709,保證數據集分割結果一致,如圖3所示。
基于細分情緒預測期末總分:輸入為9列,從第一列開始分別是ID、知識點、7種情緒(anger,conte mpt,disgust,fear,hap py,sadness,surprise)在總教學時間內出現的概率(總和為1),輸出為期末總分,如圖4所示。
2.基于知識點和課堂情緒的成績預測
輸入為9列,從第一列開始分別是ID、知識點、7種情緒在此知識點教學時間內出現的概率,輸出為知識點的得分百分比,如果期末考試中沒有對應的知識點則用總分代替,如圖5所示。
本文首先實現了一個情緒識別模型,與以往的常用模型相比,準確率提升了0.92%~1.83%,并將其應用到了課堂場景下來獲取學生情緒。
其次,本文將情緒分析用于課堂場景來完善大數據在教育領域的應用。并提出了幾種可能的應用方式:根據二分情緒和預測頻率來預測期末表現、根據細分情緒來預測期末表現,以及根據知識點和細分情緒來預測知識點表現。
主要不足之處在于未充分利用數據的時序特征。未來可以考慮的方向有:
1.引入時序特征:基于情緒變化類型對學習有影響的假設,探究并驗證表情時序變化的類型,以及這些類型與學生或成績的聯系。
2.拓展數據來源:引入更多的課程或學生??赡艿难芯糠较蛴校禾骄客瑯訉W生在多元課程類型下的情緒及成績表現,探究不同專業學生在同一課程類型下的情緒及成績表現等等。