zoukankan      html  css  js  c++  java
  • 阅读笔记十六

    这次继续学习有关强化学习的知识

    强化学习(Reinforcement Learning)是当前最热门的研究课题之一,它在AlphaGo中大放光彩,同时也变得越来越受科研人员的喜爱。本文主要介绍关于增强学习5件有用的事儿。

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

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

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

     
    图1 增强学习模型框图

    2.如何创建一个基本的强化学习问题?

    在介绍本节内容之前,先介绍下增强学习问题中的一些关键术语:

    环境(Environment):Agent操作的现实世界

    状态(State):Agent的现状

    奖励(Reward):来自环境的反馈

    策略(Policy):将Agent的状态映射到动作的方法

    价值(Value):Agent在特定状态下采取行动所得到的报酬

    可以通过游戏很好地解释强化学习问题,以PacMan游戏为例,Agent的目标是在网络中吃掉食物,同时也要躲避幽灵。网格世界就是Agent的交互环境,如果PacMan吃掉食物,则获得奖励;但如果被幽灵杀死(输掉游戏),则受到惩罚。PacMan在网格中的位置就是其所处的状态,达到累积奖励总额则PacMan赢得比赛。

    为了建立一个最优策略,Agent需要不断探索新的状态,同时最大化其所获奖励累积额度,这也被称作试探和权衡

    马尔可夫决策过程(MDPs)是用来描述增强学习环境的数学框架,几乎所有的增强学习问题都可以转化为MDps。MDP由一组有限环境状态S、每个状态中存在的一组可能行为A(s)、一个实值奖励函数R(s)以及一个转移模型P(s',s|a)组成。然而,现实世界环境可能更缺乏对动态环境的任何先验知识。在这种情况下,Model-free很有效。Model-free一直在每一步中去尝试学习最优的策略,在多次迭代后就得到了整个环境最优的策略(Q-learning)。

    Q-learning是一种常用的模型,能够用于构建自己玩PacMan的Agent,它始终围绕着更新Q值,Q值表示在状态s时执行动作a的值,价值更新规则是Q-learning算法的核心。

     
    图2 增强学习更新规则
     
    图3 PacMan游戏

    3.最常用的强化学习算法有哪些?

    Q-learning和SARSA(State-Action-Reward-State-Action)是两种常用的model-free强化学习算法。虽然它们的探索策略不同,但是它们的开发策略却相似。虽然Q-learning是一种离线(off-policy)学习方法,其中Agent根据从另一个策略得到的行动a*学习价值,但SARSA是一个在线(on-policy)学习方法,它从目前的策略中获得当前行动的价值。这两种方法实施起来很简单,但缺乏一般性,因为无法估计出不可见状态的价值。

    但以上问题可以通过更先进的算法来克服,比如使用神经网络估计Q值的Deep Q-Networks(DQN)。但是DQN只能处理离散、低维动作空间,因此对于高维、连续动作空间,科研人员发明了一种名为Deep Deterministic Policy Gradient(DDPG)的算法,该算法是一个model-free、离线演员评判家算法(Actor-critic algorithm)。

     
    图4 Actor-critic algorithm

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

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

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

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

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

  • 相关阅读:
    [转]Native进程的运行过程
    android ARM 汇编学习 —— hello world
    android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析
    Linux buffer/cache异同
    分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?
    kafka对比RocketMQ(转)
    Jmeter测试webocket协议
    Linux atop监控工具部署
    MySql计算两个日期的时间差函数
    Python selenium —— 一定要会用selenium的等待,三种等待方式解读(转)
  • 原文地址:https://www.cnblogs.com/messi2017/p/11055474.html
Copyright © 2011-2022 走看看