Policy Distillation
Last updated
Last updated
通过深度强制学习,使用称为深度Q网络(DQN)的方法成功地学习了复杂视觉任务的策略,但是需要相对较大的(任务特定的)网络和广泛的培训来实现良好的性能。 在这项工作中,我们提出了一种称为Policy Distillation的新方法,该方法可用于提取强化学习代理的策略,并训练在专家级执行的新网络,同时显着缩小和提高效率。 此外,可以使用相同的方法将多个特定于任务的策略合并到单个策略中。我们使用Atari领域来演示这些声明,并表明多任务Distillation代理优于单一任务以及联合培训的DQN代理。
在本文中,我们介绍了将一个或多个动作策略从q网络转移到未训练网络的策略Distillation。该方法具有多种优点:网络大小可以被压缩多达15倍,而不会降低性能;多个专家策略可以组合成一个单一的多任务策略,其性能优于原始专家;最后,它可以作为一个实时的在线学习过程,通过不断提取最佳策略到目标网络,从而有效地跟踪不断发展的问题学习策略。这项工作的贡献是描述和讨论策略Distillation方法,并展示( a )单一游戏Distillation,( b )具有高度压缩模型的单游戏Distillation,( c )多游戏Distillation,和( d )在线Distillation的结果。
在深度Q学习中,神经网络被训练以预测的每个可能动作的平均折扣未来奖励。 具有最高预测奖励的动作由即应选择的动作。定义状态动作序列 ,折扣回报 以及Q函数:
DQN通过最小化以下损失函数进行训练:
DISTILLATION(蒸馏)是一种将知识从指导模型转移到学生模型的方法。
1)选择最大Q值作为正类,利用负的对数似然损失,
2)利用Q值得MSE损失
我们使用N个DQN单游戏专家,每个都经过单独训练。 这些代理产生输入和目标,只需单游戏蒸馏,数据存储在单独的内存缓冲区中。 蒸馏器然后从数据存储顺序学习,每一集切换到不同的一个。由于不同的任务通常具有不同的动作集,因此为每个任务训练单独的输出层(称为控制器层)并且任务的id用于切换 在训练和评估期间得到正确的输出。 我们还尝试了KL和NLL蒸馏损失功能,用于多任务学习。
即使有了单独的控制器,多游戏DQN学习对Atari游戏来说也是极具挑战性的,DQN通常无法在游戏中达到完整的单游戏性能。我们认为这是由于不同政策之间的干扰、不同的奖励尺度以及学习价值函数固有的不稳定性。
策略提炼可以提供一种方法,将多个策略组合到一个网络中,而不会带来破坏性的干扰和扩展问题。由于策略在提炼过程中被压缩和提炼,我们推测它们也可以更有效地组合成单个网络。此外,策略固有的方差低于价值函数,这将有助于性能和稳定性。
用 (指导网络)生成的样本训练 (学生网络),可分类三种方式:
3)将 值转换成离散概率,然后用KL散度作为损失
在传统的分类设置中, 的输出分布非常尖锐,因此通过提高 的温度参数来软化分布,以允许更多的次要知识转移到学生。