8-1 深度Q 网络相比于基于策略梯度方法为什么训练起来效果更好,更平稳?
DQN比较容易训练的一个理由是: 在DQN里面,我们zh9yao能够估计出q函数,就保证一定可以找到一个比较好的策略。也就是我们只要能够估计出Q函数,就保证可以改进策略。而估计Q函数是比较容易的,因为它就是一个回归问题。
8-2 深度Q 网络在处理连续型动作时存在什么样的问题呢?对应的解决方法有哪些呢?
它不大容易处理连续动作。
方案1. 最大化目标函数,将a作为参数,要找一组a去最大化Q函数,就用梯度上升去更新a值。但是 等于是每次要决定采取哪一个动作的时候,都还要训练一次网络,显然运算量是很大的
方案2. 设计网络,输入s, Q函数输出3个东西: 向量u(s) 矩阵 ∑ ( s ) \sum(s) ∑(s) 标量 V(s)网络输出后才引入a Q < s , a > = − ( a − u ( s ) ) T ∑ ( s ) ( a − u ( s ) ) + V ( s ) Q<s, a> = -(a - u(s))^T \sum(s)(a - u(s)) + V(s) Q<s,a>=−(a−u(s))T∑(s)(a−u(s))+V(s)
方案3. 不用深度Q网络, 将基于策略的方法PPO和基于价值的方法DQN结合在一起,也就可以得到Actor-Criticor的方法