最近在整理强化学习的一些基础知识以及面试中遇到的一些问题。问题和参考答案评论区私聊PDF版(个人看法。自己整理),文章内容大多选自David Silver的一些录像以及《强化学习导论(第二版)》、郭老师的强化学习新书。
如有相关问题,欢迎批评指正!

1.强化学习的应用场景

1.1 自动驾驶系统

自动驾驶公司的研发重点多在车道线识别等计算机视觉感知问题上(Nvidia的端到端方向盘转角的控制),决策方面主流用的还是基于规则的有限状态机。
虽然主流的决策方法在于有限状态机,但基于强化学习的决策算法仍然活跃在一些实验室。比较典型的方案是基于逆强化学习或者基于迁移学习的决策方案。
应用实例:

  1. Nvidia 端到端方向盘控制
  2. 使用DDPG玩TORCS
  3. 基于CARLA驾驶模拟器的端到端自动驾驶
  4. 基于AirSIM模拟器的端到端决策

1.2 游戏AI

之前面过腾讯的游戏AI平台部,就有问过相关的问题。比如穿越火线的AI以及王者荣耀开放的悟空等

1.3 推荐系统和搜索引擎

之前读过阿里巴巴的一本关于强化学习在相关领域的应用,目前不仅阿里,包括京东在内的广大新媒体公司都有将强化学习应用在相关领域的实例。

2. 强化学习基础

  1. 强化学习的分类?
  2. 强化学习的损失函数?

2.1 强化学习解决何种问题

  1. 强化学习属于机器学习的何种学习方式,其与监督学习和非监督学习的异同点是什么?其中监督学习依靠便签,而强化学习又需要什么?
  2. 强化学习解决的是何种问题?(多臂老虎机,没有序列)强化学习的目标是什么?
  3. 强化学习的整体算法流程?

2.2 马尔科夫决策过程

  1. POMDP是什么?马尔科夫决策过程是什么?里面的“马尔科夫”体现了什么性质?马尔科夫过程是什么?(因为是口头交互式提问,确实是先难后易。)
    MDP五元组(S,A,R,P, γ \gamma γ
  2. 马尔科夫过程的分类?
    链接
    在这里插入图片描述
  3. 写出贝尔曼方程。
    状态价值值函数贝尔曼方程
    动作状态价值值函数贝尔曼方程
    最优状态价值值函数贝尔曼方程
    最优动作状态价值值函数贝尔曼方程
  4. 最优值函数和最优策略为何等价?
  5. 如果不满足马尔科夫性怎么办?当前时刻的状态和它之前很多很多个状态都有关。
    recurrent state。

3. 基于值函数的强化学习方法(Value Based)

  1. 基于值函数方法的算法有哪些?其损失函数是什么?(MSE)

3.1 基于模型的动态规划算法(DP)

  1. 基于策略迭代的动态规划算法流程?
  2. 基于值迭代的动态规划算法流程?

3.2 无模型的值函数方法

3.2.1 基于蒙特卡洛的强化学习方法(MC)
  1. 简述蒙特卡洛方法的算法流程(一步、每步)
  2. 重要性采样
3.2.2 基于时间差分的强化学习方法(TD)
  1. 简述时间差分算法,Q-learning Sarsa TD( λ \lambda λ)
  2. 什么是TD目标、TD Error
  3. 蒙特卡洛和时间差分的对比:MC和TD分别是无偏估计吗,为什么?MC、TD谁的方差大,为什么?
  4. 写出用第n步的值函数更新当前值函数的公式(1-step,2-step,n-step的意思)。当n的取值变大时,期望和方差分别变大、变小?
  5. 动态规划、蒙特卡洛、时间差分算法更新值函数的公式,为什么?
  6. TD(λ)方法:当λ=0时实际上与哪种方法等价,λ=1呢?
  7. on-policy 和 off-policy算法
  8. online和offline 局部最优和全局最优的区别
3.2.3 DQN及其变体
  1. 详述DQN 算法,DQN使用的三个技巧?
  2. 为什么要打破强化学习数据之间的相关性,独立同分布
  3. 画出DQN玩Flappy Bird的流程图。在这个游戏中,状态是什么,状态是怎么转移的?奖赏函数如何设计,有没有奖赏延迟问题?
  4. DQN做路径规划,网格世界
  5. DQN的几类变种?
    过估计 Double DQN Target网络的更新下一步的动作 Q ( S , A ) Q(S,A) Q(S,A)的更新公式。
    priority reply buffer ----> Priority DQN 状态奖励 (腾讯问过)
    Advantage 函数 --------> Dueling DQN

4. 基于策略搜索的强化学习方法(Policy-Based)

  1. 基于值函数方法与基于策略搜索的方法的区别和相同点。
  2. 策略搜索的优缺点?

4.1 基于策略梯度的强化学习方法

  1. 策略梯度方法中基线b如何确定?为什么引入基线b ,方差
  2. 什么是随机策略,确定性策略,他们的优缺点分别是什么?
  3. 策略梯度算法的策略梯度更新公式?

4.2 基于置信域策略优化的强化学习方法(TRPO)

  1. 为什么TRPO能保证新策略的回报函数单调不减?
  2. TRPO解决策略梯度的什么问题?
  3. TRPO 使用了哪些trick?重要性采样 近似 优势函数 KL散度

5. 基于AC框架的算法

  1. AC的含义?ACtor 行动策略 Critic 评估方法 (利用值函数逼近的方法逼近值函数)
  2. 随机策略的AC方法,异策略的随机策略AC方法,确定性策略的AC方法?更新公式
  3. A3C 算法 解决独立同分布 分布不同线程
  4. DDPG算法框架与流程?off-Policy
  5. 利用DDPG玩TORCS?

6. 强化学习-探索和利用

  1. 抖动策略
  2. UCB1
  3. 基于信息增益
  4. 基于贝叶斯方法
  5. 贪婪策略 a r g m a x argmax argmax

参考文献:
https://zhuanlan.zhihu.com/p/33133828
https://zhuanlan.zhihu.com/sharerl
https://github.com/NeuronDance/DeepRL/blob/master/DRL-Interviews/drl-interview.md

更多推荐