陳凱
丫丫貓以為這個(gè)網(wǎng)絡(luò)游戲的第一個(gè)任務(wù)是打怪,結(jié)果卻發(fā)現(xiàn),最先要做的,是在村莊中尋找和爭(zhēng)奪裝備,簡(jiǎn)稱(chēng)為奪寶任務(wù)。裝備包括武器、護(hù)具和藥劑三類(lèi),其中,武器有寶劍和弓箭兩種,護(hù)具有盾牌和盔甲兩種,藥劑有增速和強(qiáng)力兩種。在奪寶任務(wù)中,每一類(lèi)裝備只能在兩個(gè)選項(xiàng)中選出一件,如選了寶劍就不能選弓箭,其他類(lèi)似。丫丫貓感覺(jué)有點(diǎn)迷惑,她不知道怎樣的裝備更適合打怪。于是丫丫貓去請(qǐng)教資深玩家凱凱兔,迷糊的凱凱兔說(shuō)他也并不知道,他只是隨便拿到什么就用什么了,不過(guò),凱凱兔提供了一份他此前十局游戲所選用裝備和打怪結(jié)果的清單,如下表所示。
看了這份清單,丫丫貓有點(diǎn)迷惑。對(duì)于勝利的結(jié)果來(lái)說(shuō),從護(hù)具上看,選用盾牌是兩次,選用盔甲是兩次;從藥劑上看,選用增速是兩次,選用強(qiáng)力是兩次;從武器上看,選用弓箭是兩次,選用寶劍是兩次。乍看上去,這些信息并沒(méi)有什么指示作用。
靈光一閃后,丫丫貓忽然想到,還可以換個(gè)角度,看選用哪些裝備,更容易導(dǎo)致失敗,這么一查就有線索了。對(duì)于失敗的結(jié)果來(lái)說(shuō),從護(hù)具上看,選用盾牌是三次,選用盔甲是三次;從藥劑上看,選用強(qiáng)力是三次,選用增速是三次。這些信息似乎都沒(méi)啥用處,但從武器上看,選用寶劍是四次,選用弓箭是兩次,這似乎暗示著,選用寶劍更容易輸。所以,在奪寶任務(wù)階段,應(yīng)該優(yōu)先設(shè)法獲取弓箭,接下來(lái)再考慮護(hù)具和藥劑,應(yīng)該優(yōu)先尋找哪一樣。
上面這個(gè)例子,可用于闡述決策樹(shù)分類(lèi)算法的實(shí)現(xiàn)過(guò)程,本文希望通過(guò)這個(gè)例子,說(shuō)明如何在人工智能的教學(xué)中化繁為簡(jiǎn),形象直觀地展示出機(jī)器學(xué)習(xí)算法的基本原理和過(guò)程。另外,本文也想借助這個(gè)例子,給出將人工智能教學(xué)與日常信息技術(shù)教學(xué)相融合的一些策略。
● 創(chuàng)設(shè)能激發(fā)思維過(guò)程顯現(xiàn)的真切情境
對(duì)于如何創(chuàng)設(shè)教學(xué)情境的問(wèn)題,相關(guān)討論很多,不再重復(fù),這里主要討論人工智能教學(xué)中創(chuàng)設(shè)教學(xué)情境的策略。筆者選用“真切情境”一詞,用以規(guī)避“真實(shí)”和“虛擬”語(yǔ)義上可能出現(xiàn)的混亂。圍繞人工智能,確實(shí)有許多可供教學(xué)使用的真實(shí)情境,如展館里的智能機(jī)器向?qū)?、手機(jī)上的智能識(shí)別植物程序、小區(qū)門(mén)口的智能人臉識(shí)別系統(tǒng)等,但考慮到中小學(xué)生已有的知識(shí)技能水平,以及有限的人工智能教學(xué)課時(shí),很難對(duì)這些真實(shí)情境中的人工智能應(yīng)用做具體的還原拆解。舉例說(shuō),就算教師找來(lái)人臉識(shí)別的程序代碼并在課堂中成功實(shí)現(xiàn)識(shí)別,但整個(gè)程序代碼本身還是一個(gè)黑箱,雖然說(shuō)拆開(kāi)黑箱,還是能對(duì)少部分原理進(jìn)行講解,但諸多概念理解上的缺失,再加上知識(shí)和技能相互關(guān)系脈絡(luò)的不完整,仍然影響到學(xué)生對(duì)整體原理的把握和理解。
這里的一個(gè)策略,是將目光從終端的人工智能應(yīng)用,切換到人的思維活動(dòng)本身,尋找能將人的思維變化過(guò)程充分顯現(xiàn)出來(lái)的激發(fā)事件。例如,游戲就是一個(gè)很好的激發(fā)事件,游戲是學(xué)生在日常生活中能親密接觸并真切體驗(yàn)的活動(dòng),游戲中的場(chǎng)景和概念可以直接使用到教學(xué)活動(dòng)中,從而大大降低應(yīng)用到某些情境時(shí),在解釋和說(shuō)明上需要耗費(fèi)的時(shí)間成本。
將思維過(guò)程顯現(xiàn)出來(lái)的一個(gè)很有用的方法,就是繪畫(huà)。用隨手可得的畫(huà)圖軟件即可,如箭頭代表寶劍武器、星型代表弓箭武器、五邊形是盾牌護(hù)具、三角形是盔甲護(hù)具、閃電是增速藥劑、五角星是強(qiáng)力藥劑。這里直接使用了現(xiàn)成的圖標(biāo),如時(shí)間比較充裕,當(dāng)然也可稍做設(shè)計(jì)使得圖標(biāo)更逼真。
那么,如何將裝備的圖標(biāo)和游戲結(jié)果關(guān)聯(lián)起來(lái)呢?這是個(gè)開(kāi)放性的任務(wù),如可以在代表裝備的圖標(biāo)里進(jìn)一步做標(biāo)志,圓圈代表勝利,方塊代表失?。ㄈ鐖D1)?;蛘呖梢允褂脙蓚€(gè)框,上面的框代表勝利,下面的框代表失敗,根據(jù)游戲情況將裝備圖標(biāo)投入框內(nèi),如圖2所示。
這樣的繪畫(huà)過(guò)程,有助于將表格中的數(shù)據(jù)抽取出來(lái),轉(zhuǎn)化為人腦更容易把握的直觀形態(tài),為后續(xù)教學(xué)做好準(zhǔn)備。
● 與信息技術(shù)基礎(chǔ)概念相結(jié)合
在邊看邊算之前,可以先試著邊看邊感覺(jué)。這里可以有效地解釋出,實(shí)際上人腦的判斷也正是信息處理的過(guò)程,觀察圖1和圖2,就能直觀了解到,使用哪一種武器更有可能導(dǎo)致失敗。如果用不同的圖示做比較,還可以看出“關(guān)于使用裝備與勝負(fù)關(guān)系”的信息量的多少,在圖3的A、B、C三種情況中,C的情況最為鮮明,可以明顯看出弓箭優(yōu)于寶劍,而A的情況更模糊一些。
接下來(lái),可以使用信息熵公式,在人的直觀和數(shù)學(xué)抽象計(jì)算之間建立起關(guān)聯(lián),可以借助簡(jiǎn)單的Python代碼,或在線工具幫助實(shí)施這些計(jì)算,如利用在線工具h(yuǎn)ttp://www.endmemo.com/bio/shannonentropy.php,簡(jiǎn)單填入勝負(fù)比例,就可以算出信息熵。具體的計(jì)算信息熵的方法,在本欄目往期文章《手工研磨咖啡的決策》中已有討論,網(wǎng)絡(luò)上也很容易找到,這里不再贅述。圖3中,總共有十局游戲的記錄,均是四勝六負(fù),借用下頁(yè)圖4信息熵工具計(jì)算,僅從勝負(fù)情況看,獲得的信息熵是0.970951。
但若將使用武器的區(qū)別考慮進(jìn)來(lái),最終得到的熵值(也稱(chēng)條件熵)就有所不同了。情況A中,使用寶劍獲得的勝負(fù)信息熵是0.918296,使用弓箭獲得的勝負(fù)信息熵是1。由于十局游戲中,使用寶劍占十分之六,使用弓箭占十分之四,所以用公式6/10×0.918296+4/10×1得到條件熵為0.9509776。而若是情況C,條件熵計(jì)算結(jié)果為0。顯然,數(shù)值越接近0,則表示信息指示作用越明確。從這里可以看出,這個(gè)計(jì)算其實(shí)就反映了香農(nóng)所說(shuō)的“信息是用于消除隨機(jī)不確定性的東西”,所以,這部分內(nèi)容的教學(xué),在信息技術(shù)教學(xué)的基礎(chǔ)模塊階段,就可以結(jié)合“信息”“信息熵”“信息處理”等概念先行實(shí)施起來(lái)。
● 在實(shí)踐操作中體驗(yàn)自動(dòng)化過(guò)程
游戲中遇到的一個(gè)問(wèn)題是,到底應(yīng)該優(yōu)先搜尋武器、裝備還是藥劑?將三種情況圖畫(huà)分別畫(huà)出,直觀上就很明顯看出應(yīng)該先確定武器的種類(lèi)。若不是直觀判斷,而借助信息熵計(jì)算工具,也可獲得同樣的結(jié)果:若先以護(hù)具或藥劑進(jìn)行選擇,那么獲得勝負(fù)的條件熵仍然是0.970951,則選擇結(jié)果與勝負(fù)結(jié)果之間未產(chǎn)生任何指示作用(因單純計(jì)算勝負(fù)信息熵結(jié)果也是0.970951);而如果是先選擇武器,則條件熵是0.9509776,小于單純計(jì)算勝負(fù)結(jié)果的信息熵,選擇結(jié)果對(duì)于勝負(fù)結(jié)果存在指示作用。
但選擇工作并非到此為止,在確定了選擇弓箭后,還要進(jìn)一步考慮護(hù)具和藥劑的選擇。從圖5看,在已選擇弓箭作為武器的情況下,藥劑的選擇和勝負(fù)之間無(wú)法看出明顯指示關(guān)系,而從護(hù)具的選擇可看出,盔甲要優(yōu)于盾牌。借助工具的計(jì)算結(jié)果顯示,若優(yōu)先按護(hù)具進(jìn)行選擇,條件熵為0.688722,若優(yōu)先按藥劑進(jìn)行選擇,條件熵為1,這個(gè)計(jì)算結(jié)果也支持人腦的直觀判斷。
如果游戲中,萬(wàn)一實(shí)在無(wú)法獲得弓箭,那就只有選擇寶劍作為武器了,那么在這種情況下,后續(xù)選擇的情況又有所不同,如圖6所示,直觀可見(jiàn)應(yīng)該優(yōu)先選擇盔甲作為護(hù)具。若借助工具計(jì)算,則先對(duì)護(hù)具進(jìn)行選擇得到條件熵為0.874185,而先對(duì)藥劑進(jìn)行選擇得到的條件熵為0.918296,其結(jié)果,也傾向于先按護(hù)具進(jìn)行選擇。
然后,對(duì)于做出選擇后新得到的數(shù)據(jù),可以用同樣的思路繼續(xù)進(jìn)行分類(lèi)選擇,其實(shí)就是用到了遞歸的思想,限于篇幅,筆者就不繼續(xù)將這張圖畫(huà)下去了。而繪圖的過(guò)程,正是ID3算法生成決策樹(shù)的過(guò)程。掌握了手工繪制決策圖的技能后,再找一段ID3決策樹(shù)算法的代碼,針對(duì)特定數(shù)據(jù)運(yùn)行逐個(gè)比對(duì)代碼運(yùn)行過(guò)程中各個(gè)條件熵的計(jì)算結(jié)果,便能更深入地理解算法的原理。如課時(shí)充裕,還能對(duì)測(cè)試數(shù)據(jù)進(jìn)行調(diào)整,如減少一些樣本,或增加一些可選擇的屬性值(如在藥劑中加入“隱身”),從而發(fā)現(xiàn)ID3算法本身可能存在的問(wèn)題,那就能賦予課程更多的探究味道了。
● 將實(shí)踐經(jīng)驗(yàn)用于未知事務(wù)
將實(shí)踐經(jīng)驗(yàn)用于未知事務(wù),如圖7所示。