ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多智能体时代的降临

2021-09-25 21:03:33  阅读:156  来源: 互联网

标签:时代 函数 动作 智能 st 降临 learning pi gamma


多智能体强化学习第一篇—Deep Q-learning

Q-learning 算法

强化学习问题一般以马尔可夫过程为问题背景,将问题建模为( S , A , P , r , γ S,A,P,r,\gamma S,A,P,r,γ) 形式,其中 S S S为状态空间, A A A为动作空间, P P P为状态转移函数, r r r为收益函数。agent通过在某个状态选择某个动作与环境进行交互,使得环境发生动态演变,agent可以获取相应的收益。强化学习问题的目标就是找到一组最优的动作序列 π \pi π,使得agent得到的最终收益最大。
一种很自然的想法便是,对于特定的一个状态,我给定每一个动作一个值去表示该动作的价值,那么在状态推演的过程中,我在每一次的状态上都选择价值最大的动作,那么在整个的推演过程中所获得的最终收益就会最大,这变产生的value-base的学派,该学派以价值函数为关键点,用Q函数来表示状态-动作价值,即 Q π ( s , a ) Q_\pi(s,a) Qπ​(s,a)表示策略 π \pi π在状态s时动作a的价值。
因为强化学习的目标是最大化收益函数,并且马尔可夫过程是一个动态推演过程,设计到时序的问题,所以有两个公式可以作为收益函数的表示方法。以有限时间步长为例,一种表示形式是平均收益奖励函数,即 R π = E [ r 1 + r 2 + ⋯ + r T T ∣ π ] R_\pi=E[\frac{r_1+r_2+\cdots+r_T}{T}|\pi] Rπ​=E[Tr1​+r2​+⋯+rT​​∣π],另一种是带有折扣因子的奖励函数,即 R π = E [ r 1 + γ r 2 + γ 2 r 3 + ⋯ + γ T − 1 r T ∣ π ] R_\pi=E[r_1+\gamma r_2 + \gamma ^{2}r_3+\cdots+\gamma^{T-1}r_T|\pi] Rπ​=E[r1​+γr2​+γ2r3​+⋯+γT−1rT​∣π],其中折扣因子的存在有两个作用,一是为了更加看重当前收益,降低未来收益的重要性,二是为了当T趋于无穷大时,收益函数保持收敛。由马尔可夫控制动态理论,最大化全程收益等价于最大化每一个时刻后的收益,所以动作价值函数定义为 Q π ( s t , a t ) = E [ r t + 1 + γ r t + 2 + ⋯ + γ T − t − 1 r T ∣ π ] Q_\pi(s_t,a_t)=E[r_{t+1}+\gamma r_{t+2}+\cdots+\gamma ^{T-t-1}r_{T}|\pi] Qπ​(st​,at​)=E[rt+1​+γrt+2​+⋯+γT−t−1rT​∣π]。
Q-learning是一种model-free的方法,动态迭代的方法使得 Q t Q_t Qt​逐步趋近于 Q ∗ Q^* Q∗,迭代公式为
Q t + 1 ( s t , a t ) = Q t ( s t , a t ) + α ( r t + 1 + γ Q t ( s t + 1 , a t + 1 ) − Q t ( s t , a t ) ) Q_{t+1}(s_t,a_t) = Q_t(s_t,a_t)+\alpha(r_{t+1}+\gamma Q_t(s_{t+1},a_{t+1})-Q_t(s_t,a_t)) Qt+1​(st​,at​)=Qt​(st​,at​)+α(rt+1​+γQt​(st+1​,at+1​)−Qt​(st​,at​))
其中 α \alpha α为学习率。
Q-learning算法的收敛性已被证明。随着t的不断增大,最终 Q t ( s t , a t ) Q_t(s_t,a_t) Qt​(st​,at​)会收敛到最优状态-动作价值函数 Q ∗ ( s t , a t ) Q^*(s_t,a_t) Q∗(st​,at​)。其中 Q ∗ ( s t , a t ) = m a x π Q π ( s t , a t ) Q^*(s_t,a_t)=max_\pi Q_\pi(s_t,a_t) Q∗(st​,at​)=maxπ​Qπ​(st​,at​)满足贝尔曼方程:
Q ∗ ( s t , a t ) = E [ r t + 1 + σ Q ∗ ( s t + 1 , a t + 1 ) ] Q^*(s_t,a_t)=E[r_{t+1}+\sigma Q^*(s_{t+1},a_{t+1})] Q∗(st​,at​)=E[rt+1​+σQ∗(st+1​,at+1​)]
Q ∗ Q^* Q∗对应的最优策略记为 π ∗ \pi^* π∗。
通常使用Q-learning算法的方法是建立一个Q表格,以状态为纵索引,以动作为索引。Q表格用来存储状态-动作价值,每一次迭代便对表格内的内容进行更新,Q-learning算法的局限性便由此产生,当状态空间和动作空间过于庞大时,表格所占据的内存便会很大,并且遍历表格需要更大的复杂度,如果每一个状态的动作集合不同,那么表格中也会存储很多无效值,造成内存的浪费。深度Q-learning算法会很好的解决这个问题。

Deep Q-learning算法

Deep Q-learning算法用神经网络拟合状态-动作价值函数,可以实现端对端的训练。
Deep Q-learnig的拥有两个网络结构,一个是用来训练的预测网络 Q ( s , a ; θ ) Q(s,a;\theta) Q(s,a;θ),一个是用来拟合真实值的目标网络 Q ( s , a ; θ ^ ) Q(s,a;\hat{\theta}) Q(s,a;θ^),利用 L ( θ ) = E [ ( r t + 1 + σ Q ( s t + 1 , a t + 1 ; θ ^ ) − Q ( s t , a t ) ) 2 ] L(\theta)=E[(r_{t+1}+\sigma Q(s_{t+1},a_{t+1};\hat{\theta}) - Q(s_t,a_t))^2] L(θ)=E[(rt+1​+σQ(st+1​,at+1​;θ^)−Q(st​,at​))2]作为优化函数对网络进行反向传播进行训练。下图为DQN网络的代码结构:
在这里插入图片描述

Deep Q-learning有如下两个创新点:
一 replay buffer网络使用一个buffer存储agent与环境的交互样本,在训练时,随机从buffer中采样,这样的优点有:1.可以提高样本的利用率 2.可以避免样本之间的强相关性,因为深度学习的训练要求样本集是独立同分布的,而强化学习的样本具有强烈的时序性,所以将样本数据放在buffer中进行打乱采样,可以对网络进行有效的训练
二 target network 上面说到DQN有两个网络架构:预测网络和目标网络,因为深度学习的训练要求label是固定不变的,所以在DQN中要求目标网络的参数更新速度慢于预测网络,通常几十个epoch才更新一次target network,这样才会使得网络的训练更加稳定。

标签:时代,函数,动作,智能,st,降临,learning,pi,gamma
来源: https://blog.csdn.net/AlEngineer/article/details/120459918

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有