开发者自述:我是这样理解强化学习的互联网+

雷锋网 2017-07-17 17:09
分享到:
导读

而监督学习做了比较坏的选择会立刻反馈给算法,  这个算法就是强化学习的一种,  强化学习和非监督式学习的区别。

虽然是周末,也保持充电,今天来看看强化学习,不过不是要用它来玩游戏,而是觉得它在制造业,库存,电商,广告,推荐,金融,医疗等与我们生活息息相关的领域也有很好的应用,当然要了解一下了。 定义 强化学习是机器学习的一个重要分支,是多学科多领域

  虽然是周末,也保持充电,今天来看看强化学习,不过不是要用它来玩游戏,而是觉得它在制造业,库存,电商,广告,推荐,金融,医疗等与我们生活息息相关的领域也有很好的应用,当然要了解一下了。

   定义

  强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决decision making 问题,即自动进行决策,并且可以做连续决策。

  它主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。

  让我们以小孩学习走路来做个形象的例子:

  小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。

  小孩就是 agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能走路时,就不会给巧克力。

   和监督式学习, 非监督式学习的区别

  在机器学习中,我们比较熟知的是监督式学习,非监督学习,此外还有一个大类就是强化学习:

  强化学习和监督式学习的区别:

  监督式学习就好比你在学习的时候,有一个导师在旁边指点,他知道怎么是对的怎么是错的,但在很多实际问题中,例如 chess,Go,这种有成千上万种组合方式的情况,不可能有一个导师知道所有可能的结果。

  而这时,强化学习会在没有任何标签的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行为,就这样不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。

  就好比你有一只还没有训练好的小狗,每当它把屋子弄乱后,就减少美味食物的数量(惩罚),每次表现不错时,就加倍美味食物的数量(奖励),那么小狗最终会学到一个知识,就是把客厅弄乱是不好的行为。

  两种学习方式都会学习出输入到输出的一个映射,监督式学习出的是之间的关系,可以告诉算法什么样的输入对应着什么样的输出,强化学习出的是给机器的反馈 reward function,即用来判断这个行为是好是坏。

  另外强化学习的结果反馈有延时,有时候可能需要走了很多步以后才知道以前的某一步的选择是好还是坏,而监督学习做了比较坏的选择会立刻反馈给算法。

  而且强化学习面对的输入总是在变化,每当算法做出一个行为,它影响下一次决策的输入,而监督学习的输入是独立同分布的。

  通过强化学习,一个 agent 可以在探索和开发(exploration and exploitation)之间做权衡,并且选择一个最大的回报。

  exploration 会尝试很多不同的事情,看它们是否比以前尝试过的更好。

  exploitation 会尝试过去经验中最有效的行为。

  一般的监督学习算法不考虑这种平衡,就只是是 exploitative。

  强化学习和非监督式学习的区别:

  非监督式不是学习输入到输出的映射,而是模式。例如在向用户推荐新闻文章的任务中,非监督式会找到用户先前已经阅读过类似的文章并向他们推荐其一,而强化学习将通过向用户先推荐少量的新闻,并不断获得来自用户的反馈,最后构建用户可能会喜欢的文章的“知识图”。

  主要算法和分类

  从强化学习的几个元素的角度划分的话,方法主要有下面几类:

  Policy based, 关注点是找到最优策略。

  Value based, 关注点是找到最优奖励总和。

  Action based, 关注点是每一步的最优行动。

  我们可以用一个最熟知的旅行商例子来看,

  我们要从 A 走到 F,每两点之间表示这条路的成本,我们要选择路径让成本越低越好:

  那么几大元素分别是:

  states ,就是节点 {A, B, C, D, E, F}

  action ,就是从一点走到下一点 {A -> B, C -> D, etc}

  reward function ,就是边上的 cost

  policy,就是完成任务的整条路径 {A -> C -> F}

  有一种走法是这样的,在 A 时,可以选的 (B, C, D, E),发现 D 最优,就走到 D,此时,可以选的 (B, C, F),发现 F 最优,就走到 F,此时完成任务。

  这个算法就是强化学习的一种,叫做epsilon greedy,是一种Policy based 的方法,当然了这个路径并不是最优的走法。

  此外还可以从不同角度使分类更细一些:

  如下图所示的四种分类方式,分别对应着相应的主要算法:

  Model-free:不尝试去理解环境, 环境给什么就是什么,一步一步等待真实世界的反馈, 再根据反馈采取下一步行动。

  Model-based:先理解真实世界是怎样的, 并建立一个模型来模拟现实世界的反馈,通过想象来预判断接下来将要发生的所有情况,然后选择这些想象情况中最好的那种,并依据这种情况来采取下一步的策略。它比 Model-free 多出了一个虚拟环境,还有想象力。

  Policy based:通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动。

  Value based:输出的是所有动作的价值, 根据最高价值来选动作,这类方法不能选取连续的动作。

  Monte-carlo update:游戏开始后, 要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新行为准则。

  Temporal-difference update:在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样就能边玩边学习了。

  On-policy:必须本人在场, 并且一定是本人边玩边学习。

  Off-policy:可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则。

  主要算法有下面几种,今天先只是简述:

  1. Sarsa

  Q 为动作效用函数(action-utility function),用于评价在特定状态下采取某个动作的优劣,可以将之理解为智能体(Agent)的大脑。

  SARSA 利用马尔科夫性质,只利用了下一步信息, 让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新,更新公式如下所示:

  s 为当前状态,a 是当前采取的动作,s’ 为下一步状态,a’ 是下一个状态采取的动作,r 是系统获得的奖励, α 是学习率, γ 是衰减因子。

  2. Q learning

  Q Learning 的算法框架和 SARSA 类似, 也是让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新。关键在于 Q Learning 和 SARSA 的更新公式不一样,Q Learning 的更新公式如下:

学习 强化 算法 行为 反馈
分享到:

1.TMT观察网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.TMT观察网的原创文章,请转载时务必注明文章作者和"来源:TMT观察网",不尊重原创的行为TMT观察网或将追究责任;
3.作者投稿可能会经TMT观察网编辑修改或补充。


观点约架