Visualizing and Understanding Atari Agents


发表时间:2018(ICML2018)
文章要点:这篇文章用saliency map的方式来做RL agent的可视化,目的就是想分析一下agent做某个动作的时候到底关注的是输入的哪个部分,这样可以对RL的agent有一定的可解释性。比如下图这个效果

其中蓝色是policy关注的点,红色是value关注的点,可以看出来关注的点还挺正确的,效果还不错。方法的思路就是通过给像素添加扰动,来看哪个部分的影响最大,比如breakout这个游戏,我们添加扰动把小球盖住,结果导致policy发生了变换,那就说明小球很重要,policy在关注小球这个位置。具体的,扰动的添加方式为

这里\(i,j\)表示添加噪声的位置,大写的\(I_t\)表示在t时刻的图像,\(M(i,j)\)是以位置\(i,j\)为中心的一个二维高斯分布,其中\(\sigma^2=25\)\(A\)表示添加的噪声,其中标准差为\(\sigma_A\)。一个圆一个点那个符号就是两个矩阵对应位置相乘。所以这个式子的第一项就是根据\(M(i,j)\)的概率分布保留原始图片的信息,很显然越靠近\((i,j)\)保留的原始信息就越少。然后第二项就是根据\(M(i,j)\)的概率分布来添加扰动\(A\),很显然越靠近\((i,j)\)添加的扰动就越大。
接下来就是如何评估对policy和value的影响。对policy,作者取policy前面那层logits的输出然后和真实值做差的平方,value就直接对value做差的平方。式子如下


然后就可以画出来之前那个saliency map了。
总结:挺有意思的工作,从结果上看确实是看出来了关注的点。不过每次画一张图,都需要分别在每个像素上添加扰动,想想这个计算量还是很大了。
疑问:不知道这个添加扰动的方式通不通用,会不会换个环境就需要调参了,比如里面两个标准差的选择之类的。

posted @ 2021-10-17 12:34  initial_h  阅读(138)  评论(0编辑  收藏  举报