- actor: 是policy network,通过生成动作概率分布,用来控制agent运动,类似“运动员”。
- critic: 是value network,用来给动作进行打分,类似“裁判”。
- 构造这两个网络,并通过environment奖励来学习这两个网络。
目录
1.1 review: state-value function approximation
1.2 Policy Network (Actor): π(a|s, θ)
1.3 Value Network (Critic): q(s, a; w)
2.2 update value network q using TD
2.3 update policy network π using policy gradient
3. Extension: Discrete VS Continuous Control
3.1 Deterministic Policy Gradient (DPG) for Continuous Control
3.1.1 Updating Value Network by TD
3.1.2 Updating Policy Network by DPG
3.1.3 Improvement: Using Target Networks
3.1.4 Updating Policy and Value Network using Target Network and DPG
3.1.5 Updating target networks
3.1.6 Stochastic Policy VS Deterministic Policy
3.2 Stochastic Policy for Continuous Control
3.2.1 Policy Network for Continuous Control
3.2.2 Randomly Sampling Continuous Actions
3.2.4 Training (1/2): Auxiliary Network
3.2.5 Training (2/2): Policy Gradient Methods
3.3 Summary: Continuous Control Imporvement
3.4 Asynchronous Advantage Actor-Critic (A3C)
3.5 Deep Deterministic Policy Gradient (DDPG)
4. Extension: Multi-Agent Reinforcement Learning (MARL)
4.2 MARL: Centralized VS Decentralized
4.2.2 MARL Assumption: Partial Observations
4.2.4 Fully Decentralized Actor-Critic Method
4.2.6 Centralized Actor-Critic Method
4.2.7 Centralized Training with Decentralized Execution
4.2.8 Discussion: parameter sharing?
1. Actor-Critic Introduction
1.1 review: state-value function approximation
Definition: State-value function.
π是policy function,可以用来计算动作的概率值,从而控制agent做运动。
Qπ是action-value function,可以用来评价动作的好坏程度。
可是π和Qπ这两个函数我们都不知道。
可以用两个神经网络分别近似这两个函数,然后用actor-critic method同时学习这两个神经网络。
1.2 Policy Network (Actor): π(a|s, θ)
1.3 Value Network (Critic): q(s, a; w)
value network有两个输入:state s和action a。
最后输出一个实数q(s,a; w),这个分数说明--处在状态s下,做出动作a是好还是坏。
2. Actor-Critic Algorithm
同时训练policy network和value network,就是actor-critic method。
2.1 Train the networks
Definition: State-value function approximated using neural networks.
- θ是policy network的参数。
- w是value network的参数。
2.1.1 更新θ和w的目标是不同的
学习参数θ是为了让policy network预测更精准
critic是靠environment reward来改进自己的。
2.1.2 training process
对两个神经网络做一次更新需要经历5个步骤:
2.2 update value network q using TD
2.3 update policy network π using policy gradient
state-value function V(s; θ, w)相当于“运动员”所有动作的平均分 <--期望本质
梯度上升可以增加V函数的值
2.4 summary of Algorithm
Note that, agent在预测时,并没有执行这个动作。因为在算法的每一轮循环里面,agent只做一次动作。
用梯度上升来更新policy network,让运动员的平均分更高。
最后一步的qt * dθ,t是policy gradient 的monte-carlo approximation。
每一轮迭代都做这9个步骤,只做一次动作,观测一个奖励,更新一次神经网络的参数。
根据policy gradient algorithm的推导,算法用到了qt,这是critic给动作action打的分数。如果论文中把qt替换成了δt(TD error),这是policy gradient with baseline method,效果更好一点,它可以降低方差,让算法收敛更快,任何接近qt的数都可以作为baseline,但是这个baseline不能是动作at的函数,e.g.
- Compute TD error:
, rt + γ·qt+1称为Baseline。
3. A2C和A3C学习理解
参考: 深度强化学习 -- 进击的 Actor-Critic(A2C 和A3C) - 知乎
DRL,大部分基础算法都是单线程的,也就是一个agent去跟环境交互产生经验。
- 那到底是不同num_neighbors在一个agent之下,即environment,不同的num_neighbors对应不同的state,即frame,然后不同的sub-agent给出policy 概率
A2C和A3C这两种算法,创新的引入了并行架构,即整个agent由一个global network和多个并行独立的worker构成,每个worker都包括一套Actor-Critic网络。
- 每个worker都会独立的跟自己的环境,得到独立的采样经验,即相当于一个sub-agent。
- 多个workers独立探索一个环境的副本,相当于同时去探索环境的不同部分,并且使用不同的策略也可以极大提升多样性(只限于A3C)。
- 我这个code说起来还真不算探索不同的副本,只能算multi-agents对不同policy的探索
- A2C和A3C都是在并行架构下,目的是找到best policy:
- A3C,用不同的workers控制不同的policy,并行异步梯度更新。
- 只要有一个worker完成当前episode,主网络就会根据它的loss进行更新,并不影响其它仍旧在使用就策略的worker。
- global network会根据每个worker计算的loss更新参数,再去更新worker参数。
- A2C,用不同的workers控制相同的policy,并行同步梯度更新。
- A2C是A3C的同步版本,A2C也会构建多个进程,包括多个并行的worker。
- 但这些是同步的,即每轮training中,worker被要求平均loss,统一更新梯度,使用同一套策略。
- 所以,A2C与AC的最大不同,除了一个worker和多个workers的区别外,就是Advantage function,去减小high variance。
更好的training方式是采用多线程的并行架构。这样既能实现experience replay,又能高效利用计算资源,提升训练效率。
其实是multi-agents,每个不同的情况state对应一个agent (<5;<5<10;>10), policy做不同的动作action(threshold=0.1,0.2,0.3...),
然后不同的action,会返回不同的value Q. Q的期望得到状态价值函数V,表明当前policy下,整体局势好不好。
实际做了一个multi-agents。
每个worker i 会做一个policy和critic的工作。action sampling probability。
3. Extension: Discrete VS Continuous Control
DQN和Policy Network可以控制agent的动作概率分布。
how to do with continuous space?
离散化 Discretization
空间维度d越高,网格上的点就越多,网格点的数量随d指数增长,这会造成维度灾难。
离散化只适合自由度d比较小的情况,如果自由度比较大,then
Deterministic policy network (the second lecture)
Stochastic policy network (the third lecture )
3.1 Deterministic Policy Gradient (DPG) for Continuous Control
DPG用在神经网络上,叫作Deep DPG (DDPG).
DPG是一种Actor-Critic方法
- policy network作为actor,根据状态s做出决策a。
- 策略网络是一个确定性的函数, use a deterministic policy network (actor): a=π(s;θ).
- policy network的输出不是一个概率分布,而是一个具体的动作a,动作是确定的没有随机性。
- 这里的二维向量表示自由度=2,是连续动作的两个维度,不是离散动作的概率分布。
- value network不控制agent,它基于状态s给动作a打分,从而指导策略网络做出改进。
- value network有两个输入,一个是状态s,一个是动作a。Use a value network (critic): q(s,a;w).
- 价值网络的输出是一个实数,这个实数是对动作好坏的评估。
我们要训练两个神经网络,让两个神经网络共同进步,让policy network决策越来越好,让value network打分越来越准确。
3.1.1 Updating Value Network by TD
价值网络预测t时刻和t+1时刻的动作价值。
3.1.2 Updating Policy Network by DPG
--》Goal: Increasing q(s,a; w), where a = π(s; θ)
--》方法:如果输入状态s固定,而且价值网络也固定,那么唯一会影响价值q的因素就是策略网络的参数θ。我们想要更新θ,使得value q变大,所以我们计算q关于θ的梯度,然后做梯度上升更新θ,这样可以让价值q变大。这个梯度就叫DPG。
--》DPG:
--》Gradient acent:
problem: 用刚才的方法训练value network效果不是很好,做一些改进。
solution: Target Networks。
3.1.3 Improvement: Using Target Networks
Improve the training of the value network.
Bootstrapping
Boostrapping用于训练value network时容易产生偏差,这里可能差生高估或低估。
Basic idea: Computing the TD target using different networks.
用来训练TD target的神经网络,叫作Taget Network。
3.1.4 Updating Policy and Value Network using Target Network and DPG
3.1.5 Updating target networks
problem: target network的参数和
依然依赖于策略网络参数w和价值网络参数θ,用target network算出的TD target还是跟策略网络和价值网络有关。因此,用target networks也不能完全避免bootstrapping,仍然可能出现偏差,但总比不用要好了。
solution: Experience Replay; Multi-step TD target;
3.1.6 Stochastic Policy VS Deterministic Policy
3.2 Stochastic Policy for Continuous Control
Goal: 我们要构造一个策略网络做连续控制,然后用随机策略梯度来更新策略网络。
3.2.1 Policy Network for Continuous Control
Univariate Normal Distribution
Multivariate Normal Distribution
3.2.2 Randomly Sampling Continuous Actions
3.2.3 Training Policy Network
- Auxiliary network (for computing policy gradient)
- Policy gradient methods: REINFORCE; Actor-Critic.
3.2.4 Training (1/2): Auxiliary Network
我们在神经网络μ和ρ之上再搭一层,作为辅助神经网络。
计算policy gradient时,要对辅助神经网络求导。
- Auxiliary network, f(s, a; θ), 输出一个实数, helps with training.
- We will use
for computing policy gradient.
3.2.5 Training (2/2): Policy Gradient Methods
根据辅助神经网络公式
Qπ还是未知的,需要对它做近似。
- REINFORCE: 用观测到的回报ut来近似Qπ,这属于Monte Carlo Method。
- Actor-Critic: approximates Qπ by the value network, q(s,a; w), and value network is usually updated by TD Learning.
3.3 Summary: Continuous Control Imporvement
- REINFORCE --> REINFORCE with baseline.
- Actor-Critic --> Advantage Actor-Critic (A2C)
3.4 Asynchronous Advantage Actor-Critic (A3C)
A3C算法,使用多线程方式,一个线程负责更新Actor和Critic参数,多个辅线程负责分别和环境交互,得到梯度更新值,汇总更新主线程参数。
- 异步训练框架
- 网络结构优化
- Critic评估点的优化
3.5 Deep Deterministic Policy Gradient (DDPG)
只取最大概率的动作,去掉这个概率分布。
双Actor和Critic方法来改善收敛性。
4个网络:
- Actor当前网络
- Actor目标网络
- Critic当前网络
- Critic目标网络
4. Extension: Multi-Agent Reinforcement Learning (MARL)
4.1 Concepts and Challenges
4.1.1 Settings
- Fully cooperative. e.g. 流水线produce product
- Fully competitive. e.g. 零和博弈, 捕猎、格斗
- Mixed Cooperative & Competitive. e.g. 足球、英雄联盟游戏
- Self-interested. 利己设定 e.g. 股票、无人车
4.1.2 Terminologies
- n agents
- S be the state
be the i-th agent's action.
- State transition:
. The next state, S', depends on all the agents' actions.
- Rewards,
be the reward received by the i-th agent.
- Returns,
- Policy Network,
- Uncertainty in the Return.
- State-Value Function
One agent's state-value, , depends on all the agents' policies.
4.1.3 Convergence
- Single-Agent Policy Learning
- Multi-Agent Policy Learning: Nash Equilibrium 纳什均衡,判断收敛
4.1.4 Difficulty of MARL
multi-agent会让强化学习更困难,直接套用single-agent算法并不好。
因为agents并不是相互独立的,不应该忽视它们之间的影响。
4.2 MARL: Centralized VS Decentralized
4.2.1 Architectures
- Fully decentralized: Every agent uses its own observations and rewards to learn its policy. Agents do not communicate.
- Fully centralized: The agents send everything to the central controller. The controller makes decisions for all the agents.
- Centralized training with decentralized execution: A central controller is used during training. The controller is disabled after training.
4.2.2 MARL Assumption: Partial Observations
4.2.3 Fully Decentralized
本质: single-agent reinforcement learning.
完全去中心化,是指所有agents都相互独立不沟通交流,每个agent独立跟环境交流,获取观测值o和奖励值r。
- Training: 每个agent都有自己的policy network,并独立训练策略网络,跟single-agent完全一样。
- Execution: 训练结束之后,每个agent用自己的policy network做决策,把观测到的
输入策略网络,策略网络输出概率分布,抽样得到动作
,然后执行
。
- 无论是training,还是execution,agents之间都没有交流。
4.2.4 Fully Decentralized Actor-Critic Method
4.2.5 Fully Centralized
有n个agents,它们跟环境交互,每个agent动作都会改变环境,从而影响其他agents。
- Centralized Training: agents上没有policy network,所以它们自己不能作决策,全都要听central controller指挥。
- Centralized Execution: central controller上训练出n个policy networks,它们的网络结构可以相同,但参数可能不同,
表示第i个agent的参数,策略网络的输入是agents的观测
,第i个策略网络决定agent i的动作
,决策只能由中央来做。这是因为策略网络要用到所有agents的观测
,一个agent只知道自己的观测
,它不能自己做决策。所以policy network不能部署到agent上,只能留在central controller。
4.2.6 Centralized Actor-Critic Method
shortcoming: slow during execution.
- communication and synchronization cost time.
- real-time decision is impossible.
4.2.7 Centralized Training with Decentralized Execution
“中心化训练,去中心化执行”
- Training: 每个agent都有自己的policy network,训练时需要一个central controller,它帮助agent训练policy network,介绍训练之后,就不需要central controller了。
- Execution: 每个agent独立跟环境交互,用自己的policy network根据自己的local observation来做决策。
4.2.8 Discussion: parameter sharing?
- Do not share parameters if the agents are non-exchangeable.
- Share parameters if the agents are exchangeable.
参考
1. https://github.com/wangshusen/DRL
14. 多智能体强化学习(2_2):三种架构++Multi-Agent+Reinforcement+Learning_哔哩哔哩_bilibili