原文在此,喜歡讀原汁原味的可以自行去跟,這是一個非常經典和有學習意義的例子,在此向老爺子們致敬 -?
https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html
開源文化好是好,但是“公地的悲哀”這點避不開,很多論文/教程的代碼和環境配置,是存在問題的,有些源于依賴庫的變遷(上梁不正,python語言自己都不承諾版本向下兼容),有些是以訛傳訛,里外里浪費大家的很多時間。
當然,其實也是提醒大家多個心眼,不要只看文章如何 tree new bee,拿到代碼先在環境中跑一跑,心里有數了再引用或者轉載。
上圖自證(圖為本地,云上也驗證過)?-?
第一個問題是,為啥要學習強化學習?(這句話,放到小學考試中應該是病句,很遺憾,這就是咱們國內論文翻譯的現狀)
因為DeepMind(捎帶Google Brain)牛B。
坦白的說,在2022年openAI橫空出世以前10多年,人工智能一塊G家才是真正的“遙遙領先”(收購DeepMind) ,你所聽說的術語和工具基本只此一家,別無分號。
截至2021年,產品也是為天下先,流量感滿滿:
? ? ? ? -?Google Brain,第一個能識別“貓”的AI,技術棧是監督學習(大約理解為,請一大堆兼職工對海量圖片進行瘋狂的標記,輸出用來培養AI),公開直播在Youtube上面隨機視頻中找貓;
? ? ? ? 這也是今天百度“蘿卜快跑”的主要技術棧;
? ? ? ? - 2016,阿爾法go用圍棋祭天,法力無邊,技術棧是DQN,公開直播對壘世界冠軍李世石,搞得我看了好幾遍的《棋魂》看不進去了;
? ? ? ? - 2017,Tensorflow,業界CNN標桿,你可以理解為手機里的安卓,瀏覽器里的Chrome,也是我們本次的教程背后的庫;(當然,馬斯克的特斯拉不想讓G家獨大,選擇了F家的PyTorch)
? ? ? ? - 2019,AlphaStar聯合暴雪,技術棧是DQN,公開直播AI對壘星際爭霸2,看完我直接卸載游戲(大家也可以去網上找Replay,感受一下);
????????兩位對手(下圖,雖然不是韓國人,缺少點說服力) -?
????????左)蟲族選手 TLO,Liquid 戰隊,Aligulac 世界排名72 。要求蟲族選手使用神族/星靈,有點強人所難。
?????????- 戰績 0:5 全敗!
????????右)星靈族選手MaNa,波蘭第二,單族排名世界第 12,不分種族世界第35,實力在二線職業選手中屬于頂尖。
?????????- 戰績 1:10 唯一勝局來自ai主動削弱!
? ? ? ? - 2019,(開始年份不確定)正式放棄Maven,也就是配合美軍的項目;
? ? ? ? - 2021,AlphaFold,AI正式應用于科研第一線;
呃,年紀大了,一不小心就喜歡掉書袋,(¬︿??¬☆),其實故事里面也有一根暗線就是埃隆馬斯克(怎么總是你 : How old are you),不過畢竟我們不是純懷舊帖子,八卦略去不提。
回到技(zhuang)術(bi),這篇教程使用了gymnasium環境(注意,不是gym,gym官方已經不維護,不推薦使用)里面的自帶例程,Cate Pole,倒立擺,就是通過向左或向右移動小車來保持桿子的直立。能夠在更久的時間或者更多的步數中屹立不倒,是本例的目標,也是最后評估的標準。
這里是直接取得了環境參數用于訓練,并不谷歌,谷歌的玩法都是要直接游戲中,標準幀率截圖,然后讀圖取得參數并用于訓練。
深度學習的基礎是CNN卷積神經網絡,也就是把輸入參數和輸出參數之間,放置一個多層的,用來轉換的神經網絡。比如這個例子中,就是4個參數/神經輸入,轉為第一層128個神經,經由第二層的128個神經,最終變換為最后的2個參數輸出。
深度學習還應用了其他方法/算法,典型的本例都有涉及,我在這個系列的文章中也都會依次展開,如 -
????????1)梯度下降算法,
????????2)折扣因子-貪婪算法,
????????3)記憶錨(Replay Memory,基于抽幀回放),
????????4)策略優化。