7.连续空间上的Q-learning

目录

深度强化学习目录

简介

Q-learning的实现是比较简单的,但只能用在离散行为空间的情况下。在连续空间中该怎么操作?比较常见的方法是将连续空间离散化,从 A A A中采样,然后再用传统的方法运算。但这种方法是有限的,且效果一般。还有一种方法是gradient ascent。我们知道采取的行为a满足: a = a r g max ⁡ a ∈ A Q ( s , a ) a=arg\max_{a\in A}Q(s,a) a=argaAmaxQ(s,a)

我们把a当做参数,利用梯度上升的方法最大化Q值,一样可以做。但是问题在于运算量过大,且可能陷入局部最优,因此也不太考虑。接下来讲第三个方法。

Design a Network

如图,我们设计一个网络:
来源b站李宏毅深度学习
通过以下公式计算Q值: Q ( s , a ) = − ( a − μ ( s ) ) T Σ ( s ) ( a − μ ( s ) ) + V ( s ) (7.1) Q(s,a)=-(a-\mu (s))^T \Sigma (s)(a-\mu (s))+V(s) \tag{7.1} Q(s,a)=(aμ(s))TΣ(s)(aμ(s))+V(s)(7.1)

最开始输入状态s,通过网络计算出三个变量之后,再将连续的行为向量a(比如要求输入右上方45°大小为8的力度,a就是向量 [ 2 , 2 ] T [2,2]^T [2,2]T)代入,最后再计算出Q。
这个公式怎么来的?首先来看这个公式: Q ( s , a ) = A ( s , a ) + V ( s ) Q(s,a)=A(s,a)+V(s) Q(s,a)=A(s,a)+V(s)

Q值函数等于优势函数A加上V值函数。我们要选最优的动作,实际上就是最大化优势函数A。如果能限制优势函数A恒小于等于0,那么当A=0时,Q值函数就一定是最大值。
怎么限制呢?一瞬间能想到的公式是: − ( a + b x ) 2 ≤ 0 -(a+bx)^2\le 0 (a+bx)20

为了便于计算,用矩阵的形式表示,再结合正定矩阵的相关知识,就有了以下公式:
− z T Σ z ≤ 0 -z^T\Sigma z\le0 zTΣz0

其中z是向量, Σ \Sigma Σ是正定矩阵。这就是公式7.1的形成基础。而当 μ ( s ) = a \mu(s)=a μ(s)=a的时候,7.1式的前一项必定为0,这也就能保证Q值为最大了。
那么如何令神经网络输出的 Σ \Sigma Σ正定?答案是先输出一个对角线元素都是正数的下三角矩阵 L L L,然后根据 L L L生成 Σ \Sigma Σ,这样 Σ \Sigma Σ就一定是正定矩阵了。

总结

实际上用Q-learning来处理连续行为问题是在是比较麻烦的,接下来讲Actor-critic,这个方法能比较好的处理连续空间上的问题,也是一个同时使用value-based和policy-based的算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值