强化学习调研(待补充)

强化学习概念

强化学习(Reinforcement learning(RL))是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。在机器学习问题中,环境通常被规范为马可夫决策过程(MDP),所以许多强化学习算法在这种情况下使用动态规划技巧。
强化学习和标准的监督式学习之间的区别在于,它并不需要出现正确的输入/输出对,也不需要精确校正次优化的行为。强化学习更加专注于在线规划,需要在探索(在未知的领域)和遵从(现有知识)之间找到平衡。

基本组成

基本属性有环境(标准的为静态stationary,对应的non-stationary),agent(与环境交互的对象),动作(action space,环境下可行的动作集合,离散or连续),反馈(回报,reward)。

基本的强化学习模型

基本的强化模型是一个马尔可夫决策过程:
1.一组环境和agent状态S ;
2.对agent的一组动作,A ;
3. p_a (s,s^` )=Pr⁡(s_(t+1)=s^` |s_t=s,a_t=a)是从状态s到状态s'在动作a中转换的概率。
4.R_a (s,s^` )是 s到s^`在动作a中直接的反馈。
5.关于agent观察描述的规则
规则通常是随机的。观察通常涉及与最后一次转换相关的标量直接奖励。在许多作品中,agent被假定为观察当前的环境状态(完全可观察性)。如果不是这样,那么agent就具有部分可观察性。有时,agent可以使用的一系列行为是有限的(如果余额为零,则不能减少)。
强化学习代理以不连续的时间步骤与其环境进行交互。在每个时间t,agent都会收到一个观察结果O_t,通常包括奖励r_t。然后它选择一个行动a_t从一系列可用的行动中,随后发送到环境。环境转移到新的状态s_(t+1)和奖励r_t与过渡有关(s_t,a_t,s_(t+1))决心,决意,决定。强化学习代理的目标是收集尽可能多的奖励。该agent可以选择任何行动作为历史的一个功能,它甚至可以随机的动作选择。
当agent的表现与最佳表现的agent的表现相比时,表现的差异就会引起遗憾的概念。为了以最佳方式行动,agent必须为其行动的长期后果(即最大化未来收入)作出推论,尽管与此相关的直接奖励可能是负面的。
因此,强化学习尤其适用于包括长期与短期报酬权衡的问题。

强化学习特点

1.  强化学习是试错学习(Trail-and-error),由于没有直接的指导信息,智能体要以不断与环境进行交互,通过试错的方式来获得最佳策略。
2.  延迟回报,强化学习的指导信息很少,而且往往是在事后(最后一个状态)才给出的,这就导致了一个问题,就是获得正回报或者负回报以后,如何将回报分配给前面的状态。

强化学习算法

一般讨论在状态完全可见和考虑动作的马尔可夫决策过程的最优策略

强化学习算法分类

Model-free和Model-based
Model-free即为不了解环境,而Model-based即为尝试用模型代表环境。
Model-free 的方法有很多, 像 Q-learning, Sarsa, Policy Gradients 都是从环境中得到反馈然后从中学习. 而 model-based RL 只是多了一道程序, 为真实世界建模, 也可以说他们都是 model-free 的强化学习, 只是 model-based 多出了一个虚拟环境,

基于概率和基于价值

基于概率是强化学习中最直接的一种, 能通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动,所以每种动作都有可能被选中, 只是可能性不同。而基于价值的方法输出则是所有动作的价值,根据最高价值来选着动作, 相比基于概率的方法, 基于价值的决策部分更为确定, 会选价值最高的, 而基于概率的, 即使某个动作的概率最高, 但是还是不一定会选到它。
比如在基于概率的方法有 Policy Gradients, 在基于价值的方法有 Q learning, Sarsa 等. 以及结合这两类方法的优势之处的Actor-Critic, actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程.

回合更新和单步更新

回合更新指的是单次学习开始后, 我们要等待单次学习结束, 然后再总结这一回合中的所有转折点, 再更新我们的行为准则. 而单步更新则是在单次学习进行中每一步都在更新, 不用等待单次学习的结束。
Monte-carlo learning 和基础版的 policy gradients等都是回合更新制, Q-learning, Sarsa, 升级版的 policy gradients 等都是单步更新制。因为单步更新更有效率, 所以现在大多方法都是基于单步更新。比如有的强化学习问题并不属于回合问题。

在线学习和离线学习

在线学习, 就是指必须在场学习, 而离线学习是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习。
最典型的在线学习就是 Sarsa 了, 还有一种优化 Sarsa 的算法, 叫做 Sarsa lambda, 最典型的离线学习就是 Q-learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如Deep-Q-Network。

主要算法

Q-learing

Q为动作效用函数(action-utility function),用于评价在特定状态下采取某个动作的优劣。Q被初始化为一个可能的任意固定值(由程序员选择)。然后,在每个时间 t代理选择一个动作a_t并观察奖励r_t和一个新的状态s_(t+1),这可能取决于以前的状态s_t和选定的动作,Q已更新。算法的核心是一个简单的值迭代更新,使用旧值和新信息的加权平均:

学习率α决定新获得的信息将覆盖旧信息的程度。因子为0将使代理人不学习任何东西,而因子1将使代理人只考虑最新的信息。在完全确定性的环境中,学习率为a_t=1是最佳的。当问题为随机时,算法在一些技术条件下仍然收敛于学习速率,要求它减少到零。在实践中,通常使用恒定的学习率,例如a_t=0.1对全部t。
折扣因素γ决定未来奖励的重要性。因子0将使代理人“近视”(或短视),只考虑当前的奖励,而接近1的因素将使其争取长期的高回报。如果贴现因子达到或超过1,则动作值可能会发生变化 
由于Q学习是一种迭代算法,因此在第一次更新发生之前,它隐含地假设一个初始条件。较高的初始值,也称为“乐观初始条件”,可以鼓励探索:不管选择什么动作,更新规则都会使得它的值比其他选项低,从而增加了它们的选择概率。

Sarsa
Sarsa(lambda)
DQN
Policy Gradients
Actor Critic
Deep Deterministic Policy Gradient (DDPG)
Asynchronous Advantage Actor-Critic (A3C)


写在最后:这是我之前做的一些技术初步调研,主要目的是了解和展示一些技术,并进行了一些个人总结,其中必然有疏漏。其中引用了不少论文,百科和他人博客,但因为时间太久大都忘了出处,如果侵权提示后删除

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值