DQN
Article Reading本次DQN我选择阅读的是1312.5602这篇论文
Motivation
过往的方法在处理高维度的输入,例如视频和音频的时候略显乏力,往往依赖人工选取特征,但是可以通过卷积神经网络、多层感知机等方式直接利用神经网络来提取高维的特征。
深度学习里面往往需要大量的有标签的样本,但是RL有延迟奖励问题,一个动作的价值可能需要一个Episode结束之后才能确定
深度学习里面有一个重要假设是独立同分布采样,但是RL里面的数据往往是有很高的相关性的,不符合该假设
Idea如何处理图像输入前面套一个CNN对图像进行卷积处理,提取图像的特征进行有效的降维处理
如何处理样本量少的问题使用经验回放数组的方法,即创建一个buffer,每次获得一个状态-动作-价值-下一状态组的时候,不仅是运用这个组来进行训练,更是把它放到buffer里面,每次训练的时候从里面采样出一个batch,利用batch来进行训练
Limitation单神经网络训练不稳定在13年的原版论文里面,使用的是一个神经网络,没有分为target网络和Q网络,导致在训练的时候loss上下波动比较大,reward上 ...
Policy Gradient Methods
Background本书前面的部分主要讲的都是学习价值函数的方法,这里提出一种直接学习策略的方法,这里把策略记作一个带有参数的,即
Advantage优点之一是可以学习一个确定性的算法而不像 - greedy 的策略那样每次都有一个较小的概率选择非最优解。同时,基于价值函数学习的方法里面如何选择初始值和如何进行递降都是需要考虑的问题。
Policy Gradient在直接学习策略的时候,正确地更新参数 是十分重要的,所以需要想办法求出评估量对于 的梯度,此处定义:对于分幕式任务,在经过推导(RLBook2020 P325)后,得到:
这里虽然只找出了正比关系,但是在梯度下降的时候,只关注梯度的方向,并不关心梯度真正的值是多少
Monte Carlo Policy Gradient根据上面的式子,写成期望的形式:那么就可以得出梯度下降的公式:其中 是对于真实动作价值函数的逼近。上面的公式成为 all-actions methods 因为它包含了该状态所有可能的动作 下面介绍另一种强化学习版本的。
这里的 是依据策略 在 时刻采样出一个动作,第一个等号相等的原因是因 ...
On-policy Control with
Approximation
Episodic Semi-gradient Control这里和上一章的公式的区别只是把状态价值函数改成了动作价值函数,即:对于一步的Sarsa算法来说,上面的公式应该写为:其算法流程图如下:而对于 步的Sarsa来说,和前面也没有太大的差别:只是这里的价值函数更新的时候变成了以n为周期的。
平均回报对于可以分为一个个Episode的任务,前面的折后回报是可以处理的,但是对于连续型任务是不够的,定义一个策略 的平均回报 如下:那么这个时候的状态价值函数、动作价值函数和最优状态价值函数和最优动作价值函数都可以写成一个新的形式:最优的就是取最大值就行了。
注意到上面的式子里面没有折扣率 了,因为在连续型任务中,先后出现的价值在重要性上没有区别。
在这种定义下的单步Sarsa算法如下:n步Sarsa的算法如下图所示:
On-policy Prediction with Approximation
提出背景由于某些问题的空间维度可能会很高,直接使用tabular的方法来保存所有信息是不现实的,所以考虑换一种方法来表示价值函数,即使用 来近似替代原来的状态价值函数
均方误差为了评估近似替代版本的价值函数和原始的价值函数之间的距离,这里提出均方误差 其定义为:
这其中的 是状态的分布,是状态 出现的概率
SGD和Semi-gradient MethodsSGD 的更新公式在SGD中,选择直接使用梯度下降的方法来更新参数 ,其更新公式如下:但是为了泛用性,这里通常使用样本 来代替真正的价值函数 例如 可能是带有噪声的版本或者直接采样取到的样本,基于蒙特卡洛的随机梯度下降流程图如下:
半梯度方法以 为学习目标,其更新公式是:半梯度学习方法减小了误差,在梯度下降的学习方法里面,本身的更新会受到weight的影响,导致算出来的不是真正的梯度。
线性方法线性方法就是使用线性函数来拟合价值函数。即定义:在使用线性函数的时候,其实可以不使用梯度下降的方法,因为这个时候可以采用最小二乘法求出精确的最优解。
Temporal-Difference Learning
TD-预测在蒙特卡洛方法中,对于 every-visit 的蒙特卡洛方法,可以给出一个递推的更新公式:这个式子里面的 必须在一幕结束之后才能计算出来,所以在一幕中学不到任何信息。
而 的定义是:如果使用 来估算 的话,那么有带入有注意到这里的式子里面已经没有东西需要在一个幕结束之后才能算出来,那么就得到了一个只需要一步的时序差分方法,称为 或单步
算法如图所示:
TD-Error定义 TD-error 为:那么式 可以写为
蒙特卡洛误差可以被写成 TD-Error 的形式:
Sarsa方法前面给出了状态价值函数的更新公式,但是在实际做出决策的时候,动作价值函数是更为实用的选择,所以这里给出动作价值函数的更新公式:这里的公式中同样不含有任何需要一个episode结束才能算出来的东西,所以可以动态更新。
On-policy的时序差分方法在给定策略 的情况下,可以根据公式 来更新动作价值函数,并且更新 来逼近最优的策略。算法如图:
Q-Learning —— Off-Policy 的时序差分方法定义更新公式:Q-Learning已经证明是不依赖初始策略,以概率为1去逼 ...
Monte Carlo Methods
提出背景在DP方法中,需要指导转移概率的先验知识,但是一般情况夏是不知道这个概率的,即无法知晓 那么前面的 DP 方法就会失效,那么这里提出一种基于采样的方法来获取相关的信息。蒙特卡洛方法指的是一系列从重复采样中进行估计的方法。在强化学习中,蒙特卡洛方法通过对大量样本的回报进行平均,来进行价值估计。随着收集到的样本越来越多,平均值就会收敛到期望值。MC算法是在每一幕结束之后进行更新的。
关于 visit 访问的定义如果状态 出现在策略 中,每一次出现称为一次 访问 , 第一次访问称为 首次访问
两种MC算法MC算法分为首次访问和每次访问两种,首次访问是只计算每一幕的首次访问的回报,而每次访问则是每一次遇到状态 就进行更新,首次访问的算法流程图如下:去掉关于 的判断就是每次访问的算法了。
利用蒙特卡洛方法估计动作价值如果问题是 Model-unaware 的那么就可以考虑利用蒙特卡洛方法去估计动作-状态价值函数 ,只需要把上面的算法中的 换成 二元组就可以了。
消除初始策略带来的影响为了尽可能多的探索可能的情况,减小策略带来的影响而学习到全局的最优解,通常有 on-pol ...
Dynamic Programming
递推表达式通过之前的定义可以得到一个递推版本的DP状态转移方程:
这里的 代表的是 步,具体的含义是可以通过 次 action 到达这个状态。所以上面的更新就是从 步的价值函数去更新 步的价值函数这里的并不是Bellman 方程,只是递推表达式,算法要求是到最后接近满足Bellman方程
注意,这里的更新是和策略 有关的,是在策略确定的情况下,通过更新的方式来确定真正的状态价值函数。
具体的算法如图:
在递推的过程中改进策略在迭代的过程中,如果已知策略 的价值函数 希望知道在某个状态 下选择一个不同于 的动作 是否会带来改善,这种策略的价值为:如果上面的式子的值大于目前的状态价值函数 那么就更新此时的策略为
而由于所有的策略的状态价值函数存在偏序关系,也就是说存在 upper bound 那么就可以利用这一点证明,每次取贪心的策略 即$$\pi’ = \mathop{argmax}a q_\pi(s,a) = \mathop{argmax}a \mathbb E[R{t + 1} + \gamma v_\pi (S{t +1}) | S_t = s ...
Finite Markov Decision
马尔科夫模型中与环境交互的定义Agent做出动作 后,Environment会反馈一个状态 和一个奖励 给到Agent,而Agent的目标还是最大化奖励之和
有限马尔科夫决策过程的规定在有限马尔科夫决策过程中,所有的 states,actions,rewards 的集合都是有限的,而随机变量 和 被定义为仅仅依靠前面一次的state和action 的离散的概率分布,即只有上一次的状态和选择会影响当前的状态和奖励。
转移函数定义转移函数 :转移函数 是一个确定性的函数,即在同一个马尔科夫随机过程中,这个函数是不会发生变化的
该函数有如下的性质:
奖励期望的定义在MDP中,奖励的期望被定义为
如何确定合理的奖励这里的奖励应该设置成为学习的额最终目标,例如如果是训练围棋,那么奖励应该设置为获得胜利,只有获得胜利的时候才会得到1的奖励,不能设置为吃子,这样训练的结果会变成一个以吃子为目标而不是以获胜为目标的算法。
两种不同的任务类型可以分成 episode 的如果 agent 与 environment 的交互可以自然地分成多个 episode 那么就可以得到一个终结状 ...
Tabular Solution Methods
Basic idea基本想法是在状态空间和可能的行动空间都足够小的情况下(能够通过表格或者是数列存下的情况下),通常能够找到精确解
多臂老虎机(k-armed bandit problem)问题描述现在有 k 种选择,每次可以从 k 种选择种选择一个,每种选择给出的奖励都是基于一个未知但是确定的分布的,学习的目标是在有限的次数中最大化所有的奖励的和。
符号定义
: 在 时刻选择的动作
: 对应的reward
: 在该时刻动作 的 value:
: 在时刻 估计的动作 的 value
样本均值法此时对于动作 的估计是:$$Q_t(a) = \frac{\mathrm{在t时刻之前采取动作a获得的奖励之和}}{在t时刻之前采取动作a的次数} = \frac{\sum_{i = 1}^{t - 1}\limits R_i \cdot \mathbb{1}{A_i = a}}{\sum{i = 1}^{t - 1}\limits \mathbb{1}{A_i = a}}$$这里的 $\mathbb{1}{A_i = a}$ 是指示函数,在相等时取1否则为0
那么每次的决策 ...
Introduction to reinforcement learning
Introduction强化学习的基本思想是从与环境的互动中学习,与其他学习方式最大的两个区别就是:
trial-and-error search
delayed reward
基本元素
policy
reward signal
value function
a model of environment
policy指agent每次在特定的时间下选择action的策略
reward signal指的是整个强化学习的目标,每一次做出决策之后,环境都会给予一个反馈,这里的reward signal是及时反馈
value function这里的value function是长期的反馈,是用于衡量一个决策的长期收益的。
value的定义是指未来获得的奖励(reward)的总和的期望。value是基于reward的,只有有reward才能衡量value
Modelmodel是用来模拟环境变化的,是用来做计划的,强化学习算法可以分为model-based和model-free的