常识性知识:
RL学习的转移过程图示(机器就是agent)
- agent 选择一个action输入到environment中,envirment会反馈(输出)一个reward和转移到的state,agent再根据这些信息选择新的action
基本框架
- agent 根据 environment 选择 action,通过这个action 改变 environment,根据environment的变化,Agent 获得某种reward. RL 的目的是决定代理的行动方法来获得更好的报酬
Reinforcement Learning Method 分类
- Mode-Based RL:不理解环境(只能等待环境的反馈采取行动)
- Mode-Free RL:理解环境,建立模型模拟环境的反馈(可以通过想象预判断所有情况,选择最好的一种)
- Policy-Based RL:输出所有action的概率,根据概率选择action,实际上不一定选择概率最高的动作(利用概率分布可以解决连续的action的问题) eg:Policy Gradient
- Value-Based RL:输出所有action的值,只选择价值最高的action(只能解决离散的action的问题)eg:Q Learning ,Sarsa
- Actor-Critic:结合两种方法的优势,Actor 基于概率选择动作,Critic根据选择的动作给出动作的价值
- Monte-Carlo update:回合更新 eg:Monte-Carlo,基础版Policy Gradient
- Temporal-Difference:单步更新(更有效率) eg:Q Learning ,Sarsa ,升级版Policy Gradient
- On-Policy:在线学习(必须本人在学习) eg: Sarsa,Sarsa(lanmeida)
- Off-Policy:离线学习(可以学习别人的经验,也不必要是在线的,可以先存储经历,后学习)eg:Q Learning,Deep Q network
Q Learning
- value-based
- Temporal-Difference
- off-policy
期望reward的获取(计算)方法
- exploration-only(探索):对每种进行平均(概率均等)的测试,统计最优
- exploitation-only(利用):利用到目前为止,最优的
ε-greedy(折中方法1)
- 每次尝试时,以ε概率进行探索(即以均匀概率随机选取一个),以1-ε的概率利用(选择当前平均奖赏最高的action,若有多个随机选取一个)
- 算法描述(摇臂数对应action数量)
- ε(探索概率)的选取方法:初始值(0.1/0.01)+随时间递减
softmax(折中方法2)
Q Learning 过程:
- α是learning rate,含义是有多快地抛弃旧值、生成新值的度量。如果学习率是 1,新的估计值会成为新的 Q 值,并完全抛弃旧值
- γ是discount factor
Q Learning 过程总结:
循环做如下的步骤
- 在当前的state下根据policy(如ε-greedy)选择action
- 向environment输入action,观测环境反馈的state’和reward
- 更新Q表中的Q(s,a)值,更新为:老的Q(s,a)+lr*{(reward+γ*Q(s',?)中的最大估计)-Q(s,a)}
DQN - Deep Q network
Description
- 神经网络+Q learning
- 基于表格的缺点:实际问题中state过多(甚至无法存储),同时在表格中搜索也很耗时
使用神经网络
- 将状态和动作当成神经网络的输入, 然后经过神经网络分析后得到动作的 Q 值(这样就没必要在表格中记录 Q 值, 而是直接使用神经网络生成 Q 值)
- 或者,只输入状态值, 输出所有的动作值, 然后按照 Q learning 的原则, 直接选择拥有最大值的动作当做下一步要做的动作
神经网络的学习和训练(参数更新方法)
图中s2指的就是当前所处的state
对于一次训练具体而言(下图):
- NN 预测出Q(s, a1) ,Q(s,a2),... 的值 (这就是 Q 估计),然后选取 Q 估计中最大值的动作来换取环境中的奖励 reward(这就能得到Q现实),然后再利用上图(类似于Q learning的方法)更新NN中的参数
RL中数据的关联问题
- 对神经网络进行训练时,存在的假设是独立同分布。而通过强化学习采集到的数据之间存在着关联性,利用这些数据进行顺序训练,神经网络当然不稳定。
DQN的两大重要方法(解决RL中数据的连续获取导致的关联性(相关性)问题)
- experice replay:Q learning 是一种 off-policy 离线学习法, 它能学习当前经历着的, 也能学习过去经历过的, 甚至是学习别人的经历. 所以每次 DQN 更新的时候, 可以随机抽取一些之前的经历进行学习. 随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率.
- fixed Q-target:也是一种打乱相关性的机理,需要在 DQN 中使用到两个结构相同但参数不同的神经网络, 预测 Q 估计 的神经网络具备最新的参数, 而预测 Q 现实 的神经网络使用的参数则是很久以前的.