手動編輯神經網絡 | MANUAL EDITION OF A SIMPLE NEURAL NETWORK
我們將透過一個簡單的案例來詳細說明機械人神經網絡中的連接是如何運作的。
導入「Manual Edition - Blocked vs Motion」, 我們會透過這個設置來說明簡單的神經網絡 ;
或自行選擇所需的參數 :
• 在 AI tab :
- 「learning type」選擇 「Reinforcement learning」;「algorithm」選擇「basic- Q-learning 」
• 在 Sensors tab, :
- 按「speed」再選「blocked/moving」.
• 在 Reward tab:
- 選擇 「Speed and blocked」.
• 在控制欄 | Control Bar :
- 選取 「manual Edition」 ; 然後點擊「reset learning」並取消勾選「learning」及「exploration」
dashboard 會如下圖般 :
可能出現的輸入(input)會是 :
• 機械人未被阻擋;
• 機械人被擋住了
至於輸出有5個可能的動作 : 直行 , 向前轉右 , 向前轉左 , 向右倒車 , 向左倒車
這裡沒有學習 , 只由你在這些輸入(SENSOR)和輸出(動作)之間創造出適當的連接以讓機器人能保持一致的行為。
假如你在 sensor 與動作之間創建連結 , 這意味著一旦 sensor 被激活 , 機器人便會執行相對的動作(連接的 output)。
繪畫出你認為是好的連接 , 然後啟機器人。你可以在它啟動後繼續修改連接。
目標 : 建立出可以讓機器人取得最多獎勵的連接從而達到最高水平。
提示 : 機器人向前移動時會得到獎勵。
解決方案 : 我們希望機器人盡力以直線行駛 , 一旦它被卡住便向後退。
因此我們需告訴機器人 :
• 如果它沒有被阻塞,就直接以直線向前行駛;
• 如果它被阻塞,則向後走。
程式如下 :
透過這些連接 , 它應有你所想/需的行動。
改變(Variant) : 為它加入一點複雜性 , 我們可以考慮超音波。在「Sensor」tab 選取「Ultrasound」-->「Ultrasound threshold」
現在機器人可以通過這些超音波感偵測牆壁 , 所以我們可利用它來預測前方有牆壁並提早轉彎。
解決方案:你需告知機械人:
• 如果它沒有被阻擋且前面亦沒有任何東西,便向前直行;
• 如果沒有被擋住,但前面有障礙物,則轉向;
• 如果它被阻擋,請後退
啟動機器人 ; 它應該會按預期的動作運行。但它亦有可能會無法預測以垂直方式的行駛。如果機器人沒偵測到任何牆壁 , 你可能需更改障礙物的檢測距離。
在 ultrasound sesnor拖拉「free/obstacle」 slider , 該數字的單位是 cm 。
如下圖般 , 我們設定的 obstacle distance 是15 cm , 而機器人現時是 4cm i.e. < 15cm ;
因此 ultrasound sound (紅色感應到障礙物) 被激活 --> 亮起與行動的連接
學到的概念 :
對於機器人的行為是有必需創建感應器與可執行的不同動作之間的連接。