近期忙里偷闲,抽空听了百度飞桨团队制造了强化学习7日打卡营,课程从强化学习最基础的概念开始讲起,逐步过渡到RL的经典算法SARSA, Q-Learning, DQN, DDPG的介绍和实例分析,深入浅出,讲解的非常细致。听完课后,对强化学习的基础知识和整体框架都有了一个初步的概念,为后续进一步的学习打下了基础。
强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。
核心思想:智能体agent在环境environment中学习,根据环境的状态state(或观测到的observation),执行动作action,并根据环境的反馈 reward(奖励)来指导更好的动作。
强化学习问题的解法有表格法、神经网络的方法、基于策略梯度求解和在连续动作空间上求解。
表格法又有sarsa和q-learning两种,Sarsa全称是state-action-reward-state'-action',目的是学习特定的state下,特定action的价值Q,最终建立和优化一个Q表格,以state为行,action为列,根据与环境交互得到的reward来更新Q表格。
Q-learning也是采用Q表格的方式存储Q值(状态动作价值),决策部分与Sarsa是一样的,采用ε-greedy方式增加探索。
Q-learning跟Sarsa不一样的地方是更新Q表格的方式。
Sarsa是on-policy的更新方式,先做出动作再更新。
Q-learning是off-policy的更新方式,更新learn()时无需获取下一步实际做出的动作next_action,并假设下一步动作是取最大Q值的动作。
DQN ,深度Q-Learning(Deep Q-Learing)是用神经网络求解q-learning的方法,Q值的计算不是直接通过状态值s和动作计算,而是通过Q神经网络来计算。
DQN的输入是状态s对应的状态向量,输出是所有动作在该状态下的动作价值函数Q,Q网络可以是DNN, CNN或RNN等。
DQN主要使用的技巧是经验回放,即将每次和环境交互得到的奖励与状态更新情况都保存起来,用于后面目标Q值的更新。
通过经验回放得到的目标Q值和通过Q网络计算的Q值存在误差,这时通过梯度的反向传播更新神经网络的参数w,直到参数w收敛。
强化学习中有两种大的求解方法,基于值的(Value-based)和基于策略的(Policy-based)。前面讲到的都是基于值的求解方法,下面还有基于策略的求解方法,Policy Gradient,直接优化策略函数。
Policy Gradient的优化目标用梯度上升来寻找最优的梯度,需要找到一个可优化的函数目标,最简单的优化目标就是初始状态收获的期望。
连续动作空间上求解RL使用到了Actor-Critic算法。Actor-Critic从名字上看包括两部分,演员(Actor)和评价者(Critic)。其中Actor使用策略函数,负责生成动作并和环境交互。而Critic使用价值函数,负责评估Actor的表现,并指导Actor下一阶段的动作。
Deep Deterministic Policy Gradient (DDPG)从名字上看就是深度确定性策略梯度。
其中DPG是相对于随机策略而言,对于某一些动作集合来说,它可能是连续值,或者非常高维的离散值,这样动作的空间维度极大。如果我们使用随机策略,并计算各个可能的动作的价值的话,那需要的样本量是非常大才可行的,因而有人想出了使用确定性策略来简化这个问题,即相同的策略,在同一个状态处,动作是唯一的。
学得好认真啊~~
加油!共同进步!