強化學習 受阻/移動 |REINFORCEMENT LEARNING BLOCKED/MOTION
較早之前我們甚至創建了連接網絡,讓機械人按照我們的意願行事。現在我們將能夠使用AI人工智能讓機器人自行構建相同的網絡,並無需人工干預。 為了達成目的,我們將會使用強化學習。
強化學習的原理是透過獎勵或懲罰方式鼓勵機械人做特定的動作。然後機械人將修改其行為以達至最大化的級別(LEVEL),LEVEL是過去2分鐘內獎勵的平均值。
在這裡,機械人走得越快,它得到的獎勵就會越多,但如果它停下來,它就會得到懲罰(負數數值)。為了最大化它的級別,機械人應盡可能多以地直線行駛,並盡可能不停下來。
導入「Reinforcement Learning - Blocked vs Motion」,
或自行選擇所需的參數 :
- 在 AI tab :
- 「learning type」選擇 「Reinforcement learning」;「algorithm」選擇「basic- Q-learning 」。
- 在 Sensor tab :
- 按「speed」再選「blocked/moving」
- 在 Reward tab :
- 選擇 「Speed and blocked」.
- 在控制欄 | Control Bar :
- 選取 「learning」 ; 並取消勾選「exploration」
跟上次不同 , 感應器不拍是連接至單個動作 , 而是同時連接所有動作。每個連接都有不同的權重(weights) , 是對應機器人使用連接的期望所獲取得獎勵。現在 , 權重是隨機初始化生成的。
按下「self-drive」啟動 AlphAI。你也能使用「single step」一步一步地學習和了解現在發在的情況
開始的時候假如機器人沒被卡住 , 這對它來說是最好的動作。因為能給予它最大的獎勵(權重最大的那個)是向後走 , 所以它選擇了這個動作。但如果宅沒得到任何獎勵 , 它就會減少這一個停留處(動作)的權重 , 然後重新開始。
假如它仍然沒有得到獎勵 , 它將會不斷減少 , 直到這個權重比起其他動作的權重更少。在這個時候 , 機器人會認為給予它最大獎勵的動作是「向左轉」,所以它會向左轉 , 從而得到一個比它預期更高的獎勵 , 所以它增加了這個連接的權重 , 直至權重穩定到30這個數值。這時 , 機器人會認為「向左轉」是最好的動作 , 從此之後到機器人到達這個點時它就不會再需要停下來才能轉向 , 它將直接向左轉讓整個行駛保持順暢。
機器人開始無間斷地向左行駛 , 但這不是它最好的行動 : 假如它向前行駛 , 它會獲得更高的獎勵。但由於它從未試過向前行駛 , 所以它無法知道這一點。 所以我們必須強迫機械人去嘗試。
在主控制欄上啟用「Exploration」。
開啟「exploration」後, 機器人不一定會選擇權重最高的連接(動作) , 而是偶爾會選擇另一個動作(連接)。
當機器人最後隨機選擇到直行時 , 它就會得到最高的獎勵 , 並增加這個連接的權重。再過一段時間 , 直行神經連接的權重會比左轉的高 , 機器人便會開始直行而不是一直原地轉圈了。
再經過一段時間後 , 機器人將會有所有所需的行動(盡可能以直線行走,一旦被卡住就後退) , 但這次我們(人類)無需告知機器人它該做什麼而是全依靠它自己完成的。
學到的概念 :
為了讓機器人在不受人類監督的情況下學習 , 每次執行動作時都會給予更多或更少的獎勵。根據收到的內容 , 機器人將調整它的選擇行動以得到最大化的獎勵。
獎勵簡單來說也只是一個數值(正數) , 如果是懲罰數值將為負數 , 機器人將尋求最大化的獎勵。
這需要機器人探索(exploration)而不是一直選擇看起來最好的動作 , 因為這能讓它發現出更好的新動作 , 從而獲取更好的獎勵。