这里写自定义目录标题
参考资料
《机器学习》周志华
Reinforcement Learning: An Introduction
second edition
Richard S. Sutton and Andrew G. Barto
周沫凡
https://hrl.boyuai.com/
面向非地面网络的智能无线资源管理机制与算法研究
[1]曹阳. 面向非地面网络的智能无线资源管理机制与算法研究[D]. 电子科技大学, 2023. DOI: 10.27005/d.cnki.gdzku.2023.000168.
基础知识
强化学习任务对应了四元组 E= (X,A,P,R)
- 状态空间X
- 动作空间A
- 状态转移概率P:X×A×X→实数域
- 奖赏R:X×A×X→实数域
确定性策略:a=π(x),即在状态x下执行a动作;
随机性策略:P=π(x,a),即在状态x下执行a动作的概率。
强化学习在某种意义上可看作具有“延迟标记信息”的监督学习问题
K-摇臂赌博机
仅探索法:将尝试的机会平均分给每一个动作,即轮流执行,最终将每个动作的平均奖赏作为期望奖赏的近似值。
仅利用法:将尝试的机会分给当前平均奖赏值最大的动作。
欲累积奖赏最大,则必须在探索与利用之间达成较好的折中
ε-贪心法:基于一个概率来对探索和利用进行折中
以ε的概率进行探索,即以均匀概率随机选择一个动作;
以1-ε的概率进行利用,即选择当前最优的动作。
Softmax算法:基于当前每个动作的平均奖赏值来对探索和利用进行折中
τ趋于0时, Softmax 将趋于“仅利用”
τ趋于无穷大时, Softmax 将趋于“仅探索”
16.3 有模型学习
有模型学习:状态空间、动作空间、转移概率以及奖赏函数都已经给出
16.3.1 策略评估
状态值函数(V):Vπ(x),即从状态x出发,使用π策略所带来的累积奖赏;
状态-动作值函数(Q):Qπ(x,a),即从状态x出发,执行动作a后再使用π策略所带来的累积奖赏。
递归形式
16.3.2 策略改进
最优策略:使得值函数对所有状态求和的值最大的策略
最优值函数:最优策略对应的值函数
策略改进:
16.3.3 策略迭代
策略迭代:不断迭代进行策略评估和策略改进,直到策略收敛、不再改变为止
16.3.3 值迭代
值迭代:不断迭代进行策略评估,直到值函数收敛、不再改变为止
16.4 免模型学习
在原始策略上使用ε-贪心策略
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):行为策略是目标策略
异策略(off-policy):行为策略不是目标策略
16.4.2 时序差分学习
时序差分(Temporal Difference ,简称 TD )学习则结合了动态规划与蒙特卡罗方法的思想,能做到更高效的免模型学习。
Sarsa算法:同策略算法(on-policy):行为策略是目标策略
每次更新值函数需知道前一步的状态(state)x、前一步的动作(action)a、奖赏值(reward)R、当前状态(state)x’、将要执行的动作(action)a’:
更新步长α越大,则越靠后的累积奖赏越重要。
Q-learning算法:异策略算法(off-policy):行为策略不是目标策略
每次更新值函数需知道前一步的状态(state)x、前一步的动作(action)a、奖赏值(reward)R、当前状态(state)x’
异策略算法的这个循环可以拆开成2个部分:与环境交互(执行动作,获得奖励和观察状态)和学习(用动作,奖励,状态更新Q),从而实现离线学习。
离线学习的行为策略一直没更新,训练效果应该也不好
Q-learning的目标策略不管行为策略会产生什么动作。Q-learning的目标策略默认下一个动作就是 Q 值最大的那个动作,并且默认按照最佳的策略去优化目标策略,所以它可以更大胆地去寻找最优的路径,它表现得比 Sarsa 大胆得多。
多步时序差分:无偏且方差小
蒙特卡洛方法利用当前状态之后每一步的奖励而不使用任何价值估计
时序差分算法只利用一步奖励和下一个状态的价值估计。
蒙特卡洛方法:无偏(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 网络(deep Q network,DQN)算法
Q-learning 算法:状态和动作都是离散的,并且空间都比较小的情况下适用
若动作是连续(无限)的,神经网络的输入:状态s和动作a。输出:在状态s下采取动作a能获得的价值。
若动作是离散(有限)的,除了可以采取动作连续情况下的做法,我们还可以:神经网络的输入:状态s。输出:每一个动作的值。
通常 DQN(以及 Q-learning)只能处理动作离散的情况,因为在Q函数的更新过程中有max_a这一操作。
Q网络:用于拟合Q函数的神经网络
深度强化学习
以单智能体强化学习为例,具体的MDP数学模型M可以概括为M={S,A,R,P},其中,S,A,R和P分别表示智能体的状态集合、动作集合,奖励函数集合和状态转移概率集合。
异策略深度强化学习算法
智能体在收集训练数据时采用与正在优化的策略函数不一致的策略。
DQN算法主要适用于离散动作空间
深度确定性策略梯度 (Deep Deterministic Policy Gradient, DDPG) 算法
DDPG则主要适用于连续动作空间。
DDPG算法则采用行动者-批评家(actor-critic)模型,即采用两类分别称为行动者网络与批评家网络的不同DNN。
批评家网络即为传统的值函数,来评估不同状态下的收益;
行动者网络则指策略函数,描述状态和离散动作或连续动作分布的映射关系。
同策略深度强化学习算法
同策略DRL算法中的智能体直接采用正在优化的策略函数收集训练数据,即利用自身在特定时间内产生的连续决策轨迹更新当前的DNN参数。
常用的同策略DRL算法有信赖域策略优化 (Trust Region Policy Optimization, TRPO) 算法