目录
- 概念
- 和监督学习,非监督学习的区别
- 分类
- 应用举例
概念
强化学习(Reinforcement Learning,简称RL)是机器学习的一个重要分支,前段时间人机大战的主角AlphaGo正是以强化学习为核心技术击败人类。在强化学习中,包含两种最基本的元素:状态与动作,在某个状态下执行某种动作,这便是一种策略,学习器要做的就是通过不断探索学习,从而获得一个好的策略。例如:在围棋中,一种落棋的局面就是一种状态,若能知道每种局面下的最优落子动作,那就必胜无疑。
强化学习任务通常使用马尔科夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:机器处在一个环境中,每个状态为机器对当前环境的感知;机器只能通过动作来影响环境,当机器执行一个动作后,会使得环境按照某种概率转移到另一个状态;同时,环境会根据潜在的奖赏函数反馈给机器一个奖赏。综合而言,强化学习主要包含四个要素:状态、动作、转移概率以及奖赏函数。
根据上图,agent(智能体)在进行某个任务时,首先与environment进行交互,产生新的状态state,同时环境给出奖励reward,如此循环下去,agent和environment不断交互产生更多新的数据。强化学习算法就是通过一系列的动作策略与环境交互,产生新的数据,再利用新的数据去修改自身的动作策略,经过数次迭代之后,agent就会学习到完成任务所需要的动作策略。
和监督学习,非监督学习的区别
说区别之前,先引入强化学习中两个重要概念:探索(exploration)和开发(exploitation)。RL采用的是边获得样例边学习的方式,在获得样例之后更新自己的模型,利用当前的模型来指导下一步的行为,下一步的行动获得reward之后再更新模型,不断迭代重复直到模型收敛。探索是指选择之前没执行过的action,从而探索更多的可能性;开发是指选择选择已经执行过的action,从而对已知的action的模型进行完善。 举个例子:下图中的曲线代表函数f(x),它是一个未知的[a,b]的连续函数,现在让你选择一个x是的f(x)取得最大值,规则是你可以通过自己给定x来查看其所对应的f(x),假如通过在[a,0]之间的几次尝试你发现现在接近x1的时候值比较大,于是你想通过在x1附近不断尝试和逼近来寻找这个可能的"最大值",这个就 称为是开发,但是在[0,b]之间就是一个未知的领域,这时若选择这一部分的点就成为探索,如果不进行暗锁也许找到的只是一个局部的极值。探索和开发在RL中同样重要,如何在探索和开发之间权衡是RL中的一个重要的问题和挑战。
接下来说说RL和监督学习和非监督学习的区别:
- 监督学习使用一个已经标记好的训练集中学习,每一个样本都有对应的标签,每个标签可以视为应该执行的正确的action,但是监督学习不能学习交互的情景,因为在跟环境交互的时候获得期望行为的样例是非常不实际的,比如围棋这种,有成千上万种组合情况,不可能每一种都有对应最好的行为标签。监督学习只能“开发”,即从自己的经历(experience)中学习,而根据自己的经历做出的action并非是最优的。而RL就会在没有任何经历(标签)的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整自己的行为,通过不断地调整,算法就可以学习到在什么情况下选择什么样的行为可以得到最好的结果。
- 监督学习和强化学习都会学习出输入到输出的一个映射关系,监督学习学习出的是什么样的输入对应着什么样的输出,而强化学习学习出的是给机器的反馈,即reward信号,用来判断这个行为的好坏。
- 强化学习的结果反馈有延时,有时候可能需要很多步的action才知道以前的某一步的选择是好还是坏,而监督学习做了比较坏的选择会立刻反馈给算法。
- 强化学习面对的输入时刻都在变化,每当算法做出一个行为,它影响下一次决策的输入,而监督学习的输入都是独立同分布的。
- 非监督学习可以说是从一堆没标记的样本中发现隐藏的结构,学习的不是一个映射,是一种模式。例如在向用户推荐新闻文章的任务中,非监督式会找到用户先前已经阅读过类似的文章并向他们推荐其一,而强化学习将通过向用户先推荐少量的新闻,并不断获得来自用户的反馈,最后构建用户可能会喜欢的文章的“知识图”。
分类
我们知道,强化学习关键要素:agent(智能体),reward(奖励),action(行为),state(每一步的状态),environment(环境)。
- agent:主要涉及到:策略(Policy),价值函数(Value Function)和模型(Model)。Policy,可以理解为行动指南,让agent执行什么action,在数学上可以理解为状态state到动作action的映射,可以分为确定性策略(Deterministic policy)和随机性策略(Stochastic policy),前者是指在某特定的状态下执行某个特定动作,后者是根据概率来执行某个动作。Value Function,对未来总Reward的一个预测。Model,一个对环境的认知框架,可以预测采取动作后的下一个状态是什么,很多情况下是没有模型的,agent只能通过与环境互动来提升策略。
- state:可以细分为三种:Environment State,Agent State和Information State。Environment State是agent所处环境包含的信息,简单理解就是很多特征数据,也包含了无用的数据。Agent State是输入给agent的信息,也就是特征数据。Information State是一个概念,即当前状态包含了对未来预测所需要的有用信息。过去信息对未来预测不重要,该状态就满足马尔科夫性(Markov Property)。Environment State,Agent State都可以是Markov Property。
- environment:可以分为完全可观测环境(Fully Observable Environment)和部分可观测环境(Partially Observable Environment)。Fully Observable Environment就是agent了解了整个环境,显然是一个理想情况。Partially Observable Environment是agent了解部分环境的情况,剩下的需要靠agent去探索。
强化学习算法那按照agent分类,可以分为下面几类:
- 关注最优策略(Policy based)
- 关注最优奖励总和(Value based)
- 关注每一步的最优行动(Action based)
当然还可以从其他角度分类:
- Model-free:不尝试去理解环境, 环境给什么就是什么,一步一步等待真实世界的反馈, 再根据反馈采取下一步行动。
- Model-based:先理解真实世界是怎样的, 并建立一个模型来模拟现实世界的反馈,通过想象来预判断接下来将要发生的所有情况,然后选择这些想象情况中最好的那种,并依据这种情况来采取下一步的策略。它比 Model-free 多出了一个虚拟环境,还有想象力。
- Policy based:通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动。
- Value based:输出的是所有动作的价值, 根据最高价值来选动作,这类方法不能选取连续的动作。
- Monte-carlo update:游戏开始后, 要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新行为准则。
- Temporal-difference update:在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样就能边玩边学习了。
- On-policy:必须本人在场, 并且一定是本人边玩边学习。
- Off-policy:可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则。
主要算法用以下几种,今天只是通过表格列举,接下里几天将会选择几种着重介绍。
应用举例
强化学习除了大家熟知的无人驾驶,AlphaGo,玩游戏之外,还有下面这些工程中实用的例子:
- Manufacturing 例如一家日本公司 Fanuc,工厂机器人在拿起一个物体时,会捕捉这个过程的视频,记住它每次操作的行动,操作成功还是失败了,积累经验,下一次可以更快更准地采取行动。
- Inventory Management 在库存管理中,因为库存量大,库存需求波动较大,库存补货速度缓慢等阻碍使得管理是个比较难的问题,可以通过建立强化学习算法来减少库存周转时间,提高空间利用率。
- Dynamic pricing 强化学习中的 Q-learning 可以用来处理动态定价问题。
- Customer Delivery 制造商在向各个客户运输时,想要在满足客户的所有需求的同时降低车队总成本。通过 multi-agents 系统和 Q-learning,可以降低时间,减少车辆数量。
- ECommerce Personalization 在电商中,也可以用强化学习算法来学习和分析顾客行为,定制产品和服务以满足客户的个性化需求。
- Ad Serving 例如算法 LinUCB (属于强化学习算法 bandit 的一种算法),会尝试投放更广范围的广告,尽管过去还没有被浏览很多,能够更好地估计真实的点击率。 再如双 11 推荐场景中,阿里巴巴使用了深度强化学习与自适应在线学习,通过持续机器学习和模型优化建立决策引擎,对海量用户行为以及百亿级商品特征进行实时分析,帮助每一个用户迅速发现宝贝,提高人和商品的配对效率。还有,利用强化学习将手机用户点击率提升了 10-20%。
- Financial Investment Decisions 例如这家公司 Pit.ai,应用强化学习来评价交易策略,可以帮助用户建立交易策略,并帮助他们实现其投资目标。
- Medical Industry 动态治疗方案(DTR)是医学研究的一个主题,是为了给患者找到有效的治疗方法。例如癌症这种需要长期施药的治疗,强化学习算法可以将患者的各种临床指标作为输入 来制定治疗策略。