强化学习及深度强化学习面试题

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

  • 强化学习和监督学习、无监督学习的区别是什么?
    监督学习带有标签;无监督学习没有标签;强化学习使用未标记的数据,根据延迟奖励学习策略。

  • 强化学习适合解决什么样子的问题?
    模型输出的动作必须要能够改变环境的状态,并且模型能够获得环境的反馈,同时状态应该是可重复到达的。

  • 强化学习的损失函数(loss function)是什么?和深度学习的损失函数有何关系?
    强化学习的损失函数是使奖励和的期望最大;深度学习中的损失函数是使预测值和标签之间的差异最小化。

  • POMDP是什么?马尔科夫过程是什么?马尔科夫决策过程是什么?里面的“马尔科夫”体现了什么性质?
    POMDP是状态部分可观测的马尔可夫决策过程;马尔科夫过程是一个二元组 <S,P>,S为状态集合,P为状态转移概率矩阵;马尔科夫决策过程是一个五元组 <S,P,A,R, γ \gamma >,R表示为从S到S’能够获得的奖励期望, γ \gamma 为折扣因子,A为动作集合;马尔可夫中下一个状态只与当前状态有关,而与历史状态无关,即 P [ S t + 1 S t ] = P [ S t + 1 S 1 , S 2 , . . . , S t ] P[S_t+1|S_t]=P[S_t+1|S_1,S_2,...,S_t]

  • 贝尔曼方程的具体数学表达式是什么?
    v π ( s ) = a π ( a s ) s , r p ( s , r s , a ) [ r ( s , a ) + γ v π ( s ) ] v_\pi(s)=\sum_a\pi_(a|s)\sum_{s',r}p(s',r|s,a)[r(s,a)+\gamma v_\pi(s')]
    q π ( s , a ) = s , r p ( s , r s , a ) [ r ( s , a ) + γ v π ( s ) ] q_\pi(s,a)=\sum_{s',r}p(s',r|s,a)[r(s',a)+\gamma v_\pi(s')]

  • 最优值函数和最优策略为什么等价?
    π ( a s ) = { 1  if  a = arg max a A q ( s , a ) 0  otherwise  \pi^*(a|s)=\begin{cases} 1 & \text{ if } a=\arg\max_{a\in A}q^*(s,a)\\ 0 & \text{ otherwise } \end{cases}

  • 值迭代和策略迭代的区别?
    价值迭代采用了Bellman最优算子,策略迭代采用的是Bellman期望算子。价值迭代是策略迭代的一种特殊情况,是每进行一次策略评估就更新一次策略。

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

  • 求解马尔科夫决策过程都有哪些方法?有模型用什么方法?动态规划是怎么回事?
    求解MDP可以直接求解Bellman方程,但是通常Bellman方程难以列出且计算复杂度高,除此以外还可以用DP,MC,TD算法求解。有模型时可以使用DP算法。

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

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

  • 简述时间差分(TD)算法。
    TD算法和MC算法一样可以从和环境互动的经验中学习策略而不依赖环境的动态特性,TD和DP一样都采用的自举法,是采样更新。和MC不同的是TD算法采样深度没有那么深,它不是一个完全的采样,TD的策略评估是根据它直接得到的后继状态节点的单次样本转移来更新的,换言之它不需要等到一幕完全结束而是可以立刻进行学习。它采用后继状态的价值和沿途的收益进行更新,TD控制有Sarsa、期望Sarsa和Q学习。

  • 简述动态规划、蒙特卡洛和时间差分的对比(共同点和不同点)。
    共同点:核心都是价值函数的计算,所有方法都是基于对未来事件的展望来计算一个回溯值。
    不同点:
    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是找出完全符合马尔可夫模型的最大似然参数

  • MC和TD分别是无偏估计吗?
    MC是无偏估计,TD是有偏估计。

  • MC、TD谁的方差大,为什么?
    MC的方差更大,MC采样了一整幕,每次获取下一步的价值和收益都会增大方差,但是TD不是完全采样因此方差比MC小。

  • 简述on-policy和off-policy的区别
    在线策略用于学习和用于采样的是同一个策略,离线策略中行动策略用来采样,目标策略是用来学习的。在线策略不学习最优动作而是学习一个接近最优动作同时又能继续探索的动作,离线策略直接学习最优动作。

  • 简述Q-Learning,写出其Q(s,a)更新公式。它是on-policy还是off-policy,为什么?
    Q ( S t , A t ) Q ( S t , A t ) + α [ R t + 1 + γ max a Q ( S t + 1 , a ) Q ( S t , A t ) ] Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha[R_{t+1}+\gamma\max_aQ(S_{t+1},a)-Q(S_t,A_t)]
    Q学习采用对最优动作价值函数的近似作为学习目标,与行动策略无关,是off-policy。

  • 写出用第n步的值函数更新当前值函数的公式(1-step,2-step,n-step的意思)。当n的取值变大时,期望和方差分别变大、变小?
    Q ( S t , A t ) Q ( S t , A t ) + α [ i = 1 n γ i 1 R t + i + γ n m a x a Q ( S t + 1 , a ) Q ( S t , A t ) ] Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha[\sum_{i=1}^{n}\gamma^{i-1}R_{t+i}+\gamma^{n}max_aQ(S_{t+1},a)-Q(S_t,A_t)]
    n越大时方差变大,期望偏差变小。

  • TD( λ \lambda )方法:当 λ \lambda =0时实际上与哪种方法等价, λ \lambda =1呢?
    当λ=0\lambda=0λ=0时,等价于TD。
    当λ=1\lambda=1λ=1时,等价于MC。

  • value-based和policy-based的区别是什么?
    value-based 的典型算法是DQN,policy-based是policy gradient,结合这两种具体算法可能会更好的理解。
    1、处理的action space不同:value-based适合处理的action space低维离散的,policy-based适合处理连续的action space。
    2、针对action的价值输出不同:value-based计算出每个action的价值,policy-based一般情况下只给出较价值较高的actions。
    3、更新频率不同:value-based每个action执行都可以更新,policy-based 每个episode完成之后才能更新一次。

  • 阐述目标网络和experience replay的作用?
    目标网络(target network) 目标网络的参数 θ \theta^{-} 每隔 C C 步才和普通网络的参数 θ \theta 同步一次。Experience Replay将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。主要作用是克服经验数据的相关性和非平稳分布问题。它的做法是从以往的状态转移中随机采样进行训练。优点:1. 数据利用率高,因为一个样本被多次使用。2. 连续样本的相关性会使参数更新的方差比较大,该机制可减少这种相关性。

  • 手工推导策略梯度过程?
    J ( θ ) = E τ p θ ( τ ) [ t r ( s t , a t ) ] J(\theta)=\mathbb{E}_{\tau\sim p_\theta(\tau)}\left[\sum_t r(s_t,a_t)\right]
    = E τ p θ ( τ ) [ r ( τ ) ] =\mathbb{E}_{\tau\sim p_\theta(\tau)}\left[r(\tau)\right]
    = p θ ( τ ) r ( τ ) d τ =\int p_\theta(\tau)r(\tau)d_\tau

    θ J ( θ ) = θ p θ ( τ ) r ( τ ) d τ \nabla_\theta J(\theta)=\int \nabla_\theta p_\theta(\tau)r(\tau)d_\tau
    = p θ ( τ ) θ log p θ ( τ ) r ( τ ) d τ =\int p_\theta(\tau)\nabla_\theta\log p_\theta(\tau)r(\tau)d_\tau (代入 p θ ( τ ) θ log p θ ( τ ) = p θ ( τ ) θ p θ ( τ ) p θ ( τ ) = θ p θ ( τ ) p_\theta(\tau)\nabla_\theta\log p_\theta(\tau)=p_\theta(\tau)\frac{\nabla_\theta p_\theta(\tau)}{p_\theta(\tau)}=\nabla_\theta p_\theta(\tau) )
    = E τ p θ ( τ ) [ θ log p θ ( τ ) r ( τ ) ] =\mathbb{E}_{\tau\sim p_\theta(\tau)}[\nabla_\theta\log p_\theta(\tau)r(\tau)]

    p θ ( τ ) = p ( s 1 ) t = 1 T π θ ( a t s t ) p ( s t + 1 s t , a t ) p_\theta(\tau)=p(s_1)\prod_{t=1}^{T}\pi_\theta(a_t|s_t)p(s_{t+1}|s_t,a_t)

    log p θ ( τ ) = log p ( s 1 ) + t = 1 T [ log π θ ( a t s t ) p ( s t + 1 s t , a t ) ] \log p_\theta(\tau)=\log p(s_1)+\sum_{t=1}^{T}[\log\pi_\theta(a_t|s_t)p(s_{t+1}|s_t,a_t)]

    log p θ ( τ ) = t = 1 T θ log π θ ( a t s t ) \nabla\log p_\theta(\tau)=\sum_{t=1}^{T}\nabla_\theta\log\pi_\theta(a_t|s_t)

    θ J ( θ ) = E τ p θ ( τ ) [ ( t = 1 T θ log π θ ( a t s t ) ) ( t = 1 T r ( s t , a t ) ) ] \nabla_\theta J(\theta)=\mathbb{E}_{\tau\sim p_\theta(\tau)}\left[\left(\sum_{t=1}^{T}\nabla_\theta\log\pi_\theta(a_t|s_t)\right)\left(\sum_{t=1}^{T}r(s_t,a_t) \right)\right]
    1 N i = 1 N [ ( t = 1 T θ log π θ ( a i , t s i , t ) ) ( t = 1 T r ( s i , t , a i , t ) ) ] \approx\frac{1}{N}\sum_{i=1}^{N}\left[\left(\sum_{t=1}^{T}\nabla_\theta\log\pi_\theta(a_{i,t}|s_{i,t})\right)\left(\sum_{t=1}^{T}r(s_{i,t},a_{i,t}) \right)\right]

  • 描述随机策略和确定性策略的特点?
    随机策略 π θ ( a t s t ) = P [ a s , θ ] \pi_\theta(a_t|s_t)=P[a|s,\theta] P P 是一个概率函数;
    确定性策略 a = μ θ ( s ) a=\mu_\theta(s) μ \mu 是一个确定的函数映射。

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

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

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

  • 简述double DQN原理?
    double DQN将动作的选择和动作的评估分别用不同的值函数来实现。
    动作的选择:选择该状态下动作值函数最大的动作,即 a a^* 。动作的选择所用的动作值函数: arg max a Q ( S t + 1 , a ; θ t ) \arg\max_aQ(S_{t+1},a;\theta_t)
    动作的评估:选出 a a^* 后,利用 a a^* 处的动作值函数构造TD目标,TD目标公式为: Y t = R t + 1 + γ Q ( S t + 1 , arg max a Q ( S t + 1 , a ; θ t ) ; θ t ) Y_t=R_{t+1}+\gamma Q(S_{t+1},\arg\max_a Q(S_{t+1},a;\theta_t);\theta_t')

  • 策略梯度方法中基线baseline如何确定?
    无论baseline的表达式是怎样,减去基线的梯度估计任然是无偏估计,不影响梯度的均值。
    但由方差定义可知,减去基线后括号中的平方的均值减小了,因此方差变小了。

  • 什么是DDPG,并画出DDPG框架结构图?
    DDPG是一种使用 Actor Critic 结构,但是输出的不是行为的概率,,而是具体的行为,用于连续动作的预测。

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

  • actor-critic框架中的critic起了什么作用?
    Critic 基于Actor的行为评判行为的得分,Actor根据Critic的评分修改选行为的概率。

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

  • 是否了解过D4PG算法?简述其过程。
    D4PG主要在DDPG的基础上加上了如下一些技术,并且观察了它们各自的贡献:
    1、分布式:由于是off-policy的算法,因此可以使用多个actor去分布式地采样,然后存储在同一个replay buffer中,learner从buffer中采样,更新之后再将权重同步到各个actor上。
    2、critic使用价值函数分布:critic权重的损失函数如下,其中带撇的表示target network, T π \Tau_\pi 代表distributional Bellman operator, d d 代表分布之间的距离度量,文章中实际使用cross-entropy。
    L ( w ) = E ρ d [ T π θ , Z w ( x , a ) , Z w ( x , a ) ] L(w)=\mathbb{E}_\rho d[\Tau_{\pi_\theta},Z_{w'}(x,a),Z_w(x,a)]
    3、使用n-step TD误差:这样可以减少更新的variance。
    4、使用prioritized experience replay:可以加速学习。

  • 简述A3C算法?A3C是on-policy还是off-policy,为什么?
    A3C通过创建多个agent,在多个环境实例中并行且异步的执行和学习。

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

  • 简述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)

  • 什么是重要性采样?
    重要性采样是,使用另外一种分布来逼近所求分布一种方法。

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

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

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

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

  • 简述DPPO和PPO的关系?

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

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

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

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

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

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

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

参考资源

[1] 《深度强化学习》面试题汇总
[2] 强化学习之表格型方法小结

猜你喜欢

转载自blog.csdn.net/u010705932/article/details/105727130