中圖分類號(hào):G434文獻(xiàn)標(biāo)識(shí)碼:A論文編號(hào):1674—2117(2025)13—0081—03
神經(jīng)網(wǎng)絡(luò)是中小學(xué)人工智能通識(shí)教育的重要學(xué)習(xí)內(nèi)容,但神經(jīng)元的工作原理、激活函數(shù)的作用、參數(shù)和偏置等,都是較為抽象的跨學(xué)科概念,學(xué)生不容易理解。為了能夠幫助小學(xué)生理解神經(jīng)元的“計(jì)算”原理,筆者特意設(shè)計(jì)了一個(gè)模擬神經(jīng)網(wǎng)絡(luò)推理的不插電游戲。
設(shè)計(jì)分析:神經(jīng)網(wǎng)絡(luò)的工作原理
深度學(xué)習(xí)的底層是神經(jīng)網(wǎng)絡(luò),而神經(jīng)網(wǎng)絡(luò)的靈感來(lái)源于生物神經(jīng)網(wǎng)絡(luò)。人腦中擁有800多萬(wàn)個(gè)神經(jīng)元,它們相互連接、協(xié)同工作,由此形成知識(shí)、記憶和思維??茖W(xué)家們參考神經(jīng)元的“加權(quán)求和”和“閾值判斷”的機(jī)制,構(gòu)建了人工神經(jīng)網(wǎng)絡(luò),讓機(jī)器也能像人類一樣學(xué)習(xí)、思考、決策(如圖1)。
小學(xué)生如何理解神經(jīng)元?其實(shí)只需要將神經(jīng)元類比為“皮卡丘”就可以了,這個(gè)“皮卡丘”平時(shí)很安靜,只有收到足夠多的信息才會(huì)“放電”,就像皮卡丘感受到威脅時(shí)才會(huì)釋放電流一樣。這里的“放電”是指神經(jīng)元會(huì)根據(jù)收到的信息做出“決定”,并把這個(gè)“決定”以信號(hào)的形式傳給下一個(gè)小伙伴(下一個(gè)人工神經(jīng)元)。當(dāng)很多皮卡丘手拉手時(shí),就形成了一個(gè)大大的網(wǎng)絡(luò)。每一個(gè)皮卡丘都會(huì)根據(jù)自己的“感覺”(接收到的數(shù)據(jù)和閾值)來(lái)決定要不要“放電”,以及要放出多強(qiáng)的“電”。
顯然,只要讓學(xué)生來(lái)充當(dāng)皮卡丘,即模擬神經(jīng)元,就可設(shè)計(jì)出不插電的推理游戲。按照輸入層、隱藏層、輸出層,可以將游戲角色分為三類,
游戲了。筆者設(shè)置了如下幾條游戲規(guī)則:
① 每一個(gè)皮卡丘(角色)是一個(gè)神經(jīng)元,根據(jù)手里的紙條信息,在計(jì)算數(shù)字后傳給下一層。
② 除了輸入層和輸出層外,中間層 (隱藏層)的皮卡丘需要判斷大于0才傳遞數(shù)據(jù)到下一層。
這個(gè)游戲適合在初學(xué)神經(jīng)網(wǎng)絡(luò)的時(shí)候使用。游戲的具體過程如下:
每一個(gè)皮卡丘都擁有一張小紙條,記錄了與其他皮卡丘的連接參數(shù)(權(quán)重)以及偏置值(bias)。當(dāng)然,輸入層的皮卡丘是沒有“偏置”的。神經(jīng)網(wǎng)絡(luò)看起來(lái)像有點(diǎn)復(fù)雜,實(shí)際上對(duì)于一個(gè)最小的二分類任務(wù) (兩個(gè)特征)來(lái)說(shuō),僅僅需要5個(gè)神經(jīng)元(皮卡丘)就能完成,計(jì)算量并不大(如圖2)。
準(zhǔn)備工作:訓(xùn)練一個(gè)最簡(jiǎn)分類模型
設(shè)計(jì)這個(gè)不插電游戲的規(guī)則沒有任何難度,關(guān)鍵在于提供與任務(wù)相應(yīng)的連接參數(shù)和偏置值等數(shù)據(jù)。即使定位為游戲,筆者依然希望其提供的數(shù)據(jù)是來(lái)自真實(shí)世界的一個(gè)任務(wù),即是從真實(shí)模型中讀取而得到。這樣一來(lái),學(xué)生在游戲中會(huì)得到真實(shí)的感悟:原來(lái)人工智能真的是這樣工作的!為此,筆者將任務(wù)定位為解決矩形坐標(biāo)的二分類問題,即用對(duì)角線將矩形分為藍(lán)色和橙色兩類(如圖3)。
訓(xùn)練這個(gè)模型并不難。首先,編寫代碼生成100條 (-1,1) 之間的坐標(biāo),然后按照對(duì)角線的表達(dá)式進(jìn)行判斷,將標(biāo)簽設(shè)置為“0”“1”兩類。之后,用BaseDT將數(shù)據(jù)分為訓(xùn)練集和驗(yàn)證集。接下來(lái),使用BaseNN搭建一個(gè)結(jié)構(gòu)為“(2,1,2)\"的全連接神經(jīng)網(wǎng)絡(luò),激活函數(shù)選擇“Relu”。模型的訓(xùn)練代碼如下頁(yè)圖4所示。當(dāng)然,為了讓后期的計(jì)算更加簡(jiǎn)單,筆者在最后一層省略了常見的softmax函數(shù)因?yàn)槭亲詈?jiǎn)模型,所以訓(xùn)練速度比較快,且模型的分類效果也很好。
游戲?qū)嵤耗M推理在教學(xué)中的應(yīng)用
當(dāng)有了這個(gè)模型后,只要讀出模型中的參數(shù)和偏置值,打印在紙條上分給學(xué)生,就可以開展不插電
① 教師將矩形中某個(gè)點(diǎn)的坐標(biāo) (x,y) 分別交給輸入層的角色“1—1\"和“1-2”。“1-1\"和“1-2”根據(jù)手里的紙條(參數(shù)),相乘后將結(jié)果傳給下一層的角色,即2-1。
② 角色“2-1”將收到的兩個(gè)數(shù)字相加,再加上手里紙條上的偏置,如果結(jié)果小于等于0,游戲結(jié)束,大于0則分別乘以和角色“3-1”“3-2”連接的參數(shù),將結(jié)果交給“3-1”和63-25 。
③ 角色“3-1”和“3-2”在收到數(shù)字后,分別加上各自的偏置值。如果“3-1”比“3-2”的數(shù)字大,則該點(diǎn)在藍(lán)色區(qū)域(分類0),否則在橙色區(qū)域(分類1)。
每一次在實(shí)施這個(gè)游戲時(shí),學(xué)生的最初反饋是疑惑的:為什么要這樣計(jì)算?為什么不直接判斷坐標(biāo)的位置?為什么這樣也能得到分類的結(jié)果?教師則要告訴學(xué)生,這就是神經(jīng)網(wǎng)絡(luò)的秘密,鼓勵(lì)有興趣的學(xué)生可以去找“M-P模型”發(fā)現(xiàn)過程的資料,激發(fā)他們對(duì)人工智能的興趣,增加跟隨科學(xué)家探索未知領(lǐng)域的勇氣。
反饋總結(jié):“真實(shí)”是游戲的核心價(jià)值
設(shè)計(jì)這個(gè)不插電游戲的目標(biāo)是讓學(xué)生理解神經(jīng)網(wǎng)絡(luò)算法和傳統(tǒng)算法的區(qū)別。筆者認(rèn)為,游戲的核心價(jià)值不在于體驗(yàn)一次計(jì)算,而是在于其并非簡(jiǎn)單的“模擬”,而幫助理解神經(jīng)網(wǎng)絡(luò)的真正運(yùn)行規(guī)則,是“真實(shí)”的學(xué)習(xí),因而結(jié)合真實(shí)問題訓(xùn)練模型并讀取參數(shù)是要點(diǎn)所在。通過游戲?qū)W生會(huì)發(fā)現(xiàn),1個(gè)神經(jīng)元 (隱藏層)可以解決所有的線性分類問題,只要提供數(shù)據(jù),算法就能從數(shù)據(jù)中訓(xùn)練出參數(shù),從而獲得“智能”。隨著分類復(fù)雜度的增加,則需要更多神經(jīng)元和隱藏層,3個(gè)神經(jīng)元可以近似解決圓形分類問題(如圖5)。學(xué)生將會(huì)體驗(yàn)到,所謂人工智能就是用計(jì)算機(jī)模擬人類的思考行為,并進(jìn)一步感悟到“數(shù)據(jù)算法、算力何以成為人工智能的三大技術(shù)基礎(chǔ)”。
為了方便演示,筆者建議為這個(gè)游戲再設(shè)計(jì)一些輔助工具。例如,筆者借助大模型編寫了一個(gè)數(shù)據(jù)生成工具。打開網(wǎng)頁(yè),將矩陣的某些部分涂成橙色,然后即可導(dǎo)出相應(yīng)的數(shù)據(jù)。當(dāng)然,隱藏層只有1個(gè)神經(jīng)元的網(wǎng)絡(luò)模型只能解決最簡(jiǎn)單的線性問題,如果分類不是線性的,則需要增加更多的神經(jīng)元。另外,還可以將模型訓(xùn)練整合在交互網(wǎng)頁(yè)中,從數(shù)據(jù)生成到模型搭建和訓(xùn)練,最后到讀取權(quán)重生成游戲規(guī)則,給學(xué)生以“真實(shí)”的參與感數(shù)據(jù)是自己做的,模型是自己訓(xùn)練的,推理也是真正能用的。