Workshop 8 - Weight (Explanation of how AI learns)

Weight | 權重

Weight 是 Neural Network 中非常重要的一部份 ,

AlphAI 會從 Input * Weight 後計算出 Output 的數值而判斷要執行的動作。

詳細的運算說明會在稍後提及。

實驗的目標是透過觀測機械人的行為來拆解機械人是如何學習的。

材料 :

  • 已經在電腦安裝 AlphAI software (每一隻 AlphAI 需一台電腦)
  • 具備藍牙或Wi-Fi功能的電腦以和 AlphAI 進行溝通
  • AlphAI 機器人 (建議為一隻)
  • 擁有足夠的材料建構場地

需時 :

  • 45 至 60 分鐘

開機及接駁 :

→ 安裝 AlphAI software , 點擊「AlphAI」圖示以開啟軟件

→ 開啟 AlphAI 的電源 (電源掣在底部)。需時約20-30秒 , 它會輕輕移動幾步, 當它準備好連接時會亮起白光。

→ 記下 AlphAI 底板的編號 ( 應為3或4位數 e.g 197 )

→ 選擇以WiFi 或 藍牙接駁 ( 當超過4個 AlphAI 或房間已有多個 WiFi 網絡時 , 建議使用藍牙接駁)

Wi-Fi : 藍牙 :
- 將電腦連接至 AlphAI 的 Wi-Fi :找出以 AlPHAI 開頭並以機械人編號結尾的 Wi-Fi 網絡 : 密碼與Wi-Fi名稱相同 (包括大小寫)- 在「Tools」工具欄中選擇「wifi」 - 在 「Tools」工具欄中選擇「Bluetooth」,選擇相應的 AlphAI (對應機身編號)- 如果你的 AlphAI 不在列表中 , 點擊「pari a new robot via Bluetooth」並在該 AlphAI 出現時選擇 它 , 然後將它添加到您可以選擇的列表中。

→ 點擊「connection」 button 來連接你的 AlphAI 。連接後你將在右下角能看到它的電量。

連接常見問題可查閱 : AlphAI 連接常見問題

導入 「Blocked vs Motion」

在「Parameters」中選出「load demo parameters...」然後導入「Reinforcement learning - Blocked vs Motion」

Parameters 是 AlphAI 預設的 Demo Configuration setting , 方便用家直接導入使用。

獎勵(Reward) 和等級(Level) :

使用預設的設定 , 這單元最重要的目的是觀測 Weight 跟 Output Value 的變動。

Neural Network 上的數值是什麼意思?

- 左面紅色跟綠色車輛的位置是 Input Neuron

- 右面 5個 Action 上的是 Output Neuron

Activation | 執行 :

  • 並不是每個 units 都會被激活。
  • 每一個 action 都會接收到由左面的 Input 數值再乘以中間的 Weight 數值以得出的 Output 數值。
  • 當最和運算出的數值大於某個臨界值(threshold value)時便會激活連接中的 Action Neuron。

以上圖的例子來解釋 :

紅圈的 Output Neuron 數值為 12 (數值最大) , 它就會轉成黃色被激活 ;

AlphAI 便會執行這個動作

如何計算 Output Value?

  • Blocked vs Motion 的實驗中有2個 input , 分別為 Blocked (被阻 | 紅色車輪) 及 Motion (移動中 | 綠色車輪)
  • Output Neuron 有5個 , 每1個有2個 Input Connection i.e Blocked Connection 1 & Motion Connection 2
  • 每1個 Connection 都會有1個 Associated weight (紅圈)

Output Neuron 5 的計算為 :

Input 1 x Weight 1 + Input 2 x Weight 2  =  0.00 x 0.10 + 1.00 x 0.12  =  0.00 + 0.12

=   0.12  (or 12 is magnified)

同1時間 Input 只會有1個 , 因為有1邊的 Connection 會是 0

開始進行學習 :

開啟 「 Learning 」 , 這次將一步一步使用「single step」來觀測 AlphAI 是如何學習的。

Time Sequence 01 | 第1步 :

  • Weight 1 及 Weight 2 代表這個 Al model 的第1次學習 。
  • 一般來說第1步都是隨機的 , 例如上圖第1步是向後轉 (不是最好的結果)

Time Sequence 02 | 第2步 :

  • 獎勵為 -50 (壞結果)
  • AlphAI 為了進步 , 它將 Weight 2 的第5個數值從 0.12 修改成 0.10
  • 因此第5個 Neuron (向後轉) 的數值也從 0.12 修改成 0.10
  • 我們再按下「Single Step」 AlphAI 會選擇亮起的 Output Neuron 作為執行動作
    ==> 即使數值由 12 下降至 10 , 但 Output Neuron 5 還是最大 ; 因此還是會向後右行

Time Sequence 03 | 第3步 :

  • 獎勵還是 -50 (壞結果)
  • AlphAI 為了進步 , 它將 Weight 2 的第5個數值從 0.10 修改成 0.07
  • 因此第5個 Neuron (向後轉) 的數值也從 0.10 修改成 0.07
  • 我們再按下「Single Step」 AlphAI 會選擇亮起的 Output Neuron 作為執行動作
  • ==> 即使數值由 10 下降至 7 , 但 Output Neuron 5 還是最大 ; 因此還是會向後右行

Time Sequence 04 | 第4步 :

  • 獎勵還是 -50 (壞結果)
  • AlphAI 為了進步 , 它將 Weight 2 的第5個數值從 0.07 修改成 0.05
  • 因此第5個 Neuron (向後轉) 的數值也從 0.07 修改成 0.05

那一個 Output Neuron 會被選擇?

  • 它更改為 Ouput 2 (向左前方行)
  • 因為 Output Neuron  2 的數值(6)變成最大 , 比早前的 Output Neuron 5 (5) 更大
  • 再按下「Single Step」來測試結果 , 看看 AlphAI 的下一步行動

Time Sequence 05 | 第5步 :

  • 獎勵變成 +35 (較好的結果)
  • AlphAI 為了進步 , 它將 Weight 2 的第2個數值從 0.06 修改成 0.08
  • 因此第5個 Neuron (向左前方行) 的數值也從 0.06 修改成 0.08
  • 我們再按下「Single Step」 AlphAI 會選擇亮起的 Output Neuron 作為執行動作
  • ==> 由於數值由 6 上升至 8 ,  Output Neuron 2 變成最大 ; 因此會繼續選擇向左前方行

開啟 Exploration :

  • 在正常情況下 , AI 會選擇最大數值的 Output Neuron 作為執行的動作 ,
    因此它應會繼續選擇 Ouput Neuron 2 (向前左轉) 並繼續提升它的數值
  • 但是這個學習中是有更好的獎勵 ( + 100 向前行) , 但 AlphAI 並未知道的。
  • 因此我們需啟動「Exploration」讓 AlphAI 尋找「新行動」 (不跟隨學習過的智能) ,
    當中的行動有可能會變得更好或更差 , 但如果它能找到更好的結果將會令 Al model 變得更好
  • 當 AlphAI 在 explore , 該行動會變成藍色

開啟 Self-Drive :

  • 讓機械人 Self-Drive 幾分數 , Weight 將會繼續進步並得出更好的智能及結果。( Level 會提高)
  • Level 是過去2分鐘Reward的平均值。 超過 50 就可以算是好的學習。
  • NOTE: Level is the average scores for past 2 minutes.  Level 53 is a very high

Time Sequence n | 第n步 (+VE) :

  • 關閉「Learning」, Weight 將會停止更動 ( frozen)
  • 這時的 Weight 代表 AI Model 的智能
  • 上圖的 AlphAI 得到 100 的 Reward --> 代表它正中向前行 ( Input 2 | Motion )

驗證 :

  • 按下「Single Step」觀察結果  
  • Input 2 Motion (綠色車輪)的 Weight 3 數值為 0.7 (最大)
  • 因此第3個 Output Neuron 亮起 (70) 並執行向前行這個動作

跟據上圖的 Network , AlphAI 的下一個動作將會是 ?

Time Sequence n | 第n步 (- VE) :

  • 上圖的 AlphAI 得到 -50 的 Reward --> 代表它向右後退 ( Input 1 | Blocked )

驗證 :

  • 按下「Single Step」觀察結果  
  • Input 1 Blocked(紅色車輪)的 Weight 5 數值為 0.21 (最大)
  • 因此第5個 Output Neuron 亮起 (21) 並執行向右後退這個動作