強化學習 - 機器人走迷宮


強化學習 - 機器人走迷宮

通過這篇文章,分享基於Udacity的機器人走迷宮項目,使用強化學習實現;

問題描述

圖片

規則、需求如下:

  • 智能機器人顯示在右上角,在迷宮中,有陷阱(紅色炸彈)及終點(藍色的目標點)兩種情景,機器人要盡量避開陷阱、盡快到達目的地;
  • 機器人可執行的動作包括:向上走 u、向右走 r、向下走 d、向左走 l;
  • 執行不同的動作后,根據不同的情況會獲得不同的獎勵,具體而言,有以下幾種情況;
    • 撞到牆壁:-10
    • 走到終點:50
    • 走到陷阱:-30
    • 其余情況:-0.1
  • 通過修改 robot.py 中的代碼,來實現一個 Q Learning 機器人,實現上述的目標;

算法Q-Learning

QLearning是強化學習算法中value-based的算法,Q即為Q(s,a)就是在某一時刻的 s 狀態下(s∈S),采取 動作a (a∈A)動作能夠獲得收益的期望,環境會根據agent的動作反饋相應的回報reward r,所以算法的主要思想就是將State與Action構建成一張Q-table來存儲Q值,然后根據Q值來選取能夠獲得最大的收益的動作;

項目截圖




項目總結

強化學習也是目前比較熱門的方向,與傳統ML不同的是,強化學習並不是數據貪婪性算法,即不需要預置大量的歷史數據,而是通過不斷的探索、更新、探索、更新的方式來不斷的優化自身的策略,這一點相信在類似游戲AI的領域的應用是廣泛的,當然,本文只是拋磚引玉,以QLearning這樣一個簡單易於理解的算法作為引導,更多的是想展示強化學習的應用場景、領域,為大家打開思路,如果大家需要完整瀏覽整個項目,可以直接在下面的項目鏈接找到,可以通過nbviewer瀏覽或者通過github直接下載下來運行,並調試各個參數看動態效果,相信動手后,會有更多體會;

項目地址

因為項目使用Jupyter寫的,而目前博客園不支持iframe元素,因此無法很好的展示,大家可以直接生成的頁面查看:
https://nbviewer.jupyter.org/github/NemoHoHaloAi/qlearning_maze/blob/master/robot_maze.ipynb

當然也可以直接去Github上找到:
https://github.com/NemoHoHaloAi/qlearning_maze

如果可以順便Follow、Fork、Start,那就感激不盡了,后面會持續分享自己的一些工作、生活、學習上的收獲,如果能對大家有一點點的幫助,那是最好不過的;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM