您好,欢迎访问三七文档
DQN简述BackgroundQ-learning学习过程可写成下面公式:Background上面的公式是,将旧的Q-learning函数Qold(st,at)向着学习目标(当前获得的Reward加上下一步可获得的最大期望价值)按一个较小的学习速率α学习,得到新的Q-learning函数Qnew(st,at)。其中学习速率决定了我们使用新获取的样本信息覆盖之前掌握的信息的比率,通常设为一个较小的值,可以保证学习过程的稳定,同时确保最后的收敛性。BackgroundLoremipsumdolorsitamet,consecteturadipisicingelit,seddoeiusmodtemporincididuntutlaboreetdoloremagnaaliqua.从RL看结合DeepLearning的困难之处•深度学习的成功依赖于大量的有标签的样本,从而进行有监督学习。而增强学习只有一个reward返回值,并且这个值还常常带有噪声,延迟,并且是稀少的。特别是延迟,常常是几千毫秒之后再返回。•深度学习的样本都是独立的,而RL中的state状态却是相关的,前后的状态是有影响的,这显而易见。•深度学习的目标分布是固定的。但增强学习,分布却是一直变化的。增强学习要结合深度学习存在的三个问题:•没有标签怎么办?•样本相关性太高怎么办?•目标分布不固定怎么办?解决之道CNN+Q-Learning=DeepQNetwork:通过Q-Learning使用Qvalue来构造标签通过experiencereplay的方法来解决相关性及非静态分布问题DQN算法DQN算法•记忆库(用于重复学习)•神经网络计算Q值•暂时冻结q_target参数(切断相关性)为了使用Tensorflow来实现DQN,比较推荐的方式是搭建两个神经网络,target_net用于预测q_target值,他不会及时更新参数.eval_net用于预测q_eval,这个神经网络拥有最新的神经网络参数.不过这两个神经网络结构是完全一样的,只是里面的参数不一样.DQN网络结构DQN网络结构DQN结构设置•在DQN中引入卷积层DQN结构设置•加入ExperienceReplay.因为深度学习需要大量的样本,所以传统的Q-learning的onlineupdate的方法可能不太适合DQN。ExperienceReplay的主要思想是存储Agent的Experience(即样本),并且每次训练时随机抽取一部分样本供给网络学习。DQN结构设置•使用两个DQN网络。第二个DQN网络用来辅助训练,一般称其为targetDQN,它的作用是辅助计算目标Q值,即提供学习目标公式里的maxaQ(st+1,a)。这样做的目的是避免让网络训练陷入目标Q值与预测Q值的反馈循环中。DQN结构设置•DoubleDQN网络中在主DQN上通过其最大Q值选择Action,再去获取这个Action在targetDQN上的Q值。这样主网络负责选择Action,而这个被选定的Action的Q值则由targetDQN生成。DuelingDQNDuelingDQN将Q值的函数Q(st,at)拆成两部分,一部分是静态的环境状态本身具有的价值V(st),称为Value;另一部分是动态的通过选择某个Action额外带来的价值A(at),称为Advantage。而Q值由这两部分组合而成:DQN结构设置)()(),(ttttaAsVasQDQN-environmentDuelingDQNDQNDQNDQNthanks
本文标题:深度强化学习
链接地址:https://www.777doc.com/doc-4320591 .html