面經 | 網易互娛強化學習面經 2020 年 8 月 21 日 AI 作者 | 古來征戰幾人回鏈接 | //www.nowcoder.com/discuss/479615?source_id=profile_create&channel=1009來源 | 牛客網 上周面完了互娛的三面,今天稍微空閑下來寫一寫面經,順便許願一個意向書。 整體來說互娛面試難度適中,對演算法的理解需要較為深刻,並且要求演算法程式碼有自己上過手(看別人源碼也行,但必須要看懂實現細節),只要基礎比較紮實的話通常是可以有三輪面試機會的,下面我大概總結一下整個流程。 一面 一面主要分為兩個部分:詢問項目 + 演算法基礎 項目部分: 因為針對於多智慧體和單智慧體我自己分別寫了兩款遊戲環境用於驗證一些主流的單/多智慧體的RL演算法,因此這一次面試中面試官在項目部分主要問的是遊戲-演算法的架構設計: 1. 整個系統的設計模式是什麼樣的?遊戲端和演算法端是如何進行數據通訊的?遊戲端內部如何響應演算法的決策行為?演算法模組如何接收遊戲端發送來的狀態數據? 2. 遊戲中都涉及到了哪些決策行為,是連續的還是離散的? 3. 這兩款遊戲為什麼就適合驗證單/多智慧體演算法? 4. 如果現在有一個遊戲,但它原本設計的時候並不是為了強化學習而設計的,那麼想要打通遊戲與演算法的通訊管道應該怎麼做? 演算法基礎部分: 1. 你說你用到了演算法庫中實現了PG/DQN/PPO,那你分別介紹一下這三個演算法吧。(建議:每一個演算法從設計初衷開始介紹,演算法提出是為了解決什麼問題,怎麼解決的這些問題,最後講一講程式碼是怎麼實現的) 2. 你說PPO中用到的Importance Sampling,但同樣作為Off-Policy的DQN為什麼不需要做Importance Sampling?(從更新公式和策略模型方向回答) 3. 你說的PPO中的Surrogate Clip具體Clip的是什麼,為什麼要做Clip?(從Importance Sampling的原理反推出分布差異不能過大的這一局限性) 4. 說一說AC吧。(介紹AC的設計初衷和程式碼實現) 5. 你說actor的更新是受到critic的指導的,那具體是如何進行指導的?(從variance和baseline這兩個方面回答) 二面 二面和一面流程差不多,主要分為兩個部分:詢問項目 + 演算法基礎 + 演算法題 (感覺每一輪面試官都比較關注項目,都會問一些項目相關的問題) 詢問項目: 1. 訓練的時候你的遊戲是分散式部署的還是獨立部署的? 2. 遊戲端有設計wrapper嗎,具體有哪些功能? 3. 支援並行化學習嗎? 4. 看到你提到說遊戲是支援self-play的,如何支援的?訓練效果怎麼樣? 演算法基礎部分: 1. 聊一聊GAE吧。(從設計初衷到計算公式最後程式碼實現講一講) 2. 如果我的Replay Buffer中現在只有128個steps,但一直到第128個steps都沒有遇到terminal state,此時我應該如何計算GAE?(用偽狀態值代替) 3. 你用MADDPG是如何解決離散行為控制的?(連續變數離散化) 4. 遊戲中很可能在某些狀態下出現某些行為此時不能被採取的情況,這種情況下該怎麼辦?(QMIX中如何實現和PPO中如何實現) 演算法題: 1. 找連續數組中缺失的一個數。 三面 三面是主管面試,主要針對項目進行提問,前面兩面項目都問的比較粗略,三面問的會很細節: 1. 單/多智慧體的遊戲劇本是什麼? 2. 遊戲中有幾類Agent,規模是多大? 3. Agent的行為/觀測是什麼? 4. 遊戲端設計了哪些模組,如何和演算法模組進行數據通訊的? 5. 介紹一下訓練出來的模型效果? 6. 將演算法用到遊戲中做了哪些工作?(部署流程 + sparse reward情況下如何解決) 7. 在演算法訓練中有哪些創新點? 8. 單智慧體遊戲中為什麼PPO效果最好?多智慧體遊戲中為什麼QMIX效果最好? 9. Self-Play相關。 10. 你有什麼想問我們的問題。 總的來說互娛的面試體驗還是很不錯的,不管最後能不能拿到意向書都是一次收穫很大的經歷。從面試中可以看出來面試官很在意你對演算法的理解,是否有系統的、連貫的知識體系(比如從PG推到AC再推到PPO再推到COMA),在程式碼層面會關注你是否有自己親自去上手演算法程式碼,而不只是git clone,要熟悉遊戲和演算法之間的工作流程,對遊戲環境和演算法環境都要有一定的了解。 以上就是本次面經分享的全部內容,希望可以幫到大家,共勉。 AI研習社開放秋招徵文了,分享面經有機會獲得Kiddle等大禮哦! 以下是已參加作者,名單持續更新中: 譯者:Arthur 作品:《2020 數據分析崗位報告:數據分析師需要哪些能力?》 作者:渣渣的渣渣之路 作品:《萌新指南:堅持學習三步走,邁向職業巔峰?》 作品:《萌新指南:HR問你目前有幾個offer?該如何作答?》 作品:《萌新指南:面試官在面試過程中想考察你什麼?》 面經無數,但我們依然期待獨一無二的你! ★星標我們,不錯過與你相關的每條消息 分享此文:分享到 Twitter(在新視窗中開啟)按一下以分享至 Facebook(在新視窗中開啟)按一下以分享到 Telegram(在新視窗中開啟)分享到 Pinterest(在新視窗中開啟)更多點這裡列印(在新視窗中開啟)分享到 LinkedIn(在新視窗中開啟)分享到 Reddit(在新視窗中開啟)分享到 Tumblr(在新視窗中開啟)分享到 Pocket(在新視窗中開啟)分享到 WhatsApp(在新視窗中開啟)按一下即可分享至 Skype(在新視窗中開啟) Related Posts 2020 年 12 月 14 日 擴展之Tensorflow2.0 | 21 Keras的API詳解(下)池化、Normalization層 <<小白學PyTorch>> 擴展之Tensorflow2.0 | 21 Keras的API詳解 … .. 2020 年 11 月 2 日 詳解 Linux 中的硬鏈接與軟鏈接