精华内容
下载资源
问答
  • 新常态下强化医院群众文化工作的建设力度
  • 收藏 | 强化学习应用简述

    千次阅读 2021-05-13 16:13:39
    比如1992年应用于西洋双陆棋(Backgammon)的TD-Gammon工作。有一些比较有影响的深度强化学习算法,比如,上面提到的DQN算法,还有异步优势行动者-评价者算法(Asynchronous Advantage Actor-Critic, A3C), 深度确定性...

    点上方蓝字人工智能算法与Python大数据获取更多干货

    在右上方 ··· 设为星标 ★,第一时间获取资源

    仅做学术分享,如有侵权,联系删除

    转载于 :图灵人工智能

    最近最让人兴奋的AI新闻是什么?

    AlphaGo!

    AlphaGo的核心技术是什么?

    深度学习和强化学习!

    强化学习有哪些应用?

    非常多!


    强化学习 (reinforcement learning) 经过了几十年的研发,在一直稳定发展,最近取得了很多傲人的成果,后面会有越来越好的进展。强化学习广泛应用于科学、工程、艺术等领域。

    下面简单列举一些强化学习的成功案例,然后对强化学习做简介,介绍两个例子:最短路径和围棋,讨论如何应用强化学习,讨论一些仍然存在的问题和建议,介绍《机器学习》强化学习应用专刊和强化学习应用研讨会,介绍强化学习资料,回顾强化学习简史,最后,简单讨论强化学习的前景。


    成功案例

    我们已经见证了强化学习的一些突破,比如深度Q网络 (Deep Q-Network, DQN)应用于雅达利(Atari)游戏、AlphaGo (也包括AlphaGo Zero和AlphaZero)、以及DeepStack/Libratus等。它们每一个都代表了一大类问题,也都会有大量的应用。DQN应用于雅达利游戏代表着单玩家游戏,或更一般性的单智能体 (agent) 控制问题。DQN点燃了这一波研发人员对深度强化学习的热情。AlphaGo代表着双人完美信息零和游戏。AlphaGo在围棋这样超级难的问题上取得了举世瞩目的成绩,是人工智能的一个里程碑。AlphaGo让普罗大众认识到人工智能,尤其是强化学习的实力和魅力。DeepStack/Libratus代表着双人不完美信息零和游戏,是一类很难的问题,也取得了人工智能里程碑级别的成绩。

    谷歌Deepmind AlphaStar打败了星际争霸人类高手。Deepmind在一款多人抢旗游戏(Catch the Flag)中达到了人类玩家水平。OpenAI Five打败了人类刀塔(Dota)高手。OpenAI训练了类人机器人手Dactyl, 用于灵活地操纵实物。谷歌人工智能把强化学习用到数据中心制冷这样一个实用系统。DeepMimic模拟人形机器人,掌握高难度的运动技能。强化学习也应用于化学分子逆合成和新药设计。等等。

    强化学习也已经被用到产品和服务中。谷歌云的自动机器学习 (AutoML) 提供了自动优化神经元网络结构设计这样的服务。脸书开源了Horizon产品和服务,实现通知传达、视频流比特率优化等功能。谷歌研发了基于强化学习的YouTube视频推荐算法。亚马逊与英特尔合作,发布了一款强化学习实体测试平台AWS DeepRacer. 滴滴出行则把强化学习应用于派单等业务。阿里、京东、快手等把强化学习应用于推荐系统。


    强化学习与相关学科的关系

    强化学习一般看成是机器学习的一种。机器学习从数据中学习做预测或决策。一般把机器学习分为监督学习、无监督学习、和强化学习。监督学习中的数据有标注;无监督学习的数据没有标注。分类和回归是两类监督学习问题,其输出分别是类别和数字。强化学习中有评估反馈,却没有标注数据。评估反馈不能像监督学习中的标注那样指明一个决策正确与否。与监督学习相比,强化学习还有成绩分配、稳定性、探索与利用等方面的挑战。深度学习,也就是通过深度神经元网络进行学习,可以作为或用于上面几种机器学习方法。深度学习是机器学习的一部分,而机器学习又是人工智能的一部分。深度强化学习则是深度学习与强化学习的结合。下图左侧框图为机器学习的分类,引自维基百科;右侧框图是人工智能的分类,引自流行的Russell & Norvig 人工智能教材。

    事实上这些领域都在不断发展。深度学习可以与其它机器学习、人工智能算法一道完成某项任务。深度学习和强化学习正在努力解决一些传统的人工智能问题,比如逻辑、推理、知识表达等。就像流行的Russell & Norvig 人工智能教材所述,可以认为强化学习包括所有的人工智能:在环境中的智能体必须学习如何在里边成功的表现;以及,强化学习可以看成整个人工智能问题的微生物。另外,应该说明,监督学习、无监督学习、强化学习两两之间有一定交叉。

    如下图所示,强化学习与计算机科学、工程、数学、经济学、心理学、神经科学、机器学习、最优控制、运筹学、博弈论、条件反射、奖赏系统等都有内在的联系。此图为David Silver强化学习英文版课件的中文翻译。

    强化学习/人工智能、运筹学、最优控制这些学科都以应用数学、优化、统计为基础,同时为科学工程各方面的应用提供工具。运筹学、最优控制一般需要模型;比如混合整数规划、随机规划等数学表达式就是模型的体现。模型一般不准确、测不准;参数估计一般有误差。强化学习可以不用模型,直接通过数据进行训练,从而做出接近最优或最优的决策。数据可以来自完美模型、精准仿真器、或大数据。强化学习可以处理很复杂的问题。AlphaGo给了一个有力证明。策略迭代提供了一条不断提升性能的途径。强化学习/人工智能、运筹学、最优控制相互促进,各取所长。强化学习得益于动物学习、神经科学、心理学的奖赏系统、条件反射等。同时,强化学习可以解释多巴胺等神经科学中的机制。图中没有展示,但心理学、神经科学为强化学习/人工智能与社会科学、艺术等架设了联系的桥梁。


    强化学习简介

    如下图所示,强化学习智能体 (agent) 与环境 (environment) 交互,针对序列决策问题,通过试错 (trial-and-error) 的方式学习最优策略。强化学习一般定义为马尔科夫决策过程(Markov Decision Process, MDP). 在每一个时间步骤,智能体接受到一个状态 (state),根据策略 (policy) 选择一个动作 (action),获得奖赏 (reward),然后根据环境的动态模型转移到下一个状态。这里面,策略表达智能体的行为,就是状态到动作的映射。强化学习中,经验 (experience) 是指 (状态,动作,奖赏,下一个状态) 这样一系列的数据。在片段式 (episodic) 的环境中,上述过程一直持续直到遇到终止状态,然后重新开始。在连续性 (continuing) 的环境中,则没有终止状态。用一个折扣因子(discount factor)来表达将来的奖赏对现在的影响。模型 (model) 指状态转移模型和奖赏函数。强化学习的适用范围非常广泛:状态和动作空间可以是离散的或连续的,强化学习问题可以是确定性的、随机性的、动态的、或者像一些游戏那样对抗性的。

    状态值函数或动作值函数分别用来度量每个状态或每对状态-动作的价值。是对回报的预测,而回报是长期折扣累积奖赏的期望。动作值函数一般也称为Q函数。最优值函数是所有策略所能得到的最好的值函数;而相应的策略则为最优策略。最优值函数包含了全局优化信息;一般可以比较容易地从最优状态值函数或最优动作值函数得到最优策略。强化学习的目标是得到最优的长期回报或找到最优策略。


    例子:最短路径

    下面举一个强化学习应用于最短路径问题的例子。最短路径问题就是要找起始节点到终止节点之间的最短路径,也就是要最小化它们之间的距离,或者最小化它们之间路径上所有的边的距离的和。最短路径问题如下定义成强化学习问题。当前节点为状态。在每个节点,动作是指顺着相连的边到达邻居节点。转移模型指从某个节点选择通过一条边后到达相应的邻居节点,当前状态或节点也随之改变。奖赏则是刚通过的边的距离的负数。到达终止节点则该片段结束。折扣因子可以设为1,这样就不用区分眼前的边的距离和将来的边的距离。我们可以把折扣因子设成1,因为问题是片段式的。目标是找到一条从起始节点到终止节点的最短路径,最大化整条路径上距离的负数的和,也就最小化了整条路径的距离。在某个节点,最优策略选择最好的邻居节点,转移过去,最后完成最短路径;而对于每个状态或节点,最优值函数则是从那个节点到终止节点的最短路径的距离的负数。

    下图是一个具体的例子。图中有节点、(有向)边、边的距离这些图的信息。我们要找从节点S到节点T的最短路径。强化学习算法并不了解图的全局信息。在节点S,如果我们选择了最近的邻居节点A,那么就没办法找到最短路径S → C → F → T 了。这个例子说明,如果一个算法只关注眼前利益,比如在节点S选择最近的邻居节点A,可能会导致无法找到最优结果。像TD学习和Q学习这样的强化学习方法,考虑了长期回报,都可以找到最优解。

    有的读者可能会问:为什么不用Dijkstra算法?如果我们有节点、边、边的距离这样的图的全局信息,那么Dijkstra算法可以高效地找到最短路径。强化学习算法可以不用这些全局信息,而是用免模型的方式,根据TD学习和Q学习这样的算法在图中不断采集本地信息,更新值函数,最终找到最短路径。Dijkstra算法在知道图的全局信息时,是最短路径的高效算法;而强化学习可以不依托于这些全局信息,比Dijkstra算法的适用面更广,是一般性的优化方法框架。

    另外,强化学习可以处理有随机元素的最短路径问题。而且,目前的一个研究热点是,用机器学习/强化学习去学习一类问题的求解方法;遇到新问题,直接用推断的方式得出答案。


    例子:围棋

    在围棋中,状态指当前棋盘的状态,包括黑白棋子的位置,空的位置等。围棋的状态空间特别大,有250的150次方个不同的状态。而国际象棋的状态空间为35的80次方。为了处理一些复杂的情况,比如“大龙”,状态也应该包括历史信息。这样会明显增大状态空间。动作指目前可以放棋子的位置。每一步,每位玩家最多有19x19=361个可能的动作。转移模型表达了在当前玩家落子后棋盘状态的变化。围棋中转移模型是确定性的;或者说没有随机性。奖赏函数指在当前玩家落子后获得的奖赏。只有在确定胜负时,胜了得1分,输了-1分,其它情况都是0分。围棋AI的目标是设计最优对弈策略,或者说赢棋。围棋中有明确的游戏规则,这样,就有完美的转移模型和奖赏函数。因为状态空间特别大,而且状态的值函数非常难估计,围棋是AI领域一个长期的难题。所以,2016年谷歌Deepmind的AlphaGo打败国际顶级棋手李世乭成为世界头条新闻,展现了深度强化学习的强大威力。


    更多强化学习简介

    如果有系统模型,我们可能可以使用动态规划(dynamic programming) 方法:用策略评估 (policy evaluation) 去计算一个策略的状态或动作值函数,用值迭代 (value iteration) 或策略迭代 (policy iteration) 来找到最优策略;而策略迭代通常使用策略评估和策略改进 (policy improvement)迭代计算。我们要解决的很多问题没有现成的系统模型;这样,强化学习就有其用武之地。强化学习可以不需要模型,即免模型 (model-free) 的方式,得到最优值函数和最优策略。免模型强化学习可以通过与环境交互的在线(online)方式学习,也可以通过离线(offline)方式从历史数据中学习。蒙特卡罗 (Monte Carlo) 方法用样本的均值做估计;每一个样本是完整的一条经验轨迹;它不需要系统的模型,但是它只适用于片段式的任务。

    时序差分 (temporal difference, TD) 学习是强化学习中的一个核心概念。TD学习一般指阿尔伯塔大学(University of Alberta) Richard Sutton教授于1988年发现的用于值函数评估的学习方法。TD学习直接从经验中,通过自助法 (bootstrapping) 、以免模型、在线、完全增量(incremental)方式学习状态值函数。这里边,自助法是一种基于自身的估计去做估计的方法。TD学习是一种同策略 (on-policy) 方法,通过行为策略产生的样本来评估同样的策略。Q学习是一种时序差分控制方法,通过学习最优动作值函数来找到最优策略。Q学习是一种异策略 (off-policy) 方法,通过从某个行为策略产生的数据来学习,而这些数据一般不是通过目标策略产生。

    TD学习和Q学习评估状态值函数或动作值函数,是基于值的 (value-based) 方法。而基于策略的 (policy-based) 方法则直接优化策略,比如策略梯度 (policy gradient) 方法。行动者-评价者 (actor-critic) 算法同时更新值函数和策略。

    在表格式的情况,值函数和策略以表格的形式存储。如果状态空间与动作空间很大或者是连续的,那么就需要函数近似 (function approximation) 来实现泛化 (generalization) 能力。函数近似是机器学习中的一个概念;其目标是从部分样本泛化函数从而近似整个函数。线性函数近似是一种常用方法;一个原因是它有比较好的理论性质。在线性函数近似中,一个函数由一些基函数(basis function)的线性组合近似。线性组合的系数则需要由学习算法确定。

    我们也可以用非线性函数近似,尤其是使用深度神经元网络,也就是最近流行的深度学习所用的网络结构。如果把深度学习和强化学习结合起来,用深度神经元网络来表达状态、值函数、策略、模型等,我们就得到了深度强化学习(deep reinforcement learning, deep RL)。这里深度神经元网络的参数需要由学习算法来确定。深度强化学习最近受到广泛关注,也取得了很多斐然的成绩。应该说,深度强化学习在很久以前就取得过好成绩;比如1992年应用于西洋双陆棋(Backgammon)的TD-Gammon工作。有一些比较有影响的深度强化学习算法,比如,上面提到的DQN算法,还有异步优势行动者-评价者算法(Asynchronous Advantage Actor-Critic, A3C), 深度确定性策略梯度算法(Deep Deterministic Policy Gradient, DDPG), 可信区域策略优化算法(Trust Region Policy Optimization, TRPO), 近端策略优化算法(Proximal Policy Optimization, PPO),和软行动者-评价者算法(soft actor-critic)等等。最后的注释参考文献部分简要介绍了这些算法。

    强化学习的一个基本问题是探索-利用(exploration-exploitation)之间的矛盾。智能体一方面需要利用目前最好的策略,希望获得最好的回报;另一方面,目前最好的策略不一定是最优策略,需要探索其它可能性;智能体需要在探索-利用两者之间进行平衡折衷。一个简单的探索方案是  -贪婪方法:以1-  的概率选择最优的动作,否则随机选择。上置信界算法(Upper Confidence Bound , UCB)是另外一类探索方法,同时考虑动作值函数及其估计方差。UCB应用于搜索树中得到UCT算法,在AlphaGo中发挥了重要作用。


    强化学习词汇

    在这里汇集了一些强化学习词汇,方便读者查询。

    预测 (prediction),或策略评估 (policy evaluation),用来计算一个策略的状态或动作值函数。控制 (control) 用来找最优策略。规划 (planning) 则根据模型来找值函数或策略。

    用行为策略 (behaviour policy) 来产生样本数据;同时希望评估目标策略 (target policy)。同策略 (on-policy) 中,产生样本的行为策略与需要评估的目标策略相同。比如,TD学习就用来评估当前的策略,或者说用同样的策略产生的样本来做策略评估。异策略 (off-policy) 中,产生样本的行为策略与需要评估的目标策略一般不相同。比如,Q学习的目标是学习最优策略的动作值函数,而用来学习的样本数据一般都不是依据最优策略产生的。

    探索-利用 (exploration-exploitation) 之间的矛盾指,智能体需要利用目前最好的策略,希望达到最大化奖赏的目标;同时,也需要探索环境,去发现更好的策略,尤其是在目前的策略仍然不是最优策略或者环境并不稳定等情况下。

    在免模型 (model-free) 强化学习方法中,智能体不知道状态转移和奖赏模型,从与环境的交互经验中通过试错的方式直接学习。而基于模型(model-based)强化学习方法则利用模型。模型可以是给定的,比如像计算机围棋中那样通过游戏规则得到的完美模型,或是通过数据学习来的。

    在线模式 (online) 算法通过序列数据流来训练,不保存数据,不进一步使用数据。离线模式(offline) 或批量模式 (batch mode) 算法则通过一组数据来训练。

    在自助法(bootstrapping)中,对一个状态或动作的值函数估计会通过其它状态或动作的值函数估计来获得。


    如何应用强化学习

    把强化学习应用于实际场景,首先要明确强化学习问题的定义,包括环境、智能体、状态、动作、奖赏这些核心元素。有时也可能知道状态转移模型。需要考察监督学习或情境老虎机(contextual bandits)是否更适合要解决的问题;如果是那样,强化学习则不是最好的解决方案。强化学习的应用场景一般需要一定的资源,包括人才、计算力、大数据等。

    目前成功的强化学习应用一般需要有足够的训练数据;可能来自完美的模型、很接近真实系统的仿真程序、或通过与环境交互收集到的大量数据。收集到的数据根据问题做相应处理。

    一个模型或好的仿真程序可以产生足够的数据进行训练。有些问题,比如健康医疗、教育、自动驾驶等方面的问题,可能很难、不可行、或不合乎道德规范对所有情况采集数据。这种情况,异策略技术可以用行为策略产生的数据来学习目标策略。把在仿真程序学到的策略迁移到真实场景方面最近有一些喜人的进展,尤其在机器人方面。有些问题可能需要大量的计算。比如,AlphaGo的成功有几个重要因素:通过游戏规则得到了完美模型,产生大量训练数据,谷歌级的海量计算能力进行大规模训练,以及研发人员非凡的科研和工程能力。

    特征工程一般需要大量的手工处理并结合很多相关行业知识。随着深度学习兴起的端到端学习模式,手工的特征工程可能很少用,甚至不用。不过,在实际问题中,特征工程很可能无法避免,也可能是取得好性能至关重要的因素。

    需要考虑强化学习的表征问题,比如,是否需要以及需要什么样的神经网络来表达值函数和策略;是否考虑线性模型;而对于规模并不大的问题,甚至可以考虑表格的方式。

    有了数据、特征、和表征,需要考虑选取什么算法来计算最优值函数和最优策略。有许多强化学习算法可能选择,可能是在线的或离线的、同策略或异策略的、免模型或有模型的等。通常根据问题的具体情况,选择几种算法,然后挑性能最好的。

    通过做实验,参数调优,比较算法性能。强化学习应该与目前最高水平的算法对比,可能是其它强化学习算法,也可能是监督学习、情境老虎机、或某种传统算法。为了调优算法,可能多次迭代前面几步。

    当训练的强化学习算法性能足够好,就把它部署到实际系统中,监控性能,不断调优算法。可能需要多次迭代前面几步,调优系统性能。

    上图描述了应用强化学习的流程,简单总结如下。

    第一步:定义强化学习问题。定义环境、智能体、状态、动作、奖赏这些核心元素。

    第二步:数据准备,收集数据,预处理。

    第三步:特征工程,一般根据领域知识手动生成,也可能以端到端的方式自动产生。

    第四步:选择表征方式,有深度神经元网络、其它非线性、线性、甚至表格等表征方式。

    第五步:选择算法,根据问题选择几种算法。

    第六步:实验、调优系统;可能要多次迭代前面几步。

    第七步:部署、调优系统。可能要多次迭代前面几步。


    强化学习现存问题及建议

    强化学习虽然取得了很多骄人的成绩,但是仍然存在不少问题。强化学习与函数近似结合,尤其与深度学习结合,存在“死亡三组合” (deadly triad) 问题。就是说,在异策略、函数近似、自助法同时结合时,训练可能会碰到不稳定或发散的问题。样本效率、稀疏奖赏、成绩分配、探索-利用、表征等是常见问题。深度强化学习还有可复制性的问题,实验结果可能会受到网络结构、奖赏比例、随机种子、随机实验、环境、程序实现等的影响。强化学习同机器学习一样面临一些问题,比如时间效率、空间效率、可解释性、安全性、可扩展性、鲁棒性、简单性等等。从积极的角度看待,研发人员一直在这些方面努力工作。后面章节会进一步讨论。

    强化学习虽然有这么多问题,却可以给很多问题提供有效的解决方案。麻省理工学院(Massachusetts Institute of Technology, MIT) Dimitri Bertsekas教授是强化学习领域有影响的研究者。他对强化学习的应用持谨慎乐观的态度。他指出:一方面,还没有强化学习方法可以解决所有甚至大多数问题;另一方面,有足够多的方法去尝试,有比较好的可能性在大多数问题上取得成功,比如确定性问题、随机性问题、动态问题、离散或连续问题、各类游戏等等。他说:我们开始用强化学习解决难以想象的难题!他又说:我们前面的强化学习旅程令人激动!

    下面讨论几个话题,关于现实世界中强化学习面临的挑战,机器人高效学习的基础、强化学习应用于健康的参考原则、把机器学习负责任地应用于健康医疗、以及人工智能创业。虽然有些话题关于人工智能或机器学习,但对强化学习及其应用也有参考意义。

    现实世界中强化学习面临的挑战

    谷歌Deepmind和谷歌研究院合作发表论文,研究为什么强化学习虽然在游戏等问题获得了巨大成功,但在现实世界中仍然没有被大规模应用。他们讨论了下面九个制约因素:1)能够对现场系统从有限的采样中学习;2)处理系统执行器、传感器、或奖赏中存在的未知、可能很大的延迟;3)在高维状态空间和动作空间学习、行动;4)满足系统约束,永远或极少违反;5)与部分可观察的系统交互,这样的系统可以看成是不平稳的或随机的;6)从多目标或没有很好指明的奖赏函数学习;7)可以提供实时动作,尤其是为高控制频率的系统;8)从外部行为策略的固定的日志数据离线学习;9)为系统操作员提供可解释的策略。他们辨识并定义了这些挑战因素,对每个挑战设计实验并做分析,设计实现基线任务包含这些挑战因素,并开源了软件包。

    机器人高效学习的基础

    在目前的深度学习、强化学习、机器学习的基础上,机器人学习算法取得成功的一个关键因素是需要大量的实际数据。而一个通用机器人要面对各种各样的情况,则获取大量训练数据成本会很高。这样,下面几个方面会很关键:1)采样高效 (sample efficient),需要比较少的训练数据;2)可泛化性 (generalizable),训练的机器人不光能应用于训练的情况,还可以扩展到很多其它情况;3)组合方式 (compositional),可以通过以前的知识组合而成;4)增量方式 (incremental),可以逐渐增加新知识和新能力。目前的深度强化学习虽然可以学习很多新能力,不过,一般需要很多数据,泛化性不好,不是通过组合或增量的方式训练和执行。学习算法如果要获得泛化能力,需要具备固有的知识或结构等形式的归纳偏向(inductive bias),同时提高采样效率。组合性和增量性可以通过特定的结构化的归纳偏向获得,把学到的知识分解成语义相互独立的因子,就可以通过组合解决更多的问题。

    在学习算法中加入先验知识或结构,有一定的争议。强化学习之父Richard Sutton认为不应该在学习系统中加入任何先验知识,因为人工智能的历史经验表明,每次我们想人为加些东西,结果都是错的。MIT教授Rodney Brooks写博客做了强烈回应。这样的学术争论很有益,可以让我们辩明设计学习系统时的问题:应该把什么样的归纳偏向包括到学习系统中,可以帮助从适量的数据中学到可以泛化的知识,同时又不会导致不准确或过度约束?

    有两种方式可以找到合适的归纳偏向。一种是元学习(meta-learning)。在系统设计阶段,以离线方式学习结构、算法、先验知识;这样,到系统部署后,就可以在新环境高效地在线学习。在系统设计阶段,元学习通过可能在部署后碰到的任务的大量训练数据,学习一个学习算法,当遇到新的任务时,可以尽可能高效地学习;而不是学习对一个环境好的算法,或是试图学一个对所有环境都好的算法。元学习通过学习训练任务之间的共性,形成先验知识或归纳偏向,这样,遇到新任务就可以主要去学习差异性。

    还有一些可能的方向,包括让人教机器人,与其它机器人合作学习,修改机器人软件的时候一道修改硬件。利用从计算机科学与工程和认知神经科学获得的灵感,帮助设计机器学习的算法和结构。卷积神经元网络(convolutional neural networks)是一个很好的例子。卷积利用了翻译不变性(translation invariance),就是说,物体不管在图像中的什么位置,其表现基本不变;还有空间局部性(spatial locality),就是说,一组临近的像素共同提供图片的信息。用了卷积这样的归纳偏向,神经元网络的参数就大幅减少了,也大幅减少了训练。哺乳动物的视觉中枢应该就有类似于卷积这样的计算过程。机器人和强化学习需要类似的灵感来设计更高效的算法。

    强化学习应用于健康的参考原则

    最近《自然医学》一篇短评论文讨论强化学习应用于健康问题时,要考虑的几个参考原则。第一,强化学习算法最好可以使用影响决定的所有数据。强化学习算法需要获得医生可以获得的信息。第二,有效样本量与学到的策略和医生的策略之间的相似度相关;相似度越高则有效样本量越大。序列中决策越多,新的策略与产生数据的策略不同的可能性就越大。第三,需要审查学到的策略,使其有合理的表现。需要考察问题建模是否合适,比如奖赏函数的定义,数据记录及处理是否会引入误差,以及策略的适用范围,等等。

    把机器学习负责任地应用于健康医疗

    最近《自然医学》发表一篇观点论文,讨论机器学习在医学中为什么没有广泛应用,提出成功、负责任的发展方案。

    第一,选择合适的问题。确定所研发的问题在健康医疗中有意义,收集合适的数据,对项目成功做出明确定义。于项目早期,就在团队中包括利益相关人员:a) 业务专家,包括临床医生、机器学习研究人员、健康医疗信息技术专家、开发实现专家;b) 决策者,包括医院管理人员、研究机构管理人员、监管部门人员、政府人员;c) 用户,包括护士、医生、实验室人员、病人、家人朋友。

    第二,开发有用的解决方案。在预测一个结果时,一定要了解数据是什么时候如何收集的,收集数据的目的是什么。在模型应用的环境中,数据要有代表性。在开发模型的过程中,要改正电子病历数据中存在的偏向,否则会降低模型的可靠性。

    第三,考虑伦理道德方面的因素。加入相关专家,改正数据中的偏向。

    第四,对模型进行严格的评估。在训练和测试模型过程中,保证没有数据泄露发生。评估模型在什么情况很可能成功或失败。统计分析应该考虑与临床相关的评价指标。另外,用定性的方式评估,可能可以发现定量的方法没有发现的偏向和干扰(confounding)因素。

    第五,做深思熟虑的汇报。详细描述数据源、参与者、结果、预测变量、以及模型本身。报告模型在什么情境下验证、应用,需要满足什么假设或条件。分享生成结果的代码、软件包、输入数据,以及支持文档。对下面两种技术路线的权衡分析:简单、快速、可解释的模型与复杂、比较慢却更准确的模型,提供帮助信息。

    第六,负责任地部署。对于学到的模型,应该先实时预测结果,让临床专家评估其有效性,再给病人用。了解如何把干预策略与医护团队的工作流整合到一起也很重要。病人群体、临床规范经常变化,应该经常监视并评估模型的可靠性和错误,并对模型做相应改进。

    第七,推向市场。机器学习健康医疗工具必须要满足所在国家的监管要求。

    在健康医疗、自动驾驶等系统中,开发部署高效的机器学习系统存在很多复杂的问题。上面的发展方案可以帮助解决健康医疗中的问题,对其它领域也会有参考意义。

    虽然离机器学习大规模应用于医疗健康还有很长的路,但是,政策制定者、健康医疗管理人员、研发人员等正在通力合作。在大力发展智慧医疗时,我们有时可能需要暂时放缓脚步,重温希波格拉底誓言(Hippocratic oath),即医生誓约,其首要之务就是不可伤害(first, do no harm)。

    人工智能创业:人工智能公司代表一种新的商业模式

    这里介绍一篇Andreessen Horowitz投资公司网站上的一篇博客,讨论人工智能公司代表一种新的商业模式,与传统的软件业有所不同,更像是传统的软件服务公司。

    软件的优势在于生产一次就可以卖很多次。这样,就带来重复的收益流、高利润、有的时候还有超线性规模化,而且知识产权,一般是程序,可以形成高护城河。在软件服务业中,每个项目需要专门的开发人员,然后只能卖一次。这样,收益不能重复,总利润低,最好的情况就是线性增长。同时,不容易建护城河。

    人工智能公司,因为对云计算平台的依赖,加上需要不断的人工支持,总利润比较低;因为要处理麻烦的边缘情况,上规模充满挑战;因为人工智能模型的商品化,以为数据是竞争资源并具有野蛮生长的网络效应而事实并非如此,护城河比较弱。

    大多数人工智能应用程序看起来像软件,与用户交互,管理数据,与其它系统融合等。但其核心是一组训练好的数据模型,维护起来更像是软件服务。人工智能公司看着像软件公司与软件服务公司的某种组合,从总利润、规模化、防御性等方面看,代表了一种新的商业模式。

    总利润方面,对于人工智能公司,云计算平台带来相当大的花费,包括训练模型、模型推断、处理丰富的媒体类型、复杂的云操作等。人工智能应用程序依赖人工作为系统的一部分,帮助清洗、标注大量数据,或需要实时的帮助,比如在认知推理任务中,以获得高准确率。这些会让总利润降低。当人工智能的性能逐步提高,人工的参与会越来越少,但很可能不会一点没有。因为人工智能经常面对长尾效应,或者说要经常处理边缘情况,很难让人工智能系统规模化。而保护人工智能商业的方案还没有成型。人工智能产品与纯软件产品比起来,不一定更难防御。不过,人工智能公司的护城河看起来比预想的要浅。

    下面给创业人员一些实用建议,创建、规模化、防御伟大的人工智能公司。1)尽可能消除模型的复杂性。2)仔细选择问题领域,一般选择窄领域,降低数据复杂性,最小化边缘情况的挑战。3)为高变动的费用做好打算。4)拥抱服务。人工智能公司长期成功的关键是把软件和服务的优点结合起来。5)为新技术的不断出现做好打算。6)用旧的方式构建防御能力,好商业总需要好产品和私有数据。

    人工智能创业:弥补概念验证与产品的差距

    下面讨论吴恩达(Andrew Ng)博士于2020年10月初在斯坦福大学以人为本人工智能(Human-Centered AI, HAI)研究院做的一个学术报告。讨论了如何弥补人工智能中概念验证与产品的差距,包括以下三个方面:1)小数据;2)泛化性和鲁棒性;3)变化管理。

    小数据算法包括合成数据生成,比如生成对抗网络(Generative Adversarial Networks, GANs),单样本/少样本学习,自我监督学习,迁移学习,异常检测等。

    在一个数据集上训练的模型是否能泛化到其它数据集上?是个问题。论文里工作的模型,在产品中经常不工作。人工智能产品项目除了机器学习程序,还包括标注定义、歧义消解、高效批量数据标注、为罕见标注生成数据、数据验证、数据分析、环境变化检测、数据及模型版本控制、过程管理工具、模型性能下降检测等等。

    管理技术带来的变化,包括计划足够的时间、发现所有的利益相关者,提供再保证,解释在发生什么,做规模合适的第一个项目。这里关键的技术是可解释人工智能和审计。

    机器学习项目的周期包括:确定范围,决定要解决的问题;为模型获取数据;构建、训练模型;部署,运行产品创造价值。下面从后往前讨论这几个阶段。

    先说部署。在云平台或边缘设备上实现。最初的部署允许分析结果,调整参数和模型。可以采取影子部署的方式,并不真正决策,只是实时监视性能。也可以先小规模部署。然后逐渐加大部署力度。长期保持监视和维护状态。

    人工智能模型的构建和训练,是高度迭代的过程,从人工智能体系结构,包括算法、数据等,到程序和训练,再到分析,几个阶段反复循环;是开发过程,更是发现并修改错误的过程。机器学习模型由训练数据、超参数、算法/程序构成。一般通过修改超参数、算法/程序试图改进性能,也应该使用不同的训练数据,提高模型的泛化性。

    对于获取模型需要的数据,并不需要等到有足够完美的数据才开始项目,却需要明确数据的定义,比如,如何定义图像边界框,或如何处理专家不同的意见,等等。

    对于范围和要解决的问题,可以头脑风暴商业问题、技术解决方案,对价值和可行性做尽职调查,配置资源,制定计划,确定里程碑。人工智能专家确定什么可以做,领域专家确定什么是有价值的,这两个的交集里就有要解决的问题。

    机器学习项目的周期中:确定范围,决定要解决的问题,需要不同功能部门的头脑风暴;为模型获取数据,需要不同功能部门的执行;构建、训练模型,需要人工智能的研究;部署,运行产品创造价值,需要机器学习开发、软件开发。

    人工智能在用户互联网领域已经创造了价值。在互联网之外,人工智能仍然存在大量没有开发的机会。预计零售、旅游、交通、物流、汽车、材料、电子/半导体、健康、高科技、通信、能源、农业等领域2030年将创造13万亿美元的价值。但在很多其它领域仍然需要弥补概念验证到产品的差距。学术界和工业界应该联合起来把机器学习变成一个系统工程学科。


    《机器学习》强化学习应用专刊

    强化学习是一类通用的学习、预测、决策的方法框架,在科学、工程、艺术等领域有广泛应用。已经在雅达利游戏、AlphaGo、机器人、推荐系统、AutoML等领域取得了突出成绩。不过,把强化学习应用到实际场景中仍然有很多挑战。这样,我们很自然地会问:问题是什么,如何解决?

    笔者与Alborz Geramifard (脸书), Lihong Li (谷歌), Csaba Szepesvari (Deepmind & 阿尔伯塔大学), Tao Wang (苹果) 担任机器学习顶级期刊《机器学习》强化学习应用专刊的客座编辑。这个专刊的主要目标为:(1) 确定能使强化学习成功应用的关键研究问题;(2) 报告在这些关键问题上的进展;3)让领域专家分享把强化学习应用到实际场景的成功故事,以及在应用过程中获得的洞察领悟。

    专刊邀请解决强化学习落地相关的问题,把强化学习算法成功地应用于实际问题的稿件。专刊感兴趣的话题比较广泛,包括但不限于以下的话题:

    • 实用强化学习算法,包括所有强化学习算法的挑战,尤其是在实际应用中遇到的挑战;

    • 实际问题:泛化性、采样/时间/空间的效率、探索与利用、奖赏函数的详述(specification)与修整(shaping)、可扩展性、基于模型的学习(模型的效验与模型误差估计)、先验知识、安全性、责任、可解释性、可复制性、调超参数等等;

    • 应用方向:推荐系统、广告、聊天系统、商业、金融、健康医疗、教育、机器人、自动驾驶、交通、能源、化学合成、药物设计、工业控制、美术、音乐、以及其它科学、工程、艺术问题。

    专刊内容会在2021年初完成编辑,敬请关注。


    强化学习应用研讨会

    在2019年国际机器学习大会(International Conference on Machine Learning, ICML)上,笔者与Alborz Geramifard (脸书), Lihong Li (谷歌), Csaba Szepesvari (Deepmind & 阿尔伯塔大学), Tao Wang (苹果) 共同组织举办了强化学习应用研讨会(Reinforcement Learning for Real Life, RL4RealLife). 工业界和学术界对强化学习应用感兴趣的研发人员集聚一堂,探讨如何将强化学习应用于实际场景。

    研讨会有三个一流的特邀报告:

    • AlphaStar:理解星际争霸。报告人:David Silver

    • 如何开展强化学习应用的革命?报告人:John Langford

    • 推荐系统中的强化学习。报告人:Craig Boutilier

    顶级专家组成了专题讨论小组: Craig Boutilier (谷歌研究院), Emma Brunskill (斯坦福大学), Chelsea Finn (谷歌研究院, 斯坦福大学, 加州大学伯克利分校), Mohammad Ghavamzadeh (脸书人工智能研究院), John Langford (微软研究院), David Silver (Deepmind), 和Peter Stone (得克萨斯大学奥斯丁分校, Cogitai). 讨论了重要的问题,比如,强化学习哪些方向最有前景?把强化学习应用到实际场景的一般性原则是什么?等等。

    有大约60篇海报/论文。选择了4篇最佳论文:

    • Chow et al. 讨论了连续动作问题里的安全性

    • Dulac-Arnold et al. 讨论了强化学习应用的9个挑战

    • Gauci et al. 讨论了脸书的开源应用强化学习平台Horizon

    • Mao et al. 讨论了增强计算机系统开放平台Park

    欢迎访问研讨会网站;有特邀报告的视频链接、大部分论文和一部分海报;网址为:sites.google.com/view/R.

    2020年6月,笔者与Gabriel Dulac-Arnold (谷歌), Alborz Geramifard (脸书), Omer Gottesman(哈佛大学),Lihong Li (谷歌), Anusha Nagabandi (加州大学伯克利分校), Zhiwei (Tony) Qin (滴滴), Csaba Szepesvari (Deepmind & 阿尔伯塔大学) 在网上共同组织举办了强化学习应用研讨会。会议邀请了顶级专家组成了两个专题讨论小组,分别讨论“强化学习+健康医疗”和“一般性强化学习”两个专题;会议有30多篇海报/论文。

    强化学习+健康医疗专题讨论由Finale Doshi-Velez (哈佛大学), Niranjani Prasad (普林斯顿大学),Suchi Saria (约翰霍普金斯大学)组成, 由Susan Murphy (哈佛大学)主持,由Omer Gottesman(哈佛大学)做开场及总结主持。

    一般性强化学习专题讨论由Ed Chi (谷歌), Chelsea Finn (斯坦福大学), Jason Gauci (脸书)组成, 由Peter Stone (得克萨斯大学&索尼)主持, 由Lihong Li (谷歌)做开场及总结主持。

    更多信息参见会议网址:sites.google.com/view/R.


    强化学习资料

    强化学习的学习资料中,Sutton & Barto 的强化学习教科书是必读的,David Silver的UCL课程是经典,阿尔伯塔大学最近在Coursera上线了强化学习课程。强化学习里概念比较多,仔细学一些基础,会很有帮助。如果有一定深度学习背景,可能可以考虑直接学深度强化学习。OpenAI Spinning Up比较简洁,Deepmind与UCL合出了深度学习与强化学习课程,UC Berkeley的深度强化学习课程是高级进阶。下面列了这几个资料。

    • Sutton & Barto RL强化学习教科书,incompleteideas.net/boo

    • David Silver强化学习课程,www0.cs.ucl.ac.uk/staff

    • 阿尔伯塔大学在Coursera上的强化学习课,coursera.org/specializa

    • OpenAI Spinning Up, blog.openai.com/spinnin

    • DeepMind & UCL 的深度学习与强化学习课程,youtube.com/playlist?

    • UC Berkeley深度强化学习课程,rail.eecs.berkeley.edu/

    学习强化学习,有必要对深度学习和机器学习有一定的了解。下面推荐几篇综述论文。

    • LeCun, Bengio and Hinton, Deep Learning, Nature, May 2015

    • Jordan and Mitchell, Machine learning: Trends, perspectives, and prospects, Science, July 2015

    • Littman, Reinforcement learning improves behaviour from evaluative feedback, Nature, May 2015

    希望深入了解深度学习、机器学习,Goodfellow et al. (2016)、Zhang et al. (2019) 介绍了深度学习;周志华(2016)、李航(2019)介绍了机器学习。

    学习基本概念的同时应该通过编程加深理解。OpenAI Gym很常用,gym.openai.com.

    下面的Github开源把Sutton & Barto强化学习书里面的例子都实现了,也有很多深度强化学习算法的实现:github.com/ShangtongZha.

    笔者偶尔写博客:zhihu.com/people/yuxili,在知乎上开了强化学习专栏:zhuanlan.zhihu.com/c_11. 其中《强化学习资料》收集了很多强化学习及相关的资料;《强化学习应用场景》收集了很多强化学习应用方面的论文、资料。


    强化学习简史

    早期的强化学习有两个主要的丰富绵长的发展线索。一个是源于动物学习的试错法;在早期的人工智能中发展,与二十世纪八十年代促进了强化学习的复兴。另一个是最优控制及其解决方案:值函数和动态规划。最优控制大部分没有包括学习。这两个线索先是分头进展,到二十世纪八十年代,时序差分(temporal-difference)方法出现,形成第三条线索。然后几种线索交织融合到一起,发展成现代强化学习。

    最优控制始于二十世纪五十年代,设计控制器来优化动态系统一段时间内行为的性能指标。动态规划是最优控制的一个解决方法,由Richard Bellman等人提出,基于以前Hamilton和Jacobi的理论。动态规划使用动态系统的状态和值函数,或最优回报函数,来定义一个等式,现在被称为Bellman等式。通过解这个等式的一组方法则被称为动态规划方法。Bellman也提出离散随机版的最优控制问题,既马尔科夫决策过程(Markov decision processes, MDP). Ronald Howard在1960年给MDP问题设计了策略迭代方法。这些都是现代强化学习理论和算法的基本元素。

    一般认为,动态规划是解决一般性的随机优化控制的唯一方法。动态规划会遇到“维度灾难”问题,就是说,它的计算复杂性随着状态变量的个数而指数增长。不过,动态规划仍然是最高效、应用最广的方法。动态规划已经被扩展到部分可见马尔科夫决策过程(Partially Observable MDP, POMDP),异步方法,以及各种应用。

    最优控制、动态规划与学习的联系,确认得却比较慢。可能的原因是这些领域由不同的学科在发展,而目标也不尽相同。一个流行的观点是动态规划是离线计算的,需要准确的系统模型,并给出Bellman等式的解析解。还有,最简单的动态规划是按时间从后向前运算的,而学习则是从前往后的,这样,则很难把两者联系起来。事实上,早期的一些研究工作,已经把动态规划与学习结合起来了。而在1989年,Chris Watkins用MDP的形式定义强化学习问题,把动态规划和线上学习完全结合起来,也得到广泛接受。之后,这样的联系获得进一步的发展。麻省理工学院的Dimitri Bertsekas和John Tsitsiklis提出了神经元动态规划(neurodynamic programming)这一术语,用来指代动态规划与神经元网络的结合。现在还在用的另一个术语是近似动态规划(approximate dynamic programming). 这些方法与强化学习都是在解决动态规划的经典问题。

    在某种意义上,最优控制就是强化学习。强化学习问题与最优控制问题紧密相关,尤其是描述成MDP的随机优化控制问题。这样,最优控制的解决方法,比如动态规划,也是强化学习方法。大部分传统的最优控制方法需要完全的系统模型知识,这样把它们看成强化学习有些不够自然。不过,许多动态规划算法是增量的、迭代的。像学习方法一样,它们通过连续的近似逐渐达到正确解。这些相似性有着深刻的意义,而对于完全信息和不完全信息的理论和方法也紧密相关。

    下面讨论强化学习早期发展的另外一条线索:试错学习法。试错学习法最早可以追溯到十九世纪五十年代。1911年,Edward Thorndike简明地把试错学习法当成学习的原则:对于同一情况下的几个反应,在其它因素一样时,只有伴随着或紧随动物的喜悦之后的那些反应,才会被更深刻地与当下的情况联系起来,这样,当这些反应再次发生,再次发生的可能性也更大;而只有伴随着或紧随动物的不适之后的那些反应,与当下的情况联系会被削弱,这样,当这些反应再次发生,再次发生的可能性会更小。喜悦或不适的程度越大,联系的加强或减弱的程度也越大。Thorndike称其为“效果定律”(Law of Effect), 因为它描述了强化事件对选择动作的倾向性的效果,也成为许多行为的基本原则。

    “强化”这一术语出现于1927年巴浦洛夫(Pavlov)条件反射论文的英译本,晚于Thorndike的效果定律。巴浦洛夫把强化描述成,当动物接收到刺激,也就是强化物,对一种行为模式的加强,而这个刺激与另一个刺激或反应的发生有合适的时间关系。

    在计算机里实现试错法学习是人工智能早期的想法之一。在1948年,阿兰·图灵(Alan Turing)描述了一个“快乐-痛苦系统”,根据效果定律设计:达到一个系统状态时,如果选哪个动作还没有确定,就暂时随机选一个,作为临时记录。当出现一个痛苦刺激,取消所有的临时记录;当出现一个快乐刺激,所有的临时记录变成永久记录。

    1954年,图灵奖获得者马文·明斯基(Marvin Minsky)在他的博士论文里讨论了强化学习的计算模型,描述了他搭建的模拟电路机器,用来模仿大脑中可以修改的突触连接。他于1961年发表《通向人工智能的几个步骤》(Steps Toward Artificial Intelligence), 讨论了与试错学习法相关的几个问题,包括预测、期望、还有被他称为复杂强化学习系统中基本的奖赏分配问题:如何把成功获得的奖赏分配给可能导致成功相关的那些决定?这个问题仍然是现代强化学习的一个关键问题。

    二十世纪六十年代、七十年代试错学习法有一些发展。Harry Klopf在人工智能领域对试错法在强化学习中的复兴做了重要贡献。Klopf发现,当研究人员专门关注监督学习时,则会错过自适应行为的一些方面。按照Klopf所说,行为的快乐方面被错过了,而这驱动了从环境成功获得结果,控制环境向希望的结果发展,而远离不希望的结果。这是试错法学习的基本思想。Klopf的思想对强化学习之父Richard Sutton和Andrew Barto有深远影响,使得他们深入评估监督学习与强化学习的区别,并最终专注强化学习,包括如何为多层神经元网络设计学习算法。

    现在讨论强化学习发展的第三个线索,时序差分学习。时序差分学习基于对同一个量在时间上相连的估计,比如,围棋例子中赢棋的概率。时序差分学习是强化学习中一个新的独特的方法。

    时序差分学习部分上起源于动物学习心理学,尤其是次要强化物的概念。次要强化物与像食物和痛苦这样的主要强化物相伴而来,所以也就有相应的强化特点。明斯基于1954年意识到这样的心理学原则可能对人工学习系统的重要意义;他可能是第一位。1959年,Arthur Samuel在其著名的国际跳棋程序中,第一次提出并实现了包括时序差分学习的学习方法。Samuel受克劳德·香农(Claude Shannon)1950年工作的启发,发现计算机程序可以用评估函数玩国际象棋,棋艺也可以通过在线修改这个评估函数来提高。明斯基于1961年深入讨论Samuel的方法与次要强化物的联系。Klopf在1972年把试错学习法与时序差分学习联系起来。

    Sutton在1978年进一步研究Klopf的想法,尤其是与动物学习的联系,通过连续时间预测的变化来定义学习规则。Sutton和Barto继续改进这些想法,提出了基于时序差分学习的经典条件反射心理学模型。同时期有不少相关工作;一些神经科学模型也可以用时序差分学习来解释。

    Sutton和Barto于1981年提出了行动者-评价者体系结构,把时序差分学习与试错学习结合起来。Sutton1984年的博士论文深入讨论了这个方法。Sutton于1988年把时序差分学习与控制分开,把它当做一种通用的预测方法。那篇论文也提出了多步时序差分学习算法。

    在1989年,Chris Watkins提出Q学习,把时序差分学习、最优控制、试错学习法三个线索完全融合到一起。这时,开始在机器学习和人工智能领域出现大量的强化学习方面的研究。1992年,

    Gerry Tesauro成功地使用强化学习和神经元网络设计西洋双陆棋(Backgammon)的TD-Gammon算法,进一步增加了强化学习的热度。

    Sutton和Barto于1998年发表《强化学习介绍》之后,神经科学的一个子领域专注于研究强化学习算法与神经系统中的强化学习,而这归功于时序差分学习算法的行为与大脑中生成多巴胺的神经元的活动之间神秘的相似性。强化学习还有数不胜数的进展。

    最近,随着DQN算法的出现以及AlphaGo的巨大成功,强化学习进一步发展,也出现了深度强化学习这一子领域。这样,强化学习简史就与前面的介绍衔接起来了。


    强化学习时代正在到来

    强化学习是一类一般性的学习、预测、决策方法框架。如果一个问题可以描述成或转化成序列决策问题,可以对状态、动作、奖赏进行定义,那么强化学习很可能可以帮助解决这个问题。强化学习有可能帮助自动化、最优化手动设计的策略。

    强化学习考虑序列问题,具有长远眼光,考虑长期回报;而监督学习一般考虑一次性的问题,关注短期效益,考虑即时回报。强化学习的这种长远眼光对很多问题找到最优解非常关键。比如,在最短路径的例子中,如果只考虑最近邻居节点,则可能无法找到最短路径。

    David Silver博士是AlphaGo的核心研发人员,他提出这样的假设:人工智能=强化学习+深度学习。Russell和Norvig的经典人工智能教材里提到:强化学习可以说包括了整个人工智能。有研究表明,计算机科学中任何可以计算的问题,都可以表达成强化学习问题。

    本书前面首先介绍了强化学习,然后介绍了强化学习在游戏、推荐系统、计算机系统、健康医疗、教育、金融、机器人、交通、能源、制造等领域的一些应用。应该说,这里的每个领域都有很多工作、很多方向没有讨论,另外还有很多领域没有包括进来;难免挂一漏万。下图中描述了强化学习的应用领域及方向。可能的应用领域太广了。

    强化学习在计算机系统中的各个方向,从底层的芯片设计、硬件系统,到操作系统、编译系统、数据库管理系统等软件系统,到云计算平台、通信网络系统等基础设施,到游戏引擎、推荐系统等应用程序,到计算机视觉、自然语言处理、机器学习人工智能系统本身,都有广泛的应用。

    对于科学、工程、艺术,本书有所涉及,比如游戏中涉及心理学、设计艺术等,而机器人、交通、能源、制造等与工程密切相关。应该说,对于强化学习在科学、工程、艺术等方面广泛的应用场景,以及这些领域对强化学习的反哺,本书的涉猎有限。

    自然科学及工程的问题,一般比较客观,有标准答案,容易评估。如果有模型、比较准确的仿真、或大量数据,强化学习/机器学习就有希望解决问题。AlphaGo是这种情况。组合优化、运筹学、最优控制、药学、化学、基因等方向,基本符合这种情况。社会科学及艺术问题,一般包含人的因素,会受心理学、行为科学等影响,一般比较主观,不一定有标准答案,不一定容易评估。游戏设计及评估、教育等基本符合这种情况。内在动机等心理学概念为强化学习/人工智能与社会科学及艺术之间搭建了联系的桥梁。

    深度学习和强化学习分别于2013年和2017年被《麻省理工学院科技评论》评为当年10项突破性技术之一。深度学习已经被广泛应用。强化学习会在实际应用场景中发挥越来越重要的作用。强化学习已经被成功应用于游戏、推荐系统等领域,也可能已经成功应用于量化金融中。目前,强化学习可能还没有被广泛应用于某些场景的产品和服务中;我们也很可能需要对不同情况做不同的分析。不过,如果考虑长期回报,现在很可能是培养、教育、引领强化学习市场的绝佳时机。我们会看到深度学习和强化学习大放异彩。


    注释参考文献

    Sutton and Barto (2018) 是强化学习的首选教材,而且写的很直观。Szepesvari (2010) 讨论了强化学习算法。Bertsekas (2019) 介绍了强化学习和最优控制。Bertsekas and Tsitsiklis (1996) 讨论了神经元动态规划,理论性比较强。Powell (2011) 讨论了近似动态规划,及其在运筹学中的应用。Powell (2019) 和 Recht (2019) 讨论了强化学习与最优控制的关系。Botvinick et al. (2019) 讨论了强化学习与认知科学、心理学、神经科学的关系。

    Csaba Szepesvari在ACM KDD 2020 深度学习日上对强化学习做了全方位的深入剖析,理清了许多错误观念;参见Szepesvari (2020)。笔者对其做了双语解读,参见《强化学习的“神话”和“鬼话”》,zhuanlan.zhihu.com/p/19。

    Goodfellow et al. (2016)、Zhang et al. (2020) 介绍深度学习。周志华(2016)、李航(2019)介绍机器学习。Russell and Norvig (2009) 介绍了人工智能。张钹等(2020) 讨论第三代人工智能。

    Mnih et al. (2015) 介绍了深度Q网络 (Deep Q-Network, DQN)。Badia et al. (2020)讨论了Agent57. Silver et al. (2016) 介绍了AlphaGo. Silver et al. (2017) 介绍了AlphaGo Zero;可以不用人类知识就能掌握围棋,超越人类围棋水平。Silver et al. (2018) 介绍了AlphaZero, 把AlphaGo Zero扩展到国际象棋和日本将棋等更多游戏。Tian et al. (2019) 实现、分析了AlphaZero,并提供了开源软件。Moravcik et al. (2017) 介绍了DeepStack;Brown and Sandholm (2017) 介绍了Libratus;是两个无限注双人德州扑克计算机算法。

    Vinyals et al. (2019)介绍了AlphaStar,打败了星际争霸人类高手。Jaderberg et al. (2018) 介绍了取得人类水平的夺旗程序。OpenAI (2019)介绍了OpenAI Five,打败了刀塔人类高手。微软在麻将方面取得了进展(Suphx)。冰壶(curling)被称为冰上国际象棋,最近也有进展(Curly)。这些在多玩家游戏上取得的成绩表明强化学习在团队游戏中对战术和战略已经有了一定的掌握。

    OpenAI (2018)介绍了人形机器手Dactyl,用来灵巧地操纵实物。Hwangbo et al. (2019)、Lee et al. (2020) 介绍了灵活的四足机器人。Peng et al. (2018) 介绍了仿真人形机器 DeepMimic完成高难度杂技般的动作。Lazic et al. (2018) 研究了数据中心制冷。Segler et al. (2018) 把强化学习应用于化学分子逆合成。Popova et al. (2018) 把强化学习应用于全新药物设计。等等。

    DQN结合了Q学习和深度神经元网络,使用了经验回放 (experience replay) 和目标网络 (target network) 技术来稳定训练过程。在经验回放中,经验被存储在回放缓冲器中,然后随机样本用于学习。目标网络保留一份单独的网络参数,用于在学习中使用的网络参数;目标网络定期更新,却并非每个训练迭代步骤都更新。Mnih et al. (2016) 介绍了异步优势行动者-评价者算法(Asynchronous Advantage Actor-Critic, A3C), 其中并行的行动者使用不同的探索方法来稳定训练,而并没有使用经验回放。确定策略梯度可以帮助更高效地估计策略梯度。Silver et al. (2014) 介绍了确定策略梯度 (Deterministic Policy Gradient, DPG);Lillicrap et al. (2016) 将它扩展为深度确定策略梯度 (Deep Deterministic Policy Gradient, DDPG)。可信区域方法对梯度更新设置了约束条件,用来稳定策略优化。Schulman et al. (2015)介绍了可信区域策略优化算法 (Trust Region Policy Optimization, TRPO);Schulman et al. (2017)介绍了近端策略优化算法 (Proximal Policy Optimization, PPO)。Haarnoja et al. (2018)介绍了软行动者-评价者(Soft Actor Critic)算法。2020年谷歌Deepmind设计了Agent57算法,可以在57个雅达利游戏上都取得非常好的成绩。而之前在几款游戏上,比如Montezuma’s Revenge, Pitfall, Solaris和Skiing上,成绩总差强人意。Agent57融合了DQN之后的很多进展,包括分布式学习、短期记忆、片段式记忆、用内在动机方法鼓励直接探索(包括在长时间尺度上和短时间尺度上追求新颖性)、设计元控制器,用来学习如何平衡探索和利用。

    值得关注Pieter Abbeel, Dimitri Bertsekas, Emma Brunskill, Chelsea Finn, Leslie Kaelbling, Lihong Li, Michael Littman, Joelle Pineau, Doina Precup, Juergen Schmidhuber, David Silver, Satinder Singh, Dale Schuurmans, Peter Stone, Rich Sutton, Csaba Szepesvari等研究人员,以及像CMU, Deepmind, Facebook, Google, Microsoft, MIT, OpenAI, Stanford, University of Alberta, UC Berkeley等研究机构在强化学习方面的工作。

    Amershi et al. (2019)讨论了机器学习中的软件工程;很可能对强化学习也有帮助。作者展示了机器学习工作流的9个阶段:模型需求、数据收集、数据清洗、数据标注、特征工程、模型训练、模型评估、模型部署、以及模型监视。在工作流中有很多反馈回路,比如,在模型训练和特征工程之间;而模型评估和模型监视可能会回到前面任何一个阶段。作者也指出人工智能中的软件工程与以前软件应用中的软件工程的三个不同:1)发现数据、管理数据、为数据确定版本号更复杂、更困难;2)模型定制和模型重用都需要不同的技能;3)人工智能组成部分缺少模块化、复杂的方式纠缠在一起。

    现实世界中强化学习面临的挑战的讨论基于Dulac-Arnold et al. (2020) 。机器人高效学习的基础的讨论基于Kaelbling (2020)。里面提到两篇博客:Sutton (2019) The bitter lesson 和 Brooks (2019)A better lesson. 强化学习应用于健康的参考原则基于Gottesman et al. (2019)。Wiens et al. (2019)讨论了在健康医疗中应用机器学习如何做到负责任。人工智能创业:人工智能公司代表一种新的商业模式的讨论基于Casado and Bornstein (2020)。人工智能创业:弥补概念验证与产品的差距的讨论基于Ng (2020)。另外,Alharin et al. (2020), Belle and Papantonis (2020), Lipton (2018) 等讨论可解释性。

    Li (2017) 是深度强化学习综述,兼顾了该领域的大方向和细节,在历史发展的背景下讨论了最新的进展。Li (2017) 讨论了六个核心元素:值函数、策略、奖赏、模型、探索-利用、以及表征;讨论了六个重要机制:注意力模型和存储器、无监督学习、分层强化学习、多智能体强化学习、关系强化学习、以及元学习;讨论了12个应用场景:游戏、机器人、自然语言处理、计算机视觉、金融、商业管理、医疗、教育、能源、交通、计算机系统、以及科学、工程、和艺术。

    参考文献:

    Alharin, A., Doan, T.-N., and Sartipi, M. (2020). Reinforcement learning interpretation methods: A survey. IEEE Access, 8:171058 – 171077.

    Amershi, S., Begel, A., Bird, C., DeLine, R., Gall, H., Kamar, E., Nagappan, N., Nushi, B., and Zimmermann, T. (2019). Software engineering for machine learning: A case study. In ICSE.

    Badia, A. P., Piot, B., Kapturowski, S., Sprechmann, P., Vitvitskyi, A., and Guo, D. (2020). Agent57: Outperforming the atari human benchmark. ArXiv.

    Belle, V. and Papantonis, I. (2020). Principles and practice of explainable machine learning. AXiv.

    Botvinick, M., Ritter, S., Wang, J. X., Kurth-Nelson, Z., Blundell, C., and Hassabis, D. (2019). Reinforcement learning, fast and slow. Trends in Cognitive Sciences, 23(5):408–422.

    Brooks, R. (2019). A better lesson. rodneybrooks.com/a-bett

    Brown, N. and Sandholm, T. (2017). Superhuman ai for heads-up no-limit poker: Libratus beats top professionals. Science.

    Casado, M. and Bornstein, M. (2020). The new business of AI (and how its
    different from traditional software). a16z.com/2020/02/16/ the-new-business-of-ai-and-how-its-different-from-traditional-software/.

    Dulac-Arnold, G., Levine, N., Mankowitz, D. J., Li, J., Paduraru, C., Gowal, S., and Hester, T. (2020). An empirical investigation of the challenges of real-world reinforcement learning.ArXiv.

    Gottesman, O., Johansson, F., Komorowski, M., Faisal, A., Sontag, D., Doshi-Velez, F., and Celi, L. A. (2019). Guidelines for reinforcement learning in healthcare. Nature Medicine, 25:14–18.

    Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep Learning. MIT Press.

    Haarnoja, T., Zhou, A., Abbeel, P., and Levine, S. (2018). Soft actor-critic: Off-policy maximum entropy deep reinforcement learning with a stochastic actor. In ICML.

    Hwangbo, J., Lee, J., Dosovitskiy, A., Bellicoso, D., Tsounis, V., Koltun, V., and Hutter, M. (2019). Learning agile and dynamic motor skills for legged robots. Science Robotics, 4(26).

    Kaelbling, L. P. (2020). The foundation of efficient robot learning. Science, 369(6506):915–916.

    Lazic, N., Boutilier, C., Lu, T., Wong, E., Roy, B., Ryu, M., and Imwalle, G. (2018). Data center cooling using model-predictive control. In NeurIPS.

    Lee, J., Hwangbo, J., Wellhausen, L., Koltun, V., and Hutter, M. (2020). Learning quadrupedal locomotion over challenging terrain. Science Robotics.

    Li, Y. (2017). Deep Reinforcement Learning: An Overview. ArXiv.

    Lillicrap, T. P., Hunt, J. J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., Silver, D., and Wierstra, D. (2016). Continuous control with deep reinforcement learning. In ICLR.

    Lipton, Z. C. (2018). The mythos of model interpretability. ACM Queue, 16(3):31–57.

    Jaderberg, M., Czarnecki, W. M., Dunning, I., Marris, L., Lever, G., Garcia Castaneda, A., Beat- tie, C., Rabinowitz, N. C., Morcos, A. S., Ruderman, A., Sonnerat, N., Green, T., Deason, L., Leibo, J. Z., Silver, D., Hassabis, D., Kavukcuoglu, K., and Graepel, T. (2018). Human-level performance in first-person multiplayer games with population-based deep reinforcement learning. ArXiv.

    Mnih, V., Badia, A. P., Mirza, M., Graves, A., Harley, T., Lillicrap, T. P., Silver, D., and Kavukcuoglu, K. (2016). Asynchronous methods for deep reinforcement learning. In ICML.

    Mnih, V., Kavukcuoglu, K., Silver, D., Rusu, A. A., Veness, J., Bellemare, M. G., Graves, A., Riedmiller, M., Fidjeland, A. K., Ostrovski, G., Petersen, S., Beattie, C., Sadik, A., Antonoglou, I., King, H., Kumaran, D., Wierstra, D., Legg, S., and Hassabis, D. (2015). Human-level control through deep reinforcement learning. Nature, 518(7540):529–533.

    Moravcik, M., Schmid, M., Burch, N., Lisy, V., Morrill, D., Bard, N., Davis, T., Waugh, K., Johanson, M., and Bowling, M. (2017). Deepstack: Expert-level artificial intelligence in heads-up no-limit poker. Science, 356(6337):508–513.

    Ng, A. (2020). Bridging AI’s proof-of-concept to production gap. youtube. com/watch?v=tsPuVAMaADY.

    OpenAI, Andrychowicz, M., Baker, B., Chociej, M., Jozefowicz, R., McGrew, B., Pachocki, J., Petron, A., Plappert, M., Powell, G., Ray, A., Schneider, J., Sidor, S., Tobin, J., Welinder, P., Weng, L., and Zaremba, W. (2018). Learning dexterous in-hand manipulation. ArXiv.

    OpenAI, Berner, C., Brockman, G., Chan, B., Cheung, V., Debiak, P., Dennison, C., Farhi, D., Fischer, Q., Hashme, S., Hesse, C., Jozefowicz, R., Gray, S., Olsson, C., Pachocki, J., Petrov, M., de Oliveira Pinto, H. P., Raiman, J., Salimans, T., Schlatter, J., Schneider, J., Sidor, S., Sutskever, I., Tang, J., Wolski, F., and Zhang, S. (2019). Dota 2 with large scale deep reinforcement learning. ArXiv.

    Peng, X. B., Abbeel, P., Levine, S., and van de Panne, M. (2018). Deepmimic: Example-guided deep reinforcement learning of physics-based character skills. In SIGGRAPH.

    Popova, M., Isayev, O., and Tropsha, A. (2018). Deep reinforcement learning for de novo drug design. Science Advances, 4(7).

    Powell, W. B. (2011). Approximate Dynamic Programming: Solving the curses of dimensionality (2nd Edition). John Wiley and Sons.

    Powell, W. B. (2019). From reinforcement learning to optimal control: A unified framework for sequential decisions. Arxiv.

    Recht, B. (2019). A tour of reinforcement learning: The view from continuous control.Annual Review of Control, Robotics, and Autonomous Systems, 1:253–279.

    Russell, S. and Norvig, P. (2009). Artificial Intelligence: A Modern Approach (3rd edition). Pearson.

    Schulman, J., Levine, S., Moritz, P., Jordan, M. I., and Abbeel, P. (2015). Trust region policy optimization. In ICML.

    Schulman, J., Wolski, F., Dhariwal, P., Radford, A., and Klimov, O. (2017). Proximal Policy Optimization Algorithms. ArXiv.

    Segler, M. H. S., Preuss, M., and Waller, M. P. (2018). Planning chemical syntheses with deep neural networks and symbolic AI. Nature, 555:604–610.

    Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., Schrittwieser, J., Antonoglou, I., Panneershelvam, V., Lanctot, M., et al. (2016). Mastering the game of go with deep neural networks and tree search. Nature, 529(7587):484–489.

    Silver, D., Lever, G., Heess, N., Degris, T., Wierstra, D., and Riedmiller, M. (2014). Deterministic policy gradient algorithms. In ICML.

    Silver, D., Hubert, T., Schrittwieser, J., Antonoglou, I., Lai, M., Guez, A., Lanctot, M., Sifre, L., Kumaran, D., Graepel, T., Lillicrap, T., Simonyan, K., and Hassabis, D. (2018). A general reinforcement learning algorithm that masters chess, shogi, and go through self-play. Science, 362(6419):1140–1144.

    Silver, D., Lever, G., Heess, N., Degris, T., Wierstra, D., and Riedmiller, M. (2014). Deterministic policy gradient algorithms. In ICML.

    Silver, D., Schrittwieser, J., Simonyan, K., Antonoglou, I., Huang, A., Guez, A., Hubert, T., Baker, L., Lai, M., Bolton, A., Chen, Y., Lillicrap, T., Hui, F., Sifre, L., van den Driessche, G., Graepel, T., and Hassabis, D. (2017). Mastering the game of go without human knowledge. Nature, 550:354–359.

    Sutton, R. (2019). The bitter lesson. incompleteideas.net/Inc BitterLesson.html.

    Sutton, R. S. and Barto, A. G. (2018). Reinforcement Learning: An Introduction (2nd Edition). MIT Press.

    Szepesvari, C. (2010). Algorithms for Reinforcement Learning. Morgan & Claypool.

    Szepesvari, C. (2020). Myths and misconceptions in rl. sites.ualberta.ca/̃szepesva/talks.html. KDD 2020 Deep Learning Day.

    Tian, Y., Ma, J., Gong, Q., Sengupta, S., Chen, Z., Pinkerton, J., and Zitnick, C. L. (2019). ELF OpenGo: An analysis and open reimplementation of AlphaZero. In ICML.

    Vinyals, O., Babuschkin, I., Czarnecki, W. M., Mathieu, M., Dudzik, A., Chung, J., Choi, D. H., Powell, R., Ewalds, T., Georgiev, P., Oh, J., Horgan, D., Kroiss, M., Danihelka, I., Huang, A., Sifre, L., Cai, T., Agapiou, J. P., Jaderberg, M., Vezhnevets, A. S., Leblond, R., Pohlen, T., Dalibard, V., Budden, D., Sulsky, Y., Molloy, J., Paine, T. L., Gulcehre, C., Wang, Z., Pfaff, T., Wu, Y., Ring, R., Yogatama, D., Wunsch, D., McKinney, K., Smith, O., Schaul, T., Lillicrap, T., Kavukcuoglu, K., Hassabis, D., Apps, C., and Silver, D. (2019). Grandmaster level in StarCraft II using multi-agent reinforcement learning. Nature, 575:350–354.

    Wiens, J., Saria, S., Sendak, M., Ghassemi, M., Liu, V. X., Doshi-Velez, F., Jung, K., Heller, K., Kale, D., Saeed, M., Ossorio, P. N., Thadaney-Israni, S., and Goldenberg, A. (2019). Do no harm: a roadmap for responsible machine learning for health care. Nature Medicine, 25:1337–1340.

    Zhang, A., Lipton, Z. C., Li, M., and Smola, A. J. (2020). Dive into Deep Learning. https: //d2l.ai.

    李航. (2019). 统计学习方法(第二版). 清华大学出版社.

    张钹, 朱军, 苏航. 迈向第三代人工智能. 中国科学: 信息科学, 2020, 50: 1281–1302, doi: 10.1360/SSI-2020-0204 Zhang B, Zhu J, Su H. Toward the third generation of artificial intelligence (in Chinese). Sci Sin Inform, 2020, 50: 1281–1302, doi: 10.1360/SSI-2020-0204

    ---------♥---------

    声明:本内容来源网络,版权属于原作者

    图片来源网络,不代表本公众号立场。如有侵权,联系删除

    AI博士私人微信,还有少量空位

    如何画出漂亮的深度学习模型图?

    如何画出漂亮的神经网络图?

    一文读懂深度学习中的各种卷积

    点个在看支持一下吧

    展开全文
  • 结合公司煤质管理不足之处,阐述了建立相应的煤质管理组织机构、制定具体管理制度及明确煤质管理目标、考核标准、考核范围、奖惩措施等源头煤质管理措施,并探讨了强化生产工作面现场管理及监督检查考核力度等煤质管理...
  • 对于强化学习的梳理

    千次阅读 2020-05-03 12:59:33
    强化学习(增强学习) 概述 知识联系 强化学习是属于机器学习的一种,机器学习主要分监督学习、非监督学习、半监督学习、增强学习。 强化学习的核心逻辑,那就是智能体(Agent)可以在环境(Environment)中根据奖励...

    强化学习(增强学习)

    概述

    知识联系

    强化学习是属于机器学习的一种,机器学习主要分监督学习、非监督学习、半监督学习、增强学习。

    强化学习的核心逻辑,那就是智能体(Agent)可以在环境(Environment)中根据奖励(Reward)的不同来判断自己在什么状态(State)下采用什么行动(Action),从而最大限度地提高累积奖励。

    定义及意义、目的

    描述:

    强化学习任务通常用马尔可夫决策过程(Markov Decision Process, 简称MDP)来描述:机器处于环境E中,状态空间为X,其中每个状态x∈x是机器感知到的环境的描述,如在种瓜任务上这就是当前瓜苗长势的描述;机器能采取的动作构成了动作空间A,如种瓜过程中有浇水、施不同的肥、使用不同的农药等多种可供选择的动作;若某个动作a∈A作用在当前状态x.上,则潜在的转移函数P将使得环境从当前状态按某种概率转移到另一个状态,如瓜苗状态为缺水,若选择动作浇水,则瓜苗长势会发生变化,瓜苗有一定的概率恢复健康,也有- -定的概率无法恢复;在转移到另–个状态的同时,环境会根据潜在的**“奖赏”(reward)函数R**反馈给机器- -个奖赏,如保持瓜苗健康对应奖赏+1,瓜苗凋零对应奖赏- -10,最终种出了好瓜对应奖赏+100.综合起来,强化学习任务对应了四元组E= (X,A,P, R>,其中P:Xx AxXr + R指定了状态转移概率, R:X xAxXHR指定了奖赏;在有的应用中,奖赏函数可能仅与状态转移有关,即R:Xx XHR.

    状态空间 动作空间导致状态空间依转移函数改变 状态空间改变会产生奖赏

    机器要做的是通过在环境中不断尝试而学得一个策略,根据这个策略在状态x下就知道要执行的动作a。在强化学习任务中,学习的目的就是要找到使长期积累奖赏最大化的策略

    策略的优劣取决于长期执行这一策略后得到的累计奖赏

    强化学习与监督学习的对比中:状态对应实例,动作对应标记 策略相当于分类器(离散)或回归器(连续),因此,在某种意义上,强化学习可以看做具有“延迟标记信息”的样本

    from:周志华《机器学习》

    学习目的:针对一些问题更好的进行决策

    1.强化学习是什么?与其它机器学习方法有什么关系?

    强化学习是一种机器学习方法,它使Agent能够在交互式环境中年通过试验并根据自己的行动和经验反馈的错误来进行学习。虽然监督学习和强化学习都使用输入和输出之间的映射关系,但强化学习与监督学习不同,监督学习提供给Agent的反馈是执行任务的正确行为,而强化学习使用奖励和惩罚作为积极和消极行为的信号。

    与无监督学习相比而言,强化学习在目标方面有所不同。虽然无监督学习的目标是找出数据点之间的相似性和不同性,但是在强化学习中,其目标是找到一个合适的动作模型,能够最大化Agent的累积奖励总额。下图表示了强化学习模型中涉及的基本思想和要素。

    原文链接:https://www.jianshu.com/p/9526f944ca6f

    强化学习要素

    智能体

    策略函数

    值函数

    值函数表示智能体在某一特定状态下的程度,等价于智能体从初始状态开始所获得的总的期望奖励。

    模型

    模型是指智能体对环境的表示,学习可分为基于模型的学习和无模型学习两种。

    强化学习的分类

    强化学习中有两种重要的方法:Policy Gradients和Q-learning。其中Policy Gradients方法直接预测在某个环境下应该采取的Action,而Q-learning方法预测某个环境下所有Action的期望值(即Q值),选择概率最大的那一个。一般来说,Q-learning方法只适合有少量离散取值的Action环境,而Policy Gradients方法适合有连续取值的Action环境。在与深度学习方法结合后,这两种算法就变成了Policy Network和DQN(Deep Q-learning Network)

    基于模式(Model Based)/无模式(Model free)

    按给定条件,强化学习可分为基于模式的强化学习(model-based RL)无模式强化学习(model-free RL),其中基于模式的强化学习需要有一个环境产生反馈的模型,无模式强化学习则不需要。我们想象, 我们的机器人正在这个世界里玩耍, 他不理解这个世界是怎样构成的, 也不理解世界对于他的行为会怎么样反馈. 举个例子, 他决定丢颗原子弹去真实的世界, 结果把自己给炸死了, 所有结果都是那么现实. 不过如果采取的是 model-based RL, 机器人会通过过往的经验, 先理解真实世界是怎样的, 并建立一个模型来模拟现实世界的反馈, 最后他不仅可以在现实世界中玩耍, 也能在模拟的世界中玩耍 , 这样就没必要去炸真实世界, 连自己也炸死了, 他可以像玩游戏一样炸炸游戏里的世界, 也保住了自己的小命。

    Model-free 的方法有很多, 像 Q learning, Sarsa, Policy Gradients 都是从环境中得到反馈然后从中学习. Model-free 中, 机器人只能按部就班, 一步一步等待真实世界的反馈, 再根据反馈采取下一步行动.。

    而 model-based RL 只是多了一道程序, 为真实世界建模, 也可以说他们都是 model-free 的强化学习, 只是 model-based 多出了一个虚拟环境, 我们不仅可以像 model-free 那样在现实中玩耍,还能在游戏中玩耍, 而玩耍的方式也都是 model-free 中那些玩耍方式, 最终 model-based 还有一个杀手锏是 model-free 超级羡慕的. 那就是想象力。他能通过想象来预判断接下来将要发生的所有情况. 然后选择这些想象情况中最好的那种. 并依据这种情况来采取下一步的策略, 这也就是 围棋场上 AlphaGo 能够超越人类的原因。

    基于概率(policy)/价值(value)

    基于概率是强化学习中最直接的一种, 他能通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动, 所以每种动作都有可能被选中, 只是可能性不同. 在基于概率这边, 有 Policy Gradients

    基于价值的方法输出是所有动作的价值, 我们会根据最高价值来选着动作, 相比基于概率的方法, 基于价值的决策部分更为铁定, 毫不留情, 就选价值最高的, 而基于概率的, 即使某个动作的概率最高, 但是还是不一定会选到他.在基于价值这边有 Q learning, Sarsa 等.

    而且我们还能结合这两类方法的优势之处, 创造更牛逼的一种方法, 叫做 Actor-Critic, actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程.

    主动强化学习(active RL)被动强化学习(passive RL)

    强化学习的变体包括逆向强化学习阶层强化学习部分可观测系统的强化学习。

    求解强化学习问题所使用的算法可分为策略搜索算法值函数(value function)算法两类。

    回合更新/单步更新

    强化学习还能用另外一种方式分类, 回合更新和单步更新, 想象强化学习就是在玩游戏, 游戏回合有开始和结束. 回合更新指的是游戏开始后, 我们要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新我们的行为准则. 而单步更新则是在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样我们就能边玩边学习了.

    再来说说方法, Monte-carlo learning 和基础版的 policy gradients 等 都是回合更新制, Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 因为单步更新更有效率, 所以现在大多方法都是基于单步更新. 比如有的强化学习问题并不属于回合问题.

    在线(on Policy)/离线(off Policy)学习

    在线学习, 就是指我必须本人在场, 并且一定是本人边玩边学习, 而离线学习是你可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习 同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习. 或者我也不必要边玩边学习, 我可以白天先存储下来玩耍时的记忆, 然后晚上通过离线学习来学习白天的记忆.

    最典型的在线学习就是 Sarsa 了, 还有一种优化 Sarsa 的算法, 叫做 Sarsa lambda, 最典型的离线学习就是 Q learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如让计算机学会玩电动的 Deep-Q-Network.

    举例分析

    强化学习有哪些实际应用?

    适用于决策性的问题

    由于增强学习需要大量的数据,因此它最适用于模拟数据领域,比如游戏、机器人等。

    在电脑游戏中,增强学习被广泛地应用于人工智能的构建中。AlphaGo Zero是围棋界第一个击败世界冠军的计算机程序,类似的还有ATARI游戏、西洋双陆棋等。

    在机器人和工业自动化领域,增强学习被用于使机器人为其自身创建一个高效的自适应控制系统,从而能够从自己的经验和行为中学习。DeepMind在深度增强学习上的成果也是一个很好的例子。

    增强学习的其它应用包括文本摘要引擎、对话代理(文本、语言),它们可以从用户交互中学习,并随着时间的推移而不断改进。此外,对于医疗保健和在线股票交易而言,基于增强学习的性能也是最佳的。

    强化学习算法简介

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2uOHONpr-1588481788035)(…/…/…/…/AppData/Roaming/Typora/typora-user-images/image-20200416175910399.png)]

    1. 基于价值(Value)

    Q-learning算法

    莫烦教程

    Q learning 算法是基于表格的学习算法,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mhdi9kwC-1588481788044)(https://morvanzhou.github.io/static/results/ML-intro/q4.png)]

    这一张图概括了所有的内容. 这也是 Q learning 的算法, 每次更新我们都用到了 Q 现实和 Q 估计, 而且 Q learning 的迷人之处就是 在 Q(s1, a2) 现实 中, 也包含了一个 Q(s2) 的最大估计值, 将对下一步的衰减的最大估计和当前所得到的奖励当成这一步的现实, 很奇妙吧.

    最后我们来说说这套算法中一些参数的意义:

    • Epsilon greedy是用在决策上的一种策略, 比如 epsilon = 0.9 时, 就说明有90% 的情况我会按照 Q 表的最优值选择行为, 10% 的时间使用随机选行为.
    • alpha是学习率, 来决定这次的误差有多少是要被学习的, alpha是一个小于1 的数.
    • gamma 是对未来 reward 的衰减值.

    Sarsa

    Sarsa 的决策部分和 Q learning 一模一样, 因为我们使用的是 Q 表的形式决策, 所以我们会在 Q 表中挑选值较大的动作值施加在环境中来换取奖惩. 但是不同的地方在于 Sarsa 的更新方式是不一样的.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lHiYGRMy-1588481788050)(https://morvanzhou.github.io/static/results/ML-intro/s3.png)]

    同样, 我们会经历正在写作业的状态 s1, 然后再挑选一个带来最大潜在奖励的动作 a2, 这样我们就到达了 继续写作业状态 s2, 而在这一步, 如果你用的是 Q learning, 你会观看一下在 s2 上选取哪一个动作会带来最大的奖励, 但是在真正要做决定时, 却不一定会选取到那个带来最大奖励的动作, Q-learning 在这一步只是估计了一下接下来的动作值. 而 Sarsa 是实践派, 他说到做到, 在 s2 这一步估算的动作也是接下来要做的动作. 所以 Q(s1, a2) 现实的计算值, 我们也会稍稍改动, 去掉maxQ, 取而代之的是在 s2 上我们实实在在选取的 a2 的 Q 值. 最后像 Q learning 一样, 求出现实和估计的差距 并更新 Q 表里的 Q(s1, a2).

    对比 Sarsa 和 Q-learning

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S0eFks60-1588481788053)(https://morvanzhou.github.io/static/results/ML-intro/s4.png)]

    从算法来看, 这就是他们两最大的不同之处了. 因为 Sarsa 是说到做到型, 所以我们也叫他 on-policy, 在线学习, 学着自己在做的事情. 而 Q learning 是说到但并不一定做到, 所以它也叫作 Off-policy, 离线学习. 而因为有了 maxQ, Q-learning 也是一个特别勇敢的算法,因为 Q learning 机器人 永远都会选择最近的一条通往成功的道路, 不管这条路会有多危险. 而 Sarsa 则是相当保守, 他会选择离危险远远的, 拿到宝藏是次要的, 保住自己的小命才是王道. 这就是使用 Sarsa 方法的不同之处.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rqaVT6Ea-1588481788055)(https://morvanzhou.github.io/static/results/ML-intro/s5.png)]

    DQN(Deep Q-learning)

    什么是DQN:一种融合了神经网络和 Q learning 的方法。

    为什么提出DQN:传统的表格形式的强化学习有这样一个瓶颈,用表格来存储每一个状态 state, 和在这个 state 每个行为 action 所拥有的 Q 值. 而当今问题是在太复杂, 状态可以多到比天上的星星还多(比如下围棋). 如果全用表格来存储它们, 恐怕我们的计算机有再大的内存都不够, 而且每次在这么大的表格中搜索对应的状态也是一件很耗时的事.

    DQN的输入形式:可以将状态和动作当成神经网络的输入, 然后经过神经网络分析后得到动作的 Q 值, 这样我们就没必要在表格中记录 Q 值, 而是直接使用神经网络生成 Q 值.也能只输入状态值, 输出所有的动作值, 然后按照 Q learning 的原则, 直接选择拥有最大值的动作当做下一步要做的动作.

    神经网络的更新方式:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46KeSlkv-1588481788056)(https://morvanzhou.github.io/static/results/ML-intro/DQN3.png)]

    接下来我们基于第二种神经网络来分析, 我们知道, 神经网络是要被训练才能预测出准确的值. 那在强化学习中, 神经网络是如何被训练的呢? 首先, 我们需要 a1, a2 正确的Q值, 这个 Q 值我们就用之前在 Q learning 中的 Q 现实来代替. 同样我们还需要一个 Q 估计 来实现神经网络的更新. 所以神经网络的的参数就是老的 NN 参数 加学习率 alpha 乘以 Q 现实 和 Q 估计 的差距. 我们整理一下.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IcoZs9Iz-1588481788058)(https://morvanzhou.github.io/static/results/ML-intro/DQN4.png)]

    我们通过 NN 预测出Q(s2, a1) 和 Q(s2,a2) 的值, 这就是 Q 估计. 然后我们选取 Q 估计中最大值的动作来换取环境中的奖励 reward. 而 Q 现实中也包含从神经网络分析出来的两个 Q 估计值, 不过这个 Q 估计是针对于下一步在 s’ 的估计. 最后再通过刚刚所说的算法更新神经网络中的参数. 但是这并不是 DQN 会玩电动的根本原因. 还有两大因素支撑着 DQN 使得它变得无比强大. 这两大因素就是 Experience replay 和 Fixed Q-targets.

    DQN两大利器

    Experience replay :DQN 有一个记忆库用于学习之前的经历,Q learning 是一种 off-policy 离线学习法, 它能学习当前经历着的, 也能学习过去经历过的, 甚至是学习别人的经历. 所以每次 DQN 更新的时候, 我们都可以随机抽取一些之前的经历进行学习. 随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率.。

    Fixed Q-targets:是一种打乱相关性的机理, 如果使用 fixed Q-targets, 我们就会在 DQN 中使用到两个结构相同但参数不同的神经网络, 预测 Q 估计 的神经网络具备最新的参数, 而预测 Q 现实 的神经网络使用的参数则是很久以前的

    DQN算法:

    D3QN PER算法

    2. 基于概率(Policy)

    Policy Gradients

    (可以直接预测出一个连续的动作值,而不是像value-based那样给出若干离散动作的值或者概率)

    强化学习是一个通过奖惩来学习正确行为的机制. 家族中有很多种不一样的成员, 有学习奖惩值, 根据自己认为的高价值选行为, 比如 Q learning, Deep Q Network, 也有不通过分析奖励值, 直接输出行为的方法, 这就是今天要说的 Policy Gradients 了. 甚至我们可以为 Policy Gradients 加上一个神经网络来输出预测的动作. 对比起以值为基础的方法, Policy Gradients 直接输出动作的最大好处就是, 它能在一个连续区间内挑选动作, 而基于值的, 比如 Q-learning, 它如果在无穷多的动作中计算价值, 从而选择行为, 这, 它可吃不消.

    更新方法

    ​ Policy Gradients 的误差又是什么呢? 答案是! 哈哈, 没有误差! 但是他的确是在进行某一种的反向传递. 这种反向传递的目的是让这次被选中的行为更有可能在下次发生. 但是我们要怎么确定这个行为是不是应当被增加被选的概率呢? 这时候我们的老朋友, reward 奖惩正可以在这时候派上用场。

    ​ 现在我们来演示一遍, 观测的信息通过神经网络分析, 选出了左边的行为, 我们直接进行反向传递, 使之下次被选的可能性增加, 但是奖惩信息却告诉我们, 这次的行为是不好的, 那我们的动作可能性增加的幅度 随之被减低. 这样就能靠奖励来左右我们的神经网络反向传递. 我们再来举个例子, 假如这次的观测信息让神经网络选择了右边的行为, 右边的行为随之想要进行反向传递, 使右边的行为下次被多选一点, 这时, 奖惩信息也来了, 告诉我们这是好行为, 那我们就在这次反向传递的时候加大力度, 让它下次被多选的幅度更猛烈! 这就是 Policy Gradients 的核心思想了. 很简单吧.

    Actor Critic(演员评判家)

    参考文章:一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm)

    Actor-Critic算法详解(附代码)

    强化学习——策略梯度与Actor-Critic算法(详细)

    强化学习中的一种结合体 Actor Critic (演员评判家), 它合并了 以值为基础 (比如 Q learning) 和 以动作概率为基础 (比如 Policy Gradients) 两类强化学习算法.

    起源:我们有了像 Q-learning 这么伟大的算法, 为什么还要瞎折腾出一个 Actor-Critic? 原来 Actor-Critic 的 Actor 的前生是 Policy Gradients, 这能让它毫不费力地在连续动作中选取合适的动作, 而 Q-learning 做这件事会瘫痪. 那为什么不直接用 Policy Gradients 呢? 原来 Actor Critic 中的 Critic 的前生是 Q-learning 或者其他的 以值为基础的学习法 , 能进行单步更新, 而传统的 Policy Gradients 则是回合更新, 这降低了学习效率.(所以Actor-Critic就是结合了以值为基础算法的学习效率和以概率为基础算法的能输出连续动作优点

    作用:现在我们有两套不同的体系, Actor 和 Critic, 他们都能用不同的神经网络来代替 . 在 Policy Gradients 的影片中提到过, 现实中的奖惩会左右 Actor 的更新情况. Policy Gradients 也是靠着这个来获取适宜的更新. 那么何时会有奖惩这种信息能不能被学习呢? 这看起来不就是 以值为基础的强化学习方法做过的事吗. 那我们就拿一个 Critic 去学习这些奖惩机制, 学习完了以后. 由 Actor 来指手画脚, 由 Critic 来告诉 Actor 你的那些指手画脚哪些指得好, 哪些指得差, Critic 通过学习环境和奖励之间的关系, 能看到现在所处状态的潜在奖励, 所以用它来指点 Actor 便能使 Actor 每一步都在更新, 如果使用单纯的 Policy Gradients, Actor 只能等到回合结束才能开始更新.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O8x012kF-1588481788060)(https://morvanzhou.github.io/static/results/ML-intro/AC3.png)]

    但是事物终有它坏的一面, Actor-Critic 涉及到了两个神经网络, 而且每次都是在连续状态中更新参数, 每次参数更新前后都存在相关性, 导致神经网络只能片面的看待问题, 甚至导致神经网络学不到东西. Google DeepMind 为了解决这个问题, 修改了 Actor Critic 的算法,(DDPG)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zbwuCpFa-1588481788063)(https://morvanzhou.github.io/static/results/ML-intro/AC4.png)]

    将之前在电动游戏 Atari 上获得成功的 DQN 网络加入进 Actor Critic 系统中, 这种新算法叫做 Deep Deterministic Policy Gradient, 成功的解决的在连续动作预测上的学不到东西问题. 所以之后, 我们再来说说什么是这种高级版本的 Deep Deterministic Policy Gradient 吧.

    A3C

    A3C是Google DeepMind 提出的一种解决Actor-Critic不收敛问题的算法。我们知道DQN中很重要的一点是他具有经验池,可以降低数据之间的相关性,而A3C则提出降低数据之间的相关性的另一种方法:异步

    简单来说:A3C会创建多个并行的环境, 让多个拥有副结构的 agent 同时在这些并行环境上更新主结构中的参数. 并行中的 agent 们互不干扰, 而主结构的参数更新受到副结构提交更新的不连续性干扰, 所以更新的相关性被降低, 收敛性提高.

    img

    A3C的算法实际上就是将Actor-Critic放在了多个线程中进行同步训练. 可以想象成几个人同时在玩一样的游戏, 而他们玩游戏的经验都会同步上传到一个中央大脑. 然后他们又从中央大脑中获取最新的玩游戏方法。

    这样, 对于这几个人, 他们的好处是: 中央大脑汇集了所有人的经验, 是最会玩游戏的一个, 他们能时不时获取到中央大脑的必杀招, 用在自己的场景中.

    对于中央大脑的好处是: 中央大脑最怕一个人的连续性更新, 不只基于一个人推送更新这种方式能打消这种连续性. 使中央大脑不必像DQN,DDPG那样的记忆库也能很好的更新。

    img

    为了达到这个目的,我们要有两套体系, 可以看作中央大脑拥有global net和他的参数, 每位玩家有一个global net的副本local net, 可以定时向global net推送更新, 然后定时从global net那获取综合版的更新.

    img

    如果在 tensorboard 中查看我们今天要建立的体系, 这就是你会看到的。

    img

    强化学习的问题

    来源

    对于制约强化学习在业界应用的痛点也有点感悟,跟大家分享下:

    1. **学习的稳定性问题:**众所周知,强化学习通过探索和利用学习,探索不免会带来劣化,有些场景对劣化容忍度很低。这就要求强化学习策略能够不进入严重劣化区间,那么算法就需要能够每一步学习都不会变差,TRPO和PPO等系列算法对这个问题有一定解决方案。
    2. **学习的收敛性问题:**最基础的策略迭代或者q-learning之类的算法可以理论证明其收敛性。而由于状态和动作空间太大引入值函数之后,收敛性以及收敛速度的证明就有点玄乎了,尤其是引入了神经网络之后。有些工业场景是希望能够快速收敛的,收敛慢或者震荡收敛都是不能接受的,比如网络参数的调整要能够快速收敛,不能让用户觉得网络一会好一会差。
    3. **回报函数的确定问题:**如果上面两点还是技术性问题的话,这个问题就有点哲学味道了。Alphago能够成功应用,就是因为输赢这种回报是明确的。而真正的工业问题,很多时候回报是多选且难以综合的,片面的回报只会带来负增益。当前的一种解决方案是逆强化学习,人脑是很奇妙的,很多复杂场景下你的大脑会给出有价值的判断,但你自己没法用公式表达出来。逆强化学习的一个目标就是学习一个策略能够逼近人类专家的行为策略,逆向出回报的表达形式。
    4. **多智能体协同问题:**很多工业场景涉及的智能主体有多个,比如企业场景下wlan的部署,每个AP也就是类似于家用路由器需要在不同的功率、信道参数之间进行选择,期望整体用户体验最佳。而每个AP的回报以及它能感知的环境都是局部的,如果同步整体环境以及其他的局部回报是需要有明确的有效策略来保证的,这其中涉及到分布式学习以及如何权衡局部和全局回报问题。前面三个问题在此场景下都依然存在且变得更为复杂。

    要解决以上等问题,还需要学届和业界通力配合,一旦解决,应用场景真的是非常广阔。

    强化学习的部署

    作者:田子宸
    链接:https://www.zhihu.com/question/329372124/answer/743251971
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    先说结论:部署的方式取决于需求

    需求一:简单的demo演示,只要看看效果的,像是学校里面的demo展示这种

    caffe、tf、pytorch等框架随便选一个,切到test模式,拿python跑一跑就好,顺手写个简单的GUI展示结果

    高级一点,可以用CPython包一层接口,然后用C++工程去调用

    需求二:要放到服务器上去跑,但一不要求吞吐二不要求时延的那种,说白了还是有点玩玩的意思

    caffe、tf、pytorch等框架随便选一个,按照官方的部署教程,老老实实用C++部署,例如pytorch模型用工具导到libtorch下跑(官方有教程,很简单)

    这种还是没有脱离框架,有很多为训练方便保留的特性没有去除,性能并不是最优的;

    另外,这些框架要么CPU,要么NVIDIA GPU,对硬件平台有要求,不灵活;

    还有,框架是真心大,占内存(tf还占显存),占磁盘

    需求三:放到服务器上跑,要求吞吐和时延(重点是吞吐)

    这种应用在互联网企业居多,一般是互联网产品的后端AI计算,例如人脸验证、语音服务、应用了深度学习的智能推荐等。

    由于一般是大规模部署,这时不仅仅要考虑吞吐和时延,还要考虑功耗和成本。所以除了软件外,硬件也会下功夫,比如使用推理专用的NVIDIA P4、寒武纪MLU100等。这些推理卡比桌面级显卡功耗低,单位能耗下计算效率更高,且硬件结构更适合高吞吐量的情况

    软件上,一般都不会直接上深度学习框架。对于NVIDIA的产品,一般都会使用TensorRT来加速(我记得NVIDIA好像还有TensorRT inference server什么的,名字记不清了,反正是不仅可以加速前传,还顺手帮忙调度了)。TensorRT用了CUDA、CUDNN,而且还有图优化、fp16、int8量化等。反正用NVIDIA的一套硬软件就对了

    需求四:放在NVIDIA嵌入式平台上跑,注重时延

    比如PX2、TX2、Xavier等,参考上面(用全家桶就对了),也就是贵一点嘛

    需求五:放在其他嵌入式平台上跑,注重时延

    硬件方面,要根据模型计算量和时延要求,结合成本和功耗要求,选合适的嵌入式平台。

    比如模型计算量大的,可能就要选择带GPU的SoC,用opencl/opengl/vulkan编程;也可以试试NPU,不过现在NPU支持的算子不多,一些自定义Op多的网络可能部署不上去

    对于小模型,或者帧率要求不高的,可能用CPU就够了,不过一般需要做点优化(剪枝、量化、SIMD、汇编、Winograd等)

    顺带一提,在手机上部署深度学习模型也可以归在此列,只不过硬件没得选,用户用什么手机你就得部署在什么手机上23333。为老旧手机部署才是最为头疼的

    上述部署和优化的软件工作,在一些移动端开源框架都有人做掉了,一般拿来改改就可以用了,性能都不错。

    需求六:上述部署方案不满足我的需求

    比如开源移动端框架速度不够——自己写一套。比如像商汤、旷世、Momenta都有自己的前传框架,性能应该都比开源框架好。只不过自己写一套比较费时费力,且如果没有经验的话,很有可能费半天劲写不好

    Gym

    Gym 是 OpenAI 发布的用于开发和比较强化学习算法的工具包。使用它我们可以让 AI 智能体做很多事情,比如行走、跑动,以及进行多种游戏。提供强化学习所需要的环境

    我的理解

    我觉得强化学习是提供了一种学习思路,使得agent能够根据环境的反馈形成一种自发的学习模式,为了一定的目标而做出最优决策

    展开全文
  • 会议明确了2019年药品上市后监管的重点任务,包括强化疫苗监管,强化疫苗批签发管理,加大对疫苗生产企业检查力度,挂牌督办疫苗违法案件;强化药品抽检和不良反应监测,强化网络售药监管,强化对高风险品种监管等。...

    中新网1月21日电 据国家药监局网站消息,1月17日至18日,全国药品注册管理和上市后监管工作会议在京召开。会议明确了2019年药品上市后监管的重点任务,包括强化疫苗监管,强化疫苗批签发管理,加大对疫苗生产企业检查力度,挂牌督办疫苗违法案件;强化药品抽检和不良反应监测,强化网络售药监管,强化对高风险品种监管等。

    药监局:强化疫苗批签发管理 加大生产企业检查力度

    资料图:排队挂号的人群。 中新社发 韦亮 摄

    会议总结了2018年药品注册管理和上市后监管工作,部署了2019年工作任务。国家药品监督管理局党组书记李利听取了会议情况汇报并提出要求,强调要深入研究当前药品监管工作面临的形势和任务,部署落实好2019年重点工作。

    国家药品监督管理局局长焦红充分肯定2018年药品监管工作取得的成绩。2018年药品审评审批制度改革不断深化,特瑞普利单抗注射液等48个新药获批上市,仿制药质量和疗效一致性评价稳步推进,上市许可持有人制度试点取得成效;现场检查力度不断加大,有效发挥药品监督抽检和风险监测作用,药品安全风险防控关口进一步前移;妥善处理长春长生疫苗案件,对45家疫苗生产企业全面排查风险,推进完善疫苗监管长效机制;国家药监局成功当选国际人用药品注册技术协调会(ICH)管理委员会成员,药品监管国际话语权不断提升。

    焦红强调,下一步,药品监管部门要认真落实“四个最严”要求,着力解决药品领域不平衡不充分发展的问题。持续推进“放管服”改革,通过政策引导,有效监管和优化服务,促进医药产业持续健康发展。要加快临床急需和罕见病治疗药品的审评审批,制定鼓励药物研发创新的政策。推动法律法规制修订,不断完善标准体系建设。强化高风险重点产品监管,用好检查、抽检、监测等多种监管手段,严防严管严控安全风险。始终坚持科学监管理念,完善监管体制机制,努力提高药品监管的科学化、法治化、国际化、现代化水平,持续提高人民群众满意度、获得感。

    国家药品监督管理局副局长陈时飞在大会总结时指出,本次机构改革单独组建国家药品监督管理局,突出了药品监管的重要性、特殊性和专业性。药品监管工作要进一步增强使命意识、责任意识,围绕全国药品监督管理工作会议提出的“坚持一个导向,坚定两个目标,夯实三个支撑”的中心任务,树立“大安全”与“大监管”的治理理念,一方面要增强科学决策能力、风险防控能力和专业支撑能力,强化基层执法监督能力,形成监管合力;另一方面,要在地方党委、政府的统一领导下,消除部门系统界限,充分调动各方积极性,实现药品安全社会共治。

    会议就2019年药品注册管理重点工作进行了部署:完善药品注册法规标准体系,加快推进《药品注册管理办法》等一系列规章制度的制修订,继续推进《中国药典》(2020年版)编制工作;深化药品审评审批制度改革,完善药品临床试验默示许可,进一步提高药物临床试验管理能力和药物临床研究水平;全力推进仿制药一致性评价,坚持标准不降低,进一步完善相关评价要求和指导原则,在保障药品可及性的基础上,分类推进;加强药物研制环节监管,完善药品注册现场检查管理,强化审评与检查检验工作的有机衔接,严厉打击数据造假,确保药物研究的真实性。

    会议同时明确了2019年药品上市后监管的重点任务:结合《药品管理法》修正案的颁布实施,推进药品生产、流通、抽查检验、不良反应监测等一系列监督管理办法的制修订;明确监管事权、细化监管流程、突出监管协作,探索建立药品全生命周期监管工作机制;强化疫苗监管,推动职业化药品检查员队伍建设,强化疫苗批签发管理,加大对疫苗生产企业检查力度,挂牌督办疫苗违法案件;强化药品抽检和不良反应监测,强化网络售药监管,强化对高风险品种监管;推进信息化追溯体系建设,提升监管效率;融合检查和稽查工作,建立协调联动机制,用好行刑衔接,严惩重处违法行为。

    会议还特别强调,药品注册管理和上市后监管工作中,必须对党风廉政和工作作风常抓不懈,要构建一支业务过硬、作风扎实、清正廉洁的药品监管队伍。

    展开全文
  • 目录参考资料Introduction to Deep Learning 深度学习介绍Deep RepresentationsDeep ...强化学习介绍Agent and Environment 代理与环境State 状态Major Components of an RL Agent 强化学习代理的主要组件PolicyValue

    目录

    参考资料

    https://hunch.net/~beygel/deep_rl_tutorial.pdf
    https://icml.cc/2016/tutorials/deep_rl_tutorial.pdf

    Tutorial: Deep Reinforcement Learning
    David Silver, Google DeepMind
    教程:深度强化学习

    Reinforcement Learning in a nutshell
    RL is a general-purpose framework for decision-making
    RL is for an agent with the capacity to act
    Each action influences the agent’s future state
    Success is measured by a scalar reward signal
    Goal: select actions to maximise future reward
    简而言之,强化学习
    强化学习是做出决策的通用框架
    强化学习适用于具有行动能力的代理
    每个动作都会影响代理的未来状态
    成功由标量奖励信号衡量
    目标:选择行动以最大化未来的回报

    Deep Learning in a nutshell
    DL is a general-purpose framework for representation learning
    Given an objective
    Learn representation that is required to achieve objective
    Directly from raw inputs
    Using minimal domain knowledge
    简而言之,深度学习
    深度学习是用于表示学习的通用框架
    给定一个目标
    学习为了实现目标所需要的表达
    直接从原始输入
    使用最少的领域知识

    Deep Reinforcement Learning: AI = RL + DL
    We seek a single agent which can solve any human-level task
    RL defines the objective
    DL gives the mechanism
    RL + DL = general intelligence
    深度强化学习:人工智能 = 强化学习 + 深度学习
    我们寻找一个单一的代理,它可以解决任何人类级别的任务
    强化学习定义了目标
    深度学习给出了机制
    强化学习 + 深度学习 = 一般智力

    Examples of Deep RL @DeepMind
    Play games: Atari, poker, Go, …
    Navigate worlds: 3D worlds, Labyrinth, …
    Control physical systems: manipulate, walk, swim, …
    Interact with users: recommend, optimise, personalise, …
    深度强化学习的示例 @DeepMind
    玩游戏:Atari,扑克,Go,…
    导航世界:3D世界,迷宫,…
    控制物理系统:操纵,行走,游泳,…
    与用户互动:推荐,优化,个性化,…

    Introduction to Deep Learning 深度学习介绍

    Deep Representations

    A deep representation is a composition of many functions
    深度表示是许多函数的组合
    深度表示是许多函数的组合
    Its gradient can be backpropagated by the chain rule
    它的梯度可以用链式法则反向传播
    它的梯度可以用链式法则反向传播

    Deep Neural Network 深度神经网络

    A deep neural network is typically composed of:
    Linear transformations h k + 1 = W h k h_{k+1} = W_{h_k} hk+1=Whk
    Non-linear activation functions h k + 2 = f ( h k + 1 ) h_{k+2} = f (h_{k+1}) hk+2=f(hk+1)
    A loss function on the output, e.g.
    Mean-squared error l = ∣ ∣ y ∗ − y ∣ ∣ 2 l = ||y^∗−y||^2 l=yy2
    Log likelihood l = l o g P [ y ∗ ] l = logP[y^∗] l=logP[y]
    深度神经网络通常包括:
    线性变换 h k + 1 = W h k h_{k+1} = W_{h_k} hk+1=Whk
    非线性激活函数 h k + 2 = f ( h k + 1 ) h_{k+2} = f (h_{k+1}) hk+2=f(hk+1)
    在输出的损失函数
    均方误差 l = ∣ ∣ y ∗ − y ∣ ∣ 2 l = ||y^∗−y||^2 l=yy2
    对数似然 l = l o g P [ y ∗ ] l = logP[y^∗] l=logP[y]

    通过随机梯度下降训练神经网络

    Sample gradient of expected loss L ( w ) = E [ l ] L(w) = E[l] L(w)=E[l]
    预期损失的样本梯度 L ( w ) = E [ l ] L(w) = E[l] L(w)=E[l]
    ∂ l ∂ w \frac{\partial l}{\partial \mathbf{w}} wl ~ E [ ∂ l ∂ w ] = ∂ L ( w ) ∂ w \mathbb{E}\left[\frac{\partial l}{\partial \mathbf{w}}\right]=\frac{\partial L(\mathbf{w})}{\partial \mathbf{w}} E[wl]=wL(w)
    Adjust w down the sampled gradient
    调整w向下的采样梯度
    沿采样梯度向下调整w
    Δ w ∝ ∂ l ∂ w \Delta w \propto \frac{\partial l}{\partial \mathbf{w}} Δwwl
    随机梯度下降

    Weight Sharing 权重共享

    Recurrent neural network shares weights between time-steps
    循环神经网络在时间步长之间共享权重
    循环神经网络在时间步长之间共享权重
    Convolutional neural network shares weights between local regions
    卷积神经网络在局部区域之间共享权重
    卷积神经网络在局部区域之间共享权重

    Introduction to Reinforcement Learning 强化学习介绍

    Many Faces of Reinforcement Learning
    强化学习的许多方面
    强化学习的许多方面

    Agent and Environment 代理与环境

    代理与环境
    At each step t t t
    the agent:
    Executes action a t a_t at
    Receives observation o t o_t ot
    Receives scalar reward r t r_t rt
    The environment:
    Receives action a t a_t at
    Emits observation o t + 1 o_{t+1} ot+1
    Emits scalar reward r t + 1 r_{t+1} rt+1

    State 状态

    Experience is a sequence of observations, actions, rewards
    o 1 , r 1 , a 1 , . . . , a t − 1 , o t , r t o_1,r_1,a_1,...,a_{t−1},o_t,r_t o1,r1,a1,...,at1,ot,rt
    The state is a summary of experience
    s t = f ( o 1 , r 1 , a 1 , . . . , a t − 1 , o t , r t ) s_t = f(o_1,r_1,a_1,...,a_{t−1},o_t,r_t) st=f(o1,r1,a1,...,at1,ot,rt)
    In a fully observed environment
    s t = f ( o t ) s_t = f(o_t) st=f(ot)

    Major Components of an RL Agent 强化学习代理的主要组件

    An RL agent may include one or more of these components:
    Policy: agent’s behaviour function
    Value function: how good is each state and/or action
    Model: agent’s representation of the environment
    强化学习代理可以包括以下一个或多个组件:
    policy:代理的行为函数
    价值函数:每个状态和/或动作有多好
    模型:代理对环境的表示

    Policy

    A policy is the agent’s behaviour
    It is a map from state to action:
    Deterministic policy: a = π ( s ) a = π(s) a=π(s)
    Stochastic policy: π ( a ∣ s ) = P [ a ∣ s ] π(a|s) = P[a|s] π(as)=P[as]
    policy是代理的行为
    这是从状态到行动的映射:
    确定的policy: a = π ( s ) a = π(s) a=π(s)
    随机的policy: π ( a ∣ s ) = P [ a ∣ s ] π(a|s) = P[a|s] π(as)=P[as]

    Value Function

    A value function is a prediction of future reward
    “How much reward will I get from action a in state s?”
    Q-value function gives expected total reward
    价值函数是对未来奖励的预测
    “在状态s下,代理将从行动a中获得多少奖励?”
    Q值函数给出预期的总回报
    from state s and action a a a
    under policy π π π
    with discount factor γ γ γ
    Q π ( a ∣ s ) = E [ r t + 1 + γ r t + 2 + γ 2 r t + 3 + . . . ∣ s , a ] Q^π(a|s) = E[r_{t+1} + γr_{t+2} + γ^2r_{t+3} + ... | s,a] Qπ(as)=E[rt+1+γrt+2+γ2rt+3+...s,a]
    Value functions decompose into a Bellman equation
    价值函数分解为Bellman方程
    Q π ( a ∣ s ) = E s ′ , a ′ [ r + γ Q π ( a ′ ∣ s ′ ) ∣ s , a ] Q^{\pi}(a | s)=\mathbb{E}_{s^{\prime}, a^{\prime}}\left[r+\gamma Q^{\pi}\left(a^{\prime} | s^{\prime}\right) | s, a\right] Qπ(as)=Es,a[r+γQπ(as)s,a]

    Optimal Value Functions

    An optimal value function is the maximum achievable value
    最佳价值函数是最大可实现值
    Q ∗ ( s , a ) = max ⁡ π Q π ( s , a ) = Q π ∗ ( s , a ) Q^{*}(s, a)=\max _{\pi} Q^{\pi}(s, a)=Q^{\pi^{*}}(s, a) Q(s,a)=maxπQπ(s,a)=Qπ(s,a)
    Once we have Q ∗ Q^∗ Q we can act optimally,
    一旦有了 Q ∗ Q^∗ Q,我们就可以采取最佳行动,
    π ∗ ( s ) = argmax ⁡ a Q ∗ ( s , a ) \pi^{*}(s)=\underset{a}{\operatorname{argmax}} Q^{*}(s, a) π(s)=aargmaxQ(s,a)
    Optimal value maximises over all decisions. Informally:
    最优价值使所有决策最大化。 Informally:
    Q ∗ ( s , a ) = r t + 1 + γ max ⁡ a t + 1 r t + 2 + γ 2 max ⁡ a t + 2 r t + 3 + … = r t + 1 + γ max ⁡ a t + 1 Q ∗ ( s t + 1 , a t + 1 ) Q^{*}(s, a)=r_{t+1}+\gamma \max _{a_{t+1}} r_{t+2}+\gamma^{2} \max _{a_{t+2}} r_{t+3}+\ldots=r_{t+1}+\gamma \max _{a_{t+1}} Q^{*}\left(s_{t+1}, a_{t+1}\right) Q(s,a)=rt+1+γmaxat+1rt+2+γ2maxat+2rt+3+=rt+1+γmaxat+1Q(st+1,at+1)
    Formally, optimal values decompose into a Bellman equation
    Formally,最优值分解为Bellman方程
    Q ∗ ( s , a ) = E s ′ [ r + γ max ⁡ a ′ Q ∗ ( s ′ , a ′ ) ∣ s , a ] Q^{*}(s, a)=\mathbb{E}_{s^{\prime}}\left[r+\gamma \max _{a^{\prime}} Q^{*}\left(s^{\prime}, a^{\prime}\right) | s, a\right] Q(s,a)=Es[r+γmaxaQ(s,a)s,a]

    Model

    Model is learnt from experience
    Acts as proxy for environment
    Planner interacts with model
    e.g. using lookahead search
    模型是从经验中学习得到的
    作为环境的代理
    计划者与模型交互
    例如,使用前瞻性搜索

    Approaches To Reinforcement Learning

    强化学习的方法
    Value-based Reinforcement Learning
    Estimate the optimal value function $Q^∗(s,a) $
    This is the maximum value achievable under any policy
    Policy-based Reinforcement Learning
    Search directly for the optimal policy π ∗ π^∗ π
    This is the policy achieving maximum future reward
    Model-based Reinforcement Learning
    Build a model of the environment
    Plan (e.g. by lookahead) using model
    基于value的强化学习
    估计最优value函数$Q^∗(s,a) $
    这是任何policy下可实现的最大value
    基于policy的强化学习
    直接搜索最优policy π ∗ π^∗ π
    这是实现最大未来奖励的policy
    基于模型的强化学习
    建立环境模型
    使用模型计划(例如,by lookahead)

    Deep Reinforcement Learning

    Use deep neural networks to represent
    使用深度神经网络来表示
    Value function
    Policy
    Model
    Optimise loss function by stochastic gradient descent
    利用随机梯度下降优化损失函数

    理解环境

    model-free 不理解环境

    从环境中得到反馈然后从中学习
    Q learning, Sarsa, Policy Gradients

    model-based 理解环境

    为真实世界建模,多出了一个虚拟环境

    基于策略基于价值

    Policy-Based 基于策略

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

    Value-Based 基于价值

    输出是所有动作的价值, 选择价值最高的动作
    不能选取连续的动作
    Q learning
    Sarsa

    Actor-Critic结合这两类方法的优势
    actor 会基于概率做出动作
    critic 会对做出的动作给出动作的价值
    在原有的Policy Gradients上加速了学习过程.

    回合更新单步更新

    回合更新 monte carlo

    游戏开始后, 要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新行为准则
    Monte-carlo learning 和基础版的Policy Gradients

    单步更新 temporal difference 时间差分

    在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样就能边玩边学习了
    Q learning, Sarsa , 升级版的Policy Gradients

    在线学习离线学习

    在线学习 on policy 同策略

    代理和环境交互过程中所选择的动作=计算评估函数的过程中选择的动作
    必须本人在场, 并且一定是本人边玩边学习
    Sarsa 、Sarsa lambda

    离线学习 off policy 异策略

    代理和环境交互过程中所选择的动作≠计算评估函数的过程中选择的动作
    可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则
    同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习.
    不必要边玩边学习, 可以白天先存储下来玩耍时的记忆, 然后晚上通过离线学习来学习白天的记忆
    Q learning、Deep-Q-Network

    monte carlo model free

    强化学习入门 第三讲 monte carlo
    机器学习 强化学习 北京理工大学
    不清楚markov决策过程的真实状态转移概率或即时奖励
    在现实的强化学习任务中,环境的转移概率、奖励函数往往很难得知, 甚至很难得知环境中有多少状态。
    免模型学习:学习算法不再依赖于环境建模
    通常情况下某个状态的价值=在多个episode中以该状态算得到的所有奖励的平均
    每条episode:一条从起始状态到结束状态的经历
    使用多次采样,然后求取平均累计奖赏作为期望累计奖赏的近似。

    First-visit

    在计算状态s处的值函数时,只利用每个episode中第一次访问到状态s时返回的值
    v ( s ) = ( G 11 ( s ) + G 21 ( s ) + … ) / N ( s ) v(s)=(G_{11}(s)+G_{21}(s)+…)/N(s) v(s)=(G11(s)+G21(s)+)/N(s)

    Every-visit

    在计算状态s处的值函数时,利用所有访问到状态s时的奖励返回
    v ( s ) = ( G 11 ( s ) + G 12 ( s ) + … + G 21 ( s ) + … ) / N ( s ) v(s)=(G_{11}(s)+G_{12}(s)+…+G_{21}(s)+…)/N(s) v(s)=(G11(s)+G12(s)++G21(s)+)/N(s)

    每进入一个episode S 1 , A 1 , R 2 , ⋯   , S t , A t , R t + 1 , ⋯   , S k S_1,A_1,R_2,\cdots,S_t,A_t,R_{t+1},\cdots,S_k S1,A1,R2,,St,At,Rt+1,,Sk
    每碰到一次 S t S_t St,可以计算平均价值
    N ( S t ) ← N ( S t ) + 1 N(S_t)\gets N(S_t)+1 N(St)N(St)+1
    V ( S t ) ← V ( S t ) + 1 / N ( S t ) ∗ ( G t − V ( S t ) ) V(S_t)\gets V(S_t)+1/N(S_t)*(G_t-V(S_t)) V(St)V(St)+1/N(St)(GtV(St))

    每个episode结束才能更新
    需要大量episode才比较准确
    需要采样一个完整的轨迹来更新值函数,效率较 低,此外该算法没有充分利用强化学习任务的序贯决策结构。

    直接对状态动作值函数Q(s,a)进行估计,每采样一条轨迹,就根据轨迹中的所有“状态-动作”利用下面的公式对来对值函数进行更新。
    𝑸(𝒔,𝒂)=(𝑸(𝒔,𝒂) ∗𝐜𝐨𝐮𝐧𝐭(𝒔,𝒂) +𝐑 ) / (𝐜𝐨𝐮𝐧𝐭(𝒔,𝒂) + 1)

    temporal difference 时间差分 model free

    强化学习入门 第四讲 时间差分
    机器学习 强化学习 北京理工大学

    V ( S t ) ← V ( S t ) + α ( G t − V ( S t ) ) V\left(S_t\right)\gets V\left(S_t\right)+\alpha\left(G_t-V\left(S_t\right)\right) V(St)V(St)+α(GtV(St))
    G t = R t + 1 + γ V ( S t + 1 ) G_t=R_{t+1}+\gamma V\left(S_{t+1}\right) Gt=Rt+1+γV(St+1)

    G t ( n ) = R t + 1 + γ R t + 2 + ⋯ + γ n − 1 R t + n + γ n V ( S t + n ) G_{t}^{\left(n\right)}=R_{t+1}+\gamma R_{t+2}+\cdots +\gamma^{n-1}R_{t+n}+\gamma^nV\left(S_{t+n}\right) Gt(n)=Rt+1+γRt+2++γn1Rt+n+γnV(St+n)
    G t ( n ) = R t + 1 + γ R t + 2 + ⋯ + γ T − 1 R T G_{t}^{\left(n\right)}=R_{t+1}+\gamma R_{t+2}+\cdots +\gamma^{T-1}R_{T} Gt(n)=Rt+1+γRt+2++γT1RT
    当n=1时,temporal difference
    当n=正无穷时,monte carlo
    n步temporal difference
    V ( S t ) ← V ( S t ) + α ( G t ( n ) − V ( S t ) ) V\left(S_t\right)\gets V\left(S_t\right)+\alpha\left(G_{t}^{\left(n\right)}-V\left(S_t\right)\right) V(St)V(St)+α(Gt(n)V(St))

    G t λ = ( 1 − λ ) ∑ n = 1 ∞ λ n − 1 G t ( n ) G_{t}^{\lambda}=\left(1-\lambda\right)\sum_{n=1}^{\infty}{\lambda^{n-1}}G_{t}^{\left(n\right)} Gtλ=(1λ)n=1λn1Gt(n)
    V ( S t ) ← V ( S t ) + α ( G t λ − V ( S t ) ) V\left(S_t\right)\gets V\left(S_t\right)+\alpha\left(G_{t}^{\lambda}-V\left(S_t\right)\right) V(St)V(St)+α(GtλV(St))
    λ \lambda λ=0时,temporal difference
    比较
    强化学习分类

    Value-Based 深度强化学习

    Q-Networks

    Represent value function by Q-network with weights w
    用权重为w的Q网络表示value函数
    Q ( s , a , w ) ≈ Q ∗ ( s , a ) Q(s,a,w) ≈ Q^∗(s,a) Q(s,a,w)Q(s,a)
    用权重为w的Q网络表示value函数

    Q-Learning

    Optimal Q-values should obey Bellman equation
    最优Q值应遵循Bellman方程
    Q ∗ ( s , a ) = E s ′ [ r + γ max ⁡ a ′ Q ∗ ( s ′ , a ′ ) ∣ s , a ] Q^{*}(s, a)=\mathbb{E}_{s^{\prime}}\left[r+\gamma \max _{a^{\prime}} Q^{*}\left(s^{\prime}, a^{\prime}\right) | s, a\right] Q(s,a)=Es[r+γmaxaQ(s,a)s,a]
    把右手边 r + γ max ⁡ a Q ( s ′ , a ′ , w ) r+\gamma \max _{a} Q\left(s^{\prime}, a^{\prime}, \mathbf{w}\right) r+γmaxaQ(s,a,w)作为一个目标
    Minimise MSE loss by stochastic gradient descent
    通过随机梯度下降,最小化均方误差损失
    I = ( r + γ max ⁡ a Q ( s ′ , a ′ , w ) − Q ( s , a , w ) ) 2 I=\left(r+\gamma \max _{a} Q\left(s^{\prime}, a^{\prime}, \mathbf{w}\right)-Q(s, a, \mathbf{w})\right)^{2} I=(r+γmaxaQ(s,a,w)Q(s,a,w))2
    Converges to Q ∗ Q^∗ Q using table lookup representation
    使用表查找表示形式收敛到 Q ∗ Q^∗ Q

    But diverges using neural networks due to:

    • Correlations between samples
    • Non-stationary targets

    但是由于以下原因,使用神经网络不收敛:

    • 样本之间的相关性
    • 非平稳目标

    Q-Learning

    ε贪心
    如果0<p<ε,那么随机action
    如果ε<p<1,那么 max ⁡ a Q ( s , a ) \max _{a} Q\left(s, a\right) maxaQ(s,a)
    𝝅(𝒔,𝒂) = a r g m a x a Q ( s , a ) argmax_{a} Q(s,a) argmaxaQ(s,a), 以概率𝟏−𝜺
    𝝅(𝒔,𝒂) = 随机从𝑨中选取动作, 以概率𝜺

    Q值表
    state为行,action为列,reward为元素
    Q ( s , a ) ← Q ( s , a ) + α [ R + γ max ⁡ a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] , γ ∈ [ 0 , 1 ) Q(s,a)←Q(s,a)+\alpha[R+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s,a)],\gamma∈[0,1) Q(s,a)Q(s,a)+α[R+γmaxaQ(s,a)Q(s,a)],γ[0,1)
    学习率*(Q的真实值 - Q的估计值)
    如果学习率越大,那么新估计值代替旧估计值的程度也越大

    任意初始化Q(s,a)
    for 每个episode
        初始化s
        重复 episode中的每一步
          从s中选择a,使用从Q中得到的策略,比如ε贪心
          采取动作a,观察到R和s_
          Q(s,a)←Q(s,a)+alpha*[R+gamma*max(Q(s_, a_))-Q(s,a)]
          s←s_
        直到s终止
    endfor
    

    算法

    off policy 异策略
    在选择动作执行的时候采取的策略 ≠ 在更新Q表的时候采取的策略
    行动策略是ε-greedy策略
    更新Q表的策略是贪婪策略

    sarsa state-action-reward-state’-action’

    Q ( s , a ) ← Q ( s , a ) + α [ R + γ Q ( s ′ , a ′ ) − Q ( s , a ) ] , γ ∈ [ 0 , 1 ) Q(s,a)←Q(s,a)+\alpha[R+\gamma Q\left(s^{\prime}, a^{\prime}\right)-Q(s,a)],\gamma∈[0,1) Q(s,a)Q(s,a)+α[R+γQ(s,a)Q(s,a)],γ[0,1)

    任意初始化Q(s,a)
    for 每个episode
        初始化s
        从s中选择a,使用从Q中得到的策略,比如ε贪心
        重复 episode中的每一步
          采取动作a,观察到R和s_
          从s_中选择a_,使用从Q中得到的策略,比如ε贪心
          Q(s,a)←Q(s,a)+alpha*[R+gamma*Q(s_, a_)-Q(s,a)]
          s←s_; a←a_
        直到s终止
    endfor
    

    on policy 同策略
    在选择动作执行的时候采取的策略 = 在更新Q表的时候采取的策略
    行动策略是ε-greedy策略
    评估策略是ε-greedy策略

    Deep Q-Networks (DQN): Experience Replay

    机器学习 强化学习 北京理工大学

    利用神经网络近似模拟函数Q(s,a),输入是问题的状态,输出是每个动作a对应的Q值,然后依据Q值大小选择对应状态执行的动作,以完成控制。
    学习流程:

    1. 状态s输入,获得所有动作对应的Q值Q(s,a);
    2. 选择对应Q值最大的动作a′并执行;
    3. 执行后环境发生改变,并能够获得环境的奖励r;
    4. 利用奖励r更新Q(s,a′)–强化学习
      利用新的Q(s,a′)更新网络参数—监督学习

    损失函数
    target网络

    初始化回放记忆D,容量N。用于存放采集的(s_t,a_t,r_t,s_{t+1})状态 转移过程,用于网络参数 的训练
    初始化动作值函数Q,随机权重θ。随机初始化神经网络的参数
    初始化target动作值函数Q_,权重θ_=θ
    for episode=1~M
        初始化序列s_1={x_1}和预处理序列φ_1=φ(s_1)
        获取环境的初始状态(x是采集的图像,使用图像作为agent的状态;预处理过程是使用几张图像代表当前状态,这里可以先忽略掉)
        for t=1~T
          ε贪心选择a_t(使用ε概率随机选取动作或使用1- ε的概率根据神经网络的输出选择动作a_t=max_a  Q(s_t,a; θ_i))
          采取动作a_t,观察到r_t和x_{t+1}
          设置s_{t+1}=s_t,a_t,x_{t+1}和预处理φ_{t+1}=φ(s_{t+1})
          保存transition(φ_t,a_t,r_t,φ_{t+1})在D中
          从D中采样transition(φ_j,a_j,r_j,φ_{j+1})的随机minibatch
          更新状态值函数的值 
          如果episode在j+1步终止,那么设置y_j=r_j
          如果episode在j+1步不终止,那么设置y_j=r_j+gamma*max(Q_(φ_{j+1},a_;θ_))
          使用监督学习方法更新网络的参数。执行一个梯度下降步在(y_j - Q_(φ_j,a_j;θ))^2,关于网络参数θ
          每C步重置Q_=Q
        endfor
    endfor
    

    算法 NIPS 2013

    DQN计算每个操作的期望值,然后选择可以获得最大期望值的操作。它吸收了深度学习网络的特征,因此可以作为深度自然网络进行训练,并提高了Q学习的学习能力。
    To remove correlations, build data-set from agent’s own experience
    要消除相关性,根据代理自身的经验构建数据集
    根据代理自身的经验构建数据集
    Sample experiences from data-set and apply update
    从数据集中采样经验并应用更新
    I = ( r + γ max ⁡ a ′ Q ( s ′ , a ′ , w − ) − Q ( s , a , w ) ) 2 I=\left(r+\gamma \max _{a'} Q\left(s^{\prime}, a^{\prime}, \mathbf{w^-}\right)-Q(s, a, \mathbf{w})\right)^{2} I=(r+γmaxaQ(s,a,w)Q(s,a,w))2

    To deal with non-stationarity, target parameters w− are held fixed
    为了处理非平稳性,将目标参数 w − \mathbf{w^-} w固定

    深度强化学习 in Atari

    Atari
    End-to-end learning of values Q ( s , a ) Q(s,a) Q(s,a) from pixels s
    Input state s is stack of raw pixels from last 4 frames
    Output is Q ( s , a ) Q(s,a) Q(s,a) for 18 joystick/button positions
    Reward is change in score for that step
    从像素s端到端学习值 Q ( s , a ) Q(s,a) Q(s,a)
    输入状态s是最近4帧的原始像素的堆栈
    输出为18个操纵杆/按钮位置的 Q ( s , a ) Q(s,a) Q(s,a)
    奖励是该步骤得分的变化
    Network architecture and hyperparameters fixed across all games
    固定在所有游戏中的网络体系结构和超参数

    游戏中的网络体系结构

    Deep Q-Networks Results in Atari

    Deep Q-Networks Atari Demo
    Deep Q-Networks paper 论文
    www.nature.com/articles/nature14236
    [1312.5602] Playing Atari with Deep Reinforcement Learning
    Deep Q-Networks source code 源代码
    sites.google.com/a/deepmind.com/dqn/

    Improvements since Nature DQN

    自 Nature DQN 以来的改进
    尽管DQN,DDQN,决斗DQN 和 Prioritised replay DQN在离散动作问题中具有出色的性能,但它们具有相同的缺点,不适合处理连续动作空间。由于连续动作的动作空间很大,因此无法计算每个动作的Q值然后做出动作选择。 当环境变得复杂而惩罚变得严厉时,他们将花费大量的训练步骤来获得最佳解决方案。

    Double Deep Q-Networks

    [1509.06461] Deep Reinforcement Learning with Double Q-learning
    Q-Learning 中有 Qmax,Qmax 会导致 Q现实 当中的过估计 (overestimate)。在实际问题中,可能会发现DQN 的Q 值都超级大。这就是出现了 overestimate。
    Double DQN对每个变量使用两个估计网络来解决DQN的过估计问题。而且可以加快“Q”网络的融合。 在某些离散问题上,它确实具有出色的性能。
    一个Q网络用于选择动作,另一个Q网络用于评估动作,交替工作,解决upward-bias问题。
    工作中如果有double-check,犯错的概率就能平方级别下降。

    Remove upward bias caused by max ⁡ a ′ Q ( s , a , w ) \underset{a^{\prime}}{\operatorname{max}} Q(s, a, \mathbf{w}) amaxQ(s,a,w)
    Current Q-network w is used to select actions
    Older Q-network w− is used to evaluate actions
    消除由 max ⁡ a ′ Q ( s , a , w ) \underset{a^{\prime}}{\operatorname{max}} Q(s, a, \mathbf{w}) amaxQ(s,a,w)引起的向上偏差
    当前的Q网络w用于选择动作
    旧的Q网络w−用于评估动作
    I = ( r + γ Q ( s ′ , argmax ⁡ a ′ Q ( s ′ , a ′ , w ) , w − ) − Q ( s , a , w ) ) 2 I=\left(r+\gamma Q\left(s^{\prime}, \underset{a^{\prime}}{\operatorname{argmax}} Q\left(s^{\prime}, a^{\prime}, \mathbf{w}\right), \mathbf{w}^{-}\right)-Q(s, a, \mathbf{w})\right)^{2} I=(r+γQ(s,aargmaxQ(s,a,w),w)Q(s,a,w))2

    莫烦
    两个网络有相同的结构,但内部的参数更新却有时差
    因为神经网络预测Qmax本来就有误差,每次也向着最大误差的Q现实改进神经网络,就是因为这个Qmax导致了overestimate。
    Double DQN的想法:引入另一个神经网络来抵消一些最大误差的影响
    DQN中有两个神经网络,所以用Q估计的神经网络估计Q现实中Qmax(s’,a’)的最大动作值。然后用这个被Q估计估计出来的动作来选择Q现实中的Q(s’)
    有两个神经网络: Q_eval (Q估计中的), Q_next (Q现实中的)
    DQN:Q_next = max(Q_next(s’, a_all))
    Y t D Q N ≡ R t + 1 + γ max ⁡ a Q ( S t + 1 , a ; θ t − ) Y_{t}^{\mathrm{DQN}} \equiv R_{t+1}+\gamma \max _{a} Q\left(S_{t+1}, a ; \boldsymbol{\theta}_{t}^{-}\right) YtDQNRt+1+γmaxaQ(St+1,a;θt)
    Double DQN:Q_next = Q_next(s’, argmax(Q_eval(s’, a_all)))
    Y t DoubleDQN  ≡ R t + 1 + γ Q ( S t + 1 , argmax ⁡ a Q ( S t + 1 , a ; θ t ) , θ t − ) Y_{t}^{\text {DoubleDQN }} \equiv R_{t+1}+\gamma Q\left(S_{t+1}, \underset{a}{\operatorname{argmax}} Q\left(S_{t+1}, a ; \boldsymbol{\theta}_{t}\right), \boldsymbol{\theta}_{t}^{-}\right) YtDoubleDQN Rt+1+γQ(St+1,aargmaxQ(St+1,a;θt),θt)

    Prioritised replay

    [1511.05952] Prioritized Experience Replay
    具有Prioritised replay 记忆池,可以有效地学习有效信息。

    Weight experience according to surprise
    Store experience in priority queue according to DQN error
    根据惊喜来对经验确定权重
    根据DQN错误将经验存储在优先级队列中
    ∣ r + γ max ⁡ a ′ Q ( s ′ , a ′ , w − ) − Q ( s , a , w ) ∣ \left|r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}, \mathbf{w}^{-}\right)-Q(s, a, w)\right| r+γmaxaQ(s,a,w)Q(s,a,w)

    Double Learning and Prioritized Experience Replay
    replay加速训练过程,变相增加样本,并且能独立于当前训练过程中状态的影响
    莫烦
    算法
    batch 抽样的时候并不是随机抽样, 而是按照 Memory 中的样本优先级来抽
    用到 TD-error, 也就是 Q现实 - Q估计 来规定优先学习的程度
    如果 TD-error 越大, 就代表我们的预测精度还有很多上升空间, 那么这个样本就越需要被学习, 也就是优先级 p 越高

    SumTree
    每个树枝节点只有两个分叉
    每片树叶存储每个样本的优先级 p
    节点的值是两个分叉的和
    SumTree 的顶端就是所有 p 的和
    抽样时将 p 的总和 除以 batch size, 分成(n=sum§/batch_size)那么多区间,
    然后在每个区间里随机选取一个数。比如在第区间[21-28]里选到了24,然后从最顶上的42开始向下搜索。
    左边的child 29>24,那么左边
    左边的child 13<24,那么右边,并且把24变成变成 24-左边的child 13=11
    左边的child 12>11,那么左边,即12当做这次选到的priority,并且也选择12对应的数据。

    Duelling network 决斗网络

    [1511.06581] Dueling Network Architectures for Deep Reinforcement Learning
    决斗DQN可以加速Q网络的收敛。 而且,与DQN相比,它提高了优化的稳定性,并且在实践中效果更好。

    Split Q-network into two channels
    Action-independent value function V ( s , v ) V(s,v) V(s,v)
    Action-dependent advantage function A ( s , a , w ) A(s,a,w) A(s,a,w)
    将Q网络分成两个通道
    与action无关的价值函数 V ( s , v ) V(s,v) V(s,v)
    与action有关的优势函数 A ( s , a , w ) A(s,a,w) A(s,a,w)
    Q ( s , a ) = V ( s , v ) + A ( s , a , w ) Q(s,a) = V(s,v) + A(s,a,w) Q(s,a)=V(s,v)+A(s,a,w)

    Combined algorithm: 3x mean Atari score vs Nature DQN
    组合算法:3x mean Atari score vs Nature DQN

    莫烦
    将每个动作的 Q 拆分成了 state 的 Value 加上 每个动作的 Advantage
    因为有时候在某种 state, 无论做什么action, 对下一个 state 都没有多大影响,任何策略都不影响回报,显然需要剔除
    DQN 神经网络输出的是每种动作的 Q值
    Dueling DQN 神经网络输出的是每个动作的 Q值
    V(s)与动作无关,A(s, a)与动作相关,是a相对s平均回报的相对好坏,是优势,解决reward-bias问题。
    强化学习中真正关心的还是策略的好坏,更关系的是优势

    General Reinforcement Learning Architecture (Gorila) 通用强化学习架构

    通用强化学习架构
    10x faster than Nature DQN on 38 out of 49 Atari games
    Applied to recommender systems within Google
    在49个Atari游戏中,有38个比Nature DQN快10倍
    应用于Google内的推荐系统

    Asynchronous Reinforcement Learning 异步强化学习

    Exploits multithreading of standard CPU
    Execute many instances of agent in parallel
    Network parameters shared between threads
    Parallelism decorrelates data
    Viable alternative to experience replay
    Similar speedup to Gorila - on a single machine!

    利用标准CPU的多线程
    并行执行多个代理实例
    线程之间共享的网络参数
    并行去相关数据
    经验回放的可行替代方案
    类似于Gorila的加速,在单台机器上!

    Policy-Based 深度强化学习

    DQN虽然在Atari游戏问题中取得了巨大的成功,但适用范围还是在低维、离散动作空间。

    1. 如果把连续动作空间离散化,动作空间则会过大,极难收敛。划分本身也带来了信息损失。
    2. DQN只能给出一个确定性的action,无法给出概率值。

    Deep Policy Networks

    Represent policy by deep network with weights u u u
    通过具有权重 u u u的深度网络来表示policy
    a = π ( a ∣ s , u ) a = π(a|s,u) a=π(as,u) or a = π ( s , u ) a = π(s,u) a=π(s,u)
    Define objective function as total discounted reward
    将目标函数定义为总折扣奖励
    L ( u ) = E [ r 1 + γ r 2 + γ 2 r 3 + … ∣ π ( ⋅ , u ) ] L(\mathbf{u})=\mathbb{E}\left[r_{1}+\gamma r_{2}+\gamma^{2} r_{3}+\ldots | \pi(\cdot, \mathbf{u})\right] L(u)=E[r1+γr2+γ2r3+π(,u)]
    Optimise objective end-to-end by SGD
    i.e. Adjust policy parameters u to achieve more reward
    通过随机梯度下降端到端优化目标
    即调整policy参数 u u u以获得更多奖励

    Policy Gradients

    How to make high-value actions more likely:
    如何更可能采取高价值的行动:

    The gradient of a stochastic policy π ( a ∣ s , u ) π(a|s,u) π(as,u) is given by
    随机的策略的梯度 π ( a ∣ s , u ) π(a|s,u) π(as,u) is given by
    ∂ L ( u ) ∂ u = E [ ∂ log ⁡ π ( a ∣ s , u ) ∂ u Q π ( s , a ) ] \frac{\partial L(\mathbf{u})}{\partial u}=\mathbb{E}\left[\frac{\partial \log \pi(a | s, \mathbf{u})}{\partial \mathbf{u}} Q^{\pi}(s, a)\right] uL(u)=E[ulogπ(as,u)Qπ(s,a)]

    Deterministic Policy Gradient Algorithms
    The gradient of a deterministic policy a = π ( s ) a = π(s) a=π(s) is given by
    确定的策略的梯度 is given by
    ∂ L ( u ) ∂ u = E [ ∂ Q π ( s , a ) ∂ a ∂ a ∂ u ] \frac{\partial L(\mathbf{u})}{\partial \mathbf{u}}=\mathbb{E}\left[\frac{\partial Q^{\pi}(s, a)}{\partial a} \frac{\partial a}{\partial \mathbf{u}}\right] uL(u)=E[aQπ(s,a)ua]
    if a is continuous and Q is differentiable
    如果a是连续的并且Q是可导的

    莫烦
    靠奖励来影响神经网络反向传递
    观测信息让神经网络选择了左边的行为,进行反向传递,使左边的行为下次被选的可能性增加,但是奖惩信息表明这次的行为是不好的,那反向传递的时候减小力度,动作可能性增加的幅度减小。
    观测信息让神经网络选择了右边的行为,进行反向传递,使右边的行为下次被选的可能性增加,但是奖惩信息表明这次的行为是好的,那反向传递的时候加大力度,动作可能性增加的幅度增加
    policy gradient要输出不是 action 的 value, 而是具体的那一个 action,跳过了 value 这个阶段。输出的这个 action 可以是一个连续的值

    在 状态 s 对所选动作 a 的吃惊度:delta(log(Policy(s,a)) * V)
    如果Policy(s,a)概率越小,反向的log(Policy(s,a))(即-log§)反而越大
    如果Policy(s,a)很小的情况下,拿到了的R大,也就是大的V,那-delta(log(Policy(s,a)) * V)就更大,表示更吃惊。(选了一个不常选的动作,却发现原来它能得到了一个好的reward,那这次就得对参数进行一个大幅修改)

    使用loss=-log(prob)*vt当做loss
    上面提到了两种形式来计算neg_log_prob
    第二个是第一个的展开形式
    第一个形式是在神经网络分类问题中的cross-entropy
    使用softmax和神经网络的最后一层logits输出和真实标签(self.tf_acts)对比的误差。并将神经网络的参数按照这个真实标签改进。
    这显然和一个分类问题没有太多区别。
    能将这个neg_log_prob理解成cross-entropy的分类误差。
    分类问题中的标签是真实x对应的y
    Policy gradient中,x是state,y就是它按照这个x所做的动作号码。所以也可以理解成它按照x做的动作永远是对的(出来的动作永远是正确标签),它也永远会按照这个“正确标签”修改自己的参数。
    可是事实是他的动作不一定都是“正确标签”
    这就是强化学习(Policy gradient)和监督学习(classification)的不同

    为了确保这个动作真的是 “正确标签”, loss 在原本的 cross-entropy 形式上乘以 vt(用来表明这个 cross-entropy 算出来的梯度的值得信任的程度)
    如果 vt 是负的, 或很小, 那么梯度不值得信任,应该向着另一个方向更新参数
    如果 vt 是正的, 或很大, 那么梯度值得信任

    Actor-Critic Algorithm (AC) 演员评论家算法

    演员评论家有演员网络和评论家网络。
    演员使用策略梯度函数,该函数负责生成动作并与环境交互。
    评论家使用价值函数,该函数负责评估演员的表现并在下一阶段指导演员的行为。
    它可以加速策略梯度函数的收敛,但这还不足以解决复杂的问题。

    Estimate value function Q ( s , a , w ) ≈ Q ∗ ( s , a ) Q(s,a,w) ≈ Q^∗(s,a) Q(s,a,w)Q(s,a)
    Update policy parameters u by stochastic gradient ascent
    通过随机梯度上升更新策略参数u
    ∂ l ∂ u = ∂ log ⁡ π ( a ∣ s , u ) ∂ u Q ( s , a , w ) \frac{\partial {l}}{\partial \mathbf{u}}=\frac{\partial \log \pi(a | s, \mathbf{u})}{\partial \mathbf{u}} Q(s, a, \mathbf{w}) ul=ulogπ(as,u)Q(s,a,w)
    ∂ l ∂ u = ∂ Q ( s , a , w ) ∂ a ∂ a ∂ u \frac{\partial {l}}{\partial \mathbf{u}}=\frac{\partial Q(s, a, \mathbf{w})}{\partial a} \frac{\partial a}{\partial \mathbf{u}} ul=aQ(s,a,w)ua

    Asynchronous Advantage Actor-Critic (A3C)

    异步优势演员评论家(A3C)
    [1602.01783] Asynchronous Methods for Deep Reinforcement Learning
    不同于经验回放,异步优势演员评论家在环境的多个实例上异步地并行执行多个代理。这种并行性还decorrelate代理的数据,变成一个更加平稳的过程中,因为在任何给定的时间步,并行代理都会经历各种不同的状态。

    Estimate state-value function
    V ( s , v ) ≈ E [ r t + 1 + γ r t + 2 + . . . ∣ s ] V(s,v) ≈E[r_{t+1} + γr_{t+2} + ...|s] V(s,v)E[rt+1+γrt+2+...s]
    Q-value estimated by an n-step sample
    通过n步样本估算的Q值
    Q ( s t , a t ) = r t + 1 + γ r t + 2 ⋯ + γ n − 1 r t + n + γ n V ( s t + n , v ) Q\left(s_{t}, a_{t}\right)=r_{t+1}+\gamma r_{t+2 \cdots}+\gamma^{n-1} r_{t+n}+\gamma^{n} V\left(s_{t+n}, \mathbf{v}\right) Q(st,at)=rt+1+γrt+2+γn1rt+n+γnV(st+n,v)
    Actor is updated towards target
    ∂ l u ∂ u = ∂ log ⁡ π ( a t ∣ s t , u ) ∂ u ( Q ( s t , a t ) − V ( s t , v ) ) \frac{\partial {l_{u}}}{\partial \mathbf{u}}=\frac{\partial \log \pi\left(a_{t} | s_{t}, \mathbf{u}\right)}{\partial \mathbf{u}}\left(Q\left(s_{t}, a_{t}\right)-V\left(s_{t}, \mathbf{v}\right)\right) ulu=ulogπ(atst,u)(Q(st,at)V(st,v))
    Critic is updated to minimise MSE with respect to target
    评论家已更新,以最小化关于目标的均方误差
    l v = ( Q ( s t , a t ) − V ( s t , v ) ) 2 l_{v}=\left(Q\left(s_{t}, a_{t}\right)-V\left(s_{t}, v\right)\right)^{2} lv=(Q(st,at)V(st,v))2
    4x mean Atari score vs Nature DQN

    Asynchronous Advantage Actor-Critic (A3C) in Labyrinth

    迷宫中的异步优势演员评论家(A3C)

    深度强化学习在迷宫
    迷宫中的异步优势演员评论家(A3C)
    End-to-end learning of softmax policy π ( a ∣ s t ) π(a|s_t) π(ast) from pixels
    Observations o t o_t ot are raw pixels from current frame
    State s t = f ( o 1 , . . . , o t ) s_t = f (o_1,...,o_t) st=f(o1,...,ot) is a recurrent neural network (LSTM)
    Outputs both value V ( s ) V(s) V(s) and softmax over actions π ( a ∣ s ) π(a|s) π(as)
    Task is to collect apples (+1 reward)
    从像素端到端学习softmax policy π ( a ∣ s t ) π(a|s_t) π(ast)
    观察值 o t o_t ot是来自当前帧的原始像素
    状态 s t = f ( o 1 , . . . , o t ) s_t = f (o_1,...,o_t) st=f(o1,...,ot)是循环神经网络(LSTM)
    输出动作 π ( a ∣ s ) π(a|s) π(as)的值 V ( s ) V(s) V(s)和softmax
    任务是收集苹果(+1奖励)

    Demo:
    www.youtube.com/watch?v=nMR5mjCFZCw&feature=youtu.be
    Labyrinth source code (coming soon):
    迷宫源代码(即将推出):
    sites.google.com/a/deepmind.com/labyrinth/

    Deep Reinforcement Learning with Continuous Actions

    具有连续动作的深度强化学习
    [1509.02971] Continuous control with deep reinforcement learning

    How can we deal with high-dimensional continuous action spaces?
    Can’t easily compute max ⁡ a ′ Q ( s , a , w ) \underset{a^{\prime}}{\operatorname{max}} Q(s, a, \mathbf{w}) amaxQ(s,a,w)
    Actor-critic algorithms learn without max
    Q-values are differentiable with respect to a
    Deterministic policy gradients exploit knowledge of ∂ Q ∂ a \frac{\partial Q}{\partial {a}} aQ
    我们如何处理高维连续动作空间?
    无法轻松计算 max ⁡ a ′ Q ( s , a , w ) \underset{a^{\prime}}{\operatorname{max}} Q(s, a, \mathbf{w}) amaxQ(s,a,w)
    演员评论家算法无需max学习
    Q值关于a是可导的
    确定的policy梯度利用 ∂ Q ∂ a \frac{\partial Q}{\partial {a}} aQ的知识

    Deep DPG

    深度确定性策略梯度(DDPG)可以使用与演员评论家相同的超参数和网络结构,通过低维观测(例如 cartesian coordinates or joint angles)来学习所有任务的竞争策略。
    深度确定性策略梯度是一种off-policy算法,其 replay buffer 可能很大,从而使该算法可从一组不相关的过渡学习中受益。

    DPG is the continuous analogue of DQN
    Experience replay: build data-set from agent’s experience
    Critic estimates value of current policy by DQN
    DPG是DQN的连续类似物
    经验回放:根据代理的经验建立数据集
    评论家通过DQN估算当前policy的价值
    l w = ( r + γ Q ( s ′ , π ( s ′ , u − ) , w − ) − Q ( s , a , w ) ) 2 l_{w}=\left(r+\gamma Q\left(s^{\prime}, \pi\left(s^{\prime}, u^{-}\right), w^{-}\right)-Q(s, a, w)\right)^{2} lw=(r+γQ(s,π(s,u),w)Q(s,a,w))2

    To deal with non-stationarity, targets u−,w− are held fixed
    Actor updates policy in direction that improves Q
    为了处理非平稳性,将目标u−,w−固定
    演员更新policy以改善Q
    ∂ l u ∂ u = ∂ Q ( s , a , w ) ∂ a ∂ a ∂ u \frac{\partial {l_u}}{\partial \mathbf{u}}=\frac{\partial Q(s, a, \mathbf{w})}{\partial a} \frac{\partial a}{\partial \mathbf{u}} ulu=aQ(s,a,w)ua
    In other words critic provides loss function for actor
    换句话说,评论家为演员提供损失函数

    DPG in Simulated Physics

    Physics domains are simulated in MuJoCo
    End-to-end learning of control policy from raw pixels s
    Input state s is stack of raw pixels from last 4 frames
    Two separate convnets are used for Q and π
    Policy π is adjusted in direction that most improves Q
    在MuJoCo中模拟物理域
    从原始像素s开始对控制策略进行端到端学习
    输入状态s是最近4帧的原始像素堆栈
    两个单独的卷积用于 Q Q Q π π π
    policy π π π被调整,朝着最能改善Q的方向

    DPG in Simulated Physics

    Asynchronous Advantage Actor-Critic (A3C) in Simulated Physics Demo

    模拟物理演示中的异步优势演员评论家(A3C)
    Asynchronous RL is viable alternative to experience replay
    Train a hierarchical, recurrent locomotion controller
    Retrain controller on more challenging tasks
    异步强化学习是经验回放的可行替代方案
    训练一个分层的循环运动控制器
    在更具挑战性的任务上对控制器进行再次训练

    模拟物理演示中的异步优势演员评论家(A3C)

    Fictitious Self-Play (FSP)

    Can deep RL find Nash equilibria in multi-agent games?
    Q-network learns “best response” to opponent policies
    By applying DQN with experience replay
    c.f. fictitious play
    深度强化学习能在多代理游戏中找到Nash均衡吗?
    Q-Network学习对对手policy的“最佳反应”
    通过将DQN与经验回放一起应用
    c.f. 虚拟play

    Policy network π ( a ∣ s , u ) π(a|s,u) π(as,u) learns an average of best responses
    policy网络 π ( a ∣ s , u ) π(a|s,u) π(as,u)学习最佳响应的平均
    ∂ l ∂ u = ∂ log ⁡ π ( a ∣ s , u ) ∂ u \frac{\partial {l}}{\partial \mathbf{u}}=\frac{\partial \log \pi(a | s, \mathbf{u})}{\partial \mathbf{u}} ul=ulogπ(as,u)
    Actions a sample mix of policy network and best response
    Actions policy网络和最佳响应的样本组合

    Neural FSP in Texas Hold’em Poker
    Heads-up limit Texas Hold’em
    NFSP with raw inputs only (no prior knowledge of Poker)
    vs SmooCT (3x medal winner 2015, handcrafted knowlege)
    德州扑克中的神经虚拟Self-Play
    Heads-up 限制德州扑克
    神经虚拟Self-Play仅具有原始输入(之前没有扑克知识)
    vs SmooCT(2015年获得3枚奖牌,手工知识)

    神经虚拟Self-Play in Texas Hold’em Poker

    总结

    强化学习的策略梯度方法可以很好地解决连续动作问题。
    深度确定性策略梯度(DDPG)和异步优势演员评论家(A3C)源自演员评论家(AC)网络。
    深度确定性策略梯度(DDPG)和异步优势演员评论家(A3C)切断了数据相关性并加速了收敛,解决了演员评论家(AC)的最大问题。

    [1811.02073] QUOTA: The Quantile Option Architecture for Reinforcement Learning

    Model-Based 深度强化学习

    markov 决策过程(MDP)

    机器学习 强化学习 北京理工大学
    强化学习入门 第一讲 MDP

    ###markov property
    系统的下一个状态 s t + 1 s_{t+1} st+1仅与当前状态 s t s_t st有关,而与以前的状态无关。
    P [ s t + 1 ∣ s t ] = P [ s t + 1 ∣ s 1 , ⋯   , s t ] P[s_{t+1}|s_t]=P[s_{t+1}|s_1,\cdots ,s_t] P[st+1st]=P[st+1s1,,st]

    ###markov 过程
    是一个二元组(S,P),S是有限状态集合, P是状态转移概率
    状态转移概率矩阵:
    P = [ P 11 ⋯ P 1 n ⋮ ⋮ ⋮ P n 1 ⋯ P n n ] P=\left[\begin{matrix} P_{11} \cdots P_{1n}\\ \vdots \vdots \vdots\\ P_{n1} \cdots P_{nn}\\ \end{matrix}\right] P=P11P1nPn1Pnn

    markov 决策过程(MDP)

    元组 ( S , A , P , R , γ ) \left(S,A,P,R,\gamma\right) (S,A,P,R,γ)
    S为有限的状态集
    A为有限的动作集
    P为状态转移概率
    R为回报函数
    γ \gamma γ为折扣因子,用来计算累积回报。
    注意,跟markov 过程不同的是,markov 决策过程的状态转移概率是包含动作的,即: P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] P_{ss'}^{a}=P\left[S_{t+1}=s'|S_t=s,A_t=a\right] Pssa=P[St+1=sSt=s,At=a]
    s∈S:有限状态state集合,s表示某个特定状态
    a∈A:有限动作action集合,a表示某个特定动作
    T(S, a, S’)~Pr(s’|s,a):状态转移模型, 根据当前状态s和动作a预测下一个状态s,这里的Pr表示从s采取行动a转移到s’的概率
    R(s,a):表示agent采取某个动作后的即时奖励,它还有R(s,a,s’), R(s)等表现形式
    Policy π(s)→a:根据当前state来产生action,可表现为a=π(s)或 π(a|s) = P(a|s),后者表示某种状态下执行某个动作的概率

    强化学习的目标:给定一个markov 决策过程,寻找最优策略,即总回报最大
    策略 π \pi π:状态到动作的映射。给定状态 s s s时,动作集上的一个分布,即 π ( a ∣ s ) = p [ A t = a ∣ S t = s ] \pi(a|s)=p[A_t=a|S_t=s] π(as)=p[At=aSt=s]
    折扣累积回报: G t = R t + 1 + γ R t + 2 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 G_t=R_{t+1}+\gamma R_{t+2}+\cdots =\sum_{k=0}^{\infty}{\gamma^kR_{t+k+1}} Gt=Rt+1+γRt+2+=k=0γkRt+k+1
    状态值函数:
    υ π ( s ) = E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] \upsilon_{\pi}\left(s\right)=E_{\pi}\left[{G_t|S_t=s}\right]\\ =E_{\pi}\left[\sum_{k=0}^{\infty}{\gamma^kR_{t+k+1}|S_t=s}\right] υπ(s)=Eπ[GtSt=s]=Eπ[k=0γkRt+k+1St=s]
    状态值函数V表示执行策略π能得到的累计折扣奖励: $V^π(s) = E[R(s_0,a_0)+γR(s_1,a_1)+γ2R(s_2,a_2)+γ3R(s_3,a_3)+…|s=s_0] $
    V π ( s ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , π ( s ) ) V π ( s ′ ) V^{\pi}(s)=R(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} | s, \pi(s)\right) V^{\pi}\left(s^{\prime}\right) Vπ(s)=R(s,a)+γsSp(ss,π(s))Vπ(s)
    状态动作值函数:
    q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] q_{\pi}\left(s,a\right)=E_{\pi}\left[{G_t|S_t=s,A_t=a}\right]\\ =E_{\pi}\left[\sum_{k=0}^{\infty}{\gamma^kR_{t+k+1}|S_t=s,A_t=a}\right] qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[k=0γkRt+k+1St=s,At=a]
    状态动作值函数Q(s,a)表示在状态s下执行动作a能得到的累计折扣奖励:
    $Q^π(s,a) = E[R(s_0,a_0)+γR(s_1,a_1)+γ2R(s_2,a_2)+γ3R(s_3,a_3)+…|s=s_0,a=a_0] $
    Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , π ( s ) ) Q π ( s ′ , π ( s ′ ) ) Q^{\pi}(s, a)=R(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} | s, \pi(s)\right) Q^{\pi}\left(s^{\prime}, \pi\left(s^{\prime}\right)\right) Qπ(s,a)=R(s,a)+γsSp(ss,π(s))Qπ(s,π(s))

    状态值函数的Bellman方程:
    $\upsilon(s)=E[G_t|S_t=s] \
    =E[R_{t+1}+\gamma R_{t+2}+\cdots |S_t=s] \
    =E[R_{t+1}+\gamma(R_{t+2}+\gamma R_{t+3}+\cdots)|S_t=s] \
    =E[R_{t+1}+\gamma G_{t+1}|S_t=s] \
    =E[R_{t+1}+\gamma\upsilon(S_{t+1})|S_t=s] $
    最后一个等号的补充证明:
    V ( S t ) = E s t , s t + 1 , ⋯ ( R ( t + 1 ) + γ G ( S t + 1 ) ) = E s t ( R ( t + 1 ) + γ E s t + 1 , ⋯ ( G ( S t + 1 ) ) ) = E s t ( R ( t + 1 ) + γ V ( S t + 1 ) ) = E ( R ( t + 1 ) + γ V ( S t + 1 ) ) V(S_t)=E_{s_t,s_{t+1},\cdots}(R(t+1)+\gamma G(S_{t+1})) \\ =E_{s_t}(R(t+1)+\gamma E_{s_{t+1},\cdots}(G(S_{t+1}))) \\ =E_{s_t}(R(t+1)+\gamma V(S_{t+1})) \\ =E(R(t+1)+\gamma V(S_{t+1})) V(St)=Est,st+1,(R(t+1)+γG(St+1))=Est(R(t+1)+γEst+1,(G(St+1)))=Est(R(t+1)+γV(St+1))=E(R(t+1)+γV(St+1))
    状态动作值函数的Bellman方程:
    q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E π [ R t + 1 + γ q ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_{\pi}(s,a)=E_{\pi}[G_t|S_t=s,A_t=a]\\ =E_{\pi}[R_{t+1}+\gamma q(S_{t+1},A_{t+1})|S_t=s,A_t=a] qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[Rt+1+γq(St+1,At+1)St=s,At=a]

    策略迭代

    策略评估:
    在当前的策略中更新各状态的值函数,如果达到迭代次数或者值函数收敛就不再迭代
    策略更新:
    基于当前值函数得到最优策略

    策略迭代是累计平均的计算方式
    策略迭代更接近于样本的真实分布

    υ k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) \upsilon_{k+1}(s)=\sum_{a\in A}{\pi(a|s)q_{\pi}(s,a)} υk+1(s)=aAπ(as)qπ(s,a)
    状态动作值函数
    q π ( s , a ) = R s a + γ ∑ s ′ P s s ′ a υ π ( s ′ ) q_{\pi}(s,a)=R_{s}^{a}+\gamma\sum_{s'}{P_{ss'}^{a}}\upsilon_{\pi}(s') qπ(s,a)=Rsa+γsPssaυπ(s)
    υ k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a υ k ( s ′ ) ) \upsilon_{k+1}(s)=\sum_{a\in A}{\pi(a|s)(R_{s}^{a}+\gamma\sum_{s'\in S}{P_{ss'}^{a}\upsilon_{k}(s')})} υk+1(s)=aAπ(as)(Rsa+γsSPssaυk(s))

    值迭代

    每次值迭代都找到让当前值函数最大的更新方式,并且用这种方式更新值函数。直到值函数不再变化。
    值迭代是单步最好的方式
    值迭代速度更快,尤其是在策略空间较大的时候

    最优状态值函数的Bellman最优方程:
    $ \upsilon^(s)=\max_{a\in A}R_{s}^{a}+\gamma\sum_{s’\in S}{P_{ss’}{a}\upsilon(s’)} $
    V ∗ ( s ) = m a x a ∈ A [ R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) ] V^{*}(s)=m a x_{a \in A}\left[R(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} | s, a\right) V^{*}\left(s^{\prime}\right)\right] V(s)=maxaA[R(s,a)+γsSp(ss,a)V(s)]
    最优状态动作值函数的Bellman最优方程:
    q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a max ⁡ a ′ q ∗ ( s ′ , a ′ ) q^*(s,a)=R_{s}^{a}+\gamma\sum_{s'\in S}{P_{ss'}^{a}\max_{a'}q^*(s',a')} q(s,a)=Rsa+γsSPssamaxaq(s,a)
    Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) max ⁡ b ∈ A Q ∗ ( s ′ , b ) \mathbf{Q}^{*}(s, a)=R(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} | s, a\right) \max _{b \in A} Q^{*}\left(s^{\prime}, b\right) Q(s,a)=R(s,a)+γsSp(ss,a)maxbAQ(s,b)

    在得到最优值函数之后,可以通过值函数的值得到状态s时应该采取的动作a:
    π ( s ) = argmax ⁡ a ∈ A [ R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) ] \pi(s)=\operatorname{argmax}_{a \in A}\left[R(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} | s, a\right) V^{*}\left(s^{\prime}\right)\right] π(s)=argmaxaA[R(s,a)+γsSp(ss,a)V(s)]
    π ( s ) = argmax ⁡ a ∈ A Q ∗ ( s , a ) \pi(s)=\operatorname{argmax}_{a \in A} Q^{*}(s, a) π(s)=argmaxaAQ(s,a)
    V ∗ ( s ) = max ⁡ a ∈ A Q ∗ ( s , a ) V^{*}(s)=\max _{a \in A} Q^{*}(s, a) V(s)=maxaAQ(s,a)

    探索和利用

    探索:做你以前从来没有做过的事情,以期望获得更高的回报。
    利用:做你当前知道的能产生最大回报的事情
    ε贪心
    如果0<p<ε,那么随机action
    如果ε<p<1,那么 max ⁡ a Q ( s , a ) \max _{a} Q\left(s, a\right) maxaQ(s,a)

    Learning Models of the Environment

    Demo: generative model of Atari
    Challenging to plan due to compounding errors
    Errors in the transition model compound over the trajectory
    Planning trajectories differ from executed trajectories
    At end of long, unusual trajectory, rewards are totally wrong
    环境的学习模型
    演示:Atari的生成模型
    由于组合错误,计划具有挑战性
    过渡模型的误差在轨迹上组合
    规划轨迹不同于执行轨迹
    在漫长而不寻常的发展轨迹的尽头,奖励是完全错误的

    Deep Reinforcement Learning in Go

    What if we have a perfect model?
    e.g. game rules are known
    如果我们有一个完美的模型怎么办?
    例如 游戏规则是已知的
    AlphaGo paper:
    www.nature.com/articles/nature16961
    AlphaGo resources:
    deepmind.com/alphago/

    Conclusion

    General, stable and scalable RL is now possible
    Using deep networks to represent value, policy, model
    Successful in Atari, Labyrinth, Physics, Poker, Go
    Using a variety of deep RL paradigms
    通用,稳定和可扩展的强化学习现在成为可能
    使用深层网络表示价值,policy,模型
    在Atari,迷宫,物理,扑克,围棋中获得成功
    使用多种深度强化学习范例

    展开全文
  • 魏宁《深度强化学习落地指南》第4章 文章目录1. 奖励函数的本质:向智能体传达目标2. 稀疏奖励问题 1. 奖励函数的本质:向智能体传达目标 强化学习的标准交互过程如下:每个时刻,智能体根据根据其 策略...
  • 事实上,这正是全国知识产权系统打击专利侵权假冒办案工作力度不断加大、全系统办案能力进一步提升的缩影。    国家知识产权局专利管理司有关负责人介绍,今年上半年,全国知识产权系统深入贯彻落实党中央、...
  • 【深度干货】强化学习应用简述

    千次阅读 2021-05-08 00:05:13
    来源:海豚数据科学实验室强化学习 (reinforcement learning) 经过了几十年的研发,在一直稳定发展,最近取得了很多傲人的成果,后面会有越来越好的进展。强化学习广泛应...
  • 强化学习路在何方?

    千次阅读 多人点赞 2018-07-25 17:49:44
    一、深度强化学习的泡沫   2015年,DeepMind的Volodymyr Mnih等研究员在《自然》杂志上发表论文Human-level control through deep reinforcement learning[1],该论文提出了一个结合深度学习(DL)技术和强化学习...
  • 目录前言强化学习——探索和利用的平衡游戏DQNDDPGA3C其他算法 前言 虽然每年RL方向的paper满天飞,但真正具有普遍实用价值的突破性工作实在不多,大多数还是在经典框架基础上的改进和扩展。DRL常规武器库里的存货...
  • 深度强化学习落地方法论(6)——回报函数篇

    千次阅读 多人点赞 2019-12-05 21:10:14
    回报函数(reward)设计在DRL应用中是极其重要的一环,通过将任务目标具体化和数值化,reward就如同一种特殊语言,实现了目标与算法之间的沟通,算法工作者在这里面承担了翻译的角色,翻译的好坏体现了其对任务逻辑...
  • 下面简单列举一些强化学习的成功案例,然后对强化学习做简介,介绍两个例子:最短路径和围棋,讨论如何应用强化学习,讨论一些仍然存在的问题和建议,介绍《机器学习》强化学习应用专刊和强化学习应用研讨会,介绍...
  • 接下来我们将首先对数据处理构架方面进行改进,利用流式处理构架,并尝试探索更为适合算法的以进一步释放 RL 的效能,从而实现更优的排序结果,进一步降低用户费力度、提升用户使用体验。 作者介绍 : 宣云儿...
  • policy-based和value-based是RL中model-free的两大分支,关于...Sutton强化学习书籍 常见的policy-based方法: REFORCEMENT A2C A3C DDPG TD3 Smoothie SAC系列(SQL) PPO系列(TRPO、DPPO) 为什么要学习policy-base
  • 为了保证DRL算法能够顺利收敛,policy性能达标并具有实用价值,结果有说服力且能复现,需要算法工作者在训练前、训练中和训练后提供全方位一条龙服务。我记得GANs刚火起来的时候,因为训练难度高,有人在GitHub上...
  • 强化学习基础理论

    2020-12-07 14:20:04
    知识结构 定义 强化学习(Reinforcement learning),...与有监督学习不同,强化学习的动作并没有明确的标注信息,只有来自环境的反馈的奖励信息,它通常具有一定的滞后性,用于反映动作的“好与坏”。 参考资料: ...
  • 一个人在工作中,要反思自己的行为有没有做的不好,不足的,要积极改正自己的不足,加强自己的积极性、主动性、创造性,认真工作,努力把工作做到最好。下面是学习啦小编整理个人工作存在的不足和改进措施的范文,...
  • 深度强化学习训练调参方法

    千次阅读 多人点赞 2020-06-20 09:10:46
    为了保证DRL算法能够顺利收敛,policy性能达标并具有实用价值,结果有说服力且能复现,需要算法工作者在训练前、训练中和训练后提供全方位一条龙服务。我记得GANs刚火起来的时候,因为训练难度高,有人在GitHub上...
  • 深度强化学习实验室报道作者:侯宇清,陈玉荣编辑:DeepRL深度强化学习是深度学习与强化学习相结合的产物,它集成了深度学习在视觉等感知问题上强大的理解能力,以及强化学习的决策能力,实现了...
  • AI基础:深度强化学习之路

    千次阅读 2020-02-26 11:30:00
    本文来源:深度强化学习实验室作者:侯宇清,陈玉荣导语深度强化学习是深度学习与强化学习相结合的产物,它集成了深度学习在视觉等感知问题上强大的理解能力,以及强化学习的决策能力,实现了端到端学...
  • 为了解决这个问题,必须让原来三步的工作具有原子性,即要么三步都做,要么三步都不做。用代码的角度来看,以下代码是不可行的: global_s . append ( batch_s ) global_a . append ( batch_a ) global_q . ...
  • 深度强化学习是深度学习与强化学习相结合的产物,它集成了深度学习在视觉等感知问题上强大的理解能力,以及强化学习的决策能力,实现了端到端学习。深度强化学习的出现使得强化学习技术真正走向实用,得以解决现实...
  • 2020-2021学年度计算机教研组工作计划计算机教研组工作要以面向社会、面向计算机专业,使教学与社会岗位具有更强的衔接性,让学生可以学以致用,使计算机专业真正具有更强的生命力。制定好计划,以助教研各项工作的...
  • 这里给大家分享一些关于计算机教研组年度工作计划600字,供大家参考。计算机教研组年度工作计划1一、指导思想:以教务处为中心,立足课堂,积极开展教研活动。本着求真务实的工作作风,充分调动各教师的教学积极性,...
  • 简短的工作计划

    2020-12-20 03:07:09
    新的一年有新的气象,每个人都得对自己的工作负责,尤其是在工作中的人员。经过这次疫情的爆发,让很多人待在家里有了深刻的时间进行思考。思考他们在工作中的不足,以及他们在今后工作方式上的方法。而我也进行了...
  • 某局网络安全和保密工作总结2019年,某局网络安全和保密工作在工委坚强领导下,按照中央的决策部署,根据省委、市委有关要求,全体干部深入掌握新形势下保密工作常识,有力推进本单位安全保密工作有序开展,确保了无...
  • 由此可见,我国在节能工作方面的管理与控制力度显著加大。而现代企业也必须要不断强化能源管理,适当地调整能源结构,贯彻落实节能改造工作,才能够达到持续降低能源消耗量的目的,并达到节能目的。所以说,企业正...
  • 教学工作计划

    2021-07-27 03:50:20
    教学工作计划上学期,在上级主管部门的领导和关怀下,在我校全体师生的共同努力下,教学工作方面取得了显著成绩。2001年高考上省大专线103人,上本科线30人,上重点线3人;初三升中考总分合格率、总分优秀率、全科...
  • 围绕学校2015年学校重点工作安排,根据信息技术部工作职能和岗位职责,现制订我部2015年度工作计划如下:一、全力以赴做好示范校建设验收工作.围绕2015年示范校建设的终期验收,主要做好以下几项工作:1.完成各项建设任务...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,037
精华内容 2,014
关键字:

强化工作力度