單元七:神經網絡(三)

學習目標

在這單元𥚃我會為大家介紹一個重要的神經網絡概念 - 就是隱蔽層了。 隱蔽層是包含了很高深的理論和計算,在這𥚃我會用簡單的方法去解釋。.

學習內容

甚麼是 “隱蔽層” 呢?

神經網路有三種不同的層:

  • 輸入層 -
    • 神經網絡需要一個輸入層去接收輸入資訊,讓層內的神經元及連接可以作出處理及計算,並且將計算結果傳送到下一個層。
  • 輸出層 -
    • 神經網絡一定有一個輸出層。輸出層接收到由之前所有層處理過的訊息,並作最後計算及處理,將計算出的輸出數值放在輸出元內。
  • 隱蔽層(是可以多於一個的)-
    • 隱蔽層是介乎輸入層和輸出層之間的層,可以是一個,亦可以是多個的。隱蔽層是隱藏在神經網路內的,正常情況下是看不到的,這就是為何被稱為 “隱蔽層” 了。
  • 隱蔽層會用複雜及高深的數學去處理資訊。這使神經網路能夠擁有學習複習工作及事物的能力。
    • 隱蔽層使神經網路成為最優秀和最強大的機械學習演算法。
    • 用AI去處理複雜的問題,隱蔽層是必須的。
  • 如果使用大量的隱蔽層或者隱蔽層內有大量的神經元,這時,神經網絡就需要大量的時間去處理資訊和計算結果了。
  • 有多個隱蔽層的神經網絡被稱為 “深度神經網絡”,它擁有 “深度學習” 的能力。
  • 下面是一個擁有兩個隱蔽層的神經網絡。

例子

深度神經網絡利用多個隱蔽層在影像識別方面取得了非常特出的成果,特別在人面識別方面。我們就用人面識別來了解隱蔽層是如何運作的。

 

前面的層

  • 學習如何分辨影像的細小部分,例如角、邊及顏色方磈。這些小部分,雖然比較容易分辨,但對於分辨出人面是不大有用的。

中間的層

  • 將前面的層收集到的角、邊和方磈組合成人面的各個部分,例如眼、耳、口、和鼻。

後面的層

  • 就是將眼、耳、口、鼻等組合成人面,用來分辨是誰人了。

 

活動 - 用 AlphAI 機械人作人面識別

目標:

  • 訓練完成之後,可以分辨 3 個人的面。

AI 設置參數

  • 參考附件A1

有沒有留意到有兩個隱蔽層呢?

 

開始訓練

啓動AlphAI 機械人及聯線到你的電腦。需要時按螢光幕上的”聯線” <Connection> 按鈕。

如果設定參數正確,螢光幕將會顯示以上的神經網絡。

留意下圖:

  • 選出 3 人。將他(她)們的名字寫在下表內。
  • 他(她)應該緊記所給予的參考編號和輸出的動作名稱。
  • AlphAI 是用輸出動作來和大家溝通的。

標籤輸出

訓練

  • 點擊 “重設學習” <reset learning> 的按鈕。
  • 啓動 “學習” <learning> 的按鈕。

 

  • 邀請一位同學雙手拿着 AlphAI 機械人,機械人的車輪應該可以自由活動的。
  • 將 AlphAI 機械人的鏡頭指向第一個參加者的臉,調校距離使到人臉能夠覆蓋螢光幕上鏡頭的大部份地方。點擊這參加者分配到的動作 5 次。這樣,機會械人就學會這個動作是代表這位參加者了。

 

  • 對其他兩位參加者,重覆上面訓練步驟。緊記要用對了參加者分配到的動作。

 

測試(或應用)

  • 啓動 “自由駕駛” <self drive>。 機械人將會用已經學習到的智能去分辨人面。
  • 測試第一位參加者。
  • 測試第二位參加者。
  • 測試第三位參加者。

 

  • 結果如何?
  • 假若結果不全是對的,可能是訓練不足,你要增加訓練量。

 

討論

  • 機械人是否可以分辨三位參加者?
  • 在訓練完成之後,機械人是否獲得了智能?你如何知道呢?
  • 請問有多少個輸入元?
  • 請問有多少個輸出元?
  • 你有否留意到隱蔽層呢?請問有多少個隱蔽層?
  • 第一個隱蔽層有多少個神經元?
  • 第二個隱蔽層有多少個神經元?
  • 請問隱蔽層的作用是什麼?

𨒂伸活動

  • 可否將這個活動擴大到 8 個參加者呢?
  • 請你嘗試改動AI設置,並完成這一個實驗。

 

附件A

傳感器(輸入)

  • 32x24 像素的相機

傳感器(輸入)

  • 3 colors

動作(輸出)-

  • 向前
  • 向後
  • 停止

 

** 動作的數目可以調校,容納多一些參加者

 

標籤輸出

 

AI 設置

  • 學習法 = 監督式學習法
  • 演算法 = 神經網絡
  • 隱蔽層
    • 第一個隱蔽層有 100 個神經元
    • 第二個隱蔽層有50 個神經元

顯示設置