RL面试题总结

 


1、强化学习可以解决什么问题

企业:

  1. 推荐系统:阿里、京东、字节等把强化学习用在推荐系统、计算广告和搜索引擎中。
  2. 游戏AI:网易伏羲AI、腾讯
  3. 机器人控制:

学术:

  1. 自动驾驶
  2. 序列预测

 


2、强化学习如何解决问题

1)什么是强化学习?

强化学习由环境、动作和奖励组成,强化学习的目标是使得作出的一系列决策得到的总的奖励的期望最大化。

2)强化学习和监督学习、无监督学习的区别是什么?

答:监督学习一般有标签信息,而且是单步决策问题,比如分类问题。监督学习的样本一般是独立同分布的。无监督学习没有任何标签信息,一般对应的是聚类问题。强化学习介于监督和无监督学习之间,每一步决策之后会有一个标量的反馈信号,即回报。通过最大化回报以获得一个最优策略。因此强化学习一般是多步决策,并且样本之间有强的相关性。

3)有监督学习靠样本标签训练模型,强化学习靠的是什么?

答:监督学习带有标签;无监督学习没有标签;强化学习使用未标记的数据,根据延迟奖励学习策略。

4)强化学习解决的是什么样的问题?

答:强化学习适合于解决模型未知,且当前决策会影响环境状态的(序列)决策问题。 Bandit问题可以看成是一种特殊的强化学习问题,序列长度为1,单步决策后就完事了,所以动作不影响状态。当然也有影响的bandit问题,叫做contextual bandit问题。

 


3、强化学习基础

3.1 马尔科夫决策过程

1)强化学习的损失函数(loss function)是什么?和深度学习的损失函数有何关系?

答:强化学习的损失函数是累积回报。 依赖于不同的问题设定,累积回报具有不同的形式。比如对于有限长度的MDP问题直接用回报和作为优化目标。对于无限长的问题,为了保证求和是有意义的,需要使用折扣累积回报或者平均回报。深度学习的损失函数一般是多个独立同分布样本预测值和标签值的误差,需要最小化。 强化学习的损失函数是轨迹上的累积和,需要最大化。

2)POMDP是什么?马尔科夫过程是什么?马尔科夫决策过程是什么?里面的“马尔科夫”体现了什么性质?

答:POMDP是部分可观测马尔科夫决策问题。马尔科夫过程表示一个状态序列,每一个状态是一个随机变量,变量之间满足马尔科夫性,表示为一个元组<S, P>,S是状态,P表示转移概率。马尔科夫决策过程(MDP) 表示为一个五元组<S, A, P, R, γ \gamma γ>,S是状态集合,A是动作集合,P表示转移概率,即模型, R是回报函数, γ \gamma γ表示折扣因子。 马尔科夫体现了无后效性,也就是说未来的决策和当前的状态有关,和历史状态无关。

3)写出贝尔曼方程?

对于状态值函数的贝尔曼方程:
在这里插入图片描述
对于动作值函数的贝尔曼方程:
在这里插入图片描述

4)最优值函数和最优策略为什么等价?

答:最优值函数唯一的确定了某个状态(或状态-动作对)相对比其他状态(状态-动作对)好,我们可以依赖这个值唯一的确定当前的动作,他们是对应的,所以等价。
在这里插入图片描述

5)值迭代和策略迭代的区别?

答:策略迭代有两个循环,一个是策略估计,为了求当前策略的值函数需要迭代很多次。 另外一个是策略改进,根据q值中最大的对应的动作为新的策略(greedy policy)。值迭代算法则是一步到位,直接估计最优值函数,因此没有策略改进环节。 值迭代是策略迭代的一种特殊情况,是每进行一次策略评估就更新一次策略。

6)如果不满足马尔科夫性怎么办?当前时刻的状态和它之前很多很多个状态都有关?

答:如果不满足马尔科夫性,强行只用当前的状态来决策,势必导致决策的片面性,得到不好的策略。为了解决这个问题,可以利用RNN对历史信息建模,获得包含历史信息的状态表征。表征过程可以使用注意力机制等手段。最后在表征状态空间求解MDP问题。

 

3.2 基于模型的动态规划方法

1)求解马尔科夫决策过程都有哪些方法?有模型用什么方法?动态规划是怎么回事?

答:方法有动态规划(DP),时间差分(TD),蒙特卡洛(MC)。 有模型可以使用动态规划方法。 动态规划是指:将一个问题拆分成几个子问题,分别求解这些子问题,然后获得原问题的解。

2)简述动态规划(DP)算法?

答:DP算法是在给定MDP环境特性的条件下用来计算最优策略的,是基于模型的planning方法。动态规划有策略迭代值迭代两种方式,策略迭代是不断进行策略评估、策略改进的过程。每一次操作都是基于所有可能的单步后继状态价值函数以及它们出现的概率,以此来更新一个状态价值函数,它是广度期望更新的并且采用了自举法(bootstrapping)。

 


4、基于值函数的强化学习方法

4.1 基于蒙特卡洛的强化学习方法

1)简述蒙特卡罗估计值函数的算法?

答:MC算法是model-free的学习方法而不是planning,它从”经验“中学习价值函数和最优策略,”经验“是指多幕采样数据,MC通过平均样本的回报在大数定律的保证下进行策略估计,然后采用柔性策略进行MC控制。MC算法是深度采样更新,它没有使用自举法。
在这里插入图片描述

 

4.2 基于时间差分的强化学习方法

1)简述时间差分(TD)算法?

答:TD,MC和DP算法都使用广义策略迭代来求解策略,区别仅仅在于值函数估计的方法不同。DP使用的是贝尔曼方程,MC使用的是采样法,而TD方法的核心是使用自举(bootstrapping),即值函数的更新为: V ( s t ) = r t + γ V ( s n e x t ) V(s_t) = r_t + \gamma V(s_{next}) V(st)=rt+γV(snext),使用了下一个状态的值函数来估计当前状态的值。TD算法和MC算法一样可以从和环境互动的经验中学习策略而不依赖环境的动态特性,TD和DP一样都采用的自举法,是采样更新。TD控制有Sarsa、期望Sarsa和Q-Learning。

2)简述动态规划、蒙特卡洛和时间差分的对比(共同点和不同点)?
在这里插入图片描述

共同点:核心都是值函数的计算。

不同点:

  1. DP是model-based,MC和TD都是model-free
  2. DP是期望更新,MC和TD是采样更新
  3. DP是planning,MC和TD是Learning
  4. DP显示了所有的单步转移,MC是完整的一幕,TD采样不采集完整的一幕
  5. MC是最小化训练集上均方误差的估计,批量TD是找出完全符合马尔可夫模型的最大似然参数

3)MC和TD分别是无偏估计吗,为什么?MC、TD谁的方差大,为什么?

答:MC是无偏估计,TD是有偏估计。 MC的方差更大,MC采样了一整幕,每次获取下一步的价值和收益都会增大方差,但是TD不是完全采样因此方差比MC小。

4)简述on-policy和off-policy的区别?

答:on-policy:行为策略和要优化的策略是一个策略,更新了策略后,就用该策略的最新版本采样数据。off-policy:使用任意的一个行为策略来收集收据,利用收集的数据更新目标策略。

5)简述Q-Learning,写出其Q(s,a)更新公式。它是on-policy还是off-policy,为什么?

答:Q-Learning 是通过计算最优动作值函数来求策略的一种算法,更新公式为:
Q ( s t , a t ) = Q ( s t , a t ) + α [ R t + 1 + γ max ⁡ a Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] Q(s_t, a_t) = Q(s_t, a_t) + \alpha [R_{t+1} + \gamma \max_a Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t)] Q(st,at)=Q(st,at)+α[Rt+1+γmaxaQ(st+1,at+1)Q(st,at)]
是off-policy。Q-learning在计算下一状态的预期收益时使用了max操作,直接选择最优动作,而当前policy并不一定能选择到最优动作,因此这里生成样本的policy和学习时的policy不同,为off-policy算法。(Q-Learning 采用对最优动作价值函数的近似作为学习目标,与行动策略无关,是off-policy。)

6)写出用第n步的值函数更新当前值函数的公式(1-step,2-step,n-step的意思)。当n的取值变大时,期望和方差分别变大、变小?

答:
在这里插入图片描述在这里插入图片描述
当n越大时,越接近于MC方法,因此方差越大,期望越接近于真实值,偏差越小。

7)TD(λ)方法:当λ=0时实际上与哪种方法等价,λ=1呢?

答:当λ=0时,等价于TD。当λ=1时,等价于MC。

8)写出蒙特卡洛、TD和TD(λ)这三种方法更新值函数的公式(重点前两种)

蒙特卡洛:
在这里插入图片描述
TD(0):
在这里插入图片描述
TD(λ):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 

4.3 基于值函数逼近的强化学习方法

4.3.1 基于值函数逼近的理论讲解

4.3.2 DQN

1)详述DQN。DQN的两个关键trick分别是什么?

答:将 Q-learning 和深度神经网络相结合就是DQN。使用目标网络(target network)来缓解训练不稳定的问题;经验回放。

2)阐述目标网络和experience replay的作用?

答:目标网络:在DQN中某个动作值函数的更新依赖于其他动作值函数。如果我们一直更新值网络的参数,会导致更新目标不断变化,也就是我们在追逐一个不断变化的目标,这样势必会不太稳定。引入目标网络就是把参数 θ − \theta^- θ 每隔C步才和普通网络的参数 θ 同步一次。这样在一定的阶段内目标是固定的,训练也更稳定。

experience replay:将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。主要作用是克服经验数据的相关性和非平稳分布问题。优点:1. 数据利用率高,因为一个样本被多次使用;2. 连续样本的相关性会使参数更新的方差比较大,该机制可减少这种相关性。

3)画出DQN玩Flappy Bird的流程图。在这个游戏中,状态是什么,状态是怎么转移的?奖赏函数如何设计,有没有奖赏延迟问题?

答:

  • [待补充] 状态:4帧连续图片作为不同的状态States

4)DQN都有哪些变种? 引入状态奖励的是哪种?

答:DQN三个经典的变种:Double DQN、Dueling DQN、Prioritized Replay Buffer。
Double-DQN:将动作选择和价值估计分开,避免价值过高估计。
Dueling-DQN:将Q值分解为状态价值和优势函数,得到更多有用信息。
Prioritized Replay Buffer:将经验池中的经验按照优先级进行采样。

4.3.3 Double DQN

1)简述 double DQN?

答:DQN 由于总是选择当前值函数最大的动作值函数来更新当前的动作值函数,因此存在着过估计问题(估计的值函数大于真实的值函数)。为了解耦这两个过程, Double DQN 使用行为网络选择出value最大的action,用目标网络来估计它的值。

动作的选择:选择该状态下动作值函数最大的动作,即 a ∗ a^∗ a。动作的选择所用的动作值函数: a r g m a x a Q ( S t + 1 , a ; θ t ) argmax_a Q(S_{t+1}, a; \theta_t) argmaxaQ(St+1,a;θt)
动作的评估:选出 a ∗ a^∗ a后,利用 a ∗ a^∗ a处的动作值函数构造TD目标: Y t = R t + 1 + γ Q ( S t + 1 , a ∗ ; θ t ′ ) Y_t=R_{t+1}+\gamma Q(S_{t+1}, a^∗; \theta_t') Yt=Rt+1+γQ(St+1,a;θt)

4.3.4 Prioritized DQN

答:Prioritized DQN 使用了一个优先级经验的框架,以便更频繁地使用重要性高的样本,从而更有效地学习。使用了 TD-error 作为优先级的标准;给了解决贪婪的 TD-error 优先级出现的问题,使用了随机优先级;最后,由于优先级改变了分布,引入了偏差,使用重要性抽样进行修正。

4.3.5 Dueling DQN

答:Dueling DQN 使用了一种新的神经网络结构。Dueling 网络最后的全连接层分为了两支,输出两个独立的估计量,分别为态值函数的估计量 V 和依赖状态的动作优势函数的估计量 A ,最后的输出为 Q 值(V+A)。

4.3.6 Noisy DQN

答:在深度强化学习智能体中引入了参数噪声—— NoisyNet,并且该智能体策略的随机性可以用来帮助有效的探索。利用梯度下降法学习噪声参数和剩余网络权值。对于 A3C,DQN,可以使用 NoisyNet 来替代传统的探索启发式方法(如,熵奖励和 ϵ − g r e e d y \epsilon-greedy ϵgreedy)。

 


5、基于直接策略搜索的强化学习方法

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

1)推导策略梯度过程?

https://spinningup.openai.com/en/latest/spinningup/rl_intro3.html

2)value-based和policy-based的区别是什么?

答:value-based通过求解最优值函数间接的求解最优策略;policy-based的方法直接将策略参数化,
通过策略搜索,策略梯度或者进化方法来更新策略的参数以最大化回报。value-based 的典型算法是DQN,policy-based是policy gradient。

  1. 动作空间:value-based适合处理低维离散的动作,policy-based适合处理连续的动作。
  2. 动作的价值输出:value-based计算出每个动作的值,policy-based一般只给出价值较高的动作。
  3. 更新频率不同:value-based每个动作执行都可以更新,policy-based 每个episode完成之后才能更新一次。

3)策略梯度方法中基线b如何确定?

答:基线只要不是动作a的函数就可以,常用的选择可以是状态值函数v(s)。减去基线的梯度估计任然是无偏估计,不影响梯度的均值。但由方差定义可知,减去基线后括号中的平方的均值减小了,因此方差变小了。

4)描述随机策略和确定性策略的特点?

答:随机策略表示为某个状态下动作取值的分布,确定性策略在每个状态只有一个确定的动作可以选。
从熵的角度来说,确定性策略的熵为0,没有任何随机性。随机策略有利于我们进行适度的探索,确定
性策略的探索问题更为严峻。

5)不打破数据相关性,神经网络的训练效果为什么就不好?

答:在神经网络中通常使用随机梯度下降法。随机的意思是我们随机选择一些样本来增量式的估计梯度,比如常用的采用batch训练。如果样本是相关的,那就意味着前后两个batch的很可能也是相关的,那么估计的梯度也会呈现出某种相关性。如果不幸的情况下,后面的梯度估计可能会抵消掉前面的梯度量。从而使得训练难以收敛。

 

5.2 基于确定性策略搜索的强化学习方法

1)简述DDPG算法,并画出DDPG框架?

答:DDPG是一种使用 Actor Critic 结构,但是输出的不是行为的概率,,而是具体的行为,用于连续动作的预测。

在这里插入图片描述

2)Actor-Critic两者的区别是什么?

答:Actor是策略模块,输出动作;critic是判别器,用来计算值函数。

3)actor-critic框架中的critic起了什么作用?

答:critic表示了对于当前决策好坏的衡量。结合策略模块,当critic判别某个动作的选择是有益的,策略就更新参数以增大该动作出现的概率,反之降低动作出现的概率。

4)DDPG是on-policy还是off-policy,为什么?

答:off-policy。因为在DDPG为了保证一定的探索,对于输出动作加了一定的噪音,也就是说行为策略不再是优化的策略。

5)是否了解过D4PG算法?简述其过程。

答:Distributed Distributional DDPG (D4PG) 分布的分布式DDPG, 在DDPG的基础上有四个主要的改进:

  1. 分布式critic:不再只估计Q值的期望值,而是去估计期望Q值的分布, 即将期望Q值作为一个随机变量来进行估计。
  2. n步累计回报:当计算TD误差时,D4PG计算的是n步的TD目标值而不仅仅只有一步,这样就可以考虑未来更多步骤的回报。
  3. 多个分布式并行演员:D4PG使用K个独立的演员并行收集训练样本并存储到同一个回访缓冲中。
  4. 优先经验回放(Prioritized Experience Replay,PER):使用一个非均匀的概率 π \pi π 从一个大小为R的回放缓冲中进行采样,加速学习。

6)简述A3C算法。 A3C是on-policy还是off-policy?

答:异步优势演员-评论家方法,评论家学习值函数,同时有多个演员并行训练并且不时与全局参数同步。A3C旨在用于并行训练。
on-policy。

7)A3C算法是如何异步更新的?是否能够阐述GA3C和A3C的区别?

答:算法流程:

在这里插入图片描述

8)简述A3C的优势函数?

答: A t ​ ( s t ​ , a t ​ ) = Q ( s t ​ , a t ​ ) − V ( s t ​ ) A_t​(s_t​,a_t​)=Q(s_t​,a_t​)−V(s_t​) At(st,at)=Q(st,at)V(st)。优势函数是为了解决value-based方法具有高变异性。它代表着与该状态下采取的平均行动相比所取得的进步。如果 A(s,a)>0: 梯度被推向了该方向;如果 A(s,a)<0:(我们的action比该state下的平均值还差) 梯度被推向了反方向。但是这样就需要两套 value function,所以可以使用TD error 做估计: A ( s , a ) = r + γ V ( s ′ ) − V ( s ) A(s,a)=r+\gamma V(s')-V(s) A(s,a)=r+γV(s)V(s)

9)什么是重要性采样?

答:重要性采样是,使用另外一种分布来逼近所求分布一种方法。
期望: E ∣ f ∣ = ∫ x p ( x ) f ( x ) d x = 1 N ∑ i = 1 N f ( x i ) E|f|=\int_{x} p(x) f(x) d x=\frac{1}{N} \sum_{i=1}^{N} f\left(x_{i}\right) Ef=xp(x)f(x)dx=N1i=1Nf(xi) 按照 p(x)的分布来产生随机数进行采样。在采样分布未知的情况下,引入新的已知分布q(x),将期望修正为 E ∣ f ∣ = ∫ x q ( x ) ( p ( x ) q ( x ) f ( x ) ) d x E|f|=\int_{x} q(x)\left(\frac{p(x)}{q(x)} f(x)\right) d x Ef=xq(x)(q(x)p(x)f(x))dx。这样就可以针对q(x)来对 p(x)/q(x)*f(x)进行采样了 E ∣ f ∣ = 1 N ∑ i = 1 N p ( x i ′ ) q ( x i ′ ) f ( x i ′ ) E|f|=\frac{1}{N} \sum_{i=1}^{N} \frac{p\left(x_{i}^{\prime}\right)}{q\left(x_{i}^{\prime}\right)} f\left(x_{i}^{\prime}\right) Ef=N1i=1Nq(xi)p(xi)f(xi),即为重要性采样。

 

5.3 基于置信域策略优化的强化学习方法

1)简述TRPO算法?

2)为什么TRPO能保证新策略的回报函数单调不减?

答:在每次迭代时对策略更新的幅度强制施加KL散度约束来避免更新一步就使得策略发生剧烈变化。将新策略所对应的回报函数分解成旧的策略所对应的回报函数+其他项
η ( π ~ ) = η ( π ) + E s 0 , a 0 , ⋯ π ~ [ ∑ t = 0 ∞ γ t A π ( s t , a t ) ] \eta(\tilde{\pi})=\eta(\pi)+E_{s_{0}, a_{0}, \cdots \tilde{\pi}}\left[\sum_{t=0}^{\infty} \gamma^{t} A_{\pi}\left(s_{t}, a_{t}\right)\right] η(π~)=η(π)+Es0,a0,π~[t=0γtAπ(st,at)]
如果这个其他项大于等于0,那么就可以保证。

3)TRPO是如何通过优化方法使每个局部点找到让损失函数非增的最优步长来解决学习率的问题?

4)如何理解利用平均KL散度代替最大KL散度?

5)简述PPO算法?与TRPO算法有何关系?

答:PPO在原目标函数的基础上添加了KL散度(为了避免过大的策略更新,把约束转换到loss函数中),用来表示两个分布之前的差别,差别越大则该值越大。那么施加在目标函数上的惩罚也就越大,因此要尽量使得两个分布之间的差距小,才能保证较大的目标函数。
TRPO 与 PPO 之间的差别在于它使用了 KL divergence(KL散度) 作为约束,即没有放到式子里,而是当做了一个额外的约束式子,这就使得TRPO的计算非常困难,因此较少使用。

6)简述DPPO和PPO的关系?

答:Deepmind在OpenAI的PPO基础上做的多线程版

 


6、强化学习的商业落地

6.1 推荐系统

1)强化学习如何用在推荐系统中?

《不一样的技术创新:阿里巴巴2016“双十一”背后的技术》第七章。
阿里后来新写了**《强化学习在电商环境下的若干应用与研究》**。
新发现京东写的《Deep Reinforcement Learning for List-wise Recommendations》。

可以把用户过去的点击购买的商品作为 State, 把推荐的商品作为 Action。

2)推荐场景中奖赏函数如何设计?

答:点击率和下单率

3)场景中状态是什么,当前状态怎么转移到下一状态?

4)研究课题:绝大部分强化学习用的都是智能体与环境交互得来的数据。但是智能体在一开始表现很差,线上训练试错成本过高,如何用强化学习前的静态历史数据训练模型呢?

 

6.2 自动驾驶和机器人决策

1)自动驾驶和机器人的场景如何建模成强化学习问题?MDP各元素对应真实场景中的哪些变量?

2)用什么算法实现决策?

我复述的是DDPG玩TORCS的例子。

3)强化学习需要大量数据,如何生成或采集到这些数据?(本题亦可作研究课题。)

 

6.3 深度学习

研究课题:传统的注意力机制是soft attention,每时刻的特征通过attention值进行加权,实现端到端的训练。但由于需要把每个时刻的attention都算一遍,soft attention速度慢。于是“取attention值最大的时刻对应的特征”的新方法hard attention应运而生。除了计算量大大降低,hard attention还有解码方便的优点。可因为是hard,没法像soft一样将误差梯度反向传导回去。如何用再励学习的方法训练hard attention模型参数?(本人只知道注意力机制,此题复述得非常费劲,可能有错误。)

 

6.4 序列预测

已知且仅知全国所有城市距今千年来的每天(包括今天)最高最低气温,阴晴雨雪和风力风向,要预测明天北京的最高气温,请详述如何构造样本点和几大类特征会使得预测会很准确。

(此题非再励学习方法更实用。但北大有教授想用强化学习做序列预测,于是就写在这里了。)

其他

1)强化学习需要大量数据,如何生成或采集到这些数据?

答:Simulator是个好东西,mujoco对真实环境模拟。

2)是否用某种DRL算法玩过Torcs游戏?具体怎么解决?

3)是否了解过奖励函数的设置(reward shaping)?

答:强化学习奖励函数塑形简介

  1. 额外奖励法
  2. 势能函数

参考

https://blog.csdn.net/u010705932/article/details/105727130/
https://cloud.tencent.com/developer/article/1541892
https://github.com/NeuronDance/DeepRL/blob/master/DRL-Interviews/drl-interview.md

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值