百度强化学习7日打卡营笔记心得
强化学习(RL)初印象
强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。
核心思想:智能体agent在环境environment中学习,根据环境的状态state(或观测到的observation),执行动作action,并根据环境的反馈 reward(奖励)来指导更好的动作。
Sarsa
Sarsa全称是state-action-reward-state’-action’,目的是学习特定的state下,特定action的价值Q,最终建立和优化一个Q表格,以state为行,action为列,根据与环境交互得到的reward来更新Q表格,更新公式为:
Sarsa在训练中为了更好的探索环境,采用ε-greedy方式来训练,有一定概率随机选择动作输出。
Q-learning
Q-learning也是采用Q表格的方式存储Q值(状态动作价值),决策部分与Sarsa是一样的,采用ε-greedy方式增加探索。
Q-learning跟Sarsa不一样的地方是更新Q表格的方式。
Sarsa是on-policy的更新方式,先做出动作再更新。
Q-learning是off-policy的更新方式,更新learn()时无需获取下一步实际做出的动作next_action,并假设下一步动作是取最大Q值的动作。
Q-learning的更新公式为:
与Sarsa相比,Q-learning由于采用了离线策略的更新方式agent敢于大胆的尝试,做出高风险高收益的动作,Sarsa则偏保守。
DQN
DQN是Q-learning的拓展,普通的Q-learning属于表格型方法,不使用于连续状态(或庞大的离散状态)空间,DQN提出使用神经网络拟合状态价值函数的基础上,并在此基础上提出了两个技巧使得Q网络的更新迭代更稳定。
(1) 经验回放 Experience Replay:主要解决样本关联性和利用效率的问题。使用一个经验池存储多条经验s,a,r,s’,再从中随机抽取一批数据送去训练。
(2)固定Q目标 Fixed-Q-Target:主要解决算法训练不稳定的问题。复制一个和原来Q网络结构一样的Target Q网络,用于计算Q目标值。
Policy Gradient
Policy Gradient(简称PG)属于基于策略(Policy-based)的方法,采用神经网络拟合策略函数,需计算策略梯度用于优化策略网络。
优化的目标是在策略π(s,a)的期望回报:所有的轨迹获得的回报R与对应的轨迹发生概率p的加权和,当N足够大时,可通过采样N个Episode求平均的方式近似表达。
优化目标对参数θ求导后得到策略梯度:
DDPG
在RL领域,DDPG主要从:PG -> DPG -> DDPG 发展而来。它使用了actor网络和critic网络,actor网络用于输入状态输出动作,critic网络将actor输出的动作与状态结合起来拟合状态-动作价值函数。
图片出自https://blog.csdn.net/kenneth_yu/article/details/78478356
学习总结
通过7日的学习,对RL有了初步的了解,使用PARL框架上手实践了几个程序,做作业的过程中由于设错了参数训练了一天都没有结果,后来一拍脑袋发现自己搞错了。强化学习是一个需要耐心和细心的过程,需要掌握原理,熟悉框架,大胆实践才能有所提高。
ps:PARL是一个很好的框架,在此附上地址https://github.com/PaddlePaddle/PARL