目录
基于价值函数的迭代和基于策略函数的迭代的强化学习方法有什么区别?
Bellman equation、Bellman expectation equation
例题 policy evaluation/ prediction
考点: value-based 和 policy-based 的区别
第五章 DQN/Deep Q-network——解决连续动作、状态量大的问题
问题1:为什么在 DQN 中采用价值函数近似(Value Function Approximation)的表示方法?
问题1:Actor-Critic 两者的区别、actor-critic 框架中的 critic 的作用
Reinforcement Learning
请简述什么是强化学习
强化学习包含环境, 动作和奖励三部分, 其本质是 agent 通过与环境的交互, 使得其作出的 action所得到的决策得到的总的奖励达到最大, 或者说是期望最大。
强化学习(Reinforcement Learning):智能体在与复杂且不确定的 环境进行交互时,使所获得的收益最大化的计算算法。
请说明强化学习的使用场景
答: 七个字的话就是多序列决策问题。或者说是对应的模型未知, 需要通过学习逐渐逼近真实模型的问题并且当前的动作会影响环境的状态, 即服从马尔可夫性的问题。同时应满足所有状态是可重复到达的 (满足可学习型的)。
请简述 强化学习的特征
请举例生活中强化学习的例子
基于价值函数的迭代和基于策略函数的迭代的强化学习方法有什么区别?
policy-based(基于策略的):Agent 会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。
valued-based(基于价值的):Agent 不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。
请简述什么是有模型学习?什么是无模型学习?
• model-based(有模型结构):Agent 通过学习状态的转移来采取措施。
• model-free(无模型结构):Agent 没有去直接估计状态的转移,也没有得到 Environment 的具体转移变量。它通过学习 value function 和 policy function 进行决策。
当智能体知道状态转移函数 P(st+1|st , at) 和奖励函数 R(st , at) 后,它就能知道在某一状态下执行某一动作后能带来的奖励和环境的下一状态,这样智能体就不需要在真实环境中采取动作,直接在虚拟世界中学习和规划策略即可。这种学习方法称为有模型学习。
免模型学习没有对真实环境进行建模,智能体只能在真实环境中通过一定的策略来执行动作,等待奖励和状态迁移,然后根据这些反馈信息来更新行为策略,这样反复迭代直到学习到最优策略。
MDP
请简述 马尔可夫性质
如果一个状态转移是符合马尔可夫的,那就是说一个状态的下一个状态只取决于它当前状态,而跟它当前状态之前的状态都没有关系。也就是说未来的转移跟过去是独立的,它只取决于现在。
请简述 马尔可夫奖励过程
马尔可夫奖励过程 (Markov Reward Process, MRP)是马尔可夫链再加上了一个奖励函数。在 MRP中,转移矩阵和状态都是跟马尔可夫链一样的,多了一个奖励函数 (reward function)。
• Horizon 是指一个回合的长度(每个回合最大的时间步数),它是由有限个步数决定的。
• Return(回报) 说的是把奖励进行折扣后所获得的收益。
Bellman Equation(贝尔曼等式)
接下来我们来求解这个价值函数。我们可以通过迭代的方法来解这种状态非常多的 MRP,比如说:动态规划的方法,蒙特卡罗的办法 (通过采样的办法去计算它),时序差分学习 (Temporal-DifferenceLearning) 的办法。
bootstrapping、Backup
动态规划的方法基于后继状态值的估计来更新状态值的估计,也就是说,它们根据其他估算值来更新估算值。我们称这种基本思想为 bootstrapping。
Backup 类似于 bootstrapping 之间这个迭代关系,就对于某一个状态,它的当前价值是跟它的未来价值线性相关的。
请简述蒙特卡罗算法的思想
蒙特卡罗就是说当得到一个 MRP过后,我们可以从某一个状态开始,产生一个轨迹,得到一个奖励,当积累到一定的轨迹数量过后,直接用 Gt 除以轨迹数量,就会得到它的价值。
Bellman equation、Bellman expectation equation
Q 函数也被称为action-value function。对 Q 函数中的动作函数进行加和,就可以得到价值函数
此处我们给出 Q 函数的 Bellman equation:
Bellman expectation equation
例题 policy evaluation/ prediction
首先是预测问题:
• 在上图的方格中,我们规定从 A → A’ 可以得到 +10 的奖励,从 B → B’ 可以得到 +5 的奖励,其它步骤的奖励为 -1。
• 现在,我们给定一个 policy:在任何状态中,它的行为模式都是随机的,也就是上下左右的概率各25%。
• 预测问题要做的就是,在这种决策模式下,我们的 value function 是什么。上图 b 是对应的 value function。
接着是控制问题:在控制问题中,问题背景与预测问题相同,唯一的区别就是:不再限制 policy。也就是说行为模式是未知的,我们要自己确定。所以我们通过解决控制问题,求得每一个状态的最优的 value function(如上图 b 所示),也得到了最优的 policy(如上图 c 所示)。
Bellman optimality equation
第三章 Tabular Methods
- model free prediction
- 在没法获取MDP的模型情况下,我们通过以下两种方法来估计某个给定策略的价值,即策略估计
- MC
- TD
- 在没法获取MDP的模型情况下,我们通过以下两种方法来估计某个给定策略的价值,即策略估计
- model free control
-
当我们不知道 MDP 模型情况下,如何优化价值函数,得到最佳的策略
-
我们可以把 policy iteration 进行一个广义的推广,使它能够兼容 MC 和 TD 的方法,即 Generalized Policy Iteration(GPI) with MC and TD。
- 当我们不知道奖励函数和状态转移时,如何进行策略的优化。
- 我们对 policy evaluation 部分进行修改:用 MC 的方法代替 DP 的方法去估计 Q 函数。当得到 Q 函数后,就可以通过 greedy 的方法去改进它。
- Sarsa: On-policy TD Control
- Q-learning: Off-policy TD Control
- 当我们不知道奖励函数和状态转移时,如何进行策略的优化。
-
考点:on policy 与off policy 的区别
优化策略并没有用到行为策略的数据,所以说它是 off-policy 的。
样本生成用的π 和估计的 π 是同一个,因此是 on-policy。
考点:SARSA 与Q-learning的区别
考点: value-based 和 policy-based 的区别
考点:DP、MC、TD 的比较
第四章 策略梯度
policy gradient 是一个会花很多时间来采样数据的算法,大多数时间都在采样数据,agent去跟环境做互动以后,接下来就要更新参数。你只能更新参数一次。接下来你就要重新再去收集数据,然后才能再次更新参数。
考点:梯度策略的公式
考点:概念的理解
第五章 DQN/Deep Q-network——解决连续动作、状态量大的问题
为了在连续的状态和动作空间中计算值函数 Qπ(s, a),我们可以用一个函数 Qϕ(s, a) 来表示近似计算,称为价值函数近似 (Value Function Approximation)。
在 Q-learning 中,我们使用表格来存储每个状态 s 下采取动作 a 获得的奖励,即状态-动作值函数Q(s, a)。然而,这种方法在状态量巨大甚至是连续的任务中,会遇到维度灾难问题,往往是不可行的。因此,DQN 采用了价值函数近似的表示方法。
概念
DQN 是指基于深度学习的 Q-learning 算法,主要结合了值函数近似 (Value Function Approximation)与神经网络技术,并采用了目标网络和经历回放的方法进行网络的训练。
DQN算法思想
初始化两个网络;与环境交互获得经验数据(st, at ,rt, st+1);将经验数据存储于buff中;从buff中采样一批数据;用目标网络计算目标(希望目标与Q值越接近越好);更新一定次数之后,将Q估计设置为Q,这就是DQN。
Target Network
Experience Replay(经验回放)
问题1:为什么在 DQN 中采用价值函数近似(Value Function Approximation)的表示方法?
答:首先 DQN 为基于深度学习的 Q-learning 算法,而在 Q-learning 中,我们使用表格来存储每一个state 下 action 的 reward,即我们前面所讲的状态-动作值函数 Q(s, a) 。但是在我们的实际任务中,状态量通常数量巨大并且在连续的任务中,会遇到维度灾难的问题,所以使用真正的 Value Function通常是不切实际的,所以使用了价值函数近似(Value Function Approximation)的表示方法。
随机性策略和确定性策略的区别
第六章 Double DQN——解决Q值高估问题
为什么要有 Double DQN 呢?
因为在实现上,你会发现 Q 值往往是被高估的。
问题1:为什么 Q 值总是被高估了呢?
因为你总是会选那个被高估的 Q 值,选那个 reward 被高估的动作当作这个 max 的结果去加上 rt 当作你的目标,所以你的目标总是太大。
问题2:怎么解决目标值总是太大的问题呢?
在 Double DQN 里面,你有两个 Q-network: 目标的 Q-network 和你会更新的 Q-network。所以在 DoubleDQN 里面,你会拿你会更新参数的那个 Q-network 去选动作,然后你拿目标网络(固定住不动的网络)去算值。
问题3:DQN 都有哪些变种?引入状态奖励的是哪种?
答:DQN 三个经典的变种:Double DQN、Dueling DQN、Prioritized Replay Buffer。
- Double-DQN:将动作选择和价值估计分开,避免价值过高估计。
- Dueling-DQN:将 Q 值分解为状态价值和优势函数,得到更多有用信息。
- Prioritized Replay Buffer:将经验池中的经验按照优先级进行采样。
问题4:简述 double DQN 原理
答:DQN 由于总是选择当前值函数最大的动作值函数来更新当前的动作值函数,因此存在着过估计问题(估计的值函数大于真实的值函数)。为了解耦这两个过程,double DQN 使用了两个值网络,一个网络用来执行动作选择,然后用另一个值函数对一个的动作值更新当前网络。
问题5:Dueling DQN的优势
第七章 Actor-Critic
演员-评论家算法 (Actor-Critic Algorithm) 是一种结合策略梯度和时序差分学习的强化学习方法。
但是对于 actor-critic 方法,我们不是直接使用每一步得到的数据和反馈进行 policy π 的更新,而是使用这些数据进行 estimate value function,这里我们通常使用的算法包括前几个 chapters 重点介绍的 TD 和 MC 等算法以及他们的优化算法。接下来我们再基于value function 来更新我们的 policy
问题1:Actor-Critic 两者的区别、actor-critic 框架中的 critic 的作用
参考资料:
https://github.com/datawhalechina/easy-rl