夏齊鳴 劉曉強



摘要:論文針對人工智能普及性教育需求,設計并實現了一個基于Web的AI算法可視化輔助教學系統。系統實現了算法可視化教學、自適應測驗以及基于知識圖譜的學習導航、知識推薦等功能。論文介紹了系統結構設計、算法可視化實現過程、基于學習者模型和知識圖譜的自適應測驗和知識推薦等關鍵問題。目前設計實現了Kmeans、決策樹、神經網絡等算法的模塊,并可以支持不斷擴展新的AI算法教學。
關鍵詞:算法可視化;輔助教學;自適應測驗;算法圖譜;知識推薦
中圖分類號:TP18 文獻標識碼:A
文章編號:1009-3044(2020)14-0041-03
1背景
人工智能是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學,是計算機科學的一個重要分支,是當前科學技術發展中的前沿科學領域。國內外各大高校紛紛開設人工智能課程,然而由于人工智能的知識體系龐雜,算法知識繁多,知識點晦澀為人工智能教育帶來了困難,特別是人工智能領域中算法的普及教育在學時有限的情況下,既要要求學生理解算法,又要能學以致用,無論對于教師還是學生都是一個巨大的挑戰嘲。
在傳統的算法教學中主要還是采用PPT進行理論教學這一單一教學模式,雖然可以傳遞完整的知識體系,但是由于缺少直觀性和參與性,而且與實驗過程脫節,導致學生學習和理解過程困難,未能達到良好的教學效果。針對傳統算法教學中存在的問題,國內外學者開始探索在算法教學實踐中引入圖形進行輔助教學,算法可視化就是其中一種教學方式。
算法可視化是通過可視化的方式生動形象地展示算法內部工作原理以及算法執行過程,從而降低算法學習的難度,使得學生更易理解和掌握算法思想嘲。基于以上的背景,我們設計并實現了一個基于Web端的AI算法可視化輔助教學系統,該輔助教學系統主要實現了算法的動態可視化教學功能,其次為了提升用戶對算法的理解和掌握程度,設計并實現了算法自適應測驗功能以及算法圖譜的學習導航功能,以此來實現算法輔助教學的目的。
2系統結構
AI算法輔助教學系統主要針對人工智能課程中常見的機器學習算法進行輔助教學,系統主要包括算法的動態可視化教學模塊,算法自適應測驗模塊以及算法圖譜學習導航模塊三大模塊。
該系統的結構設計圖如圖1所示。
系統的每個模塊分別實現了以下功能:
1)算法動態可視化教學模塊:該模塊主要用于動態展示算法的內部工作原理以及執行過程。該模塊分為兩個子模塊,分別為算法分布教學模塊和算法整體教學模塊。算法分步教學模塊將算法的內部原理進行分步可視化教學,使用戶從微觀的角度去學習算法。算法整體教學模塊是建立在用戶已經完成對算法分步教學的學習基礎之上的,從算法的整體層面進行可視化教學,讓用戶在宏觀角度建立對算法的認知。
2)自適應測驗模塊:該模塊為算法的測驗學習模塊,主要是通過習題測驗的方式來加深用戶對算法的理解和認識。系統通過收集用戶測驗信息構建用戶學習模型,再通過分析用戶學習模型判斷用戶知識掌握的情況,最后通過分析結果給用戶推薦學習資源,從而實現自適應測驗學習功能。
3)算法圖譜學習導航功能:該模塊針對人工智能領域常見的機器學習算法建立知識圖譜,并將圖譜可視化展示。用戶可以檢索算法圖譜中的任意算法,并能夠基于算法圖譜實現學習資源推薦功能。
3系統的設計和實現
3.1可視化教學模塊的設計和實現
算法動態可視化教學模塊目的在于實現算法原理的動態可視化展示,作為可視化教學系統,系統應當解決以下三個問題:
1)算法執行過程可視化性;
2)系統可交互性;
3)必要的理論可講解性。
針對算法執行過程可視化性問題,需要我們在設計算法可視化教學模塊的過程中必須對每一個算法原理進行具體分析。通過對算法的內部執行過程進行拆分得到多個子過程P=(其中i=1,2…,n),針對算法的每一個子過程Pi設計函數Ei(其中i=1,2…,n),其中Fi是對算法子過程pi通過程序實現圖形可視化的函數。最終系統通過調用Fi實現算法原理的教學可視化功能。
針對系統可交互性問題,要求我們在算法執行過程中允許用戶控制算法的執行過程。首先需要設計一個操作隊列L,操作隊列L負責按照算法的執行順序存放Fi。其次需要設計交互函數,系統從可交互區域獲取用戶的操作指令I,交互函數負責根據交互指令I從操作隊列L中取出Fi并執行。通過這種獲取用戶指令的方式幫助用戶控制算法執行過程,實現了系統的可交互性。
針對理論可講解問題,需要我們對算法每一個執行子過程設計描述函數Di(其中i=1,2…n),在系統運行過程中調用D。進行展示。
根據對以上三個問題的分析,設計出算法可視化教學模塊界面如圖2所示。
系統的可視化教學界面可劃分為四個區域,分別為:
1)算法可視化展示區域:該區域主要功能是用于展示算法內部執行過程。當系統運行時會調用已經設計好的Fi(其中i=1,2…,n),并將Fi的運行結果在該區域進行展示。
2)數據集顯示區域:該區域主要功能是展示當前算法運行過程中涉及的數據集信息,系統運行時會調用算法所用數據集并顯示。
3)可交互區域:此區域實現了用戶與系統的交互功能。用戶在此區域通過頁面的操作按鈕向系統傳遞操作指令,系統通過交互函數來控制算法的前進執行或者后退執行。除此之外還實現了一些其他的交互功能,比如選擇數據集,設置參數。
4)解釋區域:此區域以簡潔文字描述或者偽代碼的形式來講解算法的內部變化過程。在系統運行時通過調用D;并將返回值在該區域顯示。
可視化教學模塊運行過程:首先用戶進入該模塊可以選擇需要進行可視化教學的算法,然后通過參數設置、自定義數據集功能對算法進行參數的設定和數據集的選擇,再通過可交互區域向系統傳遞操作指令來控制算法的執行過程,并在算法可視化展示區域演示可視化執行過程。
3.2自適應測驗模塊的設計和實現
當用戶完成算法可視化教學模塊中的算法學習后,此時用戶尚未對已學習的知識形成深刻的記憶。因此設計自適應測驗模塊,可以讓用戶通過自適應測驗模塊來進行算法測驗,以此來加深對算法的理解。
在自適應測驗模塊中需要為用戶設計用戶學習模型M(UID,KID,LEVEL),其中UID用于表示唯一標識用戶的用戶ID,KID用于表示唯一表示知識點的知識點ID,LEVEL表示用戶對知識點的掌握程度,LEVEL的值可以為0、1、2,分別表示未掌握,基本掌握和熟練掌握。LEVEL默認值為0,LEVEL的更新條件是當用戶對某一知識點對應的習題練習數目大于10時,當作題的正確率R大于60%小于90%時LEVEL值更新為1,當作題正確率R大于等于90%時,LEVEL值更新為2。用公式表示為公式(1)和公式(2)。
其中rightcount代表正確答題數目,totalcount表示總共練習題數。
基于用戶學習模型中LEVEL取值不同,自適應測驗模塊設計如下推薦策略,若模型中的LEVEL為0,則判斷用戶對當前知識點未掌握,向用戶推薦學習資源(如原理可視化教學模塊、教師課件、學習視頻等多媒體資源)進行再學習,當用戶完成再學習之后系統再推薦知識點對應的習題進行測驗。若LEVEL為1,則判斷用戶基本掌握當前知識點,推薦當前知識點對應的習題讓用戶強化練習。若LEVEL為2,則判斷用戶已經熟練掌握該知識點,不進行主動推薦。
冷啟動問題是自適應測驗系統中最常見的問題。因此為了避免冷啟動問題,系統會記錄用戶的測驗記錄,若用戶是第一次使用自適應測驗模塊,則系統會所及從題庫中抽取若干題目讓用戶進行測驗,測驗完成之后系統收集用戶測驗信息,對用戶回答錯誤的題目對應的知識點進行記錄,分析用戶對哪些知識點理解不透徹,建立用戶學習模型,并基于用戶學習模型采取推薦策略進行推薦。如果用戶不是第一次進人測驗模塊,則系統通過已建立的用戶學習模型分析用戶學習情況并進行學習推薦。通過測驗不斷完善用戶學習模型,以此達到自適應測驗的學習目的。
根據以上業務分析,自適應測驗模塊的業務流程圖設計如圖3所示。
3.3算法圖譜學習導航模塊的設計和實現
人工智能領域龐大,涉及的算法知識繁雜,用戶在學習知識體系過程中往往會因此產生畏懼、厭學心理,從而失去學習動力。為了建立用戶對人工智能領域常見機器學習算法的整體認識并理解算法與算法之間的關系,我們將人工智能領域常見的機器學算法建立算法知識圖譜,并將圖譜可視化的展示。其次根據用戶學習模型,實現基于算法知識圖譜的學習資源推薦導航功能。
算法知識圖譜的構建:通過scrapy爬蟲框架技術爬取了百度百科和維基百科中關于人工智能領域常見機器學習算法的相關內容,之后再對數據進行處理,剔除重復和無效的數據。再設計知識圖譜中的實體和關系,需要設計算法實體A,知識點實體K,題目實體Q以及學習資源實體s,因為一個算法可能包含另一個算法,一個算法可能包含多個知識點,一個知識點可能包含多個習題,一個知識點可能包含多個學習資源,所以實體中的關系有、、、其中CONTAIN為關系。將數據按照以上分析建立實體和關系,并將數據導入NE04J數據庫(因為Ne04j圖數據庫擅長對圖數據進行操作,傳統的關系型數據庫對圖數據進行多跳查詢時會產生連接操作而產生較大開銷,所以這里選擇Ne04i圖數據庫進行數據存儲),在NE04i數據庫中A、K、Q、S實體以節點的形式存儲,而關系CONTAIN以邊的形式存儲。
知識圖譜的可視化使用了vis.is技術,為了便于用戶快速查詢圖譜,實現了圖譜檢索功能。如圖4所示,檢索機器學習領域常見的算法,并將檢索結果可視化展示。
4結束語
AI算法可視化輔助教學系統從算法可視化教學、自適應測驗以及算法圖譜學習推薦導航三個方面來實現算法輔助教學功能。系統針對算法傳統教學中面臨的困難,以可視化的方式來進行算法教學,降低了算法學習難度,自適應測驗模塊可以根據用戶的學習情況進行有目的性地學習,知識圖譜學習模塊以可視化的方式幫助用戶建立對人工智能領域常見機器學習算法的整體認識,并且基于算法圖譜可以對用戶進行學習資源推薦和導航。系統還具有可擴展性,可以根據實際教學要求設計其他的算法進行可視化教學。然而該系統目前也存在一些問題,比如系統的uI界面不夠美觀,自適應測驗模塊習題資源等不足之處,后期會對這些方面進行完善。