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 的變動。
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 的下一個動作將會是 ?