赞
踩
state->action 叫做一个policy
相当于每个state做了个action的分类,即找到最好的policy
input: state(界面,图片等)
output: <action0, 70%>, <action1, 20%>, <action2, 10%>…
确定方法:Q-learning; DQN及其扩展
目的就是学习价值最大
input: state(界面,图片等)
output: value(<action0, value0>, <action1, value1>…)
直到此刻的装态以及行为,预测下一刻的状态以及回报,模拟真实的环境反馈
价值函数:
下一状态的最大回报作为价值,所以是off-policy。
更新Q值时所使用的方法是沿用既定的策略(on-policy)如sarsa,还是使用新策略(off-policy)如Q-learning
策略函数:
能够达到价值最大的行为作为策略
目标价值:
目标价价值由当前回报r和t+1价值组成
算法:
例子:
补充:
同Q-learning的过程类似,迭代优化,Action-Reward不是简单的table,是深度模型学习的目标,并且添加了 experience replay,用于模型训练,解决了Q值太多Q-learning无法有效学习的问题。
Q table无法描述复杂问题,这里用神经网络作为Q函数,优化输出,直接生成<Q, action>,(由图一–>图二)
没有pooling层,因为需要保留位置信息
基本结构:conv1(ReLu)->conv2(ReLu)->conv3(ReLu)->fc4(ReLu)->fc5(Linear)
Loss:
算法:
解决了DQN无法输出连续动作空间的问题
Actor是policy gradient 网络, critic是value-based网络。
借助value-based网络来实时的给policy gradient网络反馈,这样就可以进行单步更新,因此解决了policy gradient 无法单步更新,效率低下的问题
Asynchronous 异步
DQN: 单个agent,单个神经网络,一个环境
A3C:一个全局神经网络,多个worker agent,每个agent复制一份神经网络,一个环境,单独优化,通过独立的进行多个worker agent训练,增加训练的多样性
Actor-Critic 演员 - 评论
演员:相当于一个policy,policy就是估计最好的action,即根据神经网络求出state下action的概率分布
评论:value,不同action能得到的回报
Value和policy结合,通过全连接层生成,类似于duelingDQN
Advantage 不仅考虑模型的回报,还考虑某个具体action带来的贡献的大小
A = R - V(s)
A: advantage,R:当前reward,V(s):value函数,advantage用于value loss的计算
三个A结合:
流程图:
Deep Deterministic Policy Gradient
Deep:指的是这里的actor和critic网络都采用DQN的现实+估计+经验回放的方式
Deterministic:指的是用直接输出动作,替换policy gradient输出各个action+概率,一下是两种方式的对比:
- 随机性策略,∑π(a|s)=1 策略输出的是动作的概率,使用正态分布对动作进行采样选择,即每个动作都有概率被选到;优点,将探索和改进集成到一个策略中;缺点,需要大量训练数据。
- 确定性策略,π(s)S→A 策略输出即是动作;优点,需要采样的数据少,算法效率高;缺点,无法探索环境。然而因为我们引用了DQN的结构利用offPolicy采样,这样就解决了无法探索环境的问题
提高了A3C的收敛性和稳定性
总体框架
Distributed Proximal Policy Optimization
OpenAI 提出的一种解决 Policy Gradient 不好确定 Learning rate (或者 Step size) 的问题. 因为如果 step size 过大, 学出来的 Policy 会一直乱动, 不会收敛, 但如果 Step Size 太小, 对于完成训练, 我们会等到绝望. PPO 利用 New Policy 和 Old Policy 的比例, 限制了 New Policy 的更新幅度, 让 Policy Gradient 对稍微大点的 Step size 不那么敏感.
算法:
总的来说 PPO 是一套 Actor-Critic 结构, Actor 想最大化 J_PPO, Critic 想最小化 L_BL. Critic 的 loss 好说, 就是减小 TD error. 而 Actor 的就是在 old Policy 上根据 Advantage (TD error) 修改 new Policy, advantage 大的时候, 修改幅度大, 让 new Policy 更可能发生. 而且他们附加了一个 KL Penalty (惩罚项, 不懂的同学搜一下 KL divergence), 简单来说, 如果 new Policy 和 old Policy 差太多, 那 KL divergence 也越大, 我们不希望 new Policy 比 old Policy 差太多, 如果会差太多, 就相当于用了一个大的 Learning rate, 这样是不好的, 难收敛.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。