陳凱
當(dāng)我們說到“教學(xué)中構(gòu)筑真實情境”這句話的時候,需要進一步剖析究竟何為“真實”。即便在教學(xué)場景的創(chuàng)設(shè)中涉及真實事件和真實的問題,為契合特定教學(xué)目標(biāo)的達成,這些真實事件或問題大多進行了簡化和改造,或只是強調(diào)了其中的某一個側(cè)面。用比喻的方式來說,課堂教學(xué)場景中出現(xiàn)的所謂的真實事件和問題是激發(fā)探索興趣的芳香蜜源,是可以掛載知識點的結(jié)構(gòu)框架,是可被投注情感的戲劇片段。而“真實”這個詞語本身的意義也并不牢固,學(xué)習(xí)者所能感受到的該詞的范疇,隨學(xué)段的增長而變得越來越廣泛,但其確定性卻似乎在下降:水果數(shù)量的相加和計價是真實的、光所兼具的粒子和波的特性是真實的、事物存在本身是真實的……對于一個教學(xué)者來說,便會面臨這樣的問題,如果他所要闡述的詞語的概念是高度概括的或是抽象的(越是到高學(xué)段就越是會遇見這樣的概念),那么完全有這種可能,這個概念離現(xiàn)實的情境非常遙遠,雖然說用來承載概念的詞語本身在文本中隨處可見,或者說,這個詞語本身也常被應(yīng)用到多種現(xiàn)實的生活情境中,但在那種情境下對于詞語的進一步詮釋卻是困難的。不妨考慮“利用機器學(xué)習(xí)對圖像進行識別”這句話,雖然教師可以輕松構(gòu)造出對應(yīng)這句話的那些還原生活具體場景的所謂真實情境,如用手機拍攝照片智能判別植物,或者將人臉從各種物體的圖像中區(qū)分出來,等等。但這樣的生活具體場景,卻很難成為一個良好的教學(xué)情境,因為無論是詮釋機器學(xué)習(xí)的不同的特性,還是具體講解某幾類機器學(xué)習(xí)的算法,學(xué)習(xí)越是深入,離開最初那個由具體需求而來的生活情境就越是遙遠。這個情境既失去了吸引學(xué)生興趣的芳香蜜源的作用,也不太能成為連接不同知識的結(jié)構(gòu)框架,在教學(xué)過程結(jié)束的時候,教師和學(xué)生大概會重新想到最初那個帶著具體需求的情境,然后假裝愉快地宣稱已經(jīng)解決了圖像識別的問題。但此處情感的投入,僅僅是對應(yīng)著一個現(xiàn)成的產(chǎn)品或函數(shù)的某一功能的實現(xiàn),而不對應(yīng)著問題的解決,顯然,在解決問題的路徑上存在著太多不明所以的地方。
這里不妨重新審視關(guān)于真實情境中的“真實”一詞,當(dāng)情境被用于課堂中的那一刻起,其實就開始偏離其現(xiàn)實上的真實性,教師采用種種計謀將學(xué)習(xí)者放置到創(chuàng)設(shè)出來的情境中,希望他們通過代入的方法假設(shè)性地解決現(xiàn)實中的問題。盡管這樣,教師們?nèi)匀环Q自己所創(chuàng)設(shè)的情境為真實情境,卻少有人會對其中的“真實”一詞提出質(zhì)疑,何以如此?對于虛構(gòu)文藝作品的所謂真實性的考察可以帶給我們答案:讀者情感上的共鳴是真實的,矛盾產(chǎn)生或矛盾解決的邏輯思維過程是真實的,作品中所涉及的日常經(jīng)驗細節(jié)也是真實的,如此等等。這樣就給出了一個啟示,要把現(xiàn)實和真實兩者加以區(qū)分。在教學(xué)情境中,哪一種真實才是最需要被把握住的?筆者在對計算機的模擬和仿真的行為進行考察后,得到了一種可能的答案:想象一下,人們可以利用計算機模擬大氣行為,計算機中的氣候環(huán)境是虛擬的,但其模擬的氣候變化和現(xiàn)實世界的現(xiàn)象是有所對應(yīng)的。人們可以利用計算機去模擬制造一臺虛擬的計算的機器,那個機器當(dāng)然不是真實的,但它解決某問題所做的計算本身卻是真實的??梢钥闯?,模擬計算行為實際上可以等價于計算行為本身,計算過程本身無疑是真實的,如果能夠圍繞計算行為的需求、計算過程的設(shè)計、計算效果的評估來構(gòu)建教學(xué)情境,那么,即便是一個看上去虛擬的情境,也是具有真實性的,如能將真實和現(xiàn)實區(qū)分開來,就不必非要回溯到產(chǎn)生出這個計算需求的具體事件并將那個事件作為教學(xué)的情境。
下面用一個和簡單的遺傳算法有關(guān)的教學(xué)案例來說明問題。如圖1所示,這是一個“機器人獲取能量”小游戲,正中間的“R1”表示1號機器人,另外還有5個機器人編號從“R2”到“R6”,機器人每一步行走,都是橫向移動50個單位,而縱向移動的距離,是根據(jù)文本框中設(shè)定的數(shù)值來決定的,規(guī)定機器人開始行走后,這個數(shù)值就不能再改變了。顯然,文本框中數(shù)字越小,機器人行走的角度就越傾斜。當(dāng)機器人碰撞到墻壁時,其橫向的方向會翻轉(zhuǎn)。機器人的目標(biāo)是界面最上方的小能量塊,小能量塊是靜止不動的,機器人行走時可能會和小能量塊重疊,重疊時間越長,則機器人獲取到的能量就越多。為了增加挑戰(zhàn)性,機器人每多走一步,其自身占地面積就減少一點,相對就更不容易碰到能量塊。圖1中,筆者派出了第一個機器人,根據(jù)設(shè)定測試值,每橫向移動50個單位,它就縱向移動15個單位,從圖上看,它差一點就能獲取到能量了。圖1中用直線標(biāo)出了機器人的行進軌跡。
那么,怎么才能快速找出能獲取到高能量的最佳縱向移動距離呢?這就是一個和策劃具體計算過程有關(guān)的真實的問題。例如,用枚舉所有數(shù)字一個一個嘗試的方法,當(dāng)然最終是可以找到最佳答案的,但若在課堂中組織一場比賽,看誰先找出最佳答案,恐怕不會有人真的采用枚舉的方法。從三個角度看,機器人獲取能量小游戲可以成為構(gòu)建教學(xué)情境的不錯的素材:其一,懸疑的存在和帶有競爭性游戲能激發(fā)出探索熱情;其二,玩家在游戲時自然而然就運用到了日常生活中的經(jīng)驗,而這些經(jīng)驗本身又可能對應(yīng)著多項計算機科學(xué)方面的概念,如枚舉、隨機、反饋、迭代等;其三,游戲運行本身就能引出遺傳算法的幾個要素,對這一點下面重點加以說明。
在游戲過程中,可以利用“隨機取值”“登記和顯示分數(shù)”“生成新數(shù)據(jù)”這三個按鈕,以半自動的方式尋找到最佳的答案(如圖2)。操作過程如下:先點“隨機取值”,這個按鈕的功能是隨機獲得0到100之間的整數(shù)值;然后就按隨機確定的移動距離派出機器人,在完成行進路線后通過“登記和顯示分數(shù)”來記錄總共6個機器人的成績,可以看出,6個機器人的成績分別是4、0、17、16、0、0;接著點擊“生成新數(shù)據(jù)”,這時,游戲自動選出導(dǎo)致機器人獲取能量值最多的兩個縱向移動距離,并在這2個數(shù)據(jù)附近區(qū)域選取出4個數(shù)據(jù),合并由隨機函數(shù)產(chǎn)生的另2個數(shù)據(jù),產(chǎn)生出新的一組共6個數(shù)據(jù),供玩家再次測試。事實上,對于圖示中的例子,只要再玩上一輪,就能夠找出最佳答案33了。(為了便于說明問題,筆者選取了一組可快速找到答案的隨機數(shù),玩家真正操作時一般需要3到4輪“生成新數(shù)據(jù)”后的測試過程,但大多數(shù)情況下速度要快于一一枚舉)
關(guān)于用何種策略,根據(jù)已有機器人的成績來生成新的測試數(shù)據(jù),可以是課堂中討論的重點問題。例如,是否需要將某一輪測試中成績最好的距離值按原樣保留下來?如果要對機器人競賽中獲得優(yōu)秀成績的距離值做一點微調(diào),用來探測是否有更好的結(jié)果,那么調(diào)整的幅度如何決定?如果有多個導(dǎo)致優(yōu)秀成績的距離值,有沒有可能結(jié)合兩個或兩個以上的距離值進行計算,加快尋找到最佳答案的速度?為什么還有必要獲取幾個完全隨機的數(shù)值參與競爭測試?以上問題,都和如何采用不同遺傳變異策略達成較優(yōu)或最優(yōu)的結(jié)果的討論有關(guān),顯然都是十分真實的問題。如果要根據(jù)特定策略來實現(xiàn)或修改相關(guān)代碼,主要涉及的技能是數(shù)組數(shù)據(jù)的存取調(diào)用、搜索和排序,實現(xiàn)難度在可控范圍之內(nèi)。將游戲場景作為教學(xué)情境的另一個好處是,并不需要將所有的操作都做成自動化過程,由人參與其中的半自動化的算法實施過程,降低了程序的代碼實現(xiàn)的難度,還意外地增強了學(xué)習(xí)的自主性和體驗性。
如果將不同測試數(shù)據(jù)和測試結(jié)果的情況全部列出圖表(為此筆者自己不厭其煩地“玩”了幾十次游戲),就能夠用以顯現(xiàn)遺傳算法在解決問題上的普遍性,圖3中,直線代表的是由小到大設(shè)定的縱向距離測試值,曲線則是該值對應(yīng)的獲取能量值的多少。可見,遺傳算法在其中的作用,主要是獲取一定范圍內(nèi)函數(shù)的極值。在本欄目上一期的文章《從模型到現(xiàn)實——木星衛(wèi)星軌道數(shù)據(jù)的分析和智能預(yù)測》中,為了更好地獲得正弦函數(shù)角速度的擬合值,就使用到了遺傳算法,這便使得這方面的教學(xué)內(nèi)容體現(xiàn)出了現(xiàn)實的應(yīng)用價值。當(dāng)然,這也同時為深入探索給出了方向,那就是如何借助專業(yè)的遺傳算法工具,對更大量和更高維度的數(shù)據(jù)進行分析。
筆者文中的機器人游戲當(dāng)然是由計算機模擬的,但若單純從技術(shù)方面考慮,將這個游戲裝置實體化,難度應(yīng)該也不會很大,如果市場上有一套允許教師進行定制,并能在游戲過程中呈現(xiàn)出機器學(xué)習(xí)算法運作過程的裝置,那將會是構(gòu)建人工智能教學(xué)情境的重要工具和素材。當(dāng)然,憑教師個人力量很難做到這一點,可惜目前市場上有許多自稱可用于人工智能教學(xué)的機器人教具,往往只不過是一個無法深入展開剖析的黑箱而已。