夏齊鳴 劉曉強



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