鄒漢斌,雷紅艷
人工智能的發(fā)展使我們的生活方式發(fā)生了改變,人工智能也推動了社會的進步。人工智能技術(shù)已成為各信息企業(yè)的支柱技術(shù),幾大巨頭公司都在發(fā)展自己的人工智能平臺,研究人工智能技術(shù)并很好地應(yīng)用人工智能[1]。人工智能技術(shù)已經(jīng)成為國際競爭的焦點,為了獲得更好的競爭力,我們國家正在積極地在中小學(xué)開設(shè)人工智能課程,許多高校都在建設(shè)人工智能學(xué)院,培養(yǎng)人工智能方向的專業(yè)技術(shù)人才。
人工智能的發(fā)展肯定離不開教育,教育的發(fā)展也離不開人工智能技術(shù),如智慧校園、智慧教室、智能教學(xué)輔助平臺、智能教學(xué)管理等都使用了人工智能技術(shù)[2]。通過分析人工智能的本質(zhì)提出如何將數(shù)據(jù)結(jié)構(gòu)課程中的知識點與人工智能融合,讓學(xué)生在數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)中就可以接觸人工智能知識。數(shù)據(jù)結(jié)構(gòu)課程是信息類專業(yè)重要的專業(yè)課程,本文將分析大數(shù)據(jù)信息智能教學(xué)平臺的特點與功能,引導(dǎo)學(xué)生利用智能信息教學(xué)平臺自主進行線上學(xué)習(xí)、線上編程,讓學(xué)生可以根據(jù)相關(guān)學(xué)習(xí)指標(biāo)分析自己的學(xué)習(xí)狀況以及知識的掌握程度。
人工智能就是通過程序使機器具有人的智慧。人工智能不是萬能的,一個呀呀學(xué)語的小孩可以很容易識別人、動物、植物,通過簡單的學(xué)習(xí)可以識別哪些東西可以吃哪些不能吃,但機器卻很難完成。人工智能發(fā)展的最高目標(biāo)是可以在某些領(lǐng)域代替人完成相應(yīng)地工作,使其具有無人化、自動化的功能[3]。學(xué)習(xí)就是人工智能的本質(zhì),學(xué)習(xí)包含無監(jiān)督學(xué)習(xí)與有監(jiān)督學(xué)習(xí)。有老師教的 學(xué)習(xí)成為有監(jiān)督學(xué)習(xí),在人工智能中體現(xiàn)在可以利用人工智能算法對指定標(biāo)簽的數(shù)據(jù)進行學(xué)習(xí),學(xué)習(xí)后該人工智能算法可以對無標(biāo)簽的數(shù)據(jù)進行分類。而無監(jiān)督學(xué)習(xí)就是不需要指定數(shù)據(jù)的標(biāo)簽,算法可以根據(jù)數(shù)據(jù)的分布以及特征進行自動分類。人工智能應(yīng)用中燃料使數(shù)據(jù)、驅(qū)動引擎為算法,算法是工智能的核心。算法就是解決問題的步驟與方法,其中涉及到很多的數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)的問題,所以基礎(chǔ)學(xué)科的知識是人工智能技術(shù)的發(fā)展支柱[4]。
人工智能主要有包含人工神經(jīng)網(wǎng)絡(luò)、機器學(xué)習(xí)等,但近年來人工智能的代表技術(shù)就是深度學(xué)習(xí),深度學(xué)習(xí)的原型就是淺層的人工神經(jīng)網(wǎng)絡(luò)[5]。深度學(xué)習(xí)模型簡單的來說就是在人工神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上增加內(nèi)部層數(shù),最早期的研究模型是10層,后面可增加到50層甚至上100層。深度學(xué)習(xí)模型層數(shù)的增加帶來的問題包含學(xué)習(xí)參數(shù)的增加以及學(xué)習(xí)過程不容易收斂等問題,這些問題的解決需要更對學(xué)者參與。而深度學(xué)習(xí)能刺激人工智能的發(fā)展并成為其主流的原因是深度學(xué)習(xí)中學(xué)習(xí)方法的突破。
人工智能在學(xué)術(shù)上的突破使得人工智能技術(shù)在應(yīng)用上獲得了全面的關(guān)注,人工智能在教育、交通、醫(yī)療、安防、金融等領(lǐng)域都獲得了成功利用,如無人駕駛、自動翻譯、語音識別、人臉識別、人臉表情識別等。人工智能知識的教學(xué)現(xiàn)在已經(jīng)貫穿了我們國家的整個教育體系,從小學(xué)到中學(xué),從大學(xué)到各研究機構(gòu)都在學(xué)習(xí)人工智能、使用人工智能,人工智能技術(shù)的研究能為我們提供速度更快、精度跟高的智能算法。
人工智能技術(shù)中的深度學(xué)習(xí)現(xiàn)在最主要的問題是缺乏理論上的支持,也就是為什么要這樣設(shè)計,其能運 行的原理是什么?現(xiàn)在的深度學(xué)習(xí)模型無論對使用者還是研究者而言都無法知曉其內(nèi)部結(jié)構(gòu)會產(chǎn)生怎樣的作用,無法從數(shù)學(xué)的角度解釋。人工智能的發(fā)展還存在一些約束,如:是深度學(xué)習(xí)模型的學(xué)習(xí)驅(qū)動需大量的標(biāo)簽數(shù)據(jù),標(biāo)簽數(shù)據(jù)的獲取代價很高;二是深度學(xué)習(xí)收斂慢,學(xué)習(xí)時間長,一般都以天為單位,其需要強有力的計算能力作為支撐;三是深度學(xué)習(xí)平臺多,相互不兼容,平臺配置復(fù)雜。四是作為中小學(xué)生可以在平臺上完成一些簡單問題的操作但很難了解人工智能原理及執(zhí)行過程。
智慧校園、智慧教室、基于線上與線下的混合智能信息教學(xué)輔助豐富了人工智能在教學(xué)以及教學(xué)管理中的應(yīng)用。在人工智能高速發(fā)展的背景下,將人工智能與數(shù)據(jù)結(jié)構(gòu)的課程教學(xué)融合是為了老師更好地教,學(xué)生更好地學(xué),在課程的知識中擴展人工智能相關(guān)知識點,使學(xué)生了解與該課程相關(guān)的人工智能新知識。
數(shù)據(jù)結(jié)構(gòu)屬于計算機硬件、計算機軟件與數(shù)學(xué)三門學(xué)科之間的一門信息類專業(yè)課程,內(nèi)容包含數(shù)據(jù)結(jié)構(gòu)的基本概念、數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的物理結(jié)構(gòu)以及對應(yīng)的操作[6]。數(shù)據(jù)結(jié)構(gòu)課程分為三個部分,理論課,實驗課以及課程設(shè)計,這三個部分本身是一個整體,但由于課程本身具有一定的難度,部分學(xué)生學(xué)習(xí)困難,學(xué)習(xí)積極性不高,導(dǎo)致實驗內(nèi)容很難開展,課程設(shè)計也很難完成。針對這門課程學(xué)習(xí)中出現(xiàn)的問題,提出了人工智能背景下數(shù)據(jù)結(jié)構(gòu)的教學(xué)改革方法。此項改革又可能引起新的問題,學(xué)生數(shù)據(jù)結(jié)構(gòu)課程都學(xué)不好,又在學(xué)習(xí)中引入更難的人工智能知識是否合適?部分學(xué)生學(xué)習(xí)效果不是理想的原因很多,但一個主要的原因是沒有目標(biāo),沒有感受到知識帶來的成就感。理論上講,學(xué)生通過老師的課堂教學(xué)掌握學(xué)習(xí)的基本知識,并能利用編程解決實際問題就會使學(xué)生有成就感,會增強學(xué)生自主學(xué)習(xí)的動力,若能了解前沿的新技術(shù),會進一步激發(fā)自我學(xué)習(xí)興趣,更好地去主動學(xué)習(xí)課內(nèi)甚至是課外知識。數(shù)據(jù)結(jié)構(gòu)與人工智能的融合不是知識相加,而是將數(shù)據(jù)結(jié)構(gòu)中的部分知識點升華到人工智能的對應(yīng)知識中。
在數(shù)據(jù)結(jié)構(gòu)的課程中要引入人工智能背景對老師的要求較高,要求老師要熟悉人工智能知識并熟悉相關(guān)智能算法的原理以及應(yīng)用領(lǐng)域。老師在課堂上利用圖片、視頻資源展現(xiàn)人工智能的應(yīng)用成果,解釋其發(fā)展過程以及應(yīng)用效果,其過程要能給學(xué)生帶來視覺上的沖擊,讓學(xué)生感受人工智能帶來的震撼與科技的魅力,引發(fā)學(xué)生的學(xué)習(xí)興趣。
人工智能包含的技術(shù)很多,在引入人工智能背景時老師要使用學(xué)生能接觸到的人工智能成果,讓學(xué)生了解什么是人工智能,在哪些領(lǐng)域可以使用人工智能。以基于人工智能的人臉識別系統(tǒng)為例,該系統(tǒng)可以應(yīng)用在汽車站、火車站以及機場等地的安防,警察也可以應(yīng)用它進行犯罪嫌疑人身份確認,支付寶使用人臉識別進行刷臉支付,銀行可以支持客服在ATM上刷臉支付等[7]。在了解其應(yīng)用的前提下熟悉人工智能技術(shù)的使用流程,主要包含基于標(biāo)簽數(shù)據(jù)的學(xué)習(xí)以及無標(biāo)簽數(shù)據(jù)的測試,在學(xué)習(xí)過程的人工智能學(xué)習(xí)算法是核心,可簡單介紹其基本原理,引導(dǎo)有興趣有能力的學(xué)生進一步去學(xué)習(xí)探索。
數(shù)據(jù)結(jié)構(gòu)主要研究的數(shù)據(jù)對象之間的關(guān)系以及對數(shù)據(jù)對象的操作,數(shù)據(jù)結(jié)構(gòu)中的線性結(jié)構(gòu)比較簡單,主要是一些基本的算法與應(yīng)用,非線性結(jié)構(gòu)中樹、圖比線性結(jié)構(gòu)難,主要涉及到數(shù)據(jù)的存取與一些經(jīng)典算法。數(shù)據(jù)結(jié)構(gòu)中與人工智能相關(guān)的知識主要是樹與圖[8]。數(shù)據(jù)結(jié)構(gòu)中的樹的知識點可以與人工智能中的決策樹、隨機森林融合,在講完樹的基本概念與基本操作后,講樹的應(yīng)用可以引入新的知識:決策樹的創(chuàng)建與使用。隨機森林本質(zhì)上就是多個決策樹分類器的組合,其知識也屬于樹的范疇。
在機器學(xué)習(xí)中,決策樹可以完成數(shù)據(jù)的分析與預(yù)測,其結(jié)構(gòu)為樹形結(jié)構(gòu)。數(shù)據(jù)對象用樹中節(jié)點表示,對象的某個可能的屬性值用分叉路徑則表示,而葉結(jié)點對應(yīng)從根節(jié)點到此葉節(jié)點所經(jīng)歷的路徑所表示的對象的值,它由它的分支來對該類型的對象依靠屬性進行分類。每個決策樹可以依靠對源數(shù)據(jù)庫的分割進行數(shù)據(jù)測試。這個過程可以遞歸式的對樹進行修剪。當(dāng)不能再進行分割或一個單獨的類可以被應(yīng)用于某一分支時,遞歸過程就完成了。
數(shù)據(jù)結(jié)構(gòu)中圖也稱為網(wǎng),包含圖的存取結(jié)構(gòu)、圖的遍歷、圖的最小生成樹、關(guān)鍵路徑、最短路徑等,數(shù)據(jù)結(jié)構(gòu)中圖可以與人工神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)融合。在人工神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)中知識利用圖的概念,其知識是延伸的新的知識。大腦中的神經(jīng)元的連接相當(dāng)復(fù)雜,現(xiàn)有一門學(xué)科稱為腦科學(xué)專門研究大腦的結(jié)構(gòu)組成。人工神經(jīng)網(wǎng)絡(luò)模擬了人的大腦結(jié)構(gòu),屬于一種重要的機器學(xué)習(xí)算法。人工神經(jīng)網(wǎng)絡(luò)具輸入輸出層、中間層,我們把要學(xué)習(xí)的數(shù)據(jù)輸入到神經(jīng)網(wǎng)絡(luò)的第一層。通過層之間的連接把輸入數(shù)據(jù)通過神經(jīng)元傳遞到第二層。第二層的神經(jīng)元同樣利用神經(jīng)元把數(shù)據(jù)傳遞到第三層,以此類推,直到最后的輸出層生成結(jié)果。每一個神經(jīng)元都有權(quán)重與偏差值,這個權(quán)重與偏差值就是學(xué)習(xí)所得到的參數(shù),其正確與否與其學(xué)習(xí)任務(wù)直接相關(guān),最終的輸出由這些權(quán)重與偏差值利用函數(shù)求和來決定。深度學(xué)習(xí)(DL,Deep Learning)是神經(jīng)網(wǎng)絡(luò)的改進,增加了網(wǎng)絡(luò)中間層的數(shù)目,按照層進行學(xué)習(xí),是機器學(xué)習(xí)(ML,Machine Learning)領(lǐng)域中一個重要的技術(shù)里程碑。深度學(xué)習(xí)使其更接近于人的大腦學(xué)習(xí),它的最終目標(biāo)是使機器能夠具有像人一樣的學(xué)習(xí)能力,能夠識別文字、圖像和聲音等數(shù)據(jù)。深度學(xué)習(xí)由于中間層數(shù)目的增加也增加了系統(tǒng)的復(fù)雜性與學(xué)習(xí)的難度,是一個復(fù)雜的機器學(xué)習(xí)算法,在圖像識別和語音識別中取得了很高的精度,遠遠突破了原有技術(shù)精度的極限。
Caffe是利用C++開發(fā)的第一個深度學(xué)習(xí)的框架,系統(tǒng)配置比較復(fù)雜。但Caffe中的模型的定義、最優(yōu)化 參數(shù)設(shè)置都使用文本格式說明,只需要搞清楚模型每層之間的邏輯關(guān)系就可以設(shè)置,無需編程,新手可以很容易上手。Tensor-Flow是一個使用數(shù)據(jù)流編程的符號數(shù)學(xué)系統(tǒng),是在谷歌的神經(jīng)網(wǎng)絡(luò)算法庫Dist-Belief的基礎(chǔ)上開發(fā)的,在各類機器學(xué)習(xí)算法被廣泛使用。Tensorflow使用多層級結(jié)構(gòu),在谷歌內(nèi)部的各領(lǐng)域的科學(xué)研究品和產(chǎn)品開發(fā)中被廣泛使用,可部署于PC終端與各類服務(wù)器是上,并支持TPU與和GPU的高性能數(shù)值計算。PyTorch是Facebook利用Python語言在深度學(xué)習(xí)框架Torch的基礎(chǔ)上重寫的一個全新的深度學(xué)習(xí)框架,具有了NumPy的眾多優(yōu)點,且支持GPUs計算,在計算效率上優(yōu)勢要比NumPy明顯。利用PyTorch的API接口,可以快速進行深度神經(jīng)網(wǎng)絡(luò)模型的搭建和訓(xùn)練。
飛槳(PaddlePaddle)提供了基于產(chǎn)業(yè)實踐的開源深度學(xué)習(xí)平臺,初學(xué)者可以利用該平臺開展人工智能的學(xué)習(xí)之旅。飛槳(PaddlePaddle)無需用戶搭建平臺,直接在WEB頁面選擇練習(xí)案例,下載實驗數(shù)據(jù),利用簡單的命令就可完成深度模型的訓(xùn)練與測試。如線性回歸:使用真實的數(shù)據(jù)集合創(chuàng)建一個房價預(yù)測模型。數(shù)字識別:在我們開始學(xué)習(xí)編程時,編寫的第一個程序一般是實現(xiàn)輸出“Hello World”。而機器學(xué)習(xí)(或深度學(xué)習(xí))的入門教程一般采用MNIST數(shù)據(jù)庫進行手寫數(shù)字的識別,原因是手寫數(shù)字識別在圖像分類問題屬于比較簡單的問題。飛槳(PaddlePaddle)系統(tǒng)中的案例還包含了個性化推薦、分詞系統(tǒng)、語義標(biāo)注、情感分析、機器翻譯等。其它平臺需要用戶自己對系統(tǒng)進行配置安裝,需要編程才能完成深度模型的學(xué)習(xí)與測試,對于有興趣且編程能力強的學(xué)生可以在老師的指導(dǎo)下嘗試編譯學(xué)習(xí)平臺案例并將其應(yīng)用到實際的工程項目中。
隨著人工智能與信息技術(shù)的發(fā)展,智能輔助教學(xué)平臺百花齊,教育部在線精品課程申請時認可的平臺如愛課程(中國大學(xué)MOOC)、學(xué)堂在線、智慧樹、北京高校優(yōu)質(zhì)課程研究會、優(yōu)課聯(lián)盟、好大學(xué)在線、網(wǎng)易云課堂、華文慕課等。這些平臺主要提供的功能包含用戶管理,教學(xué)計劃、教學(xué)視頻資源以及課后測試管理等功能。學(xué)生可以根據(jù)老師布置的任務(wù)在系統(tǒng)中通過課程知識點視頻進行預(yù)習(xí)、自測,在線下課堂教學(xué)中根據(jù)自測結(jié)果理解老師精講部分較難的知識點。我們借助智慧樹平臺進行數(shù)據(jù)結(jié)構(gòu)的線上線下混合式教學(xué),在平臺中提供老師自己錄制的數(shù)據(jù)結(jié)構(gòu)課程的視頻。視頻內(nèi)容分為兩個層次,一是線上預(yù)習(xí)內(nèi)容,學(xué)生可以在課前預(yù)習(xí)課堂知識,了解其相關(guān)的基本概念并把自己搞不清的問題提出來,便于老師在課堂上能根據(jù)學(xué)生的情況有針對性講解;二是課程中的經(jīng)典核心算法的講解視頻,可以讓上課沒有完成掌握的學(xué)生在課后進行再學(xué)習(xí)。利用線上習(xí)題對學(xué)生進行測試,了解所學(xué)知識的掌握程度,督促學(xué)生積極學(xué)習(xí)掌握課程的知識點。
數(shù)據(jù)結(jié)構(gòu)不僅理論抽象,而且實踐性也很強,要求學(xué)生具有扎實的C/C++高級程序設(shè)計語言編程知識,利用編程完成數(shù)據(jù)結(jié)構(gòu)各部分的基本操作并應(yīng)用到具體的實際問題中。學(xué)生在上好數(shù)據(jù)結(jié)構(gòu)理論課的同時還需要扎實的程序設(shè)計知識來完成上機實踐。與數(shù)據(jù)結(jié)構(gòu)實訓(xùn)相關(guān)的智能平臺有國防科技大學(xué)的Educoder網(wǎng)絡(luò)教學(xué)平臺[9]與浙江大學(xué)的拼題系統(tǒng)[10]。Educoder有實踐課程、翻轉(zhuǎn)課堂、實訓(xùn)項目、在線競賽、教學(xué)案例、從包創(chuàng)新、交流問答等模塊。我們以班級為單位組織學(xué)生,在Educoder平臺上發(fā)布實訓(xùn)作業(yè)并提供測試用例,讓學(xué)生在線編程答題,系統(tǒng)會自動檢測學(xué)生答題是否過關(guān),并根據(jù)學(xué)生的答題時間給出排名。根據(jù)學(xué)生的學(xué)習(xí)情況選擇優(yōu)秀的學(xué)生參加系統(tǒng)里組織的綠色計算的相關(guān)比賽。將數(shù)據(jù)結(jié)構(gòu)中的知識點與人工智能技術(shù)融合,讓學(xué)生了解什么是人工智能,怎么學(xué)習(xí)人工智,在Educoder系統(tǒng)里也提供了相關(guān)人工智能課程的課程與實訓(xùn)內(nèi)容,學(xué)生可以自主學(xué)習(xí)。
拼題系統(tǒng)是一個程序設(shè)計類實驗輔助教學(xué)平臺,現(xiàn)有515所高校的1166000多名注冊用戶使用該系統(tǒng),2800多位老師共同建設(shè),系統(tǒng)中有56000多高質(zhì)量題目。我們老師在拼題系統(tǒng)中的題目集中選擇數(shù)據(jù)結(jié)構(gòu)相關(guān)的題目進行篩選、分類整理成自己的題目集,向?qū)W生提供數(shù)據(jù)結(jié)構(gòu)題目集的共享碼讓學(xué)生使用。系統(tǒng)可以檢測學(xué)生的編碼是否正確、代碼的提交時間以及在班級中得分排名,系統(tǒng)還可以對學(xué)生的代碼進行查重,防止學(xué)生復(fù)制代碼。
在人工智能的背景下數(shù)據(jù)結(jié)構(gòu)的課程教學(xué)改革主要分為兩個層次,第一是在數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)過程中引入人工智能背景讓學(xué)生了解哪些地方使用了人工智能,什么是人工智能。讓學(xué)生思考在自己的大學(xué)學(xué)習(xí)中哪些會與人工智能相關(guān),自己能為人工智能做點什么?第二是在課程教學(xué)中將數(shù)據(jù)結(jié)構(gòu)與人工智能的知識點融合,讓學(xué)生嘗試去學(xué)習(xí)、實現(xiàn)人工智能的相關(guān)算法,在編程實踐環(huán)節(jié)利用智能信息平臺進行管理。