深度强化学习笔记
时间:2022-09-21 13:30:00
深入加强学习笔记
-
-
- p1 基本概念
- p2 价值学习
- p3 策略学习
- p4 Acttor-Critic Methods
- p5 Alphgo
- p6 数学基础(蒙特卡洛)
- p7 Sarsa
- p8 Q-Learning
- p9 Multi-Step TD Target
- p10 Experience Replay
- p11 Target Network & Double DQN
- p12 Dueling Network
- p13 Multi-Agent Reinforcement Learning(多智能体强化学习)-基本概念
- p14 Multi-Agent Reinforcement Learning --三种架构
- p15 Policy Gradient with Baseline(战略梯度Baseline)
- p16 REINFORCE with Baseline
- p17 Advantage Actor-Critic(A2C)
- p18 REINFORCE versus A2C
- p19 Discrete VS Continuous Control(离散控制与连续控制)
- p20 Deterministic Policy Gradient(确定战略梯度)
- p21 (连续控制随机策略)
-
p1 基本概念
-
大写字母表示随机变量,小写字母表示观测值。
-
Probability Density Function:概率密度函数。
-
这意味着随机变量在某一点附近的可能性。
-
定义域用χ(花X)表示
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-QoPZSq65-1656026579149)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616080522318.png)]
-
如果p(x)它是一种连续的概率分布,其定积分值为1.
-
如果p(x)在离散集合x中取值,加和为1
-
-
Expectation:期望
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-9U1vjIPZ-1656026579150)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616082525160.png)]
- 连续的概率分布,f(x) = p(x) * f(x) 这里的固定积分p(x)概率密度函数
- 对离散的概率分布,f(x) = p(x) * f(x) 在离散集合x中连加和。
-
Random Sampling :随机抽样
-
state and action
- state:状态 s
- action: a 。动作的创造者称之为Agent
-
policy:策略,记为π。当你在玩超级马里奥,观察屏幕上的图片时,你想让马里奥做什么。简单地说,根据当前状态做出决定来控制它Agent移动。
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-fLS0tjhI-1656026579150)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616083552733.png)]
-
reward:奖励。它的意义对强化学习的结果有很大的影响。例如,在游戏中吃金币R=1,赢游戏R=如果策略肯定会倾向于赢游戏来控制Agent移动,不会一直吃金币。
-
state transition:状态转移。可以确定或随机。随机性来自环境。在这种情况下,环境是游戏的程序。在下图中,在马里奥向上跳跃后,他的状态是确定的,栗子向左移动的概率是0.8,向右是0.他的状态是随机的。
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-qAdLggvu-1656026579150)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616084131317.png)]
-
agent environment interaction:智能体与环境的联系
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-spJI5Wg8-1656026579151)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616084541033.png)]
- 在状态st中,agent做出一个动作at,如下图所示,环境将更新状态并给予奖励rt
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-Yfmp4d6J-1656026579151)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616085024507.png)]
-
Randomness in Reinforcement learning:加强学习中的随机性
-
action随机性:在某种状态下,action随机使用policy函数来控制action
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-WceKn0Rn-1656026579152)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616085517373.png)]
-
state transition随机性:当agent做出动作后,环境会产生下一种状态
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-WhoL4yy3-1656026579152)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616085710204.png)]
-
trajectory:轨迹。(state,action,reward)
-
return:回报(别名:cumulative future reward 未来轨迹奖励)U
-
Discounted return:折扣回报。γ[0,1]反映了当前r的权重
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-migCFwVy-1656026579152)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616095059556.png)]
-
Randomness in Returns:随机性包含action和state transition,所以回报Ut也是随机的,对于未来的任何时刻i,回报Ri取决于Si和Ai.因此,如果给定随机值,Ut就像未来的一切A 和 S有关。
-
Value function:价值函数
-
Action-value function:动作价值函数与policy有关。由于Ut它是随机的,你可以期待它,用积分积累随机性得到实数Qπ(st,at)。意义:告诉我们如果使用它policy函数π,那么在st在这种状态下,做动作at是好是坏。
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-Rlvb8Vns-1656026579153)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616101146315.png)]
-
Optimal action-value function:最佳动作价值函数动作价值函数是与policy有关,如果要去掉对π的依赖,可以对所有取得的Qπ求最大值,即最好的policy函数求得的Qπ。意义:对动作a做评价,如果当前的状态是st,那么Q*(st,at)就会告诉当前状态下的动作at的好坏。比如下棋,那么这个函数就会告诉在你把棋子落在不同位置的胜率。有了该函数,agent就会根据Q**(st,at)对动作的评价来做出决策。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mkryVLl0-1656026579153)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616101814009.png)]
-
State-value function:状态价值函数,与动作a无关。Vπ(st),意义:告诉我们当前局势的好坏。评价状态s和π的好坏
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pzoXZBWR-1656026579154)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616103002719.png)]
动作离散的情况:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7WvLqn7Q-1656026579154)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616103209279.png)]
动作连续的情况:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBooPat9-1656026579154)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616103324983.png)]
-
-
怎么控制AI玩游戏
-
利用适合的policy函数π(a|s).
-
利用动作价值函数Q*(s,a)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AhGHeFxg-1656026579154)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220616103911885.png)]
-
p2 价值学习
-
Deep Q-Network(DQN):一种价值学习的方法,使用神经网络(记为Q(s,a;w))去得到一个近似的Q*(s,a)函数。如下图所示,在状态St下,根据不同方向的输入,Q函数的得分不同。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JRZebQXQ-1656026579155)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618033639676.png)]
-
利用DQN玩游戏:在当前状态St下,对所有的动作进行打分,选出得分最多的动作记为at,然后环境变化,生成一个新的状态St+1,并给出一个回报;在St+1下,继续对所有的动作打分,重复上面的过程直到游戏结束。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A4G51Hpj-1656026579155)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618034400711.png)]
-
Temporal Difference(TD) Learning:训练DQN的常见算法。
- 完成后更新:必须完成A到B的路程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ae9QnFxT-1656026579155)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618035110844.png)]
例:比如从A地到B地,模型Q(W)告诉需要花费1000分钟,为了更新这个模型,首先做一个预测,如1所示;然后就是我们实际完成从A到B,得到一个目标y=860;可以看出y和q是有差距的,因此通过3公式算出损失L;把L关于W求导得到梯度;利用5公式梯度下降求出新的预测值,那么这个预测值将会更接近y(梯度下降减少了损失)。
- 使用TD算法:可以不用完成A到B。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tTWiq5qw-1656026579156)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618040726411.png)]
模型一开始预测从A到B需要Q(W)=1000分钟,C是A-B之间的某地,当我从A到C花了300分钟,这时模型给出到B的预测为600分钟,那么300+600=900该值记为TD target,这个值就比1000更加可靠。也就是说我越靠近B预测值就越接近实际值。
- 为什么TD算法有用:首先模型给出从A到B需要1000分钟,当我们到达C,模型又预测到B需要600分钟,我们就可以得到从A到C需要400分钟,但是我们实际只花了300分钟,那么这100就叫做TD error,TD算法的目标就是让TD error尽可能的为0。
-
怎么把TD算法运用到DQN中:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rd6AwicN-1656026579156)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618041330646.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rbjv2Xfn-1656026579156)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618042159307.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pcjo9OFA-1656026579157)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618042447506.png)]
TD target就是实际值加上下一个预测值的和。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JaKqF7oe-1656026579157)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618042958647.png)]
-
TD算法迭代:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d9dmuxG3-1656026579158)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220618043321153.png)]
p3 策略学习
在策略函数中,如超级玛丽例子,在一个状态下可以进行的动作有很多种,我们无法通过把每一个动作所对应的概率记录下来,所以需要做函数近似,选出来一个函数来近似策略函数。
-
Policy Network:策略网络。利用神经网络来做函数近似。记为(a|s;θ),一开始θ是随机初始化的,然后通过学习来改进θ。
-
策略学习:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HpWKRI55-1656026579158)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619092713664.png)]
-
策略学习的主要思想:为了让策略网络变得越来越好,可以通过改进参数θ。下面的期望是关于状态S求的,把S作为一个随机变量。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-raKSyceI-1656026579158)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619092940621.png)]
-
如何改进θ:利用策略梯度算法。β是学习率
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmaHYHGs-1656026579158)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619093344276.png)]
-
Policy Gradient:策略梯度。如果动作a是离散的,直接用这个公式就能把策略梯度算出来。然而实际用的都是这个公式的蒙特卡洛近似。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fOHAu60C-1656026579159)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619094213263.png)]
求近似:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cRqHEWqL-1656026579159)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619094521182.png)]
该推导过于简化并且不严谨,只是为了便于理解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CuV5ebhl-1656026579159)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619094651593.png)]
-
总结两种推导结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WIZIv3Vz-1656026579159)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619094824229.png)]
对于离散的动作,可以运用公式1.下面是运算过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C3Gc4W6j-1656026579160)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619095104328.png)]
对于连续的动作,利用公式2.由于A是连续变量,要求期望就必须做定积分,但是π函数是一个神经网络非常复杂,所以只好做蒙特卡洛近似:1.根据概率密度函数π随机抽样一个动作a。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oUsfx1fB-1656026579160)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619100943437.png)]
蒙特卡洛就是抽一个或者很多个随机样本,用随机样本来近似期望,更新模型参数θ时,直接用g来作为近似的梯度,不用计算出精确的策略梯度。
-
-
总结策略梯度算法:第一步观测到当前的状态,第二步开始利用蒙特卡洛求梯度,把策略网络π作为策略密度函数进行随机抽样得到一个动作at,第三步计算价值函数Qπ的值,第四步对策略网络π求导,得到的结果为向量矩阵或者张量。第五步近似的算策略梯度,第六步更新策略网络参数θ。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PC8QL4P3-1656026579160)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619101919087.png)]
-
上诉步骤第三步有个问题,我们不止动作价值函数Qπ是什么,所以没有办法去算出qt。下面有两种方法近似计算这个qt。
-
REINFORCE:把整个游玩游戏的轨迹都记录下来。观测到了所有的奖励r,就可以算出return ut,由于价值函数Qπ是Ut的期望,所以我们可以用Ut的观测值ut来近似Qπ
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uy6iyXuN-1656026579160)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619103001621.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s88xUBdz-1656026579161)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619103033375.png)]
-
利用神经网络来近似Qπ:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGsecC1m-1656026579161)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220619103355197.png)]
-
-
p4 Acttor-Critic Methods
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOqkOsOh-1656026579161)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220620221810689.png)]
actor是策略网络,用来控制agent去运动(运动员),critic价值网络用来给动作打分(裁判)。Acttor-Critic 就是把策略网络与价值网络结合起来,即同时训练价值网络。
-
搭建策略网络:状态S为输入,Conv(卷积层)把画面变为一个特征向量,用一个或者多个全连接层(Dence)把特征向量映射到紫色的向量,最后运用Softmax激活函数,输出一个概率分布(输出都为正数,且相加为1),红色向量为策略网络的输出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GUqkwIlA-1656026579161)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220620222212635.png)]
-
搭建价值网络:输入为状态s和动作a,如果动作是离散的,可以用一个东西(这儿专业术语没有听懂,表示的方法为向左100,向右010,向上001)来表示,然后分别用卷积层和全连接层从输入中提取特征,得到两个特征向量,再把它们拼接起来得到一个更高的特征向量,最后用全连接层输出一个实数(裁判打的分数)。这里参数可以跟策略网络共享参数,也可以完全独立。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-87OH3K3p-1656026579161)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220620222539314.png)]
-
训练这两个神经网络:训练就是更新状态价值函数的参数θ和w。
- 更新策略网络π的参数θ是为了增加状态价值函数V的值。学习策略网络π的时候,监督是由价值网络q提供的(q是会给出一个得分,策略网络为了提高这个得分,会以此为参照不断的改进)。
- 更新价值网络的参数w是为打分更加的精准,从而更好的估计未来奖励的总和。
- 更新参数的5个步骤:
- 观察当前状态St
- 把当前状态St当成输入,用策略网络π来计算概率分布,随机抽样得到动作at
- agent执行动作at,生成新的状态st+1和奖励rt
- 有了奖励rt,就可以根据TD算法来更新价值网络的参数w,让打分更加的准确
- 最后用策略梯度的算法来更新策略网络的参数θ
-
使用TD算法来更新价值网络q
-
使用策略梯度来更新策略网络π
-
总结:策略网络在当前状态s下做出动作a,价值网络根据a和s得出q,并且根据奖励r来不断的提升打分的水平。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J5a3myY4-1656026579162)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621081028016.png)]
算法步骤:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkvTPHBD-1656026579162)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621081546711.png)]
p5 Alphgo
-
训练:使用behavior cloning 初步学习策略网络;使用策略梯度进一步学习;alphgo没有同时训练策略网络和价值网络,是在策略网络训练完后再进行价值网络的训练。
-
执行:运用MCTS(蒙特卡洛树搜索),并且通过策略网络和价值网络排除掉没有必要的搜索。
-
策略网络的架构以及如何训练。
-
AlphaGo Zero:19 x 19 是棋盘的大小,通过两个19 x 19 的矩阵分别表示黑子和白子。17的来源:把当前黑子的位置用一个矩阵表示,把之前7步黑色棋子的位置用7个矩阵表示,所以表示黑子就用到了8个矩阵。白子也是同样的。前16个矩阵是对黑子白子位置的描述。第17个矩阵就是如果当前落子为黑,就为全1,否则全0。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eOpJkyoa-1656026579162)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621085516542.png)]
-
策略网络的设计:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q5WMD9r2-1656026579162)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621090225076.png)]
-
-
Behavior Cloning:不是强化学习,而是一种模仿学习,agent在这里看不到奖励(本质区别),只需要让agent去模仿人的动作。
训练步骤:
- 每一步都会观察一个状态。
- 策略网络预测下一步的动作,一共有361种动作,输出每种动作的概率,这些概率组合成一个361维的向量pt
- 人为输入位置
- 把人为输入的位置做one-hot-encode编程一个361维的全0向量yt,除了人为输入位置的那个坐标为1.
- 计算yt与pt的差异求出损失函数
- 求出损失函数关于神经网络θ的梯度,然后根据梯度下降来更新策略网络。
Behavior Cloning之所以有效,是因为如果当前的状态st在训练集中,那么策略网络就会根据围棋高手的下法做出一个动作,但是这里也暴露出了一个问题,就是如当前的状态在训练集中没有出现过,那么做出的动作就会很离谱。因此该方法的训练经常会失败
-
使用强化学习来训练:Player用的策略网络最新的模型参数,把下棋的胜负作为奖励来更新param,Opponent用的是以前旧的参数,但是它的参数不用学习。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H224osOo-1656026579163)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621092637896.png)]
-
定义奖励:在下棋的过程中,先把最终步之前每一步的奖励定为0,在最后一步落下后,如果获胜,那么所有的奖励都变为1,如果失败,则全为0.
-
策略梯度:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z0pJJKEC-1656026579163)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621093554976.png)]
-
小结:首先是两个策略网络的博弈,然后获取博弈的轨迹,博弈结束后更新策略网络,如果胜利回报都为+1,否则都为-1,然后算近似的策略梯度
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ji0Wd2Pk-1656026579163)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621094806657.png)]
最后做策略梯度上升
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjJD19w2-1656026579163)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621094832386.png)]
-
价值网络的训练:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5p0E2gGb-1656026579163)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621101156108.png)]
-
-
蒙特卡洛树搜索:
-
主要思想:首先随机选择一个动作a,通过策略函数排除概率值低的动作,然后让策略网络做自我博弈直到游戏结束,然后根据结果来对动作打分,重复上诉过程直到得到一个高分的动作a。
-
步骤:
- Selection:选择一个动作a(假想动作,并不会实际执行)
- Expandsion:让对手走一步(假想动作,让策略网络来执行)
- Evaluation:根据当前的状态价值得到v,游戏结束结果获得的奖励r,把(v+r)/ 2当做动作a的分数。
- Backup:利用(v+r)/ 2来更新动作分数
-
具体实现:
-
Selection:首先给所有的动作打一个分数score(a),Q(a)搜索出来的分数(动作价值),N(a)表示动作a被选中的次数,避免重复探索一个动作。初始化时,所有的Q(a)都等于0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yR6gsVPZ-1656026579164)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621103534060.png)]
-
Expandsion:刚才选中的动作记为at(假想动作),然后AlphaGo就会猜测对手的动作(根据策略网络假设对手会执行这个动作)。状态转移p是不知道的,但是可以使用策略函数π来代替
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I7uzrdSK-1656026579164)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621104147803.png)]
-
Evaluation:从状态St+1开始,就让策略网络自我博弈,双方都由策略网络控制,直到分出胜负。这个过程叫做Fast Rollout。最后根据奖励来更新St+1状态下的得分。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yTAjMK4y-1656026579164)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621104751584.png)]
-
Backup:这个模拟会重复多次,所以每个状态下都会有多条记录,把at下面所有的记录做一个平均,作为新的价值Q(at),这个Q值就会在第一步中作为选择动作的依据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VM9J9d62-1656026579164)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621105015222.png)]
-
-
小结:slection:根据动作的分数选出最高的动作,expansion:用策略网络模拟对手的动作产生新的状态,evaluattion:通过自我博弈和价值网络算出两个分数,并记录平均值。backup:用第三部算出来的分数更新动作的分数。通过成千上万次模拟,AlphaGo就有了每个动作的Q和N,AlphaGo就会根据最高的N去执行那个动作。当对手走完一步,轮到AlphaGo走,它会再次执行MCTS,并把Q(a)和N(a)初始化为0。
-
p6 数学基础(蒙特卡洛)
-
计算PI:从一个正方形里面抽取n个点,有m个点落在圆内,那么π的近似值就约等于4*m/n
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q1oJr2LD-1656026579164)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621124224557.png)]
-
Buffon’s Needle Problem:在一张纸上画几根等距的平行线,随机洒一把针,根据与线相交的针数可以计算出PI
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Des7N05p-1656026579165)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621125044152.png)]
-
使用蒙特卡洛估计阴影的面积:在阴影部分的点需要满足下面两个公式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JxRJNtb6-1656026579165)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621125658908.png)]
在2x2的正方形区域内选择n个点,求得期望nP,有m个点落在阴影区域,如果n的数量足够大,可以求得一个m的公式,从而转换得到阴影部分的面积A2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AOTXyBLh-1656026579165)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621130047228.png)]
-
近似求积分(Intergration)
-
一元函数的积分
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PkXNGJ1q-1656026579165)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621130805180.png)]
-
多元函数的积分:第二步是计算Ω的体积,这里要保证Ω是比较简单的图形,否则也无法求到蒙特卡洛近似。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TrX97Rx-1656026579165)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621131142721.png)]
-
-
近似求期望
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VQWCmvL7-1656026579166)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621131912338.png)]
p7 Sarsa
-
Derive TD Target:
-
回报Ut = Rt + γ · Ut+1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GyV09g4U-1656026579166)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621133913359.png)]
-
价值函数Qπ 是对Ut的期望,那么可以把Ut换成上面的等式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZS6RPIN9-1656026579166)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621134308636.png)]
-
对Ut+1的期望继续转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IcPLTH3w-1656026579166)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621134536591.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h00zigPj-1656026579166)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621134627634.png)]
-
直接求期望中的St+1和At+1难度较大,所以可以用蒙特卡洛近似。Rt近似为观测到的奖励rt,用观测到的st+1和at+1近似St+1和At+1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DpJ7Crs8-1656026579167)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621134830050.png)]
-
-
Sarsa:Tabular Version(表格形式的sarsa算法):应用在状态数量较少的情况
- 每次观察一个四元组(st,at,rt,st+1)— transition
- 用策略函数计算下一个动作at+1
- 计算TD target:yt = rt + γ · (st+1,at+1)
- TD error: δt = Qπ(st,at) - yt
- 用δt 更新动作价值:Qπ(st,at) <- Qπ(st,at) - α · δt
-
Sarsa:Neural Network Version(神经网络)
- 利用神经网络q(s,a;w)计算动作价值函数Qπ(s,a)
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OIKlJgcc-1656026579167)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621140658426.png)]
-
总结:sarsa算法的目的是学习动作价值函数Qπ,表格形式直接学习Qπ,sarsa还可以学习价值网络
p8 Q-Learning
一种TD算法,用来学习最优价值算法Q*(s,a)
-
Sarsa VS Q-Learning
-
sarsa是为了训练动作价值函数Qπ(s,a),TD target:yt = rt + γ · (st+1,at+1),价值网络是Qπ(s,a)的函数近似,在Actor-critic中运用sarsa来更新价值网络
-
Q-Learning用来学习最优价值算法Q*(s,a),yt有差别,Q-Learning可以学习DQN
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jfmk0vx3-1656026579167)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621141320183.png)]
-
-
Derive TD Target
-
之前证明的动作价值函数:Qπ(st,at) = IE[Rt + γ · Qπ(St+1,At+1)],如果这里的π是最优的π*,那么公式就为Qπ *(st,at) = IE[Rt + γ · Qπ (St+1,At+1)]。(Qπ * == Q )=>Q(st,at) = IE[Rt + γ · Q(St+1,At+1)]。
-
通过下面的转换 Q*(St+1,At+1)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaxXKiSp-1656026579167)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621144834094.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WEprFuS2-1656026579167)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621144956235.png)]
-
TD target
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZxmTFP4-1656026579168)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621145052984.png)]
-
-
Q-Learning(tabular version)
- 每次观察一个四元组(st,at,rt,st+1)— transition
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xpegYu9N-1656026579168)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621145228706.png)]
- TD error: δt = Q*(st,at) - yt
- 用δt 更新动作价值:Q *(st,at) <- Q *(st,at) - α · δt
-
Q-Learning:DQN Version
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-30LaR74z-1656026579168)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621145510421.png)]
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YHmau4wU-1656026579168)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621145603484.png)]
- 利用搜集到的transition来更新w,来DQN对价值的估计更加准确
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kTuVf9IL-1656026579168)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621145942209.png)]
-
总结:目标是学习Q *
p9 Multi-Step TD Target
对TD算法的一种改进
-
多步TD target,由于包含多个奖励,更接近真相,偏差更小,更稳定
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tjeVjkOp-1656026579168)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621151031042.png)]
-
对比在sarsa中m-step和One-step中的TD target
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ALunvur-1656026579169)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621152010015.png)]
-
对比在Q-Learning中m-step和One-step中的TD target
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zl88psHJ-1656026579169)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621152117583.png)]
-
p10 Experience Replay
为什么要做经验回放:1.浪费经验。TD算法每次生成的一条训练数据transition(st,at,rt,st+1)在用完后就丢弃。而事实上经验可以被重复利用。2.在利用transition训练w时,两个transition之间的相关性非常的强(比如游戏的当前画面和下一个画面其实相差不大),而这是有害的。所以如果能把序列打撒,消除相关性,就能训练得更好。
-
在经验回放中,把n条transition存入reply buffer,如果reply buffer已满,就把最先存入的数据删除。n是一个超参数。
-
用TD训练DQN时需要做的经验回放:利用随机梯度下降来最小化L(w),每次从reply buffer随机抽取一个transition,然后利用transition计算TD error,得到随机梯度更新w
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tRLJVGsx-1656026579169)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621154530132.png)]
-
经验回放的好处:
- 打破了序列的相关性
- 能重复利用过去的经验
-
Prioritized Experience Replay(优先经验回放):经验回放的改进,用非均匀抽样代替均匀抽样
-
不是所有的经验都很重要,那么应该如何选择重要的经验->可以通过TD error |δt| 判断,绝对值越大越重要
-
两种抽样的方式
-
ε是一个很小的数,避免概率pt = 0
-
对δt的绝对值做排序,大的在前,小的靠后
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uqvStd6i-1656026579169)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621160817448.png)]
-
-
由于不同的transition有不同的抽样概率,这样会导致DQN有偏差,所以要调整学习率α(步长)。如果均匀抽样,α都是一样的,非均匀就要根据重要性适当的调整
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DMDl4Dli-1656026579169)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621162337578.png)]
-
如果一个transition有较大的抽样概率,那么它的学习率就要较小
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0zjCDRU0-1656026579170)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621162635594.png)]
-
TD error δt表示transition的重要性,如果一个transition没有被用过,就不知道它的δt,所以直接赋予该δ最大值t,训练DQN的同时还要对δt进行更新
-
-
总结:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TUScgYW9-1656026579170)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621163017086.png)]
p11 Target Network & Double DQN
bootstrapping:在强化学习中,用一个估算去更新同类的估算
用TD算法训练DQN,会导致DQN高估真实的动作价值,Target Network & Double DQN就是为了解决这个问题
-
导致高估的原因:
-
target用到了最大化。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZyGBD2rP-1656026579170)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621203335418.png)]
x(a1)到x(an)为真实动作价值,a1到an是动作空间中所有的动作,把DQN的估计值记为Q----Q,假设DQN对真实价值的估计是无偏的,误差相当于均值为0的噪声,计算TD target 要把DQN关于动作a求最大化,往x里面加噪声,再求最大化,得到的结果会高估x的最大值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kUbufrqr-1656026579170)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621203910986.png)]
所以qt+1是对真实动作价值的高估,而TD target yt 部分依赖qt+1,所以它也是高估,TD算法鼓励DQN的预测接近yt,所以更新之后的DQN会高估。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k9QN9JkS-1656026579170)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621203949081.png)]
-
Bootstrapping:假设DQN已经高估了真实动作价值,计算TD target用到了DQN自己,而这个DQN的输出已经大于真实价值,然后要对DQN求最大化(qt+1),而这也会导致高估,最后用qt+1求TD target再更新DQN,那么这个高估又传给了DQN,让高估更加的严重
-
小结:我们使用DQN是为了顾及最优动作价值,计算TD target要做最大化,会导致高估,这样算出的TD target是对动作价值的高估
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n84sEKdX-1656026579171)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621205758411.png)]
而如果使用TD算法做Bootstrapping,用DQN算出的TD target传播给自己导致DQN出现高估。如果要进行上诉步骤,会导致更严重的高估
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WujsjGi4-1656026579171)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220621210026788.png)]
-
-
非均匀的高估:如果是均匀的高估,不会造成问题,比如Q1=100,Q2=110,Q3=120,如果高估的值是100,那么对动作的选择没有影响,如果是非均匀就会造成影响。
- TD算法每次从replay buffer里面选出一条transition去更新DQN参数w
- TD target yt是对真实价值的高估
- TD算法鼓励DQN的预测接近yt
- 既然yt是高估的,那么DQNQ(st,at;w)就会高估Q *(st,at)
-
结论:s和a的二元组每被用来更新一次DQN,就会让DQN倾向于高估s和a的价值,DQN对价值的高估是非均匀的。
-
解决
- 避免bootstrapping,用另一个神经网络计算target,称为目标网络。
- 使用double DQN 避免最大化造成高估
-
Target Network:Q(s,a;w-)。它的唯一用途就是计算TD target
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9keCZ0uY-1656026579171)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622091206254.png)]
w-是Target Network的参数,需要隔一段时间进行更新
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SFfGnEtn-1656026579171)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622091325212.png)]
对比:计算yt的方法不同
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3av7LNnd-1656026579171)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622091414900.png)]
缺点:用了Target Network后面还有最大化操作,还是会造成高估。Target Network还会用到DQN的参数,无法独立于DQN
-
Double DQN:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-41vhr3sU-1656026579173)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622091948484.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZUzi8Do-1656026579173)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622092216601.png)]
-
总结:第二种方法部分避免了bootstrapping,第三种同时缓解bootstrapping和最大化,效果最好
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rtAaLrLM-1656026579173)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622092358711.png)]
p12 Dueling Network
-
advantage function(优势函数)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wwuFmQNo-1656026579173)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622093030530.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-htsbmTLP-1656026579173)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622093219312.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WovBgyVE-1656026579174)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622093317263.png)]
-
搭建 Dueling Network
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqUuRvV4-1656026579174)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622093656420.png)]
搭建:
- 输入状态s,卷积层处理s得到特征向量
- wA和wV共享卷积层的参数
- 使用全连接层对特征向量做变换,得到一些输出的向量
- 再用另外一些全连接层,把特征向量映射到一个实数,然后把这个数与上一个步骤输出的每个向量进行相加并且减去这些向量最大的元素,得到Dueling Network的最终输出
Dueling Network与DQN除了神经网络的结构,其余的基本一样
-
训练Dueling Network 参数w,因为是对最优动作价值Q *的近似,所以使用Q-Learning进行训练,和训练DQN完全一样
-
Dueling Network如何解决不唯一性的问题
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbP3DH1b-1656026579174)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622095200782.png)]这个公式有个缺点,无法通过学习Q*来唯一确定V * 和A *,如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-15WNVfmy-1656026579174)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622095523054.png)]
当V * 和 A * 上下波动幅度相同方向相反,不会导致最终的输出有差别,但会导致两个神经网络都训练不好
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-65rZ5lGd-1656026579174)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622100459667.png)]
A的波动会影响到max a,避免A和V的输出随意上下波动
-
p13 Multi-Agent Reinforcement Learning(多智能体强化学习)-基本概念
-
常见设定:
- Fully cooperative:合作关系
- Fully competitive:竞争关系
- Mixed Cooperative & competitive:合作竞争混合
- Self-interested:利己主义
-
专业术语
-
state,Action,State Transition:难点在于下一个状态会受所有agent的影响
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8mLrrCDb-1656026579175)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622102641346.png)]
-
Rewards
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xpkX9DwQ-1656026579175)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622102933930.png)]
-
Returns
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a9gmIukV-1656026579175)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622103033646.png)]
-
Policy Network:策略网络在一些情况下可以互换,比如同一款无人车的策略网络,有些又不能互换,比如在机器人足球赛中,不同职责的机器人策略网络不同就不能互换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FagEA54f-1656026579175)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622104456679.png)]
-
Uncertainty in the Return:回报的随机性,来源于未来的所有状态和所有动作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mzhLbjdl-1656026579175)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622104826122.png)]
-
State-Value Function:一个agent的状态价值,不仅依赖于自己的策略参数,还依赖于其他agent的策略,这也是 Multi-Agent的复杂之处,
-
-
收链(Convergence):无法通过改进策略来获得更大的期望回报。多个agents判断收链的标准是Nash Equilibrium(纳什均衡):当所有的agent都不改变策略的情况下,一个agent改变策略不会带来更大的回报。如果所有的agent都是理性的,那么在Nash Equilibrium的情况下,谁也没有动机去改变自己的策略,因为改变了也不会增加自己的收益,从而达到平衡。
-
Single-Agent 直接套用收链算法可能会不收链:当一个agent更新自己的策略,会导致其他agent的目标函数发生变化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RByXHINS-1656026579176)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622134321420.png)]
-
-
总结:系统里有多个agents,它们会互相影响,每个agent的动作都会影响到下一个状态,设计强化学习的方法时,要考虑每个agent的互相影响,否则无法收链。
p14 Multi-Agent Reinforcement Learning --三种架构
Partial Observations:不完全观测,一个agent对状态s的观测可能是局部的。如果是完全观测,那么每个agent都能观测到全局的状态
-
Fully decentralized(去中心化):每个agent独立与环境进行交互,并且用自己的观测和奖励来更新自己的动作,agents之间无交流。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PZiCdVgz-1656026579176)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622143020134.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YCi31bUS-1656026579176)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622143304194.png)]
-
Fully centralized(完全中心化):所有agents都把信息传递给中央控制器,中央控制器知道所有agents的动作,观测和奖励,agents没有策略网络,自己不做决策,只需要执行中央控制器做的指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ao9PaAdC-1656026579176)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622143642336.png)]
中央控制器上训练出n个策略网络,它们的结构可以相同,参数可能不同,策略网络的输入是n个agent的观测值o1–on,输出ai觉得第i个agent的动作,一个agent只知道自己的观测值oi,没有足够的信息来做决策,所以策略网络不能部署到agent上,只能留在中央控制器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULTZTJSS-1656026579176)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622143813985.png)]
- 好处:中心化的好处是知道全局的信息,可以帮助所有的agents做出好的决策
- 缺点:执行速度慢。agent把自己的观测值汇报给中央后,要等待中央给出的动作,通信和同步也需要花时间。中心化的系统导致agent反应很慢。
-
Centralized training with decentralized execution(中心化训练,去中心化学习):agents有各自的策略网络,训练的时候有一个中央控制器,它会收集所有agents的观测,动作和奖励。训练结束后就不用中央控制器,每个agent根据自己的观测,用自己的策略网络做决策。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Drb8F0SG-1656026579177)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622145221082.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LzZXkLcb-1656026579177)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622145550990.png)]
训练结束后
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ro8iqoi5-1656026579177)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622145641966.png)]
-
Parameter Sharing(神经网络是否应该共享参数)
应该取决于不同的应用。
-
总结:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bT41VcSg-1656026579177)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622150350732.png)]
p15 Policy Gradient with Baseline(策略梯度中的Baseline)
策略梯度的方法常用Baseline来降低方差,让收链更快
-
数学推导:定义一个baseline,不能依赖于A
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VPx9p1GV-1656026579177)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622155238852.png)]
结论:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8YwSjpX9-1656026579178)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622155824692.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nndTlMTh-1656026579178)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622155844525.png)]
不管b是什么,得到的期望完全一样。那为什么要使用b,因为算法真正用的策略梯度不是这个公式,而是对它的蒙特卡洛近似,而b会影响蒙特卡洛近似
-
推导蒙特卡洛近似
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Or6VTn4t-1656026579178)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622160823912.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-buAikxwf-1656026579178)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622160929047.png)]
为什么得到的蒙特卡洛近似g(at)是无偏估计,因为g(At)的期望 = 策略梯度,而g(at)是一个随机梯度,是对策略梯度的蒙特卡洛近似。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ao6F5QvP-1656026579178)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622161347710.png)]
-
两种常见的baseline
-
标准:b = 0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s7jhYJPl-1656026579179)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622161908339.png)]
-
b = state-value:St先于At观测到,所以st不依赖与At
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-og5YmuaF-1656026579179)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622162124108.png)]
-
p16 REINFORCE with Baseline
使用REINFORCE 算法训练策略网络
-
三次近似算出策略梯度
- 把策略梯度近似成随机梯度g(at)
- 把动作价值Qπ近似成回报ut
- 把状态价值Vπ做函数近似。变成神经网络v(s;w)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-og3xAwsd-1656026579179)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622190202149.png)]
-
搭建策略和价值网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JSEidBij-1656026579179)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622192532140.png)]
-
训练这两个神经网络
-
REINFORCE 训练策略网络:有了策略梯度,可以通过梯度上升来更新策略网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oFXdYcj1-1656026579179)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622193436136.png)]
把ut - v(st;w) = - δt,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVGVbOzI-1656026579180)(C:\Users\14645\AppData\Roaming\Typora\typora-user-images\image-20220622193628068.png)]
-
回归算
-