内容类网站如何 流量,科技网站官网,sem是什么岗位,百度店铺这里写自定义目录标题 参考资料基础知识16.3 有模型学习16.3.1 策略评估16.3.2 策略改进16.3.3 策略迭代16.3.3 值迭代 16.4 免模型学习16.4.1 蒙特卡罗强化学习16.4.2 时序差分学习Sarsa算法#xff1a;同策略算法#xff08;on-policy#xff09;#xff1a;行为策略是目… 这里写自定义目录标题 参考资料基础知识16.3 有模型学习16.3.1 策略评估16.3.2 策略改进16.3.3 策略迭代16.3.3 值迭代 16.4 免模型学习16.4.1 蒙特卡罗强化学习16.4.2 时序差分学习Sarsa算法同策略算法on-policy行为策略是目标策略Q-learning算法异策略算法off-policy行为策略不是目标策略多步时序差分无偏且方差小 16.5 值函数近似16.6 模仿学习16.6.1 直接模仿学习16.6.2 逆强化学习 深度Q网络算法经验回放experience replay目标网络target networkdeep Q network, DQNDouble Deep Q-Network优先级经验回放 (prioritized experience replay, PER)Dueling Deep Q-Network 策略梯度 Policy GradientsREINFORCE蒙特卡洛策略梯度 近端策略优化proximal policy optimizationPPOActor-Critic信赖域策略优化 (Trust Region Policy Optimization, TRPO)深度确定性策略梯度 (Deep Deterministic Policy Gradient, DDPG)Soft Actor-Critic 参考资料
《机器学习》周志华 《机器学习》西瓜书公式详解 南瓜书PumpkinBook
Reinforcement Learning: An Introduction second edition Richard S. Sutton and Andrew G. Barto incompleteideas代码 张尚彤代码
周沫凡强化学习 周沫凡强化学习代码 周沫凡Python tutorial
张伟楠沈键俞勇 动手学强化学习 动手学强化学习代码
蘑菇书 王琦杨毅远江季Easy RL强化学习教程人民邮电出版社2022. Easy RL强化学习教程
面向非地面网络的智能无线资源管理机制与算法研究 [1]曹阳. 面向非地面网络的智能无线资源管理机制与算法研究[D]. 电子科技大学, 2023. DOI: 10.27005/d.cnki.gdzku.2023.000168.
波束成形论文代码
中文整理的强化学习资料
我的笔记2020年简书 我的笔记2020年CSDN
model-free
回合更新/单步更新on-policy / off-policy基于概率/基于价值策略状态动作Monte Carlo回合更新on-policy / off-policySarsa单步更新on-policy基于价值离散离散Q learning单步更新off-policy基于价值离散离散DQN单步更新off-policy基于价值连续离散Policy Gradients基础版的policy gradients是回合更新。升级版的policy gradients是单步更新。on-policy基于概率随机连续REINFORCE回合更新on-policy基于概率随机连续Actor-Criticon-policyactor会基于概率做出动作。critic会对做出的动作给出动作的价值。TRPOon-policy随机PPOon-policy随机DDPGoff-policy确定连续Soft Actor-Critic随机
基础知识
以单智能体强化学习为例具体的MDP数学模型M可以概括为M{S,A,R,P},其中SAR和P分别表示智能体的状态集合、动作集合奖励函数集合和状态转移概率集合。
强化学习任务对应了四元组 E (X,A,P,R)
状态空间X动作空间A状态转移概率PX×A×X→实数域奖赏RX×A×X→实数域
确定性策略aπx即在状态x下执行a动作 随机性策略Pπx,a即在状态x下执行a动作的概率。
强化学习在某种意义上可看作具有“延迟标记信息”的监督学习问题
K-摇臂赌博机 仅探索法将尝试的机会平均分给每一个动作即轮流执行最终将每个动作的平均奖赏作为期望奖赏的近似值。 仅利用法将尝试的机会分给当前平均奖赏值最大的动作。 欲累积奖赏最大则必须在探索与利用之间达成较好的折中
ε-贪心法基于一个概率来对探索和利用进行折中 以概率ε进行探索πε(s) 以均匀概率从A中选取动作 以概率1-ε进行利用πε(s) π(s) a r g m a x a Q ( s , a ) argmax_{a} Q(s,a) argmaxaQ(s,a)即选择当前最优的动作。
Softmax算法基于当前每个动作的平均奖赏值来对探索和利用进行折中 τ趋于0时 Softmax 将趋于“仅利用” τ趋于无穷大时 Softmax 将趋于“仅探索”
16.3 有模型学习
有模型学习状态空间、动作空间、转移概率以及奖赏函数都已经给出
预测prediction和控制control是马尔可夫决策过程里面的核心问题。 预测评估一个给定的策略的输入是马尔可夫决策过程 S,A,P,R,γ 和策略π输出是价值函数Vπ。 控制搜索最佳策略的输入是马尔可夫决策过程 S,A,P,R,γ输出是最佳价值函数optimal value functionV∗和最佳策略optimal policyπ∗。
16.3.1 策略评估
状态值函数VVπx即从状态x出发使用π策略所带来的累积奖赏 状态-动作值函数QQπx,a即从状态x出发执行动作a后再使用π策略所带来的累积奖赏。 递归形式Bellman 等式
16.3.2 策略改进
最优策略使得值函数对所有状态求和的值最大的策略 最优值函数最优策略对应的值函数 策略改进
16.3.3 策略迭代
策略迭代不断迭代进行策略评估和策略改进直到策略收敛、不再改变为止
16.3.3 值迭代
值迭代不断迭代进行策略评估直到值函数收敛、不再改变为止
16.4 免模型学习
在原始策略上使用ε-贪心策略 ε-贪心法基于一个概率来对探索和利用进行折中 以概率ε进行探索πε(s) 以均匀概率从A中选取动作 以概率1-ε进行利用πε(s) π(s) a r g m a x a Q ( s , a ) argmax_{a} Q(s,a) argmaxaQ(s,a)即选择当前最优的动作。
16.4.1 蒙特卡罗强化学习
蒙特卡罗强化学习通过采样来进行策略评估。 多次“采样”然后求取平均累积奖赏来作为期望累积奖赏的近似 由于采样必须为有限次数因此该方法更适合于使用 步累积奖赏的强化学习任务。 估计状态-动作值函数 同策略on-policy蒙特卡罗强化学习算法被评估和被改进的都是同一个策略 异策略off-policy蒙特卡罗强化学习算法仅在评估时使用ε-贪心策略而在改进时使用原始策略
蒙特卡罗强化学习算法没有充分利用强化学习任务的 MDP 结构
the target policy: the policy being learned about the behavior policy: the policy used to generate behavior In this case we say that learning is from data “off” the target policy, and the overall process is termed off-policy learning. 目标策略正在被学习的策略 行为策略被用来产生行为的策略 同策略on-policy行为策略是目标策略 智能体直接采用正在优化的策略函数收集训练数据即利用自身在特定时间内产生的连续决策轨迹更新当前的DNN参数。 异策略off-policy行为策略不是目标策略。 智能体在收集训练数据时采用与正在优化的策略函数不一致的策略。
16.4.2 时序差分学习
蒙特卡罗强化学习算法在一个完整的采样轨迹完成后再对所有的状态动作对进行更新。 实际上这个更新过程能增量式进行。 时序差分(Temporal Difference 简称 TD 学习则结合了动态规划与蒙特卡罗方法的思想能做到更高效的免模型学习。
Sarsa算法同策略算法on-policy行为策略是目标策略
每次更新值函数需知道前一步的状态statex、前一步的动作actiona、奖赏值rewardR、当前状态statex’、将要执行的动作actiona’ Q ( s , a ) ← Q ( s , a ) α [ R γ Q ( s ′ , a ′ ) − Q ( s , a ) ] , γ ∈ [ 0 , 1 ) Q(s,a)←Q(s,a)\alpha[R\gamma Q\left(s^{\prime}, a^{\prime}\right)-Q(s,a)],\gamma∈[0,1) Q(s,a)←Q(s,a)α[RγQ(s′,a′)−Q(s,a)],γ∈[0,1) 更新步长α越大则越靠后的累积奖赏越重要。 π(s) a r g m a x a Q ( s , a ) argmax_{a} Q(s,a) argmaxaQ(s,a) on policy 同策略 在选择动作执行的时候采取的策略 在更新Q表的时候采取的策略 行为策略 行动策略是ε-greedy策略 目标策略 评估策略是ε-greedy策略
Q-learning算法异策略算法off-policy行为策略不是目标策略
每次更新值函数需知道前一步的状态statex、前一步的动作actiona、奖赏值rewardR、当前状态statex’
Q值表state为行action为列reward为元素 Q ( s , a ) ← Q ( s , a ) α [ R γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] , γ ∈ [ 0 , 1 ) Q(s,a)←Q(s,a)\alpha[R\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s,a)],\gamma∈[0,1) Q(s,a)←Q(s,a)α[Rγmaxa′Q(s′,a′)−Q(s,a)],γ∈[0,1) 学习率*(Q的真实值 - Q的估计值) 如果学习率越大那么新估计值代替旧估计值的程度也越大 off policy 异策略 在选择动作执行的时候采取的策略 ≠ 在更新Q表的时候采取的策略 行为策略 行动策略是ε-greedy策略 目标策略 更新Q表的策略是贪婪策略
Q-learning的目标策略不管行为策略会产生什么动作。Q-learning的目标策略默认下一个动作就是 Q 值最大的那个动作并且默认按照最佳的策略去优化目标策略所以它可以更大胆地去寻找最优的路径它表现得比 Sarsa 大胆得多。
异策略算法的这个循环可以拆开成2个部分与环境交互执行动作获得奖励和观察状态和学习用动作奖励状态更新Q从而实现离线学习。 离线学习的行为策略一直没更新训练效果应该也不好
多步时序差分无偏且方差小
蒙特卡洛方法利用当前状态之后每一步的奖励而不使用任何价值估计 时序差分算法只利用一步奖励和下一个状态的价值估计。
蒙特卡洛方法无偏unbiased方差大 方差大因为每一步的状态转移都有不确定性而每一步状态采取的动作所得到的不一样的奖励最终都会加起来这会极大影响最终的价值估计
时序差分算法有偏方差小 方差小因为只关注了一步状态转移用到了一步的奖励 有偏因为用到了下一个状态的价值估计而不是其真实的价值。
多步时序差分可以结合二者的优势
多步sarsa Sarsa(0)Sarsa 是一种单步更新法, 在环境中每走一步, 更新一次自己的行为准则。等走完这一步以后直接更新行为准则 Sarsa(1)走完这步, 再走一步, 然后再更新 Sarsa(n)如果等待回合完毕我们一次性再更新呢, 比如这回合我们走了 n 步 Sarsa(lambda)有了一个 lambda 值来代替我们想要选择的步数 lambda 是脚步衰减值, 是一个在 0 和 1 之间的数 当 lambda 取0, 就变成了 Sarsa 的单步更新 当 lambda 取 1, 就变成了回合更新, 对所有步更新的力度都是一样 当 lambda 在 0 和 1 之间, 取值越大, 离宝藏越近的步更新力度越大
16.5 值函数近似
直接对连续状态空间的值函数进行学习 值函数能表达为状态的线性函数 线性值函数近似 Sarsa 算法 线性值函数近似 Q-learning算法
16.6 模仿学习
16.6.1 直接模仿学习
直接模仿人类专家的“状态动作对
16.6.2 逆强化学习
逆强化学习从人类专家提供的范例数据中反推出奖赏函数
深度Q网络算法
Q-learning 算法状态和动作都是离散的并且空间都比较小的情况下适用 若动作是连续无限的神经网络的输入状态s和动作a。输出在状态s下采取动作a能获得的价值。 若动作是离散有限的除了可以采取动作连续情况下的做法我们还可以神经网络的输入状态s。输出每一个动作的Q值。 通常 DQN以及 Q-learning只能处理动作离散的情况因为在Q函数的更新过程中有max_a这一操作。 Q网络用于拟合Q函数的神经网络
DQN 算法最终更新的目标最小化损失函数 Q 网络的损失函数构造为均方误差的形式 I ( r γ max a Q ( s ′ , a ′ , w ) − Q ( s , a , w ) ) 2 I\left(r\gamma \max _{a} Q\left(s^{\prime}, a^{\prime}, \mathbf{w}\right)-Q(s, a, \mathbf{w})\right)^{2} I(rγmaxaQ(s′,a′,w)−Q(s,a,w))2
经验回放experience replay
如果某个算法使用了经验回放该算法就是异策略算法。 维护一个回放缓冲区将每次从环境中采样得到的四元组数据状态、动作、奖励、下一状态存储到回放缓冲区中训练 Q 网络的时候再从回放缓冲区中随机采样若干数据来进行训练。 好处
打破样本之间的相关性让其满足独立假设。 在 MDP 中交互采样得到的数据本身不满足独立假设因为这一时刻的状态和上一时刻的状态有关。 非独立同分布的数据对训练神经网络有很大的影响会使神经网络拟合到最近训练的数据上。 回放缓冲区里面的经验来自于不同的策略我们采样到的一个批量里面的数据会是比较多样的。提高样本效率。 每一个样本可以被使用多次十分适合深度神经网络的梯度学习。 与环境交互比较慢训练网络比较快。
目标网络target network
损失函数包含神经网络的输出因此在更新网络参数的同时目标也在不断地改变这非常容易造成神经网络训练的不稳定性。 训练网络用于计算损失函数的前一项并且使用正常梯度下降方法来进行更新。 目标网络用于计算损失函数的后一项 训练网络在训练中的每一步都会更新。 目标网络的参数每隔几步才会与训练网络同步一次。 这样做使得目标网络相对于训练网络更加稳定。
deep Q network, DQN Double Deep Q-Network
[1509.06461] Deep Reinforcement Learning with Double Q-learning DQN的问题DQN算法通常会导致对Q值的过高估计
DQNQ_next max(Q_next(s’, a_all)) Y t D Q N ≡ R t 1 γ max a Q ( S t 1 , a ; θ t − ) Y_{t}^{\mathrm{DQN}} \equiv R_{t1}\gamma \max _{a} Q\left(S_{t1}, a ; \boldsymbol{\theta}_{t}^{-}\right) YtDQN≡Rt1γmaxaQ(St1,a;θt−) Double DQNQ_next Q_next(s’, argmax(Q_eval(s’, a_all))) Y t DoubleDQN ≡ R t 1 γ Q ( S t 1 , argmax a Q ( S t 1 , a ; θ t ) ; θ t − ) Y_{t}^{\text {DoubleDQN }} \equiv R_{t1}\gamma Q\left(S_{t1}, \underset{a}{\operatorname{argmax}} Q\left(S_{t1}, a ; \boldsymbol{\theta}_{t}\right); \boldsymbol{\theta}_{t}^{-}\right) YtDoubleDQN ≡Rt1γQ(St1,aargmaxQ(St1,a;θt);θt−) DQN的优化目标为动作的选取依靠目标网络 Double DQN 的优化目标为动作的选取依靠训练网络
用训练网络计算使Q值最大的动作 用目标网络计算Q值 当前的Q网络w用于选择动作 旧的Q网络w−用于评估动作
Double DQN 的代码实现可以直接在 DQN 的基础上进行无须做过多修改。
优先级经验回放 (prioritized experience replay, PER)
[1511.05952] Prioritized Experience Replay Double Learning and Prioritized Experience Replay 重视值得学习的样本 时序差分误差 网络的输出与目标之间的差距 如果采样过的数据的时序差分误差特别大那么应该让它们以比较大的概率被采样到。 batch 抽样的时候并不是随机抽样, 而是按照 Memory 中的样本优先级来抽 用到 TD-error, 也就是 Q现实 - Q估计 来规定优先学习的程度 如果 TD-error 越大, 就代表我们的预测精度还有很多上升空间, 那么这个样本就越需要被学习, 也就是优先级 p 越高
Dueling Deep Q-Network
[1511.06581] Dueling Network Architectures for Deep Reinforcement Learning Dueling DQN 能够很好地学习到不同动作的差异性在动作空间较大的环境下非常有效。
将Q网络分成两个通道 Q η , α , β ( s , a ) V η , α ( s ) A η , β ( s , a ) Q_{\eta, \alpha, \beta}(s,a) V_{\eta, \alpha}(s) A_{\eta, \beta}(s,a) Qη,α,β(s,a)Vη,α(s)Aη,β(s,a) V η , α ( s ) V_{\eta, \alpha}(s) Vη,α(s)状态价值函数与action无关 A η , β ( s , a ) A_{\eta, \beta}(s,a) Aη,β(s,a)该状态下采取不同动作的优势函数与action有关 η \eta η是状态价值函数和优势函数共享的网络参数一般用在神经网络中用来提取特征的前几层 α \alpha α和 β \beta β分别为状态价值函数和优势函数的参数。
竞争深度Q网络的问题最后学习的结果可能是这样的 智能体就学到 V(s) 等于 0A(s,a) 等于 Q就和原来的深度Q网络一样。
解决方案在把 A(s,a)与 V(s) 加起来之前先处理A(s,a)比如减去均值 虽然它不再满足贝尔曼最优方程但实际应用时更加稳定。
策略梯度 Policy Gradients
基于值函数的方法学习值函数然后根据值函数导出一个策略。学习过程中并不存在一个显式的策略 基于策略的方法直接显式地学习一个目标策略。
REINFORCE蒙特卡洛策略梯度 Gt从第t步开始往后能够获得的总奖励 因为使用了蒙特卡洛方法REINFORCE 算法的梯度估计的方差很大
近端策略优化proximal policy optimizationPPO
Actor-Critic
信赖域策略优化 (Trust Region Policy Optimization, TRPO)
深度确定性策略梯度 (Deep Deterministic Policy Gradient, DDPG)
DDPG算法则采用行动者-批评家actor-critic模型即采用两类分别称为行动者网络与批评家网络的不同DNN。 批评家网络即为传统的值函数来评估不同状态下的收益 行动者网络则指策略函数描述状态和离散动作或连续动作分布的映射关系。
Soft Actor-Critic