这是对神经网络的一种改进。不仅仅局限于DQN,也可以应用到其他网络,这里只介绍在DQN上的使用。
Advantage Function(优势函数):
回顾:
是动作价值函数,是关于和求期望,把t+1时刻以后的动作和状态都消掉了。不仅和 ,有关,也与策略函数π有关。
是状态价值函数,是关于动作A求期望,消去动作A,只保留状态,也与策略函数π有关。
最优动作价值函数,是对关于策略π求最大值,就消掉了策略π,得到的最优动作价值函数只和当前的状态s和动作a有关。评价在状态s的情况下做出动作a的好坏。
最优状态价值函数, 是对关于策略π求最大值,就消掉了策略π,得到的最优状态价值函数只和当前的状态s和动作a有关。评价此时状态的好坏。
优势函数:
把作为baseline,的意思是动作a对baseline的优势。动作a越好,优势就越大。
优势函数的理论性质:
需要用到一个定理:
等式两边关于a取最大值,则得出优势函数关于a取最大值时等于0。再将等式变换:
Dueling Network:
Dueling Network就是由以上的定理2得到的。
传统DQN:
传统的DQN时神经网络对最优动作价值函数的近似。
而Dueling Network是神经网络对优势函数的近似:
还需要一个神经网络来近似最优状态价值函数:
但这里的输出不是向量,而是一个实数,即神经网络对状态s的打分。
这两个神经网络前半部分卷积层类似,可以共享参数。
即可得出:
即为Dueling Network,可以看作是对最优动作价值函数的近似,有两个参数和。作用和DQN是类似的。
Dueling Network网络结构:
输入也是状态s,通过卷积层(这里两个神经网络可以共享卷积层数据),然后一部分全连接层生成红色的那部分向量(同原始的DQN)类似,一部分全连接层生成蓝色的实数,然后用蓝色的实数分别于红色向量中的值相加,再减去红色向量中的最大值,得到紫色向量。紫色向量与原始的DQN输出完全相同,即是对动作的打分。但是这种网络结构相较于DQN更加优秀。
Dueling Network的训练:
与DQN完全类似,也可以使用之前介绍的优化方法。
分析:
最后圈出来的部分等于0,为啥还要用呢?
原因就是等式1有个缺点,即无法通过学习,来唯一确定和。
举例:
等式两边一加一减,则等式仍然成立,但是无法确定唯一性。加上最后一项后,可以避免两个神经网络的随意波动。