單元五:神經網絡(一)

學習目標

神經網絡是人工智能發展中其中一樣最重要的構成要素,在這單元會為大家介紹神經網絡的基本概念。

我們會學習甚麽是輸入神經元、輸出神經元及神經連接。透過一個實驗,我們會學習這些神經網絡的主要元素,我們亦會看到神經網絡是如何運作的。同時,我們會觀察到神經網絡內的權重(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
  • *方便觀察數值,選擇在輸入元之間留空位。