《深度強化學習》面試題匯總
- 2019 年 11 月 21 日
- 筆記
深度強化學習報道
來源:Blog(AemaH,蘇克)
編輯:DeepRL
不知不覺中求職季已經進行了很長時間,演算法崗位的招聘可以說是非常火爆,但目前強化學習的面試題目相對來說比較少,本文整理了大約50多道題目,僅供大家自測,也歡迎總結和貢獻答案!
1. 什麼是強化學習?
2. 強化學習和監督學習、無監督學習的區別是什麼?
3. 強化學習適合解決什麼樣子的問題?
4. 強化學習的損失函數(loss function)是什麼?和深度學習的損失函數有何關係?
5. POMDP是什麼?馬爾科夫過程是什麼?馬爾科夫決策過程是什麼?裡面的「馬爾科夫」體現了什麼性質?
6. 貝爾曼方程的具體數學表達式是什麼?
7. 最優值函數和最優策略為什麼等價?
8. 值迭代和策略迭代的區別?
9. 如果不滿足馬爾科夫性怎麼辦?當前時刻的狀態和它之前很多很多個狀態都有關之間關係?
10. 求解馬爾科夫決策過程都有哪些方法?有模型用什麼方法?動態規劃是怎麼回事?
11. 簡述動態規劃(DP)演算法?
12. 簡述蒙特卡羅估計值函數(MC)演算法。
13. 簡述時間差分(TD)演算法。
14. 簡述動態規劃、蒙特卡洛和時間差分的對比(共同點和不同點)
15. MC和TD分別是無偏估計嗎?
16. MC、TD誰的方差大,為什麼?
17. 簡述on-policy和off-policy的區別
18. 簡述Q-Learning,寫出其Q(s,a)更新公式。它是on-policy還是off-policy,為什麼?
19. 寫出用第n步的值函數更新當前值函數的公式(1-step,2-step,n-step的意思)。當n的取值變大時,期望和方差分別變大、變小?
20. TD(λ)方法:當λ=0時實際上與哪種方法等價,λ=1呢?
21. 寫出蒙特卡洛、TD和TD(λ)這三種方法更新值函數的公式?
22. value-based和policy-based的區別是什麼?
23. DQN的兩個關鍵trick分別是什麼?
24. 闡述目標網路和experience replay的作用?
25. 手工推導策略梯度過程?
26. 描述隨機策略和確定性策略的特點?
27. 不打破數據相關性,神經網路的訓練效果為什麼就不好?
28. 畫出DQN玩Flappy Bird的流程圖。在這個遊戲中,狀態是什麼,狀態是怎麼轉移的?獎賞函數如何設計,有沒有獎賞延遲問題?
29. DQN都有哪些變種?引入狀態獎勵的是哪種?
30. 簡述double DQN原理?
31. 策略梯度方法中基準線baseline如何確定?
32. 什麼是DDPG,並畫出DDPG框架結構圖?
33. Actor-Critic兩者的區別是什麼?
34. actor-critic框架中的critic起了什麼作用?
35. DDPG是on-policy還是off-policy,為什麼?
36. 是否了解過D4PG演算法?簡述其過程
37. 簡述A3C演算法?A3C是on-policy還是off-policy,為什麼?
38. A3C演算法是如何非同步更新的?是否能夠闡述GA3C和A3C的區別?
39. 簡述A3C的優勢函數?
40. 什麼是重要性取樣?
41. 為什麼TRPO能保證新策略的回報函數單調不減?
42. TRPO是如何通過優化方法使每個局部點找到讓損失函數非增的最優步長來解決學習率的問題;
43. 如何理解利用平均KL散度代替最大KL散度?
44. 簡述PPO演算法?與TRPO演算法有何關係?
45. 簡述DPPO和PPO的關係?
46. 強化學習如何用在推薦系統中?
47. 推薦場景中獎賞函數如何設計?
48. 場景中狀態是什麼,當前狀態怎麼轉移到下一狀態?
49. 自動駕駛和機器人的場景如何建模成強化學習問題?MDP各元素對應真實場景中的哪些變數?
50. 強化學習需要大量數據,如何生成或採集到這些數據?
51. 是否用某種DRL演算法玩過Torcs遊戲?具體怎麼解決?
52. 是否了解過獎勵函數的設置(reward shaping)?
本文同時將題目同步在Github,歡迎各位pull request最優秀的答案!文末會一一致謝各位貢獻者,也歡迎大家群內討論!
https://github.com/NeuronDance/DeepRL/blob/master/DRL-Interviews/drl-interview.md
致謝:本文(下兩鏈接)參考AemaH和蘇克部落格整理而來,在此表示感謝!
https://zhuanlan.zhihu.com/p/33133828
https://aemah.github.io/2018/11/07/RL_interview/
深度強化學習實驗室
演算法、框架、資料、前沿資訊等
GitHub倉庫
https://github.com/NeuronDance/DeepRL