單元五:神經網絡(一)
學習目標
神經網絡是人工智能發展中其中一樣最重要的構成要素,在這單元會為大家介紹神經網絡的基本概念。
我們會學習甚麽是輸入神經元、輸出神經元及神經連接。透過一個實驗,我們會學習這些神經網絡的主要元素,我們亦會看到神經網絡是如何運作的。同時,我們會觀察到神經網絡內的權重(weights) 在學習過程中是會被改變的;透過權重的改變,神經網絡就慢慢建立起智能了。**這單元不需要同學作實際的計算。
學習內容
甚麼是神經網絡?
- 神經網絡亦叫作人工神經網絡(ANN - artificial neural network)
- 靈感來自人腦的(生物學的)神經網絡結構
- 人工神經網絡是一群聯繫着的人工神經元(neurons)。
- 神經網絡擁有一個輸入層(input layer),輸入層擁有輸入神經元(input neurons)。
- 神經網絡亦都擁有一個輸出層(output layer),輸出層擁有輸出神經元(output neurons)。
- 把兩個神經元聯繫起來的稱為神經連接 (connection),神經連接將訊息由一個神經元傳遞到另一個神經元。
- 每一個神經連接(connection) 有一個權重(weight)。在訓練過程中,神經網絡會調效每一個連接的權重,從而達致建立智能。

下圖是一個簡單的神經網絡。
- 你可以找到輸入層和輸入元嗎?
- 你可以找到輸出層和輸出元嗎?
- 你找到神經連接嗎?

在 AlphAI 上,神經網絡的實際應用。

活動 - 紅燈、綠燈
目標:
- 觀察在訓練完成之後,權重是否改變了。
材料:
- 兩張 10厘米x10厘米的咭。一張是紅色,另一張是綠色。

設置
- 將 AlphAI 機械人放在小積木上,讓它的車輪可以在空中自由轉動而機械人仍然可以停止不動。
- 將 AlphAI 機械人(鏡頭)放在距離咭紙架大約 4至5厘米的地方。

AI 設置參數
- 參考附件A1
活動 - 訓練機械人分辨紅色和綠色
- 啓動AlphAI 機械人及聯線到你的電腦。需要時按螢光幕上的”聯線” <Connection> 按鈕。
- 如果設定參數正確,螢光幕將會顯示以下的神經網絡。
留意下圖:
- 被藍色長方形圈着的是輸入元,一共有兩個。
- 被綠色長方形圈着的是輸出元,一共有兩個。
- 總共有四個神經連接。
- 被紅色圓形圈着的是四個權重。
下圖是放大了的輸入數值及權重數值。這些數值已經另外清晰顯示出,讓大家更容易觀察。留意其中兩個權重是負數。

標籤輸出
- 綠卡 - 向前
- 紅卡 - 停止

訓練
(A) 在訓練之前的權重數值
- 點擊 “重設學習” <reset learning> 的按鈕。
- 將螢光幕顯示的四個權重數值、寫在下面的圖上,稍後作比較。

- 點擊 “學習” <learning> 的按鈕。
- 將紅號咭放在架上。
- 觀看螢光幕,看看卡紙是否放置正確。
- 如果放置正確,根據輸出標籤點擊代表紅咭的輸出動作(停止)。
- 重覆 4至5次。
- 將綠號咭放在架上。
- 觀看螢光幕,看看卡紙是否放置正確。
- 如果放置正確,根據輸出標籤點擊代表綠咭的輸出動作(向前)。
- 重覆 4至5次。
(B) 在訓練之後的權重數值
- 關閉 “學習” <learning> 的按鈕。
- 將螢光幕顯示的四個權重數值、寫在下面的圖上。
**比較:在訓練完成之後,四個權重有沒有改變?

測試(或應用)
- 啓動 “自由駕駛” <self drive>。機械人將會用已經學習到的智能去分辨紅咭及綠咭。
- 測試紅色咭。
- 測試綠色咭。
- 重複測試紅色咭和綠色咭多次。
- 結果如何?
討論
- 機械人是否可以分辨紅色咭及綠色咭呢?
- 在訓練之後,機械人是否獲得了某種智能?你如何知道呢?
- 在訓練之後,四個權重是否有改變? 這代表什麼呢?
- 請問有多少個輸入元?
- 請問有多少個輸出元?
- 你可否畫出這實驗的神經網絡呢?要包括所有輸入元、輸出元及神經連接。
- 你可否將螢光幕裡神經連接上的數值寫在你畫的圖上呢?這些數值是什麼?
附件A
傳感器(輸入)
- 2x1 像素的相機

傳感器(輸入)
- Red vs Green

動作(輸出)
- 停止
- 向前

標籤輸出
- 紅咭 - 停止
- 綠咭 - 向前

AI 設置
- no bias for neurons (for easy verification of calculations)
- *選擇神經元沒有偏差,方便檢測計算。

顯示設置
- *set “keep space between neurons” for easy checking of values
- *方便觀察數值,選擇在輸入元之間留空位。
