七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

本文介绍了强化学习的关键概念和技术,如马尔可夫决策过程、Q-learning算法及深度Q网络等。探讨了强化学习面临的挑战,如信用分配问题和探索-利用困境,并详细解释了如何在复杂环境中应用这些技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

强化学习相关成就:

o Learned the world’s best player of Backgammon (Tesauro 1995) 
o Learned acrobatic helicopter autopilots (Ng, Abbeel, Coates et al2006+) 
o Widely used in the placement and selection of advertisements onthe web (e.g. A-B tests) 
o Used to make strategic decisions in Jeopardy! (IBM’s Watson 2011) 
o Achieved human-level performance on Atari games from pixel-level visual input, in conjunction with deep learning (Google Deepmind 2015) 
o In all these cases, performance was better than could be obtained by any other method, and was obtained without human instruction 


RL+Deep Learning Performance on Atari Games:

o Space Invaders

o Breakout

o Enduro 


强化学习+深度学习:

Crazy Stone and Zen -> AlphaGo(Oct 2015) -> AlphaGo(Mar 2016)


强化学习要点大纲:

o强化学习的难点?
   credit assignment problem
   the exploration-exploitation dilemma
o怎么定义强化学习?
   马尔可夫决策过程
o怎么把“眼光”放长远?
   discounted future reward
o怎么预估“未来收益”?
   table-based Q-learning 算法
o状态空间太大怎么办?
   使用深度神经网络
o如何实际应用
   “重演”策略


强化学习问题



o Atari Breakout游戏
   三种动作:向左,向右以及开火(把球射出)
   状态:所处的位置,屏幕上方状况等
   奖励:得分增减
o 传统有监督?无监督?
o 强化学习:有稀疏并延时的标签——奖励

o 信用分配问题 (credit assignment problem) 
   击中砖块并且得分和前一时刻如何移动横杆没有直接关系
   前面某一时刻的横杆移动有作用
o 探索-利用困境(exploration-exploitation dilemma)
   游戏开始,只发射球,不移动横杆,你总是能得10分的
   满足于得分还是去探索更多的可能性?(可能更好或者更坏)

马尔可夫决策过程(MDP)

o 操作者或智能体(agent)
o 状态(state)(比如横杆的位置,球的位置,球的方向,当
前环境中的砖块等等)
o 动作(actions)(比如向左或向右移动横杆)
o 奖励(reward)(比如分数的增加)
o 策略(policy):在state下采取行动的原则

强化学习的难点?


Discounted Future Reward


Q-learning


Q-learning经典例子:http://fromwiz.com/share/s/1CGZRH2S1Aro2gtjMB0TJPbh2WMt0I1fPkJq26Z6cI3pS8GI

Deep Q-Network

o 能不能设计一种通用的表示游戏状态的方法呢? => 屏幕像素
o 采用连续两个游戏屏幕的像素,球速和方向等各种信息也可以表示出来
o 屏幕大小84*84,每个像素点有256个灰度值,总共256^(84*84*4)~10^67970种可能的状态
o Q-table有10^67970行,且非常稀疏(有很多状态遇不到!!)
o 用一个神经网络对Q-函数进行建模

o 神经网络接收一个状态(连续四步的屏幕)和一个动作,然后输出对应的Q-函数的值
o 改造一下:只接受一个状态作为输入,然后输出所有动作的分数(具体来讲是动作个数大小的向量),这样一次前向运算可以得到所有动作的得分



Experience Replay 经验回放

o 我们可以用Q-learning的算法估计未来奖励,并能够用一个卷积神经网络近似Q-函数。
o 但使用Q 值近似非线性的Q-函数可能非常不稳定。即使使用很多小技巧使得这个函数收敛。在单GPU上也可能需要一个星期的时间训练模型。
o 最重要的技巧是经验回放(experience replay)
   在玩游戏的过程中,所有经历的都被记录起来。
   训练神经网络时,我们从这些记录的中随机选取一些mini-batch作为训练数据训练,而不是按照时序地选取一些连续的。
   按时序选取,训练实例之间相似性较大,网络很容易收敛到局部最小值。

Exploration-Exploitation 

o Q-learning算法尝试解决信用分配问题
   通过Q-learning,奖励被回馈到关键的决策时刻
o 依旧存在的是探索-利用困境
   在游戏开始阶段,Q-table或Q-network是随机初始化的。它给出的Q-值最高的动作是完全随机的,智能体表现出的是随机的“探索”。
   当Q-函数收敛时,随机“探索”的情况减少。所以,Q-learning中包含“探索”的成分。但是这种探索是“贪心”的,它只会探索当前模型认为的最好的策略。
o 一种简单修正技巧:
   \epsilon-贪心探索
   以\epsilon的概率选取随机的动作做为下一步动作,1-\epsilon的概率选取分数最高的动作。
   DeepMind的系统中,\epsilon随着时间从1减少到0.1。这意味着开始时,系统完全随机地探索状态空间,最后以固定的概率探索。

Deep Q-learning Algorithm


DeepMind还使用了一系列其他的技巧,比如:目标网络、误差截断、回馈截断
新的论文进展包括Double Q-learning, Prioritized Experience Replay, Dueling Network Architecture, extension to continuous action space 

应用:Flappy-bird:https://github.com/yenchenlin/DeepLearningFlappyBird




Prioritized Replay 是 Deep Q-Network (DQN) 中的一种重要改进算法。在传统的 DQN 算法中,模型训练是基于经验回放技术的。简单来说,就是将之前的一些观察和动作的经验随机地从经验池中抽取出来进行训练。但是,这种随机抽样并没有考虑到每个经验的重要性。有些经验虽然出现的次数很少,但是对模型的训练影响很大。因此,如果我们能够对经验进行优先级的排序,就能够更加有效地训练模型。 在 Prioritized Replay 算法中,我们使用了一个优先级队列来对经验进行排序。每个经验的优先级是根据其对模型训练的贡献来计算的。具体来说,每个经验的优先级为: $P_i = |\delta_i| + \epsilon$ 其中 $|\delta_i|$ 表示当前状态下真实 Q 值估计 Q 值之差的绝对值,$\epsilon$ 是一个很小的常数,避免了某些经验的优先级为 0。这个公式的意思是,我们更倾向于选择那些真实 Q 值估计 Q 值之差较大的经验进行训练。 在进行经验回放时,我们根据经验的优先级从优先级队列中抽取出经验。我们还需要一个重要的参数 $\alpha$,它表示优先级的重要程度。在优先级队列中,每个经验的优先级 $P_i$ 都会被赋予一个权重 $w_i$,它表示该经验在训练中的重要性。这个权重的计算公式为: $w_i = (\frac{1}{N} \frac{1}{P_i})^{\alpha}$ 其中 $N$ 是经验池中经验的总数,$\alpha$ 是一个超参数,控制优先级的重要程度。这个公式的意思是,优先级较高的经验在训练中得到的权重也较高,从而更加有效地更新模型。 需要注意的是,在 Prioritized Replay 算法中,我们对经验进行了优先级排序,但是这并不意味着我们只选择优先级高的经验进行训练。为了保证训练的稳定性,我们还需要引入一个随机因素,以一定的概率从优先级较低的经验中进行抽样。 总之,Prioritized Replay 算法通过对经验进行优先级排序,从而更加有效地训练模型。它是 DQN 算法的一个重要改进,被广泛地应用于深度强化学习领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值