陳凱
小馨同學(xué)每天早晨上學(xué)和傍晚放學(xué)時,都要到街邊的醇香咖啡屋里坐上那么一會兒,她有時會點上一杯手工研磨的咖啡,有時候喝橙汁。
小嚴(yán)同學(xué)正在做一份關(guān)于飲用咖啡習(xí)慣的社會調(diào)查,小馨同學(xué)是他的研究對象。
小嚴(yán)同學(xué)統(tǒng)計后發(fā)現(xiàn),小馨同學(xué)走進咖啡屋六次,有三次喝了咖啡,還有三次沒有喝。(對于真正的科學(xué)統(tǒng)計來說,這點樣本數(shù)顯然太少了,本文的重點不在于統(tǒng)計學(xué),所以只取了非常少的所謂樣本)這個數(shù)據(jù)最多說明,小馨同學(xué)喝咖啡的比例是否為五比五,除此之外似乎沒有其他什么用處。然而,小嚴(yán)是個細(xì)心的同學(xué),他注意到,那是一家奇怪的咖啡屋,它提供的咖啡,要么是甜咖啡,要么就是清咖啡,在某一時刻,兩種口味中只有一種;還有,它提供的要么是熱咖啡,要么是冰咖啡,在某一時刻,兩種溫度中只有一種。經(jīng)過記錄后,小嚴(yán)同學(xué)所觀察到的小馨同學(xué)的行為是這樣的:
溫度? 味道? 時間? 是否喝咖啡
熱? ?甜? ? 早? ?喝
熱? ?甜? ? 晚? ?不喝
熱? ?淡? ? 早? ?喝
熱? ?淡? ? 晚? ?不喝
冰? ?甜? ? 晚? ?不喝
冰? ?淡? ? 早? ?喝
看了這樣一份記錄表,小嚴(yán)同學(xué)心中產(chǎn)生出一個疑問:如果小馨同學(xué)晚上走進咖啡屋,那里只提供冰的淡咖啡,那么她更有可能喝咖啡,還是不喝?畢竟,冰、淡、晚這三個屬性的組合,在已有的記錄表中并沒有出現(xiàn)過。
這篇文章中的例子,是要從信息熵的角度,來說明機器將如何根據(jù)已有的數(shù)據(jù),對未來的行為做出預(yù)測;同時,通過這個例子,我們可以討論在基礎(chǔ)教育階段,在人工智能教學(xué)過程中某些環(huán)節(jié)所涉及的知識和技能超出學(xué)生當(dāng)前水平的情況下,應(yīng)該如何做出取舍。
● 事件概率均等時的信息熵計算
人工智能教學(xué)中的許多內(nèi)容,是和信息技術(shù)教學(xué)基礎(chǔ)(必修)模塊中的內(nèi)容緊密聯(lián)系在一起的,人工智能中常見的分類問題的實施過程,其實也正是從混亂走向秩序的過程。信息技術(shù)教學(xué)中一般都會提到信息論中信息的概念,認(rèn)為信息是用來消除(隨機)不確定性的東西,這里的“消除”,更多指的是機器按特定算法所做的不確定性的消除,而不是直接以人力消除。隨機不確定性的程度能夠用以比特為單位的信息熵來描述。
然而,在基礎(chǔ)教育階段,不確定性被“消除”的實際工作過程,往往在教學(xué)過程中被忽略了。比如,通過計算信息增益來實施分類,是以決策樹的方法實現(xiàn)分類的理論基礎(chǔ),但在信息技術(shù)教學(xué)的基礎(chǔ)模塊部分,當(dāng)提及信息概念時,并沒有再進一步提及信息增益相關(guān)內(nèi)容,于是,就錯失了通向人工智能中決策樹分類問題的一個重要的引導(dǎo)性內(nèi)容。何以如此?筆者猜測,恐怕是因為信息論中的數(shù)學(xué)公式的推導(dǎo)和計算會對學(xué)生的理解造成比較大的困難。但經(jīng)過研究和實際教學(xué)驗證,筆者發(fā)現(xiàn),還是存在可行的教學(xué)方案,在人工智能教學(xué)中回避較為艱深的數(shù)學(xué)公式的推導(dǎo)和計算過程,而將重點放在不確定性消除過程中數(shù)學(xué)公式的應(yīng)用上。
考慮小馨喝咖啡的例子,假設(shè)未來的事件只有兩類,即“喝”與“不喝”,如果小馨總是選擇“喝”,那么就根本不存在不確定性,則信息熵為0,如果小馨總是選擇“不喝”,信息熵同樣為0。假如“喝”與“不喝”的決策是一半對一半,則信息熵是1(至少需要一位二進制數(shù)字來存儲兩類不同的決定)??紤]一下,若小馨的選擇有四種情況,即“不喝”“喝一杯”“喝兩杯”“喝三杯”,則信息熵是2(至少需要兩位二進制數(shù)字來存儲四類不同的決定)。如果可選擇的類別是N,而以比特為單位的信息熵是X,則2的X次方等于N,換成對數(shù)公式就是X=log2N。這是整個教學(xué)過程中很關(guān)鍵(也可能是唯一)的數(shù)學(xué)公式,這個公式也是高中數(shù)學(xué)中會學(xué)習(xí)到的內(nèi)容,學(xué)生理解起來難度并不大。
如圖1所示,將小馨是否喝咖啡的兩選一決策與信息熵的關(guān)系標(biāo)注到坐標(biāo)上,可發(fā)現(xiàn)三處特別的位置。三個坐標(biāo)點處在非零即一的整數(shù)位上,然而這就引出了一個新的問題:如果兩類決定出現(xiàn)概率不均等,那么應(yīng)該如何計算信息熵呢?直觀上就可以猜測出,經(jīng)過三個整數(shù)點的函數(shù)圖形最可能是一條弧線,并且函數(shù)圖形必然與對數(shù)函數(shù)密切相關(guān)。
● 事件概率不均等時的信息熵計算
就算是只考慮“喝”與“不喝”兩類決定,但若是這兩類決定出現(xiàn)概率不均等,那么應(yīng)該如何計算信息熵呢?在這里,混雜了概率計算的信息熵公式必然會成為教學(xué)過程中較難逾越的深塹。但要記住的是,在信息技術(shù)教學(xué)中,數(shù)學(xué)公式是應(yīng)用工具,在分析不確定性的消除的整個過程中,這個工具很好地展現(xiàn)了運算的結(jié)果,而公式本身的推導(dǎo)和計算過程并不是教學(xué)重點。
筆者制作了一個簡單的小程序,對于小馨喝咖啡的行為,只要將“喝”與“不喝”兩類選擇各自的次數(shù)輸入到程序中(為了使教學(xué)過程簡潔明了,這里只考慮兩類決策,而不考慮更多類決策的情況),即可得到該情況所對應(yīng)的信息熵的值。學(xué)生還可以用二分類的信息熵圖表,直觀地感受到信息熵的變化規(guī)律,如圖2所示。
實現(xiàn)繪圖的關(guān)鍵公式是:
y = -1 * ( x / 1 * (Log(x) / Log(2)) + (1 - x) / 1 * (Log(1 - x) / Log(2)) )
當(dāng)X取值為1/2的時候(即兩類不同決定概率均等),則計算結(jié)果為1;公式不能將X取值為0或1,但可以無限接近0或1。
在教學(xué)中,可告知學(xué)生計算結(jié)果由此公式而來,但公式的推導(dǎo)過程,則是數(shù)學(xué)課的任務(wù)了。學(xué)生在后續(xù)的學(xué)習(xí)過程中,可以直接調(diào)用公式,或者使用內(nèi)置公式的小程序來進行計算。
● 手工決策過程
回到一開始的問題:如果小馨同學(xué)晚上走進咖啡屋,那里只提供冰的淡咖啡,那么她更有可能喝咖啡,還是不喝?這個問題并沒有一定的答案,因為小馨的行為完全是自由的。問題的關(guān)鍵是,機器應(yīng)該以什么樣的方式去做出一個合理的預(yù)測。如果從信息熵的角度出發(fā),這個問題就轉(zhuǎn)換為:當(dāng)以哪一個屬性作為分類依據(jù)時,可以使得不確定性(信息熵)減少的程度最大?這個問題便和信息增益有關(guān)。
若以溫度作為分類依據(jù),那么可列表如下:
溫度? 是否喝咖啡
1)
熱? ? 喝
熱? ? 喝
熱? ? 不喝
熱? ? 不喝
2)
冰? ? 不喝
冰? ? 喝
供應(yīng)熱咖啡時,不同決定的比例是對半開,選擇冰咖啡時,不同決定的比例還是對半開,即便不進行計算,也可以直觀地知道,信息熵沒有減少。
若以味道作為分類依據(jù),那么可列表如下:
味道? 是否喝咖啡
1)
甜? ? 喝
甜? ? 不喝
甜? ? 不喝
2)
淡? ? 喝
淡? ? 不喝
淡? ? 喝
無論是對甜咖啡還是淡咖啡,不同決定的比例都是1比2,或2比1,這兩種情況,計算出的信息熵結(jié)果都是0.918,這個數(shù)字可直接查閱二分類信息熵圖表或二分類信息熵小程序獲得。
若以時間為分類依據(jù),那么可列表如下:
時間? 是否喝咖啡
1)
早? ? 喝
早? ? 喝
早? ? 喝
2)
晚? ? 不喝
晚? ? 不喝
晚? ? 不喝
早上的決定完全一致,晚上的決定也完全一致,則說明信息熵為0。到這里,即便不查表就已經(jīng)很清楚了,是否喝咖啡,時間可能是最重要的決策依據(jù)。機器便可以此為依據(jù),做出判斷,認(rèn)為小馨不會在晚上喝冰的淡咖啡。
本文提供的數(shù)據(jù)很簡單,沒有考慮到采樣不平衡的情況,比如,小嚴(yán)同學(xué)更多是在早上做記錄,而比較少在晚上做記錄;或者咖啡店更多提供的是熱咖啡,而較少提供冰咖啡。使用加權(quán)平均,就可以方便地解決此問題,如對于以下記錄數(shù)據(jù):
時間? 是否喝咖啡
1)
早? ? 喝
早? ? 喝
早? ? 喝
早? ? 不喝
2)
晚? ? 喝
晚? ? 不喝
晚? ? 不喝
信息熵的計算公式就是:4/7*(1比3情況的信息熵)+3/7*(1比2情況的信息熵);查對二分類信息熵圖表可知信息熵為:4/7*0.918+3/7*0.811。這一部分工作可由學(xué)生親自手工進行,一方面由此了解到機器根據(jù)信息熵的計算而進行分類的過程,另一方面也可讓學(xué)生在學(xué)習(xí)過程中增加參與感。
關(guān)于小馨喝咖啡的例子分析到這里時,信息增益和決策樹的概念已經(jīng)呼之欲出了,人工智能教學(xué)中的許多內(nèi)容和信息技術(shù)教學(xué)基礎(chǔ)模塊中的內(nèi)容,是有著緊密的聯(lián)系的。在基礎(chǔ)模塊的教學(xué)中,部分內(nèi)容只要再稍微深入一點,就可以和人工智能的教學(xué)內(nèi)容無縫對接。筆者認(rèn)為,在課時及學(xué)生知識技能水平有限的情況下,教師在進行人工智能教學(xué)時,優(yōu)先選擇的教學(xué)內(nèi)容應(yīng)該具有這樣的特點:在教學(xué)過程中涉及的知識和技能,最好在信息技術(shù)教學(xué)基礎(chǔ)模塊或算法模塊中已有所鋪墊;在通向某個具體人工智能教學(xué)目標(biāo)的過程中,能夠找出一條任務(wù)需求明確、進階平緩、邏輯清晰連貫的路徑;在教學(xué)過程中,既要能回避艱深的數(shù)學(xué)推導(dǎo)證明過程,又要能彰顯出數(shù)學(xué)工具在解決問題中的作用。