七月算法强化学习 第六课 学习笔记

强化学习要点大纲:

1.强化学习的难点?

1)credit assignment problem
2)the exploration-exploitation dilemma

2.怎么定义强化学习?

1)马尔科夫决策过程

3.怎么把“眼光”放长远?

1)discounted future reward

4.怎么预估“未来收益”?

1)table-based Q-learning

5.状态空间太大怎么办?

1)使用深度神经网络

6.如何实际应用?

1)“重演”策略


强化学习问题



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

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

马尔科夫决策过程(MDP)

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

强化学习的难点?



Discounted Future Reward


Q-learning



Deep Q Network


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

o 改造一下:只接受一个状态作为输入,然后输出所有动作的分数(具体来讲是动作个数大小的向量),这样一次前向运算可以得到所有动作的得分



Experience Replay 经验回放

1)我们可以用Q-learning的算法估计未来奖励,并能够用一个卷积神经网络近似Q-函数。
2) 但使用Q 值近似非线性的Q-函数可能非常不稳定。即使使用很多小技巧使得这个函数收敛。在单GPU上也可能需要一个星期的时间训练模型。

最重要的技巧是经验回放(experience replay)
p 在玩游戏的过程中,所有经历的都被记录起来。
p 训练神经网络时,我们从这些记录的中随机选取一些mini-batch作为训练数据训练,而不是按照时序地选取一些连续的。
p 按时序选取,训练实例之间相似性较大,网络很容易收敛到局部最小值


Exploration-Exploitation

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值