强化学习面试题大全

  • 主要参考资料:
    • datewhale的强化学习教程:https://github.com/datawhalechina/easy-rl【强推】
    • 王树森 张志华《深度强化学习》

强化学习概述

  • 简单介绍一下强化学习
    • 强化学习包含环境,动作和奖励三部分,主要讨论的问题是:在一个环境中,一个智能体如何根据自身所处的环境状态作出一系列动作,来最大化可以获得的奖励。
  • 强化学习和监督学习有哪些区别?(/强化学习相比于监督学习难在哪里?/强化学习的特点?)
    • 监督学习的输入样本往往是独立同分布的,也就是相互之间往往没有联系。而强化学习的输入样本之间往往是序列数据,有顺序关系。【例子解释:比如监督模型(图片分类CNN)判断一张图是不是猫,那么输入这张图就够了,不需要输入其它的样本,比如狗、马之类的。而强化学习的输入,比如下围棋,下完第十个子的时候的状态作为一个样本,它的结果是会直接影响下完第十一个子时的样本的】【(独立同分布是指假设样本空间中全体样本服从一个未知分布,每个样本都是独立地从这个分布上采样获得的)】
    • 监督学习对于每个样本往往有正确的对应标签,而强化学习获得的是奖励,而这个奖励与对错没有绝对关系,可能当下得到的奖励小甚至没有,但是未来可以获得更大的奖励(延时奖励),从而让整体奖励最大。
    • 强化学习往往有探索利用的过程,这是强化学习的特点,监督学习没有。
  • 强化学习和无监督学习的异同点?
    • 两者都没有标签,但是强化学习是通过最大化奖励来进行学习,而无监督学习往往是寻找数据自身的相关性,或者说寻找其数据的隐性结构
  • 传统强化学习和深度强化学习的区别?
    • 深度强化学习 = 深度学习+传统强化学习。
    • 强化学习需要让智能体根据自己所在的状态来进行决策,而传统强化学习这时候往往就需要人工设计特征来描述状态。而深度学习往往可以直接输入原始状态数据,省去了人工设计特征的步骤(特征工程)。
  • 强化学习中的损失函数与深度学习中的损失函数有什么区别?
    • 深度学习中的损失函数是使预测值和真实值之间的差最小化,而强化学习的损失函数是使累积奖励(回报)的期望最大化。
  • 描述一下序列决策过程。
    • 智能体在环境中做出一个动作,获取相应奖励(也可能没有),这个动作又会改变智能体所处的环境状态,然后智能体在新状态下继续做出动作,以此循环。
    • 把智能体整个过程中每个时刻做出的动作、当时的状态以及奖励串起来就是一个序列决策过程。
  • 什么是奖励,和回报的区别是什么?
    • 奖励其实就是环境对智能体的一个反馈。
    • 回报其实就是智能体的累积奖励。一定要注意强化学习或者智能体的目的是最大化回报,而不是最大化奖励。或者说不是最大化当下奖励,而是最大化全局的累积奖励。
  • 什么是强化学习中的观测?和状态的区别?
    • 观测概念的出现是因为,在有的场景下,智能体并不能完全知晓环境中的状态,比如玩斗地主时并不能完全知道对面的牌。因此顾名思义,用观测概念来表示智能体是否能完全知晓环境状态,如果可以,就叫完全可观测的,不可以就叫部分可观测。
    • 状态(state)是对环境的完整描述,不会隐藏环境的信息。观测(observation)是对状态的部分描述,可能会遗漏一些信息。
    • 相应的有一个概念叫做部分可观测马尔可夫决策过程(Partially Observable Markov Decision Processes, POMDP)。
  • 什么是动作空间?
    • 简单讲就是智能体能做出的所有动作。
    • 也分为离散动作空间和连续动作空间。
  • 什么是策略函数和价值函数?
    • 策略函数决定智能体面对环境不同状态做出各动作的概率
    • 价值函数又分为动作价值函数和状态价值函数。动作价值函数表示智能体在当前环境下做出某动作的价值(期望回报/或者说对未来奖励的一个预测),状态价值函数则表示在这个状态下,获得的回报的期望。
  • 为什么价值函数需要折扣因子?
    • 因为价值函数毕竟是对未来累积奖励的预估,相较于当下就能得到的奖励,未来可以获得的奖励还是具有一定的不确定性,这里的折扣因子也相当于对未来的不确定性打个折扣
  • 强化学习分类方式有哪些?
    • 分类方式一:基于价值(value-based)的学习和基于策略(policy-based)的学习
    • 分类方式二:有模型(model-based)和无模型(model-free)
  • 基于策略迭代和基于价值迭代的强化学习方法的区别?哪些属于基于策略,哪些属于基于价值?
    • 基于策略的强化学习会输出智能体在每个状态下做出下每个动作的概率,然后根据这个概率实施动作,而学习的目标就是不断更新策略,让策略指导出来的动作获取的奖励和最大。
    • 基于价值的强化学习方法,则会得到当下状态做出每个动作获得的未来奖励和的期望,也就是相当于对未来奖励期望的定量化
    • 两者的共同点在于都是想办法最大化未来的奖励和,但是区别在于,基于策略的强化学习输出的是动作概率,根据概率决定动作,基于价值的强化学习输出的是每个动作的回报期望。
    • 基于价值迭代的方法通常应用在不连续的、离散的环境下(如围棋),对于动作集规模庞大或连续的场景(如机器人控制),往往需要基于策略迭代的方法来选择连续的动作);
    • Q 学习(Q-learning)、Sarsa等属于基于价值,策略梯度算法属于基于策略。演员-评论员算法(Actor-Critic)同时使用策略和价值评估。
  • 有模型(model-based)和无模型(model-free)强化学习的区别?
    • model-based强化学习需要对环境进行建模,从而知道在某一状态下执行某一动作后能带来的奖励和环境的下一状态,也就是想明确知道状态转移函数和奖励函数。这样智能体就不需要在真实环境中采取动作,直接在虚拟世界中学习和规划策略即可。
    • 与model-based相反,model-free不需要对环境进行建模,不求准确知道某一状态下执行某一动作后能带来的奖励和环境的下一状态,因为真实世界往往难以准确建模。
    • 比如用强化学习来学习无人驾驶,有模型学习则需要建模一个虚拟的交通环境,然后在里面进行大量学习。但是真实世界是难以准确建模的,因为不可能准确预测出什么时候出现一辆车和一个人,当然这里有模型学习可以减少训练样本量。有模型学习更主要的也还是在游戏中的应用,因为整个游戏世界的规则都是已知的,已经建好模的。因此与真实世界相关的,model-free的方法更常见些,也更为简单,更有泛化性
  • 什么是学习(learning)和规划(planning)?
    • 学习(learning)和规划(planning)是序列决策的两个基本问题。其实也就是两个步骤,先让智能体学好了,然后实操。
  • 什么是探索和利用?
    • 探索就是智能体不断尝试新动作,更加了解环境的过程,简单说就是试错。利用就是根据探索好的环境或者策略做目前认为是最好的动作。
  • 讲讲K-臂赌博机(K-armed bandit)/为多臂赌博机(multi-armed bandit)。
    • 问题描述:一个赌徒去投赌博机,投入一枚硬币,赌博机以一定概率吐出硬币,但是有一排赌博机,外表一模一样,但是每个赌博机吐钱的概率不同,且不知道每个老虎机吐钱的概率分布是什么,那么每次该选择哪个老虎机可以做到最大化收益呢?
    • 探索-利用窘境:我们当然希望选择吐钱概率最大的赌博机一直投(利用),但是我们又不知道哪个赌博机的吐钱概率最大,要想知道哪个赌博机的吐钱概率最大,就得多投入硬币去试(探索),样本量够大才越接近于真实概率,但是样本量大也代表投入成本大。所以这就是一个如何折中的问题。
    • sutton的书里把这个做了数学化的描述,待补充。。。

马尔可夫决策过程(MDP)

  • 什么是马尔可夫性质?
    • 指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。【也就是下一时刻的状态只和当前时刻的状态有关】
  • 了解马尔可夫过程和马尔可夫链吗?
    • 马尔可夫过程是一组具有马尔可夫性质的随机变量序列,下一个时刻的状态只取决于当前状态。
    • 马尔可夫链就是离散时间的马尔可夫过程。
  • 回报中折扣因子的作用
    • 有些马尔可夫过程是带环的,可以避免无穷奖励
    • 未来的奖励往往是具有不确定性的,对未来预估打折扣
  • 写一下贝尔曼方程
    • V ( s ) = R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) V(s)=R(s)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right) V(s)=R(s)+γsSp(ss)V(s)
    • Q ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ( s ′ ) Q(s,a)=R(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s, a\right) V\left(s^{\prime}\right) Q(s,a)=R(s,a)+γsSp(ss,a)V(s)
  • 请推导一下贝尔曼方程(暂时跳过。。。)
  • 马尔可夫奖励过程价值的迭代算法有哪些?有什么区别?【待更新】
    • 通常有动态规划、蒙特卡洛采样、时序差分(TD)
    • 动态规划法通过一直迭代贝尔曼方程,直到价值函数收敛
    • 蒙特卡洛法是通过多次采样来计算期望,在这里就是生成多个回合的轨迹(多玩几局游戏),然后计算回报,然后取平均来近似期望
    • 时序差分算法
  • 马尔可夫过程和马尔可夫决策过程的区别?
    • 马尔可夫决策过程多了决策的步骤,也就是增加了动作环节,也就是未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。
  • 马尔可夫决策过程中的价值函数有几种?有什么联系和区别?
    • 状态价值函数 V π ( s ) = E π [ G t ∣ s t = s ] V_{\pi}(s)=\mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s\right] Vπ(s)=Eπ[Gtst=s],动作价值函数 Q π ( s , a ) = E π [ G t ∣ s t = s , a t = a ] Q_{\pi}(s, a)=\mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s, a_{t}=a\right] Qπ(s,a)=Eπ[Gtst=s,at=a]
    • 从公式可以看出,状态价值函数是指定状态下回报的期望,动作价值函数其实就是指定状态和动作下回报的期望。
  • 写一下贝尔曼期望方程
    • V π ( s ) = E π [ r t + 1 + γ V π ( s t + 1 ) ∣ s t = s ] V_{\pi}(s)=\mathbb{E}_{\pi}\left[r_{t+1}+\gamma V_{\pi}\left(s_{t+1}\right) \mid s_{t}=s\right] Vπ(s)=Eπ[rt+1+γVπ(st+1)st=s]
    • Q π ( s , a ) = E π [ r t + 1 + γ Q π ( s t + 1 , a t + 1 ) ∣ s t = s , a t = a ] Q_{\pi}(s, a)=\mathbb{E}_{\pi}\left[r_{t+1}+\gamma Q_{\pi}\left(s_{t+1}, a_{t+1}\right) \mid s_{t}=s, a_{t}=a\right] Qπ(s,a)=Eπ[rt+1+γQπ(st+1,at+1)st=s,at=a]

你可能感兴趣的:(强化学习,面经,机器学习,面试,算法,机器学习,强化学习)