張紅玉 江蘇省鹽城市亭湖高級中學(xué)
高士娟 江蘇省鹽城市實(shí)驗(yàn)高級中學(xué)
曹恒來 江蘇省鹽城市教育科學(xué)研究院
“人工神經(jīng)網(wǎng)絡(luò)”一詞是對人腦結(jié)構(gòu)的比喻,其基本組成部分是人工神經(jīng)元,大量的人工神經(jīng)元按一定的層次結(jié)構(gòu)連接起來就構(gòu)建了人工神經(jīng)網(wǎng)絡(luò)。在搭建人工神經(jīng)網(wǎng)絡(luò)之后,還需要進(jìn)行訓(xùn)練,調(diào)整各特征向量的權(quán)值,找到從輸入到輸出的最佳擬合函數(shù),然后才能正常工作。從早期的單層神經(jīng)網(wǎng)絡(luò)到兩層神經(jīng)網(wǎng)絡(luò),再到深度神經(jīng)網(wǎng)絡(luò),人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)越來越復(fù)雜,算法越來越高明,學(xué)習(xí)能力也越來越強(qiáng),這既是人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程,也是本節(jié)課學(xué)生要經(jīng)歷的問題解決過程。在這個過程中,學(xué)生能夠體驗(yàn)到神經(jīng)網(wǎng)絡(luò)強(qiáng)大的學(xué)習(xí)能力和適應(yīng)能力,以及人工神經(jīng)網(wǎng)絡(luò)往深度拓展的優(yōu)勢,同時也能了解人工神經(jīng)網(wǎng)絡(luò)、深度神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等基本概念的由來。
人工神經(jīng)網(wǎng)絡(luò)是從生物神經(jīng)網(wǎng)絡(luò)得到啟發(fā)而建立的極簡數(shù)學(xué)模型。本課的學(xué)習(xí)對象為高二年級學(xué)生,該年級學(xué)生對生物神經(jīng)網(wǎng)絡(luò)已形成較為清晰的認(rèn)知,能夠較快地遷移理解人工神經(jīng)網(wǎng)絡(luò)中所涉及的神經(jīng)元、神經(jīng)網(wǎng)絡(luò)等相關(guān)概念,而數(shù)學(xué)知識儲備也足以支撐他們領(lǐng)會權(quán)值、損失等關(guān)鍵術(shù)語的含義。但是,此階段的學(xué)生在人工神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程中,仍需形象思維的支持。信息時代的學(xué)生都具有一定的信息化基礎(chǔ),對數(shù)字化工具的接受度較高,因此,可以借助數(shù)字化工具化抽象為具體,輔助他們理解人工神經(jīng)網(wǎng)絡(luò)的工作原理等抽象知識。度神經(jīng)網(wǎng)絡(luò)。
③在TensorFlow Playground上構(gòu)建和訓(xùn)練解決二分類問題的人工神經(jīng)網(wǎng)絡(luò)。
①了解人工神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),知道輸入層、隱藏層和輸出層的主要功能。
②知道人工神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程和基本工作原理,初步認(rèn)識深
活動1:訓(xùn)練基于網(wǎng)絡(luò)相機(jī)的吃豆子游戲。
采集樣本圖像:每個角度拍攝50張圖像。
訓(xùn)練神經(jīng)網(wǎng)絡(luò):當(dāng)loss值(損失值)顯示出來,表示訓(xùn)練完成。
測試神經(jīng)網(wǎng)絡(luò):用頭部的上下左右動作控制吃豆人吃豆子。
小結(jié):這種圖像識別技術(shù)的實(shí)質(zhì)是圖像四分類(如圖1),其背后提供支撐的是人工神經(jīng)網(wǎng)絡(luò)。人工神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于圖像識別、語音識別等領(lǐng)域。
圖1
設(shè)計(jì)意圖:通過技術(shù)游戲?qū)耄龑W(xué)生的注意力,活躍課堂氣氛,同時引入該游戲背后的技術(shù)—人工神經(jīng)網(wǎng)絡(luò)。
TensorFlow Playground是一個在線人工神經(jīng)網(wǎng)絡(luò)演示和實(shí)驗(yàn)平臺,可以用來觀察人工神經(jīng)網(wǎng)絡(luò)是如何模仿人腦解決分類問題的,教學(xué)從簡單的二分類問題開始探究。
活動2:人工解決簡單的二分類問題。有兩組分別標(biāo)注為藍(lán)色和橙色的數(shù)據(jù)點(diǎn),分布在如圖2所示的平面內(nèi),每個點(diǎn)都具有X1和X2兩個特征。
圖2
(1)在這個空間內(nèi),怎么分開兩組數(shù)據(jù)點(diǎn)?(如果用直線作為分界線,那么這個問題就轉(zhuǎn)變?yōu)檫\(yùn)用數(shù)學(xué)方法畫一條直線將坐標(biāo)平面內(nèi)的兩類點(diǎn)分開,如圖3所示)
圖3
(2)在T e n s o r F l o w Playground上,調(diào)整X1和X2的Weight(權(quán)值,即分隔線方程的系數(shù)),畫出合適的分隔線,如圖4所示。
圖4
小結(jié):①人工神經(jīng)網(wǎng)絡(luò)的本質(zhì)是數(shù)學(xué)計(jì)算模型。②人工神經(jīng)網(wǎng)絡(luò)的基本組成部分是人工神經(jīng)元,F(xiàn)EATURES區(qū)域的X1、X2是輸入神經(jīng)元,OUTPUT區(qū)域的黃藍(lán)色塊是輸出神經(jīng)元,如圖5所示。
圖5
(3)輸入神經(jīng)元與輸出神經(jīng)元之間連接線的權(quán)值(以線條的粗細(xì)表示權(quán)值的絕對值)是可變參數(shù),通過調(diào)整權(quán)值組合,可以畫出合適的分類線。
活動3:訓(xùn)練單層神經(jīng)網(wǎng)絡(luò)解決簡單二分類問題。
(1)點(diǎn)擊運(yùn)行控制區(qū)域的Reset the network按鈕重置神經(jīng)網(wǎng)絡(luò),去除人工調(diào)整痕跡。
(2)點(diǎn)擊運(yùn)行控制區(qū)域的Step按鈕逐周期地訓(xùn)練神經(jīng)網(wǎng)絡(luò),觀察并記錄經(jīng)過不同訓(xùn)練周期后,人工神經(jīng)網(wǎng)絡(luò)的權(quán)值變化情況,思考神經(jīng)網(wǎng)絡(luò)能否一次得到合適的結(jié)果(如表1)?
表1
(3)勾選OUTPUT區(qū)域的Show test data選項(xiàng),觀察神經(jīng)網(wǎng)絡(luò)能否準(zhǔn)確區(qū)分測試數(shù)據(jù)點(diǎn)。點(diǎn)擊數(shù)據(jù)區(qū)域的REGENERATE按鈕重置數(shù)據(jù)點(diǎn)的分布,觀察人工神經(jīng)網(wǎng)絡(luò)能否解決新的同類問題(如圖6)?
圖6
(4)分析人工神經(jīng)網(wǎng)絡(luò)畫分類線的過程,將其和人作類比,思考其是如何解決分類問題的?
小結(jié):①這是一個只包括輸入層和輸出層的最簡單的人工神經(jīng)網(wǎng)絡(luò)。輸入層主要負(fù)責(zé)把數(shù)據(jù)輸入到神經(jīng)網(wǎng)絡(luò),輸出層主要負(fù)責(zé)輸出結(jié)果,其中只有輸出層發(fā)生了計(jì)算,所以稱為單層神經(jīng)網(wǎng)絡(luò)。②人工神經(jīng)網(wǎng)絡(luò)需要先經(jīng)過訓(xùn)練,然后才能工作。訓(xùn)練的過程就是人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的過程,其本質(zhì)是尋找最佳特征權(quán)值。
設(shè)計(jì)意圖:虛擬實(shí)驗(yàn)是本課使用的主要學(xué)習(xí)方法。首先從具象化的神經(jīng)網(wǎng)絡(luò)中,通過人工分類的鋪墊,引入神經(jīng)元和權(quán)值,幫助學(xué)生理解神經(jīng)網(wǎng)絡(luò)的本質(zhì)就是計(jì)算模型,同時抽象出單層神經(jīng)網(wǎng)絡(luò)模型。活動3是學(xué)生探索人工神經(jīng)網(wǎng)絡(luò)工作原理的關(guān)鍵,通過記錄逐周期實(shí)驗(yàn)數(shù)據(jù),觀察人工神經(jīng)網(wǎng)絡(luò)尋找最佳特征權(quán)值,理解人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的過程。
上面搭建的單層神經(jīng)網(wǎng)絡(luò)能對第1行第2個Exclusive or(異或)數(shù)據(jù)集進(jìn)行分類嗎?如果不能,該如何解決這個問題呢?
活動4:搭建并訓(xùn)練兩層神經(jīng)網(wǎng)絡(luò)解決異或二分類問題。
(1)對單層神經(jīng)網(wǎng)絡(luò)進(jìn)行擴(kuò)充,在輸入層和輸出層之間新增一個包含8個神經(jīng)元的隱藏層。
(2)把鼠標(biāo)浮動在單個神經(jīng)元上,就可以看到該神經(jīng)元代表特征的圖形化表示(如圖7)。觀察思考:①隱藏層神經(jīng)元向輸出層神經(jīng)元傳遞的特征與輸入層神經(jīng)元的特征一致嗎?隱藏層的8個神經(jīng)元所呈現(xiàn)的特征一樣嗎?②隱藏層神經(jīng)元的主要功能是什么?(從輸入層獲取原始特征,然后加權(quán)計(jì)算后生成新特征)
圖7
(3)點(diǎn)擊“運(yùn)行”按鈕,觀察該神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)過程中,隱藏層的8個神經(jīng)元的權(quán)值是怎么變化的(如圖8)。(經(jīng)過不斷的訓(xùn)練,有效神經(jīng)元的權(quán)值會變大,無效神經(jīng)元權(quán)值變小,即人工神經(jīng)網(wǎng)絡(luò)不僅能生成新的特征,而且能自己學(xué)習(xí)哪些特征有效,哪些特征無效)
圖8
小結(jié):①這里的人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)分為三層:輸入層、隱藏層和輸出層。因?yàn)橛须[藏層和輸出層兩層神經(jīng)元參與計(jì)算,所以可以被稱作兩層神經(jīng)網(wǎng)絡(luò)(如圖9)。②隱藏層主要用來提取特征,它將上一層的輸入加權(quán)計(jì)算后構(gòu)成新的特征,再向下一層輸出。
圖9
設(shè)計(jì)意圖:單層神經(jīng)網(wǎng)絡(luò)無法對異或數(shù)據(jù)集進(jìn)行分類,在輸入層和輸出層神經(jīng)元不變的情況下,需要通過增加神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的“深度”提升神經(jīng)網(wǎng)絡(luò)的性能,從而引入“隱藏層”。通過實(shí)驗(yàn)幫助學(xué)生理解隱藏層能將上一層的輸入加工轉(zhuǎn)化成新的特征,使人工神經(jīng)網(wǎng)絡(luò)擁有特征提取能力,同時抽象出兩層神經(jīng)網(wǎng)絡(luò)模型。
上面搭建的兩層神經(jīng)網(wǎng)絡(luò)能對第2行第2個Spiral(螺旋)數(shù)據(jù)集進(jìn)行分類嗎?如果不能,該如何解決這個問題呢?
活動5:搭建并訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)解決螺旋二分類問題。請?jiān)趦蓪由窠?jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上,按照如表2所示的要求,嘗試通過增加隱藏層及隱藏層神經(jīng)元的個數(shù)解決螺旋數(shù)據(jù)集分類問題。兩人一組進(jìn)行實(shí)驗(yàn),記錄實(shí)驗(yàn)結(jié)果。
表2
小結(jié):①具有多個隱藏層的人工神經(jīng)網(wǎng)絡(luò)被稱作DNN(深度神經(jīng)網(wǎng)絡(luò))(如圖10)。深度神經(jīng)網(wǎng)絡(luò)的特征提取能力強(qiáng)大,一般來說,深度神經(jīng)網(wǎng)絡(luò)層次越深,學(xué)習(xí)能力越強(qiáng)。②當(dāng)層次足夠深的時候,可以從其他方面來提升神經(jīng)網(wǎng)絡(luò)的性能,激活函數(shù)在提升人工神經(jīng)網(wǎng)絡(luò)性能方面起著至關(guān)重要的作用。③深度學(xué)習(xí)泛指包含多層隱藏層的深度神經(jīng)網(wǎng)絡(luò),是通過更深的結(jié)構(gòu)和更智能的學(xué)習(xí)算法,達(dá)到更好的數(shù)據(jù)處理能力的機(jī)器學(xué)習(xí)方法。
圖10
設(shè)計(jì)意圖:通過控制變量法進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)1和實(shí)驗(yàn)2比較具有不同隱藏層層數(shù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練的運(yùn)行周期數(shù),理解深度神經(jīng)網(wǎng)絡(luò)的“深”的含義以及“深”的優(yōu)勢;實(shí)驗(yàn)2和實(shí)驗(yàn)3比較使用不同激活函數(shù)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練情況,了解激活函數(shù)在提升神經(jīng)網(wǎng)絡(luò)性能方面的重要作用。
人工神經(jīng)網(wǎng)絡(luò)的本質(zhì)是數(shù)學(xué)計(jì)算模型,它的基本結(jié)構(gòu)和基本原理是相對抽象、較難理解的內(nèi)容。
大部分高中生缺乏相關(guān)領(lǐng)域的專業(yè)知識,可視化方法的運(yùn)用讓人工神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)輸入、網(wǎng)絡(luò)結(jié)構(gòu)和結(jié)果輸出變得形象直觀,輔助學(xué)生理解人工神經(jīng)網(wǎng)絡(luò)的相關(guān)知識和工作原理。
筆者首先以吃豆子游戲?yàn)榍腥朦c(diǎn),借助圖像四分類技術(shù)游戲引入人工神經(jīng)網(wǎng)絡(luò)技術(shù),然后以解決簡單的二分類問題為主線,依托TensorFlow Playground平臺,設(shè)計(jì)了活動2到活動5共四個虛擬實(shí)驗(yàn),環(huán)環(huán)相扣、層層遞進(jìn),引導(dǎo)學(xué)生在創(chuàng)建人工神經(jīng)網(wǎng)絡(luò)、測試分類效果中發(fā)現(xiàn)問題,進(jìn)而通過調(diào)整參數(shù)、優(yōu)化結(jié)構(gòu)等方式解決問題,讓學(xué)生在親歷人工神經(jīng)網(wǎng)絡(luò)的搭建、訓(xùn)練、調(diào)整過程后,建構(gòu)起人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)模型與工作原理。學(xué)生在解決類似問題的過程中,不斷將已有經(jīng)驗(yàn)遷移至新的問題情境,逐步加深對相關(guān)知識的理解,進(jìn)一步產(chǎn)生學(xué)習(xí)深度神經(jīng)網(wǎng)絡(luò)的興趣。